diff options
author | Vincent Sanders <vince@kyllikki.org> | 2012-09-07 00:13:16 +0100 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2012-09-07 00:13:16 +0100 |
commit | f60d94623e676bb80670b465b1bed7ad4559581d (patch) | |
tree | 37c9ba069bf3f9e28d2903abfa9cd475209dde12 | |
parent | 3db9b84cd1a23f4718260a6b2487dcedbb7fc526 (diff) | |
download | nsgenbind-f60d94623e676bb80670b465b1bed7ad4559581d.tar.gz nsgenbind-f60d94623e676bb80670b465b1bed7ad4559581d.tar.bz2 |
complete binding section parse
-rw-r--r-- | src/genjsbind-lexer.l | 2 | ||||
-rw-r--r-- | src/genjsbind-parser.y | 36 |
2 files changed, 33 insertions, 5 deletions
diff --git a/src/genjsbind-lexer.l b/src/genjsbind-lexer.l index af49db9..8bfa391 100644 --- a/src/genjsbind-lexer.l +++ b/src/genjsbind-lexer.l @@ -63,7 +63,7 @@ type return TOK_TYPE; extra return TOK_EXTRA; -%token <text> TOK_IDENTIFIER +node return TOK_NODE; {cblockopen} BEGIN(cblock); diff --git a/src/genjsbind-parser.y b/src/genjsbind-parser.y index ce8a1fd..c3122ea 100644 --- a/src/genjsbind-parser.y +++ b/src/genjsbind-parser.y @@ -43,6 +43,7 @@ int genjsbind_wrap() %token TOK_INTERFACE %token TOK_TYPE %token TOK_EXTRA +%token TOK_NODE %token <text> TOK_IDENTIFIER @@ -101,7 +102,7 @@ HdrStrings Preamble : - TOK_PREAMBLE CBlock + TOK_PREAMBLE CBlock ';' ; CBlock @@ -123,12 +124,39 @@ Binding ; BindingArgs -: -; + : + BindingArg + | + BindingArgs BindingArg + ; + +BindingArg + : + Type + | + Extra + | + Interface + ; + +Type + : + TOK_TYPE TOK_IDENTIFIER '{' TypeArgs '}' ';' + ; + +TypeArgs + : + TOK_NODE TOK_IDENTIFIER ';' + ; + +Extra + : + TOK_EXTRA TOK_STRING_LITERAL ';' + ; Interface : - TOK_INTERFACE TOK_STRING_LITERAL ';' + TOK_INTERFACE TOK_IDENTIFIER ';' { genjsbind_interface($2); } |