handle multiple strings in a row
[cparser] / tokens.inc
1 #ifndef TS
2 #define TS(x,str,val)
3 #endif
4
5 TS(IDENTIFIER,     "identifier", = 256)
6 TS(INTEGER,        "integer number",)
7 TS(STRING_LITERAL, "string literal",)
8
9 #define S(x)   T(x,#x,)
10 S(auto)
11 S(break)
12 S(case)
13 S(char)
14 S(continue)
15 S(default)
16 S(do)
17 S(double)
18 S(else)
19 S(enum)
20 S(extern)
21 S(float)
22 S(for)
23 S(goto)
24 S(if)
25 S(int)
26 S(long)
27 S(register)
28 S(return)
29 S(short)
30 S(signed)
31 S(sizeof)
32 S(static)
33 S(struct)
34 S(switch)
35 S(typedef)
36 S(union)
37 S(unsigned)
38 S(void)
39 S(volatile)
40 S(while)
41 S(_Bool)
42 S(_Complex)
43 S(_Imaginary)
44 S(__extension__)
45 S(__attribute__)
46 S(__builtin_va_list)
47 #undef S
48
49 T(const,               "__const",)
50 T(_const,                "const", = T_const)
51 T(restrict,         "__restrict",)
52 T(_restrict,          "restrict", = T_restrict)
53 T(asm,                     "asm",)
54 T(__asm__,             "__asm__", = T_asm)
55 T(inline,               "inline",)
56 T(__inline,           "__inline", = T_inline)
57
58 T(SELECT,                   "->",)
59 T(PLUSPLUS,                 "++",)
60 T(MINUSMINUS,               "--",)
61 T(LESSLESS,                 "<<",)
62 T(GREATERGREATER,           ">>",)
63 T(LESSEQUAL,                "<=",)
64 T(GREATEREQUAL,             ">=",)
65 T(EQUALEQUAL,               "==",)
66 T(EXCLAMATIONMARKEQUAL,     "!=",)
67 T(ANDAND,                   "&&",)
68 T(PIPEPIPE,                 "||",)
69 T(DOTDOTDOT,                "...",)
70 T(ASTERISKEQUAL,            "*=",)
71 T(SLASHEQUAL,               "/=",)
72 T(PERCENTEQUAL,             "%=",)
73 T(PLUSEQUAL,                "+=",)
74 T(MINUSEQUAL,               "-=",)
75 T(LESSLESSEQUAL,            "<<=",)
76 T(GREATERGREATEREQUAL,      ">>=",)
77 T(ANDEQUAL,                 "&=",)
78 T(CARETEQUAL,               "^=",)
79 T(PIPEEQUAL,                "|=",)
80 T(HASHHASH,                 "##",)
81
82 #define T_LAST_TOKEN  (T_HASHHASH+1)
83
84 T(LESSCOLON,                "<:",   = '[')
85 T(COLONGREATER,             ":>",   = ']')
86 T(LESSPERCENT,              "<%",   = '{')
87 T(PERCENTGREATER,           "%>",   = '}')
88 T(PERCENTCOLON,             "%:",   = '#')
89 T(PERCENTCOLONPERCENTCOLON, "%:%:", = T_HASHHASH)
90
91 T(RBRACK,          "[", = '[')
92 T(LBRACK,          "]", = ']')
93 T(LBRACE,          "(", = '(')
94 T(RBRACE,          ")", = ')')
95 T(RCURLY,          "{", = '{')
96 T(LCURLY,          "}", = '}')
97 T(DOT,             ".", = '.')
98 T(AND,             "&", = '&')
99 T(ASTERISK,        "*", = '*')
100 T(PLUS,            "+", = '+')
101 T(MINUS,           "-", = '-')
102 T(TILDE,           "~", = '~')
103 T(EXCLAMATIONMARK, "!", = '!')
104 T(SLASH,           "/", = '/')
105 T(PERCENT,         "%", = '%')
106 T(LESS,            "<", = '<')
107 T(GREATER,         ">", = '>')
108 T(CARET,           "^", = '^')
109 T(PIPE,            "|", = '|')
110 T(QUESTIONMARK,    "?", = '?')
111 T(COLON,           ":", = ':')
112 T(SEMICOLON,       ";", = ';')
113 T(EQUAL,           "=", = '=')
114 T(COMMA,           ",", = ',')
115 T(HASH,            "#", = '#')
116
117 TS(NEWLINE,        "newline", = '\n')