summaryrefslogtreecommitdiff
path: root/src/duk-libdom-generated.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/duk-libdom-generated.c')
-rw-r--r--src/duk-libdom-generated.c100
1 files changed, 54 insertions, 46 deletions
diff --git a/src/duk-libdom-generated.c b/src/duk-libdom-generated.c
index 008f7dc..109b237 100644
--- a/src/duk-libdom-generated.c
+++ b/src/duk-libdom-generated.c
@@ -26,12 +26,13 @@
#include "nsgenbind-ast.h"
#include "webidl-ast.h"
#include "ir.h"
+#include "output.h"
#include "duk-libdom.h"
static int
-output_generated_attribute_user_getter(FILE* outf,
- struct ir_entry *interfacee,
- struct ir_attribute_entry *atributee)
+output_generated_attribute_user_getter(struct opctx *outc,
+ struct ir_entry *interfacee,
+ struct ir_attribute_entry *atributee)
{
UNUSED(interfacee);
@@ -45,7 +46,8 @@ output_generated_attribute_user_getter(FILE* outf,
(atributee->name[1] != 'n')) {
return -1; /* not onxxx */
}
- fprintf(outf,
+
+ outputf(outc,
"\tdom_event_target *et = (dom_event_target *)(((node_private_t *)priv)->node);\n"
"\tdom_string *name;\n"
"\tdom_exception exc;\n\n"
@@ -71,7 +73,7 @@ output_generated_attribute_user_getter(FILE* outf,
/* exported function documented in duk-libdom.h */
int
-output_generated_attribute_getter(FILE* outf,
+output_generated_attribute_getter(struct opctx *outc,
struct ir_entry *interfacee,
struct ir_attribute_entry *atributee)
{
@@ -84,16 +86,16 @@ output_generated_attribute_getter(FILE* outf,
switch (atributee->typev[0].base) {
case WEBIDL_TYPE_STRING:
- fprintf(outf,
+ outputf(outc,
"\tdom_exception exc;\n"
"\tdom_string *str;\n"
"\n");
- fprintf(outf,
+ outputf(outc,
"\texc = dom_%s_get_%s((struct dom_%s *)((node_private_t*)priv)->node, &str);\n",
interfacee->class_name,
atributee->property_name,
interfacee->class_name);
- fprintf(outf,
+ outputf(outc,
"\tif (exc != DOM_NO_ERR) {\n"
"\t\treturn 0;\n"
"\t}\n"
@@ -105,11 +107,13 @@ output_generated_attribute_getter(FILE* outf,
"\t\tdom_string_unref(str);\n"
"\t} else {\n");
if (atributee->typev[0].nullable) {
- fprintf(outf, "\t\tduk_push_null(ctx);\n");
+ outputf(outc,
+ "\t\tduk_push_null(ctx);\n");
} else {
- fprintf(outf, "\t\tduk_push_lstring(ctx, NULL, 0);\n");
+ outputf(outc,
+ "\t\tduk_push_lstring(ctx, NULL, 0);\n");
}
- fprintf(outf,
+ outputf(outc,
"\t}\n"
"\n"
"\treturn 1;\n");
@@ -117,19 +121,21 @@ output_generated_attribute_getter(FILE* outf,
case WEBIDL_TYPE_LONG:
if (atributee->typev[0].modifier == WEBIDL_TYPE_MODIFIER_UNSIGNED) {
- fprintf(outf, "\tdom_ulong l;\n");
+ outputf(outc,
+ "\tdom_ulong l;\n");
} else {
- fprintf(outf, "\tdom_long l;\n");
+ outputf(outc,
+ "\tdom_long l;\n");
}
- fprintf(outf,
+ outputf(outc,
"\tdom_exception exc;\n"
"\n");
- fprintf(outf,
+ outputf(outc,
"\texc = dom_%s_get_%s((struct dom_%s *)((node_private_t*)priv)->node, &l);\n",
interfacee->class_name,
atributee->property_name,
interfacee->class_name);
- fprintf(outf,
+ outputf(outc,
"\tif (exc != DOM_NO_ERR) {\n"
"\t\treturn 0;\n"
"\t}\n"
@@ -141,19 +147,21 @@ output_generated_attribute_getter(FILE* outf,
case WEBIDL_TYPE_SHORT:
if (atributee->typev[0].modifier == WEBIDL_TYPE_MODIFIER_UNSIGNED) {
- fprintf(outf, "\tdom_ushort s;\n");
+ outputf(outc,
+ "\tdom_ushort s;\n");
} else {
- fprintf(outf, "\tdom_short s;\n");
+ outputf(outc,
+ "\tdom_short s;\n");
}
- fprintf(outf,
+ outputf(outc,
"\tdom_exception exc;\n"
"\n");
- fprintf(outf,
+ outputf(outc,
"\texc = dom_%s_get_%s((struct dom_%s *)((node_private_t*)priv)->node, &s);\n",
interfacee->class_name,
atributee->property_name,
interfacee->class_name);
- fprintf(outf,
+ outputf(outc,
"\tif (exc != DOM_NO_ERR) {\n"
"\t\treturn 0;\n"
"\t}\n"
@@ -164,16 +172,16 @@ output_generated_attribute_getter(FILE* outf,
break;
case WEBIDL_TYPE_BOOL:
- fprintf(outf,
+ outputf(outc,
"\tdom_exception exc;\n"
"\tbool b;\n"
"\n");
- fprintf(outf,
+ outputf(outc,
"\texc = dom_%s_get_%s((struct dom_%s *)((node_private_t*)priv)->node, &b);\n",
interfacee->class_name,
atributee->property_name,
interfacee->class_name);
- fprintf(outf,
+ outputf(outc,
"\tif (exc != DOM_NO_ERR) {\n"
"\t\treturn 0;\n"
"\t}\n"
@@ -184,7 +192,7 @@ output_generated_attribute_getter(FILE* outf,
break;
case WEBIDL_TYPE_USER:
- res = output_generated_attribute_user_getter(outf,
+ res = output_generated_attribute_user_getter(outc,
interfacee,
atributee);
break;
@@ -205,7 +213,7 @@ output_generated_attribute_getter(FILE* outf,
}
static int
-output_generated_attribute_user_setter(FILE* outf,
+output_generated_attribute_user_setter(struct opctx *outc,
struct ir_entry *interfacee,
struct ir_attribute_entry *atributee)
{
@@ -222,7 +230,7 @@ output_generated_attribute_user_setter(FILE* outf,
return -1; /* not onxxx */
}
- fprintf(outf,
+ outputf(outc,
"\t/* handlerfn */\n"
"\tduk_push_this(ctx);\n"
"\t/* handlerfn this */\n"
@@ -251,7 +259,7 @@ output_generated_attribute_user_setter(FILE* outf,
/* exported function documented in duk-libdom.h */
int
-output_generated_attribute_setter(FILE* outf,
+output_generated_attribute_setter(struct opctx *outc,
struct ir_entry *interfacee,
struct ir_attribute_entry *atributee)
{
@@ -264,14 +272,14 @@ output_generated_attribute_setter(FILE* outf,
switch (atributee->typev[0].base) {
case WEBIDL_TYPE_STRING:
- fprintf(outf,
+ outputf(outc,
"\tdom_exception exc;\n"
"\tdom_string *str;\n"
"\tduk_size_t slen;\n"
"\tconst char *s;\n");
if ((atributee->treatnullas != NULL) &&
(strcmp(atributee->treatnullas, "EmptyString") == 0)) {
- fprintf(outf,
+ outputf(outc,
"\tif (duk_is_null(ctx, 0)) {\n"
"\t\ts = \"\";\n"
"\t\tslen = 0;\n"
@@ -279,22 +287,22 @@ output_generated_attribute_setter(FILE* outf,
"\t\ts = duk_safe_to_lstring(ctx, 0, &slen);\n"
"\t}\n");
} else {
- fprintf(outf,
+ outputf(outc,
"\ts = duk_safe_to_lstring(ctx, 0, &slen);\n");
}
- fprintf(outf,
+ outputf(outc,
"\n"
"\texc = dom_string_create((const uint8_t *)s, slen, &str);\n"
"\tif (exc != DOM_NO_ERR) {\n"
"\t\treturn 0;\n"
"\t}\n"
"\n");
- fprintf(outf,
+ outputf(outc,
"\texc = dom_%s_set_%s((struct dom_%s *)((node_private_t*)priv)->node, str);\n",
interfacee->class_name,
atributee->property_name,
interfacee->class_name);
- fprintf(outf,
+ outputf(outc,
"\tdom_string_unref(str);\n"
"\tif (exc != DOM_NO_ERR) {\n"
"\t\treturn 0;\n"
@@ -305,26 +313,26 @@ output_generated_attribute_setter(FILE* outf,
case WEBIDL_TYPE_LONG:
if (atributee->typev[0].modifier == WEBIDL_TYPE_MODIFIER_UNSIGNED) {
- fprintf(outf,
+ outputf(outc,
"\tdom_exception exc;\n"
"\tdom_ulong l;\n"
"\n"
"\tl = duk_get_uint(ctx, 0);\n"
"\n");
} else {
- fprintf(outf,
+ outputf(outc,
"\tdom_exception exc;\n"
"\tdom_long l;\n"
"\n"
"\tl = duk_get_int(ctx, 0);\n"
"\n");
}
- fprintf(outf,
+ outputf(outc,
"\texc = dom_%s_set_%s((struct dom_%s *)((node_private_t*)priv)->node, l);\n",
interfacee->class_name,
atributee->property_name,
interfacee->class_name);
- fprintf(outf,
+ outputf(outc,
"\tif (exc != DOM_NO_ERR) {\n"
"\t\treturn 0;\n"
"\t}\n"
@@ -334,26 +342,26 @@ output_generated_attribute_setter(FILE* outf,
case WEBIDL_TYPE_SHORT:
if (atributee->typev[0].modifier == WEBIDL_TYPE_MODIFIER_UNSIGNED) {
- fprintf(outf,
+ outputf(outc,
"\tdom_exception exc;\n"
"\tdom_ushort s;\n"
"\n"
"\ts = duk_get_uint(ctx, 0);\n"
"\n");
} else {
- fprintf(outf,
+ outputf(outc,
"\tdom_exception exc;\n"
"\tdom_short s;\n"
"\n"
"\ts = duk_get_int(ctx, 0);\n"
"\n");
}
- fprintf(outf,
+ outputf(outc,
"\texc = dom_%s_set_%s((struct dom_%s *)((node_private_t*)priv)->node, s);\n",
interfacee->class_name,
atributee->property_name,
interfacee->class_name);
- fprintf(outf,
+ outputf(outc,
"\tif (exc != DOM_NO_ERR) {\n"
"\t\treturn 0;\n"
"\t}\n"
@@ -362,18 +370,18 @@ output_generated_attribute_setter(FILE* outf,
break;
case WEBIDL_TYPE_BOOL:
- fprintf(outf,
+ outputf(outc,
"\tdom_exception exc;\n"
"\tbool b;\n"
"\n"
"\tb = duk_get_boolean(ctx, 0);\n"
"\n");
- fprintf(outf,
+ outputf(outc,
"\texc = dom_%s_set_%s((struct dom_%s *)((node_private_t*)priv)->node, b);\n",
interfacee->class_name,
atributee->property_name,
interfacee->class_name);
- fprintf(outf,
+ outputf(outc,
"\tif (exc != DOM_NO_ERR) {\n"
"\t\treturn 0;\n"
"\t}\n"
@@ -382,7 +390,7 @@ output_generated_attribute_setter(FILE* outf,
break;
case WEBIDL_TYPE_USER:
- res = output_generated_attribute_user_setter(outf,
+ res = output_generated_attribute_user_setter(outc,
interfacee,
atributee);
break;