diff options
author | Vincent Sanders <vincent.sanders@collabora.co.uk> | 2012-11-20 13:44:27 +0000 |
---|---|---|
committer | Vincent Sanders <vincent.sanders@collabora.co.uk> | 2012-11-20 13:44:27 +0000 |
commit | e510204a381a7253d2cf69deeed01b043a4b80ad (patch) | |
tree | 7d956d8d7fe867511305a8c1d4d92c5862d20fb4 /src | |
parent | a044206384cb02aaaaab65f813878ddcd44b1dd1 (diff) | |
download | nsgenbind-e510204a381a7253d2cf69deeed01b043a4b80ad.tar.gz nsgenbind-e510204a381a7253d2cf69deeed01b043a4b80ad.tar.bz2 |
add unshared option
Diffstat (limited to 'src')
-rw-r--r-- | src/jsapi-libdom.c | 2 | ||||
-rw-r--r-- | src/nsgenbind-ast.c | 8 | ||||
-rw-r--r-- | src/nsgenbind-ast.h | 6 | ||||
-rw-r--r-- | src/nsgenbind-lexer.l | 2 | ||||
-rw-r--r-- | src/nsgenbind-parser.y | 14 |
5 files changed, 26 insertions, 6 deletions
diff --git a/src/jsapi-libdom.c b/src/jsapi-libdom.c index df36be8..fb8080f 100644 --- a/src/jsapi-libdom.c +++ b/src/jsapi-libdom.c @@ -536,7 +536,7 @@ output_private_declaration(struct binding *binding) type_node = genbind_node_find(genbind_node_getnode(binding_node), NULL, genbind_cmp_node_type, - (void *)GENBIND_NODE_TYPE_BINDING_TYPE); + (void *)GENBIND_NODE_TYPE_TYPE); if (type_node == NULL) { return -1; diff --git a/src/nsgenbind-ast.c b/src/nsgenbind-ast.c index 52febaa..09ce8ce 100644 --- a/src/nsgenbind-ast.c +++ b/src/nsgenbind-ast.c @@ -173,7 +173,7 @@ char *genbind_node_gettext(struct genbind_node *node) case GENBIND_NODE_TYPE_STRING: case GENBIND_NODE_TYPE_PREAMBLE: case GENBIND_NODE_TYPE_IDENT: - case GENBIND_NODE_TYPE_BINDING_TYPE: + case GENBIND_NODE_TYPE_TYPE: case GENBIND_NODE_TYPE_BINDING_INTERFACE: case GENBIND_NODE_TYPE_CBLOCK: return node->r.text; @@ -190,6 +190,7 @@ struct genbind_node *genbind_node_getnode(struct genbind_node *node) case GENBIND_NODE_TYPE_BINDING: case GENBIND_NODE_TYPE_BINDING_PRIVATE: case GENBIND_NODE_TYPE_BINDING_INTERNAL: + case GENBIND_NODE_TYPE_BINDING_UNSHARED: case GENBIND_NODE_TYPE_OPERATION: case GENBIND_NODE_TYPE_API: case GENBIND_NODE_TYPE_GETTER: @@ -225,7 +226,7 @@ static const char *genbind_node_type_to_str(enum genbind_node_type type) case GENBIND_NODE_TYPE_BINDING: return "Binding"; - case GENBIND_NODE_TYPE_BINDING_TYPE: + case GENBIND_NODE_TYPE_TYPE: return "Type"; case GENBIND_NODE_TYPE_BINDING_PRIVATE: @@ -237,6 +238,9 @@ static const char *genbind_node_type_to_str(enum genbind_node_type type) case GENBIND_NODE_TYPE_BINDING_INTERFACE: return "Interface"; + case GENBIND_NODE_TYPE_BINDING_UNSHARED: + return "Unshared"; + case GENBIND_NODE_TYPE_OPERATION: return "Operation"; diff --git a/src/nsgenbind-ast.h b/src/nsgenbind-ast.h index 54a49d2..5ae21b4 100644 --- a/src/nsgenbind-ast.h +++ b/src/nsgenbind-ast.h @@ -11,17 +11,19 @@ enum genbind_node_type { GENBIND_NODE_TYPE_ROOT = 0, - GENBIND_NODE_TYPE_IDENT, + GENBIND_NODE_TYPE_IDENT, /* generic identifier string */ + GENBIND_NODE_TYPE_TYPE, /* generic type string */ + GENBIND_NODE_TYPE_CBLOCK, GENBIND_NODE_TYPE_WEBIDLFILE, GENBIND_NODE_TYPE_HDRCOMMENT, GENBIND_NODE_TYPE_STRING, GENBIND_NODE_TYPE_PREAMBLE, GENBIND_NODE_TYPE_BINDING, - GENBIND_NODE_TYPE_BINDING_TYPE, GENBIND_NODE_TYPE_BINDING_PRIVATE, GENBIND_NODE_TYPE_BINDING_INTERNAL, GENBIND_NODE_TYPE_BINDING_INTERFACE, + GENBIND_NODE_TYPE_BINDING_UNSHARED, GENBIND_NODE_TYPE_API, GENBIND_NODE_TYPE_OPERATION, GENBIND_NODE_TYPE_GETTER, diff --git a/src/nsgenbind-lexer.l b/src/nsgenbind-lexer.l index 61aee7e..aea68ee 100644 --- a/src/nsgenbind-lexer.l +++ b/src/nsgenbind-lexer.l @@ -96,6 +96,8 @@ private return TOK_PRIVATE; internal return TOK_INTERNAL; +unshared return TOK_UNSHARED; + operation return TOK_OPERATION; api return TOK_API; diff --git a/src/nsgenbind-parser.y b/src/nsgenbind-parser.y index 1ffab7a..e64d255 100644 --- a/src/nsgenbind-parser.y +++ b/src/nsgenbind-parser.y @@ -51,6 +51,7 @@ char *errtxt; %token TOK_TYPE %token TOK_PRIVATE %token TOK_INTERNAL +%token TOK_UNSHARED %token <text> TOK_IDENTIFIER %token <text> TOK_STRING_LITERAL @@ -71,6 +72,7 @@ char *errtxt; %type <node> Private %type <node> Internal %type <node> Interface +%type <node> Unshared %type <node> Operation %type <node> Api %type <node> Getter @@ -252,13 +254,15 @@ BindingArg Internal | Interface + | + Unshared ; Type : TOK_TYPE TOK_IDENTIFIER ';' { - $$ = genbind_new_node(GENBIND_NODE_TYPE_BINDING_TYPE, NULL, $2); + $$ = genbind_new_node(GENBIND_NODE_TYPE_TYPE, NULL, $2); } ; @@ -290,4 +294,12 @@ Interface } ; +Unshared + : + TOK_UNSHARED TOK_TYPE TOK_IDENTIFIER ';' + { + $$ = genbind_new_node(GENBIND_NODE_TYPE_BINDING_UNSHARED, NULL, + genbind_new_node(GENBIND_NODE_TYPE_TYPE, NULL, $3)); + } + ; %% |