summaryrefslogtreecommitdiff
path: root/src/webidl-parser.y
diff options
context:
space:
mode:
authorVincent Sanders <vincent.sanders@collabora.co.uk>2012-09-07 18:04:03 +0100
committerVincent Sanders <vincent.sanders@collabora.co.uk>2012-09-07 18:04:03 +0100
commitc7493cf58c439bb3b9d2cf2cd989d3dc6f7ebb39 (patch)
treeff9c20eaa58515b8eee9aa47f1b8c7a9c7f1762a /src/webidl-parser.y
parent686b84a6ccd64015c0de4e542504fa44424fb987 (diff)
downloadnsgenbind-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/webidl-parser.y')
-rw-r--r--src/webidl-parser.y12
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;
}