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