]> git.draconx.ca Git - gob-dx.git/blobdiff - src/parse.y
Release 0.92.2
[gob-dx.git] / src / parse.y
index c2c425320d63a236c9814ac6925d62a1e26573b5..a6892e9838fa51908d4d4655272088433ddf2eb8 100644 (file)
 
 #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 <id> TOKEN NUMBER TYPETOKEN ARRAY_DIM
-%token <cbuf> CCODE HCODE
+%token <cbuf> CCODE HTCODE PHCODE HCODE
 %token <line> PUBLIC PRIVATE PROTECTED ARGUMENT VIRTUAL SIGNAL OVERRIDE
 
 %%
@@ -224,30 +223,36 @@ prog:             ccodes class ccodes     { ; }
        |       class                   { ; }
        ;
 
-ccodes:                ccodes CCODE            {
-                       Node *node = new_ccode(FALSE,($<cbuf>2)->str,
+ccode:         CCODE                   {
+                       Node *node = new_ccode(C_CCODE,($<cbuf>1)->str,
                                               ccode_line);
                        nodes = g_list_append(nodes,node);
-                       g_string_free($<cbuf>2,FALSE);
+                       g_string_free($<cbuf>1,FALSE);
                                        }
-       |       ccodes HCODE            {
-                       Node *node = new_ccode(TRUE,($<cbuf>2)->str,ccode_line);
+       |       HCODE                   {
+                       Node *node = new_ccode(H_CCODE,($<cbuf>1)->str,
+                                              ccode_line);
                        nodes = g_list_append(nodes,node);
-                       g_string_free($<cbuf>2,FALSE);
+                       g_string_free($<cbuf>1,FALSE);
                                        }
-       |       CCODE                   {
-                       Node *node = new_ccode(FALSE,($<cbuf>1)->str,
+       |       HTCODE                  {
+                       Node *node = new_ccode(HT_CCODE,($<cbuf>1)->str,
                                               ccode_line);
                        nodes = g_list_append(nodes,node);
                        g_string_free($<cbuf>1,FALSE);
                                        }
-       |       HCODE                   {
-                       Node *node = new_ccode(TRUE,($<cbuf>1)->str,ccode_line);
+       |       PHCODE                  {
+                       Node *node = new_ccode(PH_CCODE,($<cbuf>1)->str,
+                                              ccode_line);
                        nodes = g_list_append(nodes,node);
                        g_string_free($<cbuf>1,FALSE);
                                        }
        ;
 
+ccodes:                ccodes ccode            { ; }
+       |       ccode                   { ; }
+       ;
+
 class:         classdec '{' classcode '}'      {
                        ((Class *)class)->nodes = class_nodes;
                        class_nodes = NULL;