Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(104)

Side by Side Diff: mojo/public/tools/bindings/mojom_list_dart_outputs.py

Issue 1740323002: Fix mojom_list_dart_outputs.py to not use the old Mojom parser. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Copyright 2014 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 """Generates the list of dart source file outputs from a mojom.Module.""" 6 """Generates the list of dart source file outputs from a mojom.Module."""
7 7
8 import argparse 8 import argparse
9 import os 9 import os
10 import re 10 import re
11 import shutil 11 import shutil
12 import sys 12 import sys
13 13
14 SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) 14 SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
15 SDK_DIR = os.path.join(SCRIPT_DIR, os.path.pardir, os.path.pardir)
15 sys.path.insert(0, os.path.join(SCRIPT_DIR, 'pylib')) 16 sys.path.insert(0, os.path.join(SCRIPT_DIR, 'pylib'))
16 17
17 from mojom.error import Error 18 from mojom.error import Error
18 from mojom.parse.parser import Parse 19 from mojom.parse import parser_runner
19 from mojom.parse.translate import Translate 20 from mojom.generate import mojom_translator
20 21
21 def mojom_path(name, namespace, attributes): 22 def mojom_path(name, namespace, attributes):
22 package_name = 'mojom' 23 package_name = 'mojom'
23 if attributes and attributes.get('DartPackage'): 24 if attributes and attributes.get('DartPackage'):
24 package_name = attributes['DartPackage'] 25 package_name = attributes['DartPackage']
25 elements = [package_name, 'lib'] 26 elements = [package_name, 'lib']
26 elements.extend(namespace.split('.')) 27 elements.extend(namespace.split('.'))
27 elements.append("%s.dart" % name) 28 elements.append("%s.dart" % name)
28 return os.path.join(*elements) 29 return os.path.join(*elements)
29 30
30 31
31 def process_mojom(path_to_mojom): 32 def process_mojom(path_to_mojom):
32 filename = os.path.abspath(path_to_mojom) 33 filename = os.path.abspath(path_to_mojom)
33 name = os.path.basename(filename)
34
35 # Read in mojom file.
36 try:
37 with open(filename) as f:
38 source = f.read()
39 except IOError:
40 print("Error reading %s" % filename)
41 sys.exit(2)
42 34
43 # Parse 35 # Parse
44 try: 36 mojom_file_graph = parser_runner.ParseToMojomFileGraph(SDK_DIR, [filename],
45 tree = Parse(source, name) 37 meta_data_only=True)
46 except Error: 38 if mojom_file_graph is None:
47 print("Error parsing %s" % filename) 39 print("Error parsing %s" % filename)
48 sys.exit(2) 40 mojom_dict = mojom_translator.TranslateFileGraph(mojom_file_graph)
41 mojom = mojom_dict[filename]
49 42
50 mojom = Translate(tree, name)
51 # Output path 43 # Output path
52 attributes = mojom.get('attributes') 44 attributes = mojom.attributes
53 print(mojom_path(mojom['name'], mojom['namespace'], attributes)) 45 print(mojom_path(mojom.name, mojom.namespace, attributes))
54 46
55 47
56 def main(): 48 def main():
57 parser = argparse.ArgumentParser(description='Output list of ') 49 parser = argparse.ArgumentParser(description='Output list of ')
58 parser.add_argument('--mojoms', 50 parser.add_argument('--mojoms',
59 metavar='mojoms', 51 metavar='mojoms',
60 nargs='+', 52 nargs='+',
61 required=True) 53 required=True)
62 args = parser.parse_args() 54 args = parser.parse_args()
63 55
64 for mojom in args.mojoms: 56 for mojom in args.mojoms:
65 process_mojom(mojom) 57 process_mojom(mojom)
66 58
67 return 0 59 return 0
68 60
69 61
70 if __name__ == '__main__': 62 if __name__ == '__main__':
71 sys.exit(main()) 63 sys.exit(main())
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698