From b5c59d1138c704afd09c4716faabe79f04a80616 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Mon, 24 Sep 2012 20:17:03 +0100 Subject: add interface function argument and type processing --- src/webidl-ast.h | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'src/webidl-ast.h') 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); -- cgit v1.2.3