X-Git-Url: http://git.draconx.ca/gitweb/gob-dx.git/blobdiff_plain/b17287deb56775a49030d738d8c8c0e9cd15f9fe..3b10bbd3a88d6e16146414d91d06bb2f36347bfc:/src/tree.c diff --git a/src/tree.c b/src/tree.c index b92f771..6382d05 100644 --- a/src/tree.c +++ b/src/tree.c @@ -119,7 +119,10 @@ new_argument(char *gtktype, Type *atype, GList *flags, char *name, char *get, in } Node * -new_variable(int scope, Type *vtype, char *id, int line_no) +new_variable(int scope, Type *vtype, char *id, int line_no, + char *destructor, int destructor_line, + gboolean destructor_simple, + char *initializer, int initializer_line) { Variable *node = (Variable *)g_new(Node,1); node->type = VARIABLE_NODE; @@ -127,5 +130,24 @@ new_variable(int scope, Type *vtype, char *id, int line_no) node->vtype = vtype; node->id = id; node->line_no = line_no; + node->destructor = destructor; + node->destructor_line = destructor_line; + node->destructor_simple = destructor_simple; + node->initializer = initializer; + node->initializer_line = initializer_line; return (Node *)node; } + +Type * +copy_type(Type *type) +{ + Node *node; + + if(!type) return NULL; + + node = new_type(type->stars, + g_strdup(type->name), + g_strdup(type->postfix)); + + return (Type *)node; +}