Repair the order of tokens.
[cparser] / token_t.h
index 0cc82d3..317cc3b 100644 (file)
--- a/token_t.h
+++ b/token_t.h
@@ -2,11 +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
@@ -17,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
@@ -30,14 +32,19 @@ struct source_position_t {
        unsigned    linenr;
 };
 
+/* position used for "builtin" declarations/types */
+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;
+               const char    *string;
+               wide_string_t  wide_string;
        } v;
+       type_t            *datatype;
        source_position_t  source_position;
 } token_t;