summaryrefslogtreecommitdiff
path: root/src/webidl-ast.c
diff options
context:
space:
mode:
authorVincent Sanders <vincent.sanders@collabora.co.uk>2012-10-11 18:52:30 +0100
committerVincent Sanders <vincent.sanders@collabora.co.uk>2012-10-11 18:52:30 +0100
commitb5c56b56cebe3f46c05823300783d1c88c02f12e (patch)
tree1d07ed50e320934c46415c092b008051b0131b4a /src/webidl-ast.c
parentd3b66100f5fc6459d9d466e20bf0b2054d617b85 (diff)
downloadnsgenbind-b5c56b56cebe3f46c05823300783d1c88c02f12e.tar.gz
nsgenbind-b5c56b56cebe3f46c05823300783d1c88c02f12e.tar.bz2
construct input variables
Diffstat (limited to 'src/webidl-ast.c')
-rw-r--r--src/webidl-ast.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/webidl-ast.c b/src/webidl-ast.c
index 084c199..75dbdeb 100644
--- a/src/webidl-ast.c
+++ b/src/webidl-ast.c
@@ -137,6 +137,14 @@ webidl_node_for_each_type(struct webidl_node *node,
}
/* exported interface defined in genjsbind-ast.h */
+int webidl_cmp_node_type(struct webidl_node *node, void *ctx)
+{
+ if (node->type == (enum webidl_node_type)ctx)
+ return 1;
+ return 0;
+}
+
+/* exported interface defined in genjsbind-ast.h */
struct webidl_node *
webidl_node_find(struct webidl_node *node,
struct webidl_node *prev,
@@ -163,13 +171,20 @@ webidl_node_find(struct webidl_node *node,
return NULL;
}
-int webidl_cmp_node_type(struct webidl_node *node, void *ctx)
+
+/* exported interface defined in genjsbind-ast.h */
+struct webidl_node *
+webidl_node_find_type(struct webidl_node *node,
+ struct webidl_node *prev,
+ enum webidl_node_type type)
{
- if (node->type == (enum webidl_node_type)ctx)
- return 1;
- return 0;
+ return webidl_node_find(node,
+ prev,
+ webidl_cmp_node_type,
+ (void *)type);
}
+
struct webidl_node *
webidl_node_find_type_ident(struct webidl_node *root_node,
enum webidl_node_type type,