From 83956295f66576becbf5de8cef915cd0d54f409b Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Sun, 30 Aug 2015 09:14:38 +0100 Subject: Change dictionary generation to produce C accessors. This generates routines which correctly handle reading a member from a dictionary and returning it as the correct c type. Currently the types "any", "user" and "sequence" remain unhandled. --- src/webidl-ast.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'src/webidl-ast.c') diff --git a/src/webidl-ast.c b/src/webidl-ast.c index dc78e1f..e9dda2d 100644 --- a/src/webidl-ast.c +++ b/src/webidl-ast.c @@ -34,6 +34,7 @@ struct webidl_node { void *value; struct webidl_node *node; /* node has a list of nodes */ char *text; /* node data is text */ + float *flt; int number; /* node data is an integer */ } r; }; @@ -298,6 +299,22 @@ webidl_node_getint(struct webidl_node *node) return NULL; } +/* exported interface defined in webidl-ast.h */ +float * +webidl_node_getfloat(struct webidl_node *node) +{ + if (node != NULL) { + switch(node->type) { + case WEBIDL_NODE_TYPE_LITERAL_FLOAT: + return node->r.flt; + + default: + break; + } + } + return NULL; +} + /* exported interface defined in webidl-ast.h */ enum webidl_node_type webidl_node_gettype(struct webidl_node *node) { @@ -398,7 +415,7 @@ static const char *webidl_node_type_to_str(enum webidl_node_type type) return "Literal (bool)"; case WEBIDL_NODE_TYPE_LITERAL_FLOAT: - return "Literal (string)"; + return "Literal (float)"; case WEBIDL_NODE_TYPE_LITERAL_STRING: return "Literal (string)"; -- cgit v1.2.3