Index: third_party/mojo/src/mojo/public/tools/bindings/pylib/mojom/parse/parser.py |
diff --git a/third_party/mojo/src/mojo/public/tools/bindings/pylib/mojom/parse/parser.py b/third_party/mojo/src/mojo/public/tools/bindings/pylib/mojom/parse/parser.py |
index 4225f0a7f2373e293f385b2ff2384e76ff318229..dc9d0972c7a7603912cae04ce3bcd6e162290515 100644 |
--- a/third_party/mojo/src/mojo/public/tools/bindings/pylib/mojom/parse/parser.py |
+++ b/third_party/mojo/src/mojo/public/tools/bindings/pylib/mojom/parse/parser.py |
@@ -171,12 +171,12 @@ class Parser(object): |
p[0].Append(p[2]) |
def p_struct_field(self, p): |
- """struct_field : typename NAME ordinal default SEMI""" |
- p[0] = ast.StructField(p[2], p[3], p[1], p[4]) |
+ """struct_field : attribute_section typename NAME ordinal default SEMI""" |
+ p[0] = ast.StructField(p[3], p[1], p[4], p[2], p[5]) |
def p_union(self, p): |
- """union : UNION NAME LBRACE union_body RBRACE SEMI""" |
- p[0] = ast.Union(p[2], p[4]) |
+ """union : attribute_section UNION NAME LBRACE union_body RBRACE SEMI""" |
+ p[0] = ast.Union(p[3], p[1], p[5]) |
def p_union_body_1(self, p): |
"""union_body : """ |
@@ -188,8 +188,8 @@ class Parser(object): |
p[1].Append(p[2]) |
def p_union_field(self, p): |
- """union_field : typename NAME ordinal SEMI""" |
- p[0] = ast.UnionField(p[2], p[3], p[1]) |
+ """union_field : attribute_section typename NAME ordinal SEMI""" |
+ p[0] = ast.UnionField(p[3], p[1], p[4], p[2]) |
def p_default_1(self, p): |
"""default : """ |
@@ -224,8 +224,9 @@ class Parser(object): |
p[0] = p[3] |
def p_method(self, p): |
- """method : NAME ordinal LPAREN parameter_list RPAREN response SEMI""" |
- p[0] = ast.Method(p[1], p[2], p[4], p[6]) |
+ """method : attribute_section NAME ordinal LPAREN parameter_list RPAREN \ |
+ response SEMI""" |
+ p[0] = ast.Method(p[2], p[1], p[3], p[5], p[7]) |
def p_parameter_list_1(self, p): |
"""parameter_list : """ |
@@ -245,9 +246,9 @@ class Parser(object): |
p[0].Append(p[3]) |
def p_parameter(self, p): |
- """parameter : typename NAME ordinal""" |
- p[0] = ast.Parameter(p[2], p[3], p[1], |
- filename=self.filename, lineno=p.lineno(2)) |
+ """parameter : attribute_section typename NAME ordinal""" |
+ p[0] = ast.Parameter(p[3], p[1], p[4], p[2], |
+ filename=self.filename, lineno=p.lineno(3)) |
def p_typename(self, p): |
"""typename : nonnullable_typename QSTN |
@@ -322,9 +323,12 @@ class Parser(object): |
p[0] = ast.Ordinal(value, filename=self.filename, lineno=p.lineno(1)) |
def p_enum(self, p): |
- """enum : ENUM NAME LBRACE nonempty_enum_value_list RBRACE SEMI |
- | ENUM NAME LBRACE nonempty_enum_value_list COMMA RBRACE SEMI""" |
- p[0] = ast.Enum(p[2], p[4], filename=self.filename, lineno=p.lineno(1)) |
+ """enum : attribute_section ENUM NAME LBRACE nonempty_enum_value_list \ |
+ RBRACE SEMI |
+ | attribute_section ENUM NAME LBRACE nonempty_enum_value_list \ |
+ COMMA RBRACE SEMI""" |
+ p[0] = ast.Enum(p[3], p[1], p[5], filename=self.filename, |
+ lineno=p.lineno(2)) |
def p_nonempty_enum_value_list_1(self, p): |
"""nonempty_enum_value_list : enum_value""" |
@@ -336,11 +340,11 @@ class Parser(object): |
p[0].Append(p[3]) |
def p_enum_value(self, p): |
- """enum_value : NAME |
- | NAME EQUALS int |
- | NAME EQUALS identifier_wrapped""" |
- p[0] = ast.EnumValue(p[1], p[3] if len(p) == 4 else None, |
- filename=self.filename, lineno=p.lineno(1)) |
+ """enum_value : attribute_section NAME |
+ | attribute_section NAME EQUALS int |
+ | attribute_section NAME EQUALS identifier_wrapped""" |
+ p[0] = ast.EnumValue(p[2], p[1], p[4] if len(p) == 5 else None, |
+ filename=self.filename, lineno=p.lineno(2)) |
def p_const(self, p): |
"""const : CONST typename NAME EQUALS constant SEMI""" |