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

Side by Side Diff: mojo/public/tools/bindings/pylib/mojom/parse/parser.py

Issue 262633005: Adding attributes to module and struct in mojom. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 | Annotate | Revision Log
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 a syntax tree from a Mojo IDL file.""" 6 """Generates a syntax tree from a Mojo IDL file."""
7 7
8 import imp 8 import imp
9 import os.path 9 import os.path
10 import sys 10 import sys
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 def p_root(self, p): 73 def p_root(self, p):
74 """root : import root 74 """root : import root
75 | module 75 | module
76 | definitions""" 76 | definitions"""
77 if len(p) > 2: 77 if len(p) > 2:
78 p[0] = _ListFromConcat(p[1], p[2]) 78 p[0] = _ListFromConcat(p[1], p[2])
79 else: 79 else:
80 # Generator expects a module. If one wasn't specified insert one with an 80 # Generator expects a module. If one wasn't specified insert one with an
81 # empty name. 81 # empty name.
82 if p[1][0] != 'MODULE': 82 if p[1][0] != 'MODULE':
83 p[0] = [('MODULE', '', p[1])] 83 p[0] = [('MODULE', '', [], p[1])]
84 else: 84 else:
85 p[0] = [p[1]] 85 p[0] = [p[1]]
86 86
87 def p_import(self, p): 87 def p_import(self, p):
88 """import : IMPORT STRING_LITERAL""" 88 """import : IMPORT STRING_LITERAL"""
89 # 'eval' the literal to strip the quotes. 89 # 'eval' the literal to strip the quotes.
90 p[0] = ('IMPORT', eval(p[2])) 90 p[0] = ('IMPORT', eval(p[2]))
91 91
92 def p_module(self, p): 92 def p_module(self, p):
93 """module : MODULE identifier LBRACE definitions RBRACE""" 93 """module : attribute_section MODULE identifier LBRACE definitions RBRACE"""
94 p[0] = ('MODULE', p[2], p[4]) 94 p[0] = ('MODULE', p[3], p[1], p[5])
95 95
96 def p_definitions(self, p): 96 def p_definitions(self, p):
97 """definitions : definition definitions 97 """definitions : definition definitions
98 | """ 98 | """
99 if len(p) > 1: 99 if len(p) > 1:
100 p[0] = _ListFromConcat(p[1], p[2]) 100 p[0] = _ListFromConcat(p[1], p[2])
101 101
102 def p_definition(self, p): 102 def p_definition(self, p):
103 """definition : struct 103 """definition : struct
104 | interface 104 | interface
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 print Parse(f.read(), filename) 374 print Parse(f.read(), filename)
375 except ParseError, e: 375 except ParseError, e:
376 print e 376 print e
377 return 1 377 return 1
378 378
379 return 0 379 return 0
380 380
381 381
382 if __name__ == '__main__': 382 if __name__ == '__main__':
383 sys.exit(main(sys.argv)) 383 sys.exit(main(sys.argv))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698