summaryrefslogtreecommitdiff
path: root/src/nsgenbind-ast.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nsgenbind-ast.c')
-rw-r--r--src/nsgenbind-ast.c21
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 *