summaryrefslogtreecommitdiff
path: root/src/nsgenbind-ast.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2015-09-28 07:59:50 +0100
committerVincent Sanders <vince@kyllikki.org>2015-09-28 07:59:50 +0100
commitc80955dcc6b663c250a1f2552b626770fbd46a94 (patch)
tree4b6b98eb03095cbc722b7f5bc2e0bbfa9568e8b3 /src/nsgenbind-ast.c
parent767e69459ca7b4c13fe93875177040ab3eec8b56 (diff)
downloadnsgenbind-c80955dcc6b663c250a1f2552b626770fbd46a94.tar.gz
nsgenbind-c80955dcc6b663c250a1f2552b626770fbd46a94.tar.bz2
annotates binding AST with source linenumber and file
Uses annotated AST to put line directives in the generated source so any code errors in the binding can be easily located.
Diffstat (limited to 'src/nsgenbind-ast.c')
-rw-r--r--src/nsgenbind-ast.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/nsgenbind-ast.c b/src/nsgenbind-ast.c
index 749d3e8..9be8bc7 100644
--- a/src/nsgenbind-ast.c
+++ b/src/nsgenbind-ast.c
@@ -341,6 +341,7 @@ char *genbind_node_gettext(struct genbind_node *node)
case GENBIND_NODE_TYPE_IDENT:
case GENBIND_NODE_TYPE_NAME:
case GENBIND_NODE_TYPE_CDATA:
+ case GENBIND_NODE_TYPE_FILE:
return node->r.text;
default:
@@ -377,6 +378,7 @@ int *genbind_node_getint(struct genbind_node *node)
if (node != NULL) {
switch(node->type) {
case GENBIND_NODE_TYPE_METHOD_TYPE:
+ case GENBIND_NODE_TYPE_LINE:
case GENBIND_NODE_TYPE_MODIFIER:
return &node->r.number;
@@ -408,6 +410,12 @@ static const char *genbind_node_type_to_str(enum genbind_node_type type)
case GENBIND_NODE_TYPE_NAME:
return "TypeName";
+ case GENBIND_NODE_TYPE_LINE:
+ return "Linenumber";
+
+ case GENBIND_NODE_TYPE_FILE:
+ return "Filename";
+
case GENBIND_NODE_TYPE_PRIVATE:
return "Private";