X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=token_t.h;h=7bdc8d83bbb6885ef8e6aa45cd901ee182fc36ac;hb=fc4c19932ddbc935a3f601490c38bcfe62ab5a0d;hp=22b83693cf32e4a98b35f9e25e4f914969bf646a;hpb=68a770de4603c696518d3dd2f278985262a1a2a2;p=cparser diff --git a/token_t.h b/token_t.h index 22b8369..7bdc8d8 100644 --- a/token_t.h +++ b/token_t.h @@ -1,6 +1,6 @@ /* * This file is part of cparser. - * Copyright (C) 2007-2008 Matthias Braun + * Copyright (C) 2007-2009 Matthias Braun * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -26,10 +26,10 @@ #include "symbol_table.h" #include "type.h" -typedef enum { +typedef enum token_type_t { + T_ERROR = -1, T_NULL = 0, - T_EOF = -1, - T_ERROR = -2, + T_EOF = '\x04', // EOT #define T(mode,x,str,val) T_##x val, #define TS(x,str,val) T_##x val, #include "tokens.inc" @@ -38,7 +38,7 @@ typedef enum { 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, @@ -60,15 +60,9 @@ struct source_position_t { extern const source_position_t builtin_source_position; typedef struct { - int type; - union { - symbol_t *symbol; - long long intvalue; - long double floatvalue; - string_t string; - wide_string_t wide_string; - } v; - type_t *datatype; + int type; + symbol_t *symbol; /**< contains identifier. Contains number suffix for numbers */ + string_t literal; /**< string value/literal value */ source_position_t source_position; } token_t; @@ -77,7 +71,9 @@ 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); +symbol_t *get_token_symbol(const token_t *token); + +void print_pp_token_type(FILE *out, int type); void print_pp_token(FILE *out, const token_t *token); #endif