diff options
author | Vincent Sanders <vincent.sanders@collabora.co.uk> | 2012-09-19 19:42:01 +0100 |
---|---|---|
committer | Vincent Sanders <vincent.sanders@collabora.co.uk> | 2012-09-19 19:42:01 +0100 |
commit | 96054410e6e8e7d80dab0634d5369148e3062e7d (patch) | |
tree | b56da1d1b4004e360d7a213f8900388015b40c7e /src | |
parent | 46cfe5f47ce0034bb8804d0bd04d573bc6213ab8 (diff) | |
download | nsgenbind-96054410e6e8e7d80dab0634d5369148e3062e7d.tar.gz nsgenbind-96054410e6e8e7d80dab0634d5369148e3062e7d.tar.bz2 |
improve binding debug tree dump output
Diffstat (limited to 'src')
-rw-r--r-- | src/genjsbind-ast.c | 18 | ||||
-rw-r--r-- | src/genjsbind-ast.h | 2 | ||||
-rw-r--r-- | src/genjsbind.c | 2 |
3 files changed, 12 insertions, 10 deletions
diff --git a/src/genjsbind-ast.c b/src/genjsbind-ast.c index 94f306c..32d5553 100644 --- a/src/genjsbind-ast.c +++ b/src/genjsbind-ast.c @@ -181,31 +181,33 @@ static const char *genbind_node_type_to_str(enum genbind_node_type type) return "Type"; case GENBIND_NODE_TYPE_TYPE_NODE: - return "Type: Node"; + return "Node"; case GENBIND_NODE_TYPE_TYPE_EXTRA: - return "Type: Extra"; + return "Extra"; case GENBIND_NODE_TYPE_TYPE_INTERFACE: - return "Type: Interface"; + return "Interface"; default: return "Unknown"; } } -int genbind_ast_dump(struct genbind_node *node) +int genbind_ast_dump(struct genbind_node *node, int indent) { + const char *SPACES=" "; char *txt; - while (node != NULL) { - printf("%s\n", genbind_node_type_to_str(node->type)); + while (node != NULL) { + printf("%.*s%s", indent, SPACES, genbind_node_type_to_str(node->type)); txt = genbind_node_gettext(node); if (txt == NULL) { - genbind_ast_dump(genbind_node_getnode(node)); + printf("\n"); + genbind_ast_dump(genbind_node_getnode(node), indent + 2); } else { - printf(" %s\n", txt); + printf(": \"%.*s\"\n", 75 - indent, txt); } node = node->l; } diff --git a/src/genjsbind-ast.h b/src/genjsbind-ast.h index 66d66c2..9d25aad 100644 --- a/src/genjsbind-ast.h +++ b/src/genjsbind-ast.h @@ -38,7 +38,7 @@ char *genbind_strapp(char *a, char *b); struct genbind_node *genbind_new_node(enum genbind_node_type type, struct genbind_node *l, void *r); struct genbind_node *genbind_node_link(struct genbind_node *tgt, struct genbind_node *src); -int genbind_ast_dump(struct genbind_node *ast); +int genbind_ast_dump(struct genbind_node *ast, int indent); /** Depth first left hand search using user provided comparison * diff --git a/src/genjsbind.c b/src/genjsbind.c index 559602b..bcaf62f 100644 --- a/src/genjsbind.c +++ b/src/genjsbind.c @@ -94,7 +94,7 @@ int main(int argc, char **argv) } if (options->verbose) { - genbind_ast_dump(genbind_root); + genbind_ast_dump(genbind_root, 0); } res = jsapi_libdom_output(options->outfilename, genbind_root); |