summaryrefslogtreecommitdiff
path: root/src/webidl-parser.y
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2012-09-14 00:37:09 +0100
committerVincent Sanders <vince@kyllikki.org>2012-09-14 00:37:09 +0100
commit6ccbb7e3fe88c9a6ddb232c43f71b9c8cb80a884 (patch)
tree2cc3ae4e1e57816daa1b9886e840b8f77e8b3f31 /src/webidl-parser.y
parent8b775d2a309a72729e08a0529717852605d82fe5 (diff)
downloadnsgenbind-6ccbb7e3fe88c9a6ddb232c43f71b9c8cb80a884.tar.gz
nsgenbind-6ccbb7e3fe88c9a6ddb232c43f71b9c8cb80a884.tar.bz2
fixus interface memer attributes
Diffstat (limited to 'src/webidl-parser.y')
-rw-r--r--src/webidl-parser.y26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/webidl-parser.y b/src/webidl-parser.y
index c899001..c4cfa56 100644
--- a/src/webidl-parser.y
+++ b/src/webidl-parser.y
@@ -130,6 +130,13 @@ webidl_error(YYLTYPE *locp, struct webidl_node **winbind_ast, const char *str)
%type <node> CallbackRest
%type <node> CallbackRestOrInterface
+%type <node> Attribute
+%type <node> AttributeOrOperation
+%type <node> StringifierAttributeOrOperation
+%type <node> Const
+%type <node> Operation
+%type <node> OperationRest
+
%%
/* default rule to add built AST to passed in one */
@@ -207,7 +214,7 @@ Interface:
members = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE_MEMBERS, inheritance, $5);
- ident = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE_IDENT, members, $2);
+ ident = webidl_node_new(WEBIDL_NODE_TYPE_IDENT, members, $2);
$$ = webidl_node_new(WEBIDL_NODE_TYPE_INTERFACE, NULL, ident);
}
@@ -245,7 +252,7 @@ InterfaceMembers:
|
InterfaceMembers ExtendedAttributeList InterfaceMember
{
- $$ = webidl_node_link($1, $3);
+ $$ = webidl_node_link($3, $1);
}
;
@@ -373,6 +380,9 @@ ImplementsStatement:
/* [26] */
Const:
TOK_CONST ConstType TOK_IDENTIFIER '=' ConstValue ';'
+ {
+ $$ = NULL;
+ }
;
/* [27] */
@@ -423,12 +433,18 @@ StringifierAttributeOrOperation:
OperationRest
|
';'
+ {
+ $$=NULL;
+ }
;
/* [32] */
Attribute:
Inherit ReadOnly TOK_ATTRIBUTE Type TOK_IDENTIFIER ';'
{
+ struct webidl_node *ident;
+ ident = webidl_node_new(WEBIDL_NODE_TYPE_IDENT, NULL, $5);
+ $$ = webidl_node_new(WEBIDL_NODE_TYPE_ATTRIBUTE, NULL, ident);;
}
;
@@ -449,6 +465,9 @@ ReadOnly:
/* [35] */
Operation:
Qualifiers OperationRest
+ {
+ $$=$2;
+ }
;
/* [36] */
@@ -481,6 +500,9 @@ Special:
/* [39] */
OperationRest:
ReturnType OptionalIdentifier '(' ArgumentList ')' ';'
+ {
+ $$=NULL;
+ }
;
/* [40] */