Do not consider alignment in the type hash. It is just wrong.
[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 TS(NEWLINE,                 "newline", = '\n')
14
15 #define ALTERNATE(name, val)          T(_CXX, name, #name,  val)
16 #define PUNCTUATOR(name, string, val) T(_ALL, name, string, val)
17 #include "tokens_punctuator.inc"
18 #undef PUNCTUATOR
19 #undef ALTERNATE
20
21 #define S(x)   T(_ALL,x,#x,)
22
23 S(if)
24 S(else)
25 S(elif)
26 S(endif)
27 S(ifdef)
28 S(ifndef)
29 S(include)
30 S(define)
31 S(undef)
32 S(line)
33 S(error)
34 S(pragma)
35
36 S(defined)
37 T(_ALL, va_args, "__VA_ARGS__",)
38 T(_MS, __COUNTER__, "__COUNTER__",)
39 T(_MS, __TIMESTAMP__, "__TIMESTAMP__",)
40
41 S(STDC)
42 S(ON)
43 S(OFF)
44 S(DEFAULT)
45 S(FP_CONTRACT)
46 S(FENV_ACCESS)
47 S(CX_LIMITED_RANGE)
48
49 #undef S