OLD | NEW |
1 #! /usr/bin/env python | 1 #! /usr/bin/env python |
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 import itertools | 6 import itertools |
7 import json | 7 import json |
8 import os.path | 8 import os.path |
9 import re | 9 import re |
10 import sys | 10 import sys |
(...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
464 def Load(filename): | 464 def Load(filename): |
465 ''' | 465 ''' |
466 Given the filename of an IDL file, parses it and returns an equivalent | 466 Given the filename of an IDL file, parses it and returns an equivalent |
467 Python dictionary in a format that the JSON schema compiler expects to see. | 467 Python dictionary in a format that the JSON schema compiler expects to see. |
468 ''' | 468 ''' |
469 | 469 |
470 f = open(filename, 'r') | 470 f = open(filename, 'r') |
471 contents = f.read() | 471 contents = f.read() |
472 f.close() | 472 f.close() |
473 | 473 |
| 474 return Process(contents, filename) |
| 475 |
| 476 |
| 477 def Process(contents, filename): |
| 478 ''' |
| 479 Processes the contents of a file and returns an equivalent Python dictionary |
| 480 in a format that the JSON schema compiler expects to see. (Separate from |
| 481 Load primarily for testing purposes.) |
| 482 ''' |
| 483 |
474 idl = idl_parser.IDLParser().ParseData(contents, filename) | 484 idl = idl_parser.IDLParser().ParseData(contents, filename) |
475 idl_schema = IDLSchema(idl) | 485 idl_schema = IDLSchema(idl) |
476 return idl_schema.process() | 486 return idl_schema.process() |
477 | 487 |
478 | 488 |
479 def Main(): | 489 def Main(): |
480 ''' | 490 ''' |
481 Dump a json serialization of parse result for the IDL files whose names | 491 Dump a json serialization of parse result for the IDL files whose names |
482 were passed in on the command line. | 492 were passed in on the command line. |
483 ''' | 493 ''' |
484 if len(sys.argv) > 1: | 494 if len(sys.argv) > 1: |
485 for filename in sys.argv[1:]: | 495 for filename in sys.argv[1:]: |
486 schema = Load(filename) | 496 schema = Load(filename) |
487 print json.dumps(schema, indent=2) | 497 print json.dumps(schema, indent=2) |
488 else: | 498 else: |
489 contents = sys.stdin.read() | 499 contents = sys.stdin.read() |
490 idl = idl_parser.IDLParser().ParseData(contents, '<stdin>') | 500 idl = idl_parser.IDLParser().ParseData(contents, '<stdin>') |
491 schema = IDLSchema(idl).process() | 501 schema = IDLSchema(idl).process() |
492 print json.dumps(schema, indent=2) | 502 print json.dumps(schema, indent=2) |
493 | 503 |
494 | 504 |
495 if __name__ == '__main__': | 505 if __name__ == '__main__': |
496 Main() | 506 Main() |
OLD | NEW |