X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=token_t.h;h=c8e0e109aa5636624086f171839ab6ee59aa78a0;hb=f017f4f5080052f95185056b3af472ab737bc64a;hp=27832f8a06d870dffa996b6fc7f96a1c0a477eed;hpb=d5a5e90eca7d95d0efa66a6e8dd5ca0ed031321b;p=cparser diff --git a/token_t.h b/token_t.h index 27832f8..c8e0e10 100644 --- a/token_t.h +++ b/token_t.h @@ -2,11 +2,13 @@ #define TOKEN_T_H #include +#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; - int intvalue; - 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; } token_t;