Chromium Code Reviews| Index: ppapi/generators/idl_parser.py |
| diff --git a/ppapi/generators/idl_parser.py b/ppapi/generators/idl_parser.py |
| index 73b15ca3813cbd3395c2483fcc9769fd58a619bf..20044a579ea2f9d88af54e8a1dfb115534460956 100755 |
| --- a/ppapi/generators/idl_parser.py |
| +++ b/ppapi/generators/idl_parser.py |
| @@ -268,6 +268,28 @@ class IDLParser(IDLLexer): |
| if self.parse_debug: DumpReduction('modifiers', p) |
| # |
| +# Scoped name is a name with an optional scope. |
| +# |
| +# Used for types and namespace names. eg. foo_bar.hello_world, or |
| +# foo_bar.hello_world.SomeType. |
| +# |
| + def p_scoped_name(self, p): |
| + """scoped_name : SYMBOL |
|
Nils Barth (inactive)
2014/03/28 05:01:19
This should instead be:
scoped_name : SYMBOL scope
mtomasz
2014/03/28 05:19:38
Done.
Nils Barth (inactive)
2014/03/28 05:25:13
Thanks!
LGTM again!
|
| + | scoped_name '.' SYMBOL""" |
| + p[0] = ''.join(p[1:]) |
| + if self.parse_debug: DumpReduction('scoped_name', p) |
| + |
| +# |
| +# Type reference |
| +# |
| +# |
| + def p_typeref(self, p): |
| + """typeref : scoped_name""" |
| + p[0] = p[1] |
| + if self.parse_debug: DumpReduction('typeref', p) |
| + |
| + |
| +# |
| # Comments |
| # |
| # Comments are optional list of C style comment objects. Comments are returned |
| @@ -296,9 +318,8 @@ class IDLParser(IDLLexer): |
| # We allow namespace names of the form foo.bar.baz. |
| def p_namespace_name(self, p): |
| - """namespace_name : SYMBOL |
| - | SYMBOL '.' namespace_name""" |
| - p[0] = "".join(p[1:]) |
| + """namespace_name : scoped_name""" |
| + p[0] = p[1] |
| # |
| @@ -621,7 +642,7 @@ class IDLParser(IDLLexer): |
| if self.parse_debug: DumpReduction('param_list', p) |
| def p_param_item(self, p): |
| - """param_item : modifiers optional SYMBOL arrays identifier""" |
| + """param_item : modifiers optional typeref arrays identifier""" |
| typeref = self.BuildAttribute('TYPEREF', p[3]) |
| children = ListFromConcat(p[1], p[2], typeref, p[4]) |
| p[0] = self.BuildNamed('Param', p, 5, children) |
| @@ -760,7 +781,7 @@ class IDLParser(IDLLexer): |
| # A member attribute or function of a struct or interface. |
| # |
| def p_member_attribute(self, p): |
| - """member_attribute : modifiers SYMBOL arrays questionmark identifier""" |
| + """member_attribute : modifiers typeref arrays questionmark identifier""" |
| typeref = self.BuildAttribute('TYPEREF', p[2]) |
| children = ListFromConcat(p[1], typeref, p[3], p[4]) |
| p[0] = self.BuildNamed('Member', p, 5, children) |
| @@ -774,7 +795,7 @@ class IDLParser(IDLLexer): |
| if self.parse_debug: DumpReduction('attribute', p) |
| def p_member_function(self, p): |
| - """member_function : modifiers static SYMBOL arrays SYMBOL param_list""" |
| + """member_function : modifiers static typeref arrays SYMBOL param_list""" |
| typeref = self.BuildAttribute('TYPEREF', p[3]) |
| children = ListFromConcat(p[1], p[2], typeref, p[4], p[6]) |
| p[0] = self.BuildNamed('Member', p, 5, children) |