#include "tree.h"
#include "main.h"
+#include "util.h"
#define _(x) (x)
-extern char *filename;
-
GList *nodes = NULL;
static GList *class_nodes = NULL;
%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
%%
| 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;