diff options
author | Vincent Sanders <vincent.sanders@collabora.co.uk> | 2012-09-24 20:17:03 +0100 |
---|---|---|
committer | Vincent Sanders <vincent.sanders@collabora.co.uk> | 2012-09-24 20:17:03 +0100 |
commit | b5c59d1138c704afd09c4716faabe79f04a80616 (patch) | |
tree | 6a850ca46c373636dd8d8911665ac6cad94f7bef /src/webidl-ast.h | |
parent | 20f9ab6b2c89a9a9edf00f052c912f139e7c4a38 (diff) | |
download | nsgenbind-b5c59d1138c704afd09c4716faabe79f04a80616.tar.gz nsgenbind-b5c59d1138c704afd09c4716faabe79f04a80616.tar.bz2 |
add interface function argument and type processing
Diffstat (limited to 'src/webidl-ast.h')
-rw-r--r-- | src/webidl-ast.h | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/src/webidl-ast.h b/src/webidl-ast.h index c86d59b..7c32d82 100644 --- a/src/webidl-ast.h +++ b/src/webidl-ast.h @@ -17,6 +17,33 @@ enum webidl_node_type { WEBIDL_NODE_TYPE_INTERFACE_INHERITANCE, WEBIDL_NODE_TYPE_ATTRIBUTE, WEBIDL_NODE_TYPE_OPERATION, + WEBIDL_NODE_TYPE_OPTIONAL_ARGUMENT, + WEBIDL_NODE_TYPE_ARGUMENT, + WEBIDL_NODE_TYPE_ELLIPSIS, + WEBIDL_NODE_TYPE_TYPE, + WEBIDL_NODE_TYPE_TYPE_BASE, + WEBIDL_NODE_TYPE_TYPE_MODIFIER, +}; + +enum webidl_type { + WEBIDL_TYPE_BOOL, + WEBIDL_TYPE_BYTE, + WEBIDL_TYPE_OCTET, + WEBIDL_TYPE_FLOAT, + WEBIDL_TYPE_DOUBLE, + WEBIDL_TYPE_SHORT, + WEBIDL_TYPE_LONG, + WEBIDL_TYPE_LONGLONG, + WEBIDL_TYPE_STRING, + WEBIDL_TYPE_SEQUENCE, + WEBIDL_TYPE_OBJECT, + WEBIDL_TYPE_DATE, + WEBIDL_TYPE_USER, +}; + +enum webidl_type_modifier { + WEBIDL_TYPE_MODIFIER_UNSIGNED, + WEBIDL_TYPE_MODIFIER_UNRESTRICTED, }; struct webidl_node; @@ -30,7 +57,8 @@ struct webidl_node *webidl_node_new(enum webidl_node_type, struct webidl_node *l void webidl_node_set(struct webidl_node *node, enum webidl_node_type type, void *r); -struct webidl_node *webidl_node_link(struct webidl_node *tgt, struct webidl_node *src); +struct webidl_node *webidl_node_prepend(struct webidl_node *list, struct webidl_node *node); +struct webidl_node *webidl_node_append(struct webidl_node *list, struct webidl_node *node); struct webidl_node *webidl_add_interface_member(struct webidl_node *list, struct webidl_node *new); |