diff options
author | Vincent Sanders <vincent.sanders@collabora.co.uk> | 2012-09-07 18:04:03 +0100 |
---|---|---|
committer | Vincent Sanders <vincent.sanders@collabora.co.uk> | 2012-09-07 18:04:03 +0100 |
commit | c7493cf58c439bb3b9d2cf2cd989d3dc6f7ebb39 (patch) | |
tree | ff9c20eaa58515b8eee9aa47f1b8c7a9c7f1762a /src | |
parent | 686b84a6ccd64015c0de4e542504fa44424fb987 (diff) | |
download | nsgenbind-c7493cf58c439bb3b9d2cf2cd989d3dc6f7ebb39.tar.gz nsgenbind-c7493cf58c439bb3b9d2cf2cd989d3dc6f7ebb39.tar.bz2 |
alter InterfaceMembers to be left recusrsive
Document accurately the changes from the w3c grammar
Diffstat (limited to 'src')
-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; } |