run_parser.py revision 010d83a9304c5a91596085d917d248abff47903a
1010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#!/usr/bin/env python 2010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)# Copyright 2014 The Chromium Authors. All rights reserved. 3010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 4010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)# found in the LICENSE file. 5010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 6010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)"""Simple testing utility to just run the mojom parser.""" 7010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 8010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 9010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)import os.path 10010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)import sys 11010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 12010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), 13010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) os.path.pardir, os.path.pardir)) 14010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 15010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)# Disable lint check for finding modules: 16010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)# pylint: disable=F0401 17010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 18010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)from mojom.parse.parser import Parse, ParseError 19010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 20010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 21010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)def main(argv): 22010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) if len(argv) < 2: 23010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) print "usage: %s filename" % argv[0] 24010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) return 0 25010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 26010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) for filename in argv[1:]: 27010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) with open(filename) as f: 28010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) print "%s:" % filename 29010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) try: 30010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) print Parse(f.read(), filename) 31010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) except ParseError, e: 32010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) print e 33010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) return 1 34010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 35010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) return 0 36010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 37010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 38010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)if __name__ == '__main__': 39010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) sys.exit(main(sys.argv)) 40