preprocessor: rework headername parsing
[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(HEADERNAME,              "headername",)
12 TS(PUNCTUATOR,              "punctuator",)
13
14 #define ALTERNATE(name, val)          T(_CXX, name, #name,  val)
15 #define PUNCTUATOR(name, string, val) T(_ALL, name, string, val)
16 #include "tokens_punctuator.inc"
17 #undef PUNCTUATOR
18 #undef ALTERNATE
19
20 #define S(x)   T(_ALL,x,#x,)
21
22 S(if)
23 S(else)
24 S(elif)
25 S(endif)
26 S(ifdef)
27 S(ifndef)
28 S(include)
29 S(define)
30 S(undef)
31 S(line)
32 S(error)
33 S(pragma)
34
35 S(defined)
36 T(_ALL, va_args, "__VA_ARGS__",)
37 T(_MS, __COUNTER__, "__COUNTER__",)
38 T(_MS, __TIMESTAMP__, "__TIMESTAMP__",)
39
40 S(STDC)
41 S(ON)
42 S(OFF)
43 S(DEFAULT)
44 S(FP_CONTRACT)
45 S(FENV_ACCESS)
46 S(CX_LIMITED_RANGE)
47
48 #undef S