diff options
Diffstat (limited to 'src/nsgenbind-ast.c')
-rw-r--r-- | src/nsgenbind-ast.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/nsgenbind-ast.c b/src/nsgenbind-ast.c index fc1e196..2f630b7 100644 --- a/src/nsgenbind-ast.c +++ b/src/nsgenbind-ast.c @@ -68,6 +68,8 @@ genbind_new_node(enum genbind_node_type type, struct genbind_node *l, void *r) return nn; } + +/* exported interface defined in nsgenbind-ast.h */ int genbind_node_foreach_type(struct genbind_node *node, enum genbind_node_type type, @@ -92,6 +94,25 @@ genbind_node_foreach_type(struct genbind_node *node, return 0; } +static int genbind_enumerate_node(struct genbind_node *node, void *ctx) +{ + node = node; + (*((int *)ctx))++; + return 0; +} + +/* exported interface defined in nsgenbind-ast.h */ +int +genbind_node_enumerate_type(struct genbind_node *node, + enum genbind_node_type type) +{ + int count = 0; + genbind_node_foreach_type(node, + type, + genbind_enumerate_node, + &count); + return count; +} /* exported interface defined in nsgenbind-ast.h */ struct genbind_node * |