diff options
author | Vincent Sanders <vince@kyllikki.org> | 2015-08-02 22:59:08 +0100 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2015-08-02 22:59:08 +0100 |
commit | dd684cd17564664ca9c51f0b95d0bbd3cbadddf2 (patch) | |
tree | 1ced9679fb0b8edbb8b5ccdbeda5c889de42f2ec /src | |
parent | 780d7c53a8479b62fe8d90e16a3045187e347cc7 (diff) | |
download | nsgenbind-dd684cd17564664ca9c51f0b95d0bbd3cbadddf2.tar.gz nsgenbind-dd684cd17564664ca9c51f0b95d0bbd3cbadddf2.tar.bz2 |
Fix initialiser parameter list
The initialiser parameter list parsing was missing creation of a
parameter node in the AST and the parameter iterator was looking for a
method node instead of a paramter node.
Diffstat (limited to 'src')
-rw-r--r-- | src/duk-libdom.c | 8 | ||||
-rw-r--r-- | src/nsgenbind-parser.y | 6 |
2 files changed, 10 insertions, 4 deletions
diff --git a/src/duk-libdom.c b/src/duk-libdom.c index 3e2fbe4..2361448 100644 --- a/src/duk-libdom.c +++ b/src/duk-libdom.c @@ -135,7 +135,8 @@ output_set_constructor(FILE* outf, char *class_name, int idx, int argc) fprintf(outf, "\tduk_dup(ctx, %d);\n", idx); fprintf(outf, "\tduk_push_c_function(ctx, %s_%s___constructor, %d);\n", DLPFX, class_name, 1 + argc); - fprintf(outf, "\tduk_put_prop_string(ctx, -2, INIT_MAGIC);\n"); + fprintf(outf, "\tduk_put_prop_string(ctx, -2, \"%sINIT\");\n", + MAGICPFX); fprintf(outf, "\tduk_pop(ctx);\n\n"); return 0; @@ -253,7 +254,8 @@ output_get_method_private(FILE* outf, char *class_name) fprintf(outf, "\t/* Get private data for method */\n"); fprintf(outf, "\t%s_private_t *priv = NULL;\n", class_name); fprintf(outf, "\tduk_push_this(ctx);\n"); - fprintf(outf, "\tduk_get_prop_string(ctx, -1, PRIVATE_MAGIC);\n"); + fprintf(outf, "\tduk_get_prop_string(ctx, -1, \"%sPRIVATE\");\n", + MAGICPFX); fprintf(outf, "\tpriv = duk_get_pointer(ctx, -1);\n"); fprintf(outf, "\tduk_pop_2(ctx);\n"); fprintf(outf, "\tif (priv == NULL) return 0; /* can do? No can do. */\n\n"); @@ -599,7 +601,7 @@ output_interface_init_declaration(FILE* outf, param_node = genbind_node_find_type( genbind_node_getnode(init_node), - param_node, GENBIND_NODE_TYPE_METHOD); + param_node, GENBIND_NODE_TYPE_PARAMETER); } fprintf(outf,")"); diff --git a/src/nsgenbind-parser.y b/src/nsgenbind-parser.y index 456decb..0f30dfc 100644 --- a/src/nsgenbind-parser.y +++ b/src/nsgenbind-parser.y @@ -350,7 +350,11 @@ ParameterList | ParameterList ',' TypeIdent { - $$ = genbind_node_link($3, $1); + $$ = genbind_node_prepend($1, + genbind_new_node( + GENBIND_NODE_TYPE_PARAMETER, + NULL, + $3)); } ; |