transform token_t into a union (similar to ast-nodes)
[cparser] / tokens_preprocessor.inc
1 #ifndef TS
2 #define TS(x,str,val)
3 #endif
4
5 TS(IDENTIFIER,              "identifier", = 256)
6 TS(NUMBER,                  "number",)
7 TS(CHARACTER_CONSTANT,      "character constant",)
8 TS(WIDE_CHARACTER_CONSTANT, "character constant",)
9 TS(STRING_LITERAL,          "string literal",)
10 TS(WIDE_STRING_LITERAL,     "wide string literal",)
11 TS(PUNCTUATOR,              "punctuator",)
12
13 #define ALTERNATE(name, val)          T(_CXX, name, #name,  val)
14 #define PUNCTUATOR(name, string, val) T(_ALL, name, string, val)
15 #include "tokens_punctuator.inc"
16 #undef PUNCTUATOR
17 #undef ALTERNATE
18
19 #define S(x)   T(_ALL,x,#x,)
20
21 S(if)
22 S(else)
23 S(elif)
24 S(endif)
25 S(ifdef)
26 S(ifndef)
27 S(include)
28 S(define)
29 S(undef)
30 S(line)
31 S(error)
32 S(pragma)
33
34 S(defined)
35 T(_ALL, va_args, "__VA_ARGS__",)
36 T(_MS, __COUNTER__, "__COUNTER__",)
37 T(_MS, __TIMESTAMP__, "__TIMESTAMP__",)
38
39 S(STDC)
40 S(ON)
41 S(OFF)
42 S(DEFAULT)
43 S(FP_CONTRACT)
44 S(FENV_ACCESS)
45 S(CX_LIMITED_RANGE)
46
47 #undef S