some refactoring in preparation for a preprocessor
[cparser] / tokens_preprocessor.inc
1 #ifndef TS
2 #define TS(x,str,val)
3 #endif
4
5 TS(HEADERNAME,              "header name", = 256)
6 TS(IDENTIFIER,              "identifier",)
7 TS(NUMBER,                  "number",)
8 TS(CHARACTER_CONSTANT,      "character constant",)
9 TS(WIDE_CHARACTER_CONSTANT, "character constant",)
10 TS(STRING_LITERAL,          "string literal",)
11 TS(WIDE_STRING_LITERAL,     "wide string literal",)
12 TS(PUNCTUATOR,              "punctuator",)
13
14 #define PUNCTUATOR(name,string,val)   T(_ALL,name,string,val)
15 #include "tokens_punctuator.inc"
16 #undef PUNCTUATOR
17
18 #define S(x)   T(_ALL,x,#x,)
19
20 S(if)
21 S(else)
22 S(elif)
23 S(endif)
24 S(ifdef)
25 S(ifndef)
26 S(include)
27 S(define)
28 S(undef)
29 S(line)
30 S(error)
31 S(pragma)
32
33 S(defined)
34 T(_ALL, va_args, "__VA_ARGS__",)
35
36 S(STDC)
37 S(ON)
38 S(OFF)
39 S(DEFAULT)
40 S(FP_CONTRACT)
41 S(FENV_ACCESS)
42 S(CX_LIMITED_RANGE)
43
44 #define TP_LAST_TOKEN  (TP_CX_LIMITED_RANGE + 1)
45
46 TS(NEWLINE,                 "newline", = '\n')
47
48 #undef S