summaryrefslogtreecommitdiff
path: root/src/webidl-ast.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2012-10-31 01:20:20 +0000
committerVincent Sanders <vince@kyllikki.org>2012-10-31 01:20:20 +0000
commit65e49e23019a97d51702077c82613c6c26e84033 (patch)
treef21ba90ba9dc08826ef687f9bd148e6345fd673a /src/webidl-ast.c
parent26bbe37c6f0b99f23736380ba55f156f22bdaf06 (diff)
downloadnsgenbind-65e49e23019a97d51702077c82613c6c26e84033.tar.gz
nsgenbind-65e49e23019a97d51702077c82613c6c26e84033.tar.bz2
implement the "implements" webidl directive
Diffstat (limited to 'src/webidl-ast.c')
-rw-r--r--src/webidl-ast.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/src/webidl-ast.c b/src/webidl-ast.c
index fef5f35..a1f2276 100644
--- a/src/webidl-ast.c
+++ b/src/webidl-ast.c
@@ -193,26 +193,19 @@ webidl_node_find_type_ident(struct webidl_node *root_node,
struct webidl_node *node;
struct webidl_node *ident_node;
- node = webidl_node_find(root_node,
- NULL,
- webidl_cmp_node_type,
- (void *)type);
+ node = webidl_node_find_type(root_node, NULL, type);
while (node != NULL) {
- ident_node = webidl_node_find(webidl_node_getnode(node),
+ ident_node = webidl_node_find_type(webidl_node_getnode(node),
NULL,
- webidl_cmp_node_type,
- (void *)WEBIDL_NODE_TYPE_IDENT);
+ WEBIDL_NODE_TYPE_IDENT);
if (ident_node != NULL) {
if (strcmp(ident_node->r.text, ident) == 0)
break;
}
- node = webidl_node_find(root_node,
- node,
- webidl_cmp_node_type,
- (void *)type);
+ node = webidl_node_find_type(root_node, node, type);
}
return node;
@@ -224,7 +217,7 @@ char *webidl_node_gettext(struct webidl_node *node)
switch(node->type) {
case WEBIDL_NODE_TYPE_IDENT:
case WEBIDL_NODE_TYPE_INTERFACE_INHERITANCE:
-
+ case WEBIDL_NODE_TYPE_INTERFACE_IMPLEMENTS:
return node->r.text;
default:
@@ -289,6 +282,9 @@ static const char *webidl_node_type_to_str(enum webidl_node_type type)
case WEBIDL_NODE_TYPE_INTERFACE_INHERITANCE:
return "Inherit";
+ case WEBIDL_NODE_TYPE_INTERFACE_IMPLEMENTS:
+ return "Implements";
+
case WEBIDL_NODE_TYPE_INTERFACE:
return "Interface";