summaryrefslogtreecommitdiff
path: root/src/nsgenbind-ast.c
diff options
context:
space:
mode:
authorVincent Sanders <vincent.sanders@collabora.co.uk>2012-11-21 15:21:42 +0000
committerVincent Sanders <vincent.sanders@collabora.co.uk>2012-11-21 15:21:42 +0000
commit93c89193c1f2a29b00741d1494f262642108abe2 (patch)
tree9a7f5b8527dce50168dd4f6ac4105877bcde4d4f /src/nsgenbind-ast.c
parent607ae9bceedd28fdf3cab01b820916ef2406d2eb (diff)
downloadnsgenbind-93c89193c1f2a29b00741d1494f262642108abe2.tar.gz
nsgenbind-93c89193c1f2a29b00741d1494f262642108abe2.tar.bz2
make property shared status and type handling selection generic
Diffstat (limited to 'src/nsgenbind-ast.c')
-rw-r--r--src/nsgenbind-ast.c26
1 files changed, 23 insertions, 3 deletions
diff --git a/src/nsgenbind-ast.c b/src/nsgenbind-ast.c
index df6c608..fba7dcb 100644
--- a/src/nsgenbind-ast.c
+++ b/src/nsgenbind-ast.c
@@ -32,6 +32,7 @@ struct genbind_node {
void *value;
struct genbind_node *node;
char *text;
+ int number; /* node data is an integer */
} r;
};
@@ -140,6 +141,10 @@ genbind_node_find_type_ident(struct genbind_node *node,
struct genbind_node *found_node;
struct genbind_node *ident_node;
+ if (ident == NULL) {
+ return NULL;
+ }
+
found_node = genbind_node_find_type(node, prev, type);
@@ -223,7 +228,7 @@ struct genbind_node *genbind_node_getnode(struct genbind_node *node)
case GENBIND_NODE_TYPE_BINDING:
case GENBIND_NODE_TYPE_BINDING_PRIVATE:
case GENBIND_NODE_TYPE_BINDING_INTERNAL:
- case GENBIND_NODE_TYPE_BINDING_UNSHARED:
+ case GENBIND_NODE_TYPE_BINDING_SHARED:
case GENBIND_NODE_TYPE_OPERATION:
case GENBIND_NODE_TYPE_API:
case GENBIND_NODE_TYPE_GETTER:
@@ -238,6 +243,21 @@ struct genbind_node *genbind_node_getnode(struct genbind_node *node)
}
+int genbind_node_getint(struct genbind_node *node)
+{
+ if (node != NULL) {
+ switch(node->type) {
+ case GENBIND_NODE_TYPE_MODIFIER:
+ return node->r.number;
+
+ default:
+ break;
+ }
+ }
+ return -1;
+
+}
+
static const char *genbind_node_type_to_str(enum genbind_node_type type)
{
switch(type) {
@@ -274,8 +294,8 @@ static const char *genbind_node_type_to_str(enum genbind_node_type type)
case GENBIND_NODE_TYPE_BINDING_INTERFACE:
return "Interface";
- case GENBIND_NODE_TYPE_BINDING_UNSHARED:
- return "Unshared";
+ case GENBIND_NODE_TYPE_BINDING_SHARED:
+ return "Shared";
case GENBIND_NODE_TYPE_OPERATION:
return "Operation";