diff options
author | Vincent Sanders <vincent.sanders@collabora.co.uk> | 2012-10-04 19:48:32 +0100 |
---|---|---|
committer | Vincent Sanders <vincent.sanders@collabora.co.uk> | 2012-10-04 19:48:32 +0100 |
commit | fbd184fe421591851e1224518a3c9430dd37dce8 (patch) | |
tree | 583578eb6d9f6aec338605ca4afd5a691051e4fc /src/genjsbind-parser.y | |
parent | 56c66282650a7a5ac83e549d11839d26deaa1528 (diff) | |
download | nsgenbind-fbd184fe421591851e1224518a3c9430dd37dce8.tar.gz nsgenbind-fbd184fe421591851e1224518a3c9430dd37dce8.tar.bz2 |
allow teh binding to specify contents for operations
Diffstat (limited to 'src/genjsbind-parser.y')
-rw-r--r-- | src/genjsbind-parser.y | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/genjsbind-parser.y b/src/genjsbind-parser.y index 3177c87..0950dc9 100644 --- a/src/genjsbind-parser.y +++ b/src/genjsbind-parser.y @@ -43,6 +43,7 @@ char *errtxt; %token TOK_PREAMBLE %token TOK_BINDING +%token TOK_OPERATION %token TOK_INTERFACE %token TOK_TYPE %token TOK_PRIVATE @@ -65,6 +66,7 @@ char *errtxt; %type <node> Type %type <node> Private %type <node> Interface +%type <node> Operation %% @@ -103,6 +105,8 @@ Statement Preamble | Binding + | + Operation ; /* [3] load a web IDL file */ @@ -137,7 +141,7 @@ Strings Preamble : - TOK_PREAMBLE CBlock ';' + TOK_PREAMBLE CBlock { $$ = genbind_new_node(GENBIND_NODE_TYPE_PREAMBLE, NULL, $2); } @@ -153,9 +157,22 @@ CBlock } ; +Operation + : + TOK_OPERATION TOK_IDENTIFIER CBlock + { + $$ = genbind_new_node(GENBIND_NODE_TYPE_OPERATION, + NULL, + genbind_new_node(GENBIND_NODE_TYPE_IDENT, + genbind_new_node(GENBIND_NODE_TYPE_CBLOCK, + NULL, + $3), + $2)); + } + Binding : - TOK_BINDING TOK_IDENTIFIER '{' BindingArgs '}' ';' + TOK_BINDING TOK_IDENTIFIER '{' BindingArgs '}' { $$ = genbind_new_node(GENBIND_NODE_TYPE_BINDING, NULL, |