diff options
author | Vincent Sanders <vincent.sanders@collabora.co.uk> | 2012-09-13 17:33:21 +0100 |
---|---|---|
committer | Vincent Sanders <vincent.sanders@collabora.co.uk> | 2012-09-13 17:33:21 +0100 |
commit | deadfe6cfb87ee537ed38e0ce87601f492078aab (patch) | |
tree | 9a3178955ae42f3ee7d7223fbb71d505b16fa6f7 /src/webidl-ast.h | |
parent | eeaa03bf10aa41656b798ef8df7f42140c66e766 (diff) | |
download | nsgenbind-deadfe6cfb87ee537ed38e0ce87601f492078aab.tar.gz nsgenbind-deadfe6cfb87ee537ed38e0ce87601f492078aab.tar.bz2 |
add debug dump to webidl
Diffstat (limited to 'src/webidl-ast.h')
-rw-r--r-- | src/webidl-ast.h | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/src/webidl-ast.h b/src/webidl-ast.h index 2798fa6..9a516af 100644 --- a/src/webidl-ast.h +++ b/src/webidl-ast.h @@ -18,7 +18,7 @@ enum webidl_node_type { }; struct webidl_node { - int type; + enum webidl_node_type type; struct webidl_node *l; union { struct webidl_node *node; @@ -26,12 +26,29 @@ struct webidl_node { } r; }; +/** callback for search and iteration routines */ +typedef int (webidl_callback_t)(struct webidl_node *node, void *ctx); -/** parse web idl file */ -int webidl_parsefile(char *filename, struct webidl_node **webidl_ast); -struct webidl_node *webidl_node_new(int type, struct webidl_node *l, void *r); +struct webidl_node *webidl_node_new(enum webidl_node_type, struct webidl_node *l, void *r); struct webidl_node *webidl_node_link(struct webidl_node *tgt, struct webidl_node *src); +/* node contents acessors */ +char *webidl_node_gettext(struct webidl_node *node); +struct webidl_node *webidl_node_getnode(struct webidl_node *node); + + +/* node searches */ +int webidl_node_for_each_type(struct webidl_node *node, + enum webidl_node_type type, + webidl_callback_t *cb, + void *ctx); + +/* debug dump */ +int webidl_ast_dump(struct webidl_node *node); + +/** parse web idl file */ +int webidl_parsefile(char *filename, struct webidl_node **webidl_ast); + #endif |