summaryrefslogtreecommitdiff
path: root/src/webidl-ast.h
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2015-08-02 18:30:18 +0100
committerVincent Sanders <vince@kyllikki.org>2015-08-02 18:30:18 +0100
commitcf89528fc6668e6d07b6e99db0069c9fe1f6e05d (patch)
treeba537f31127428c54b70d8cc9a190b3702f0f8b3 /src/webidl-ast.h
parent6fb336e6587d550bf4a8355e65923efb0bf14cab (diff)
downloadnsgenbind-cf89528fc6668e6d07b6e99db0069c9fe1f6e05d.tar.gz
nsgenbind-cf89528fc6668e6d07b6e99db0069c9fe1f6e05d.tar.bz2
Update the webidl parser to cope with specials and overloaded methods
Diffstat (limited to 'src/webidl-ast.h')
-rw-r--r--src/webidl-ast.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/webidl-ast.h b/src/webidl-ast.h
index 38968f3..c17a54b 100644
--- a/src/webidl-ast.h
+++ b/src/webidl-ast.h
@@ -27,7 +27,8 @@ enum webidl_node_type {
WEBIDL_NODE_TYPE_OPERATION,
WEBIDL_NODE_TYPE_CONST,
- WEBIDL_NODE_TYPE_OPTIONAL_ARGUMENT,
+ WEBIDL_NODE_TYPE_SPECIAL,
+ WEBIDL_NODE_TYPE_OPTIONAL_ARGUMENT,
WEBIDL_NODE_TYPE_ARGUMENT,
WEBIDL_NODE_TYPE_ELLIPSIS,
WEBIDL_NODE_TYPE_TYPE,
@@ -68,6 +69,15 @@ enum webidl_type_modifier {
WEBIDL_TYPE_MODIFIER_READONLY,
};
+/* the type of special node */
+enum webidl_type_special {
+ WEBIDL_TYPE_SPECIAL_GETTER,
+ WEBIDL_TYPE_SPECIAL_SETTER,
+ WEBIDL_TYPE_SPECIAL_CREATOR,
+ WEBIDL_TYPE_SPECIAL_DELETER,
+ WEBIDL_TYPE_SPECIAL_LEGACYCALLER,
+};
+
struct webidl_node;
/** callback for search and iteration routines */
@@ -114,7 +124,7 @@ webidl_node_find(struct webidl_node *node,
struct webidl_node *
webidl_node_find_type(struct webidl_node *node,
- struct webidl_node *prev,
+ struct webidl_node *prev,
enum webidl_node_type type);
struct webidl_node *