summaryrefslogtreecommitdiff
path: root/src/nsgenbind-parser.y
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2012-10-29 23:45:29 +0000
committerVincent Sanders <vince@kyllikki.org>2012-10-29 23:45:29 +0000
commit26bbe37c6f0b99f23736380ba55f156f22bdaf06 (patch)
tree0f2ac4246d695955f4d85ffcdc32beb61fda7054 /src/nsgenbind-parser.y
parent12f32ab2d843a4a70b5ebe055e7b2155270692e3 (diff)
downloadnsgenbind-26bbe37c6f0b99f23736380ba55f156f22bdaf06.tar.gz
nsgenbind-26bbe37c6f0b99f23736380ba55f156f22bdaf06.tar.bz2
implement basic property getter functionality
Diffstat (limited to 'src/nsgenbind-parser.y')
-rw-r--r--src/nsgenbind-parser.y34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/nsgenbind-parser.y b/src/nsgenbind-parser.y
index ea0a625..1ffab7a 100644
--- a/src/nsgenbind-parser.y
+++ b/src/nsgenbind-parser.y
@@ -45,6 +45,8 @@ char *errtxt;
%token TOK_API
%token TOK_BINDING
%token TOK_OPERATION
+%token TOK_GETTER
+%token TOK_SETTER
%token TOK_INTERFACE
%token TOK_TYPE
%token TOK_PRIVATE
@@ -71,6 +73,8 @@ char *errtxt;
%type <node> Interface
%type <node> Operation
%type <node> Api
+%type <node> Getter
+%type <node> Setter
%%
@@ -113,6 +117,10 @@ Statement
Operation
|
Api
+ |
+ Getter
+ |
+ Setter
;
/* [3] load a web IDL file */
@@ -189,6 +197,32 @@ Api
$2));
}
+Getter
+ :
+ TOK_GETTER TOK_IDENTIFIER CBlock
+ {
+ $$ = genbind_new_node(GENBIND_NODE_TYPE_GETTER,
+ NULL,
+ genbind_new_node(GENBIND_NODE_TYPE_IDENT,
+ genbind_new_node(GENBIND_NODE_TYPE_CBLOCK,
+ NULL,
+ $3),
+ $2));
+ }
+
+Setter
+ :
+ TOK_SETTER TOK_IDENTIFIER CBlock
+ {
+ $$ = genbind_new_node(GENBIND_NODE_TYPE_SETTER,
+ NULL,
+ genbind_new_node(GENBIND_NODE_TYPE_IDENT,
+ genbind_new_node(GENBIND_NODE_TYPE_CBLOCK,
+ NULL,
+ $3),
+ $2));
+ }
+
Binding
:
TOK_BINDING TOK_IDENTIFIER '{' BindingArgs '}'