| Index: tools/idl_parser/idl_parser.py
|
| diff --git a/tools/idl_parser/idl_parser.py b/tools/idl_parser/idl_parser.py
|
| index a8cd82f8cf9a66fbab96071e8a1f36151f292644..a19785bfb1b54792ab99cd2fdfad7d25aaabb726 100755
|
| --- a/tools/idl_parser/idl_parser.py
|
| +++ b/tools/idl_parser/idl_parser.py
|
| @@ -654,15 +654,17 @@ class IDLParser(object):
|
|
|
| # We only support:
|
| # [ identifier ]
|
| + # [ identifier ( ArgumentList ) ]
|
| # [ identifier = identifier ]
|
| - # [ identifier ( ArgumentList )]
|
| - # [ identifier = identifier ( ArgumentList )]
|
| + # [ identifier = ( IdentifierList ) ]
|
| + # [ identifier = identifier ( ArgumentList ) ]
|
| # [66] map directly to [91-93, 95]
|
| # [67-69, 71] are unsupported
|
| def p_ExtendedAttribute(self, p):
|
| """ExtendedAttribute : ExtendedAttributeNoArgs
|
| | ExtendedAttributeArgList
|
| | ExtendedAttributeIdent
|
| + | ExtendedAttributeIdentList
|
| | ExtendedAttributeNamedArgList"""
|
| p[0] = p[1]
|
|
|
| @@ -855,7 +857,17 @@ class IDLParser(object):
|
| else:
|
| p[0] = p[1]
|
|
|
| - # [89-90] NOT IMPLEMENTED (IdentifierList)
|
| + # [89]
|
| + def p_IdentifierList(self, p):
|
| + """IdentifierList : identifier Identifiers"""
|
| + p[0] = ListFromConcat(p[1], p[2])
|
| +
|
| + # [90]
|
| + def p_Identifiers(self, p):
|
| + """Identifiers : ',' identifier Identifiers
|
| + |"""
|
| + if len(p) > 1:
|
| + p[0] = ListFromConcat(p[2], p[3])
|
|
|
| # [91]
|
| def p_ExtendedAttributeNoArgs(self, p):
|
| @@ -874,7 +886,11 @@ class IDLParser(object):
|
| value = self.BuildAttribute('VALUE', p[3])
|
| p[0] = self.BuildNamed('ExtAttribute', p, 1, value)
|
|
|
| - # [94] NOT IMPLEMENTED (ExtendedAttributeIdentList)
|
| + # [94]
|
| + def p_ExtendedAttributeIdentList(self, p):
|
| + """ExtendedAttributeIdentList : identifier '=' '(' IdentifierList ')'"""
|
| + value = self.BuildAttribute('VALUE', p[4])
|
| + p[0] = self.BuildNamed('ExtAttribute', p, 1, value)
|
|
|
| # [95]
|
| def p_ExtendedAttributeNamedArgList(self, p):
|
|
|