diff options
Diffstat (limited to 'src/webidl-parser.y')
-rw-r--r-- | src/webidl-parser.y | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/webidl-parser.y b/src/webidl-parser.y index 7425a21..db10ab7 100644 --- a/src/webidl-parser.y +++ b/src/webidl-parser.y @@ -114,7 +114,13 @@ int webidl_wrap() %% - /* [1] start with definitions */ + /* [1] altered from original grammar to be left recusive, avoid reduce/reduce + * conficts and have an error term. + * + * By omitting the empty term from here reduce/reduce conficts are removed as + * both ExtendedAttributeList and Definition (by way of Exception) can end + * up with an empty term anyhow. + */ Definitions: ExtendedAttributeList Definition | @@ -183,14 +189,14 @@ PartialInterface: TOK_INTERFACE TOK_IDENTIFIER '{' InterfaceMembers '}' ';' ; - /* [9] */ + /* [9] slightly altered from original grammar to be left recursive */ InterfaceMembers: /* empty */ { $$ = NULL; } | - ExtendedAttributeList InterfaceMember InterfaceMembers + InterfaceMembers ExtendedAttributeList InterfaceMember { $$ = NULL; } |