summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVincent Sanders <vincent.sanders@collabora.co.uk>2012-09-19 19:42:01 +0100
committerVincent Sanders <vincent.sanders@collabora.co.uk>2012-09-19 19:42:01 +0100
commit96054410e6e8e7d80dab0634d5369148e3062e7d (patch)
treeb56da1d1b4004e360d7a213f8900388015b40c7e /src
parent46cfe5f47ce0034bb8804d0bd04d573bc6213ab8 (diff)
downloadnsgenbind-96054410e6e8e7d80dab0634d5369148e3062e7d.tar.gz
nsgenbind-96054410e6e8e7d80dab0634d5369148e3062e7d.tar.bz2
improve binding debug tree dump output
Diffstat (limited to 'src')
-rw-r--r--src/genjsbind-ast.c18
-rw-r--r--src/genjsbind-ast.h2
-rw-r--r--src/genjsbind.c2
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);