crude -g implementation
[cparser] / token_t.h
index da4bf3d..c8e0e10 100644 (file)
--- a/token_t.h
+++ b/token_t.h
@@ -2,12 +2,13 @@
 #define TOKEN_T_H
 
 #include <stdio.h>
+#include "string_rep.h"
 #include "symbol.h"
 #include "symbol_table.h"
 #include "type.h"
 
 typedef enum {
-#define T(x,str,val) T_##x val,
+#define T(mode,x,str,val) T_##x val,
 #define TS(x,str,val) T_##x val,
 #include "tokens.inc"
 #undef TS
@@ -18,7 +19,7 @@ typedef enum {
 } token_type_t;
 
 typedef enum {
-#define T(x,str,val) TP_##x val,
+#define T(mode,x,str,val) TP_##x val,
 #define TS(x,str,val) TP_##x val,
 #include "tokens_preprocessor.inc"
 #undef TS
@@ -37,10 +38,11 @@ extern source_position_t builtin_source_position;
 typedef struct {
        int type;
        union {
-               symbol_t   *symbol;
-               long long   intvalue;
-               long double floatvalue;
-               const char *string;
+               symbol_t      *symbol;
+               long long      intvalue;
+               long double    floatvalue;
+               string_t       string;
+               wide_string_t  wide_string;
        } v;
        type_t            *datatype;
        source_position_t  source_position;