diff options
author | Vincent Sanders <vince@kyllikki.org> | 2015-09-26 23:20:38 +0100 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2015-09-26 23:20:38 +0100 |
commit | 017eb2ef4da167466c05ad83eb0714129a2e46ff (patch) | |
tree | e64da1b284e709c5904219c28ed3be6f35d77fa8 /src/duk-libdom-common.c | |
parent | 53acb5a29b8eb4fe89dd2e8bc3b808d5e7183b81 (diff) | |
download | nsgenbind-017eb2ef4da167466c05ad83eb0714129a2e46ff.tar.gz nsgenbind-017eb2ef4da167466c05ad83eb0714129a2e46ff.tar.bz2 |
Simplify genbind AST handling of preface, prologue, epilogue and postface
Diffstat (limited to 'src/duk-libdom-common.c')
-rw-r--r-- | src/duk-libdom-common.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/duk-libdom-common.c b/src/duk-libdom-common.c index a1298e9..fc62863 100644 --- a/src/duk-libdom-common.c +++ b/src/duk-libdom-common.c @@ -115,3 +115,35 @@ int output_ctype(FILE *outf, struct genbind_node *node, bool identifier) return 0; } + +/* exported interface documented in duk-libdom.h */ +int output_method_cdata(FILE* outf, + struct genbind_node *node, + enum genbind_method_type sel_method_type) +{ + struct genbind_node *method; + + method = genbind_node_find_type(genbind_node_getnode(node), + NULL, + GENBIND_NODE_TYPE_METHOD); + + while (method != NULL) { + enum genbind_method_type *method_type; + + method_type = (enum genbind_method_type *)genbind_node_getint( + genbind_node_find_type( + genbind_node_getnode(method), + NULL, + GENBIND_NODE_TYPE_METHOD_TYPE)); + if ((method_type != NULL) && + (*method_type == sel_method_type)) { + output_cdata(outf, method, GENBIND_NODE_TYPE_CDATA); + } + + method = genbind_node_find_type(genbind_node_getnode(node), + method, + GENBIND_NODE_TYPE_METHOD); + } + + return 0; +} |