X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=token_t.h;h=848c3adeea95e74a2e1734f17c9295505da74943;hb=a4f1ed0c99f2485820d192ccc047878913a6a16d;hp=5a082fdd7b0fa027272269bc602514814456ec40;hpb=fd16b92f058181088a385c3224c8814831c006d3;p=cparser diff --git a/token_t.h b/token_t.h index 5a082fd..848c3ad 100644 --- a/token_t.h +++ b/token_t.h @@ -26,23 +26,28 @@ #include "symbol_table.h" #include "type.h" -typedef enum { +typedef enum token_type_t { + T_ERROR = -1, + T_NULL = 0, + T_EOF = '\x04', // EOT #define T(mode,x,str,val) T_##x val, #define TS(x,str,val) T_##x val, #include "tokens.inc" #undef TS #undef T - - T_EOF = -1, - T_ERROR = -2 + T_LAST_TOKEN } token_type_t; -typedef enum { +typedef enum preprocessor_token_type_t { + TP_NULL = T_NULL, + TP_EOF = T_EOF, + TP_ERROR = T_ERROR, #define T(mode,x,str,val) TP_##x val, #define TS(x,str,val) TP_##x val, #include "tokens_preprocessor.inc" #undef TS #undef T + TP_LAST_TOKEN } preprocessor_token_type_t; typedef struct source_position_t source_position_t; @@ -52,7 +57,7 @@ struct source_position_t { }; /* position used for "builtin" declarations/types */ -extern source_position_t builtin_source_position; +extern const source_position_t builtin_source_position; typedef struct { int type; @@ -72,4 +77,7 @@ void exit_tokens(void); void print_token_type(FILE *out, token_type_t token_type); void print_token(FILE *out, const token_t *token); +void print_pp_token_type(FILE *out, preprocessor_token_type_t type); +void print_pp_token(FILE *out, const token_t *token); + #endif