X-Git-Url: http://git.draconx.ca/gitweb/gob-dx.git/blobdiff_plain/774037b15064dcc6e4995c0bba3b24abb1bde35f..e10d6e307623d0952f6e1f5d9fee8720ddab4808:/src/parse.y diff --git a/src/parse.y b/src/parse.y index c2c4253..a6892e9 100644 --- a/src/parse.y +++ b/src/parse.y @@ -27,11 +27,10 @@ #include "tree.h" #include "main.h" +#include "util.h" #define _(x) (x) -extern char *filename; - GList *nodes = NULL; static GList *class_nodes = NULL; @@ -213,7 +212,7 @@ push_self(char *id) %token ONERROR %token TOKEN NUMBER TYPETOKEN ARRAY_DIM -%token CCODE HCODE +%token CCODE HTCODE PHCODE HCODE %token PUBLIC PRIVATE PROTECTED ARGUMENT VIRTUAL SIGNAL OVERRIDE %% @@ -224,30 +223,36 @@ prog: ccodes class ccodes { ; } | class { ; } ; -ccodes: ccodes CCODE { - Node *node = new_ccode(FALSE,($2)->str, +ccode: CCODE { + Node *node = new_ccode(C_CCODE,($1)->str, ccode_line); nodes = g_list_append(nodes,node); - g_string_free($2,FALSE); + g_string_free($1,FALSE); } - | ccodes HCODE { - Node *node = new_ccode(TRUE,($2)->str,ccode_line); + | HCODE { + Node *node = new_ccode(H_CCODE,($1)->str, + ccode_line); nodes = g_list_append(nodes,node); - g_string_free($2,FALSE); + g_string_free($1,FALSE); } - | CCODE { - Node *node = new_ccode(FALSE,($1)->str, + | HTCODE { + Node *node = new_ccode(HT_CCODE,($1)->str, ccode_line); nodes = g_list_append(nodes,node); g_string_free($1,FALSE); } - | HCODE { - Node *node = new_ccode(TRUE,($1)->str,ccode_line); + | PHCODE { + Node *node = new_ccode(PH_CCODE,($1)->str, + ccode_line); nodes = g_list_append(nodes,node); g_string_free($1,FALSE); } ; +ccodes: ccodes ccode { ; } + | ccode { ; } + ; + class: classdec '{' classcode '}' { ((Class *)class)->nodes = class_nodes; class_nodes = NULL;