Subversion Repositories tendra.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 7u83 1
/*
2
    		 Crown Copyright (c) 1997
3
 
4
    This TenDRA(r) Computer Program is subject to Copyright
5
    owned by the United Kingdom Secretary of State for Defence
6
    acting through the Defence Evaluation and Research Agency
7
    (DERA).  It is made available to Recipients with a
8
    royalty-free licence for its use, reproduction, transfer
9
    to other parties and amendment for any purpose not excluding
10
    product development provided that any such use et cetera
11
    shall be deemed to be acceptance of the following conditions:-
12
 
13
        (1) Its Recipients shall ensure that this Notice is
14
        reproduced upon any copies or amended versions of it;
15
 
16
        (2) Any amended version of it shall be clearly marked to
17
        show both the nature of and the organisation responsible
18
        for the relevant amendment or amendments;
19
 
20
        (3) Its onward transfer from a recipient to another
21
        party shall be deemed to be that party's acceptance of
22
        these conditions;
23
 
24
        (4) DERA gives no warranty or assurance as to its
25
        quality or suitability for any purpose and DERA accepts
26
        no liability whatsoever in relation to any use to which
27
        it may be put.
28
*/
29
 
30
 
31
/*
32
    LEXICAL TOKEN TABLES
33
 
34
    This file gives the list of lexical tokens.  It is included from several
35
    points with the macro LEX_TOKEN defined so as to extract the desired
36
    information.  The arguments are as follows:
37
 
38
	1.  The token number, corresponding to the values given in syntax.h.
39
	2.  The associated token name, if any.
40
	3.  A value indicating the semantic class the token is likely to
41
	    start (see predict.c).
42
 
43
    The list of tokens in the grammars, syntax.sid and psyntax.sid, need
44
    to kept in step with this list.
45
*/
46
 
47
 
48
#ifdef LEX_TOKEN
49
 
50
 
51
/*
52
    MISCELLANEOUS TOKENS
53
 
54
    These tokens describe the identifiers, literals and other miscellaneous
55
    lexical tokens.  The target dependent conditionals are included in this
56
    group because they have an associated value.
57
*/
58
 
59
LEX_TOKEN ( lex_unknown, "<unknown>", TOK_NONE )
60
 
61
LEX_TOKEN ( lex_identifier, "<id>", TOK_EXP )
62
LEX_TOKEN ( lex_type_Hname, "<type>", TOK_TYPE )
63
LEX_TOKEN ( lex_namespace_Hname, "<namespace>", TOK_NONE )
64
LEX_TOKEN ( lex_statement_Hname, "<stmt>", TOK_STATEMENT )
65
LEX_TOKEN ( lex_destructor_Hname, "<destructor>", TOK_EXP )
66
LEX_TOKEN ( lex_template_Hid, "<id>", TOK_EXP )
67
LEX_TOKEN ( lex_template_Htype, "<type>", TOK_TYPE )
68
 
69
LEX_TOKEN ( lex_nested_Hname, "<name>::", TOK_NESTED_NAME )
70
LEX_TOKEN ( lex_full_Hname, "::<name>::", TOK_FULL_NAME )
71
LEX_TOKEN ( lex_nested_Hname_Hstar, "<class>::*", TOK_NONE )
72
LEX_TOKEN ( lex_full_Hname_Hstar, "::<class>::*", TOK_NONE )
73
 
74
LEX_TOKEN ( lex_char_Hlit, "<char>", TOK_EXP )
75
LEX_TOKEN ( lex_wchar_Hlit, "<wchar>", TOK_EXP )
76
LEX_TOKEN ( lex_string_Hlit, "<string>", TOK_EXP )
77
LEX_TOKEN ( lex_wstring_Hlit, "<wstring>", TOK_EXP )
78
LEX_TOKEN ( lex_integer_Hlit, "<int>", TOK_EXP )
79
 
80
LEX_TOKEN ( lex_char_Hexp, "<char>", TOK_EXP )
81
LEX_TOKEN ( lex_wchar_Hexp, "<wchar>", TOK_EXP )
82
LEX_TOKEN ( lex_string_Hexp, "<string>", TOK_EXP )
83
LEX_TOKEN ( lex_wstring_Hexp, "<wstring>", TOK_EXP )
84
LEX_TOKEN ( lex_integer_Hexp, "<int>", TOK_EXP )
85
LEX_TOKEN ( lex_floating_Hexp, "<float>", TOK_EXP )
86
 
87
LEX_TOKEN ( lex_complex_Hexp, "<exp>", TOK_EXP )
88
LEX_TOKEN ( lex_complex_Hstmt, "<stmt>", TOK_STATEMENT )
89
LEX_TOKEN ( lex_complex_Htype, "<type>", TOK_TYPE )
90
 
91
LEX_TOKEN ( lex_hash_Hif, "#if", TOK_STATEMENT )
92
LEX_TOKEN ( lex_hash_Helif, "#elif", TOK_STATEMENT )
93
LEX_TOKEN ( lex_hash_Helse, "#else", TOK_STATEMENT )
94
LEX_TOKEN ( lex_hash_Hendif, "#endif", TOK_STATEMENT )
95
LEX_TOKEN ( lex_hash_Hpragma, "#pragma", TOK_DECLARATION )
96
 
97
LEX_TOKEN ( lex_newline, "<newline>", TOK_NONE )
98
LEX_TOKEN ( lex_eof, "<eof>", TOK_NONE )
99
 
100
 
101
/*
102
    C SYMBOL TOKENS
103
 
104
    These tokens describe the C symbols and punctuation.
105
*/
106
 
107
LEX_TOKEN ( lex_and_H1, "&", TOK_EXP )
108
LEX_TOKEN ( lex_and_Heq_H1, "&=", TOK_NONE )
109
LEX_TOKEN ( lex_arrow, "->", TOK_NONE )
110
LEX_TOKEN ( lex_assign, "=", TOK_NONE )
111
LEX_TOKEN ( lex_backslash, "\\", TOK_NONE )
112
LEX_TOKEN ( lex_close_Hbrace_H1, "}", TOK_NONE )
113
LEX_TOKEN ( lex_close_Hround, ")", TOK_NONE )
114
LEX_TOKEN ( lex_close_Hsquare_H1, "]", TOK_NONE )
115
LEX_TOKEN ( lex_colon, ":", TOK_NONE )
116
LEX_TOKEN ( lex_comma, ",", TOK_NONE )
117
LEX_TOKEN ( lex_compl_H1, "~", TOK_EXP )
118
LEX_TOKEN ( lex_div, "/", TOK_NONE )
119
LEX_TOKEN ( lex_div_Heq, "/=", TOK_NONE )
120
LEX_TOKEN ( lex_dot, ".", TOK_NONE )
121
LEX_TOKEN ( lex_ellipsis, "...", TOK_NONE )
122
LEX_TOKEN ( lex_eq, "==", TOK_NONE )
123
LEX_TOKEN ( lex_greater, ">", TOK_NONE )
124
LEX_TOKEN ( lex_greater_Heq, ">=", TOK_NONE )
125
LEX_TOKEN ( lex_hash_H1, "#", TOK_NONE )
126
LEX_TOKEN ( lex_hash_Hhash_H1, "##", TOK_NONE )
127
LEX_TOKEN ( lex_less, "<", TOK_NONE )
128
LEX_TOKEN ( lex_less_Heq, "<=", TOK_NONE )
129
LEX_TOKEN ( lex_logical_Hand_H1, "&&", TOK_NONE )
130
LEX_TOKEN ( lex_logical_Hor_H1, "||", TOK_NONE )
131
LEX_TOKEN ( lex_lshift, "<<", TOK_NONE )
132
LEX_TOKEN ( lex_lshift_Heq, "<<=", TOK_NONE )
133
LEX_TOKEN ( lex_minus, "-", TOK_EXP )
134
LEX_TOKEN ( lex_minus_Heq, "-=", TOK_NONE )
135
LEX_TOKEN ( lex_minus_Hminus, "--", TOK_EXP )
136
LEX_TOKEN ( lex_not_H1, "!", TOK_EXP )
137
LEX_TOKEN ( lex_not_Heq_H1, "!=", TOK_NONE )
138
LEX_TOKEN ( lex_open_Hbrace_H1, "{", TOK_NONE )
139
LEX_TOKEN ( lex_open_Hround, "(", TOK_NONE )
140
LEX_TOKEN ( lex_open_Hsquare_H1, "[", TOK_NONE )
141
LEX_TOKEN ( lex_or_H1, "|", TOK_NONE )
142
LEX_TOKEN ( lex_or_Heq_H1, "|=", TOK_NONE )
143
LEX_TOKEN ( lex_plus, "+", TOK_EXP )
144
LEX_TOKEN ( lex_plus_Heq, "+=", TOK_NONE )
145
LEX_TOKEN ( lex_plus_Hplus, "++", TOK_EXP )
146
LEX_TOKEN ( lex_question, "?", TOK_NONE )
147
LEX_TOKEN ( lex_rem, "%", TOK_NONE )
148
LEX_TOKEN ( lex_rem_Heq, "%=", TOK_NONE )
149
LEX_TOKEN ( lex_rshift, ">>", TOK_NONE )
150
LEX_TOKEN ( lex_rshift_Heq, ">>=", TOK_NONE )
151
LEX_TOKEN ( lex_semicolon, ";", TOK_NONE )
152
LEX_TOKEN ( lex_star, "*", TOK_EXP )
153
LEX_TOKEN ( lex_star_Heq, "*=", TOK_NONE )
154
LEX_TOKEN ( lex_xor_H1, "^", TOK_NONE )
155
LEX_TOKEN ( lex_xor_Heq_H1, "^=", TOK_NONE )
156
 
157
 
158
/*
159
    ADDITIONAL C++ SYMBOL TOKENS
160
 
161
    These tokens describe the additional C++ symbols.
162
*/
163
 
164
LEX_TOKEN ( lex_arrow_Hstar, "->*", TOK_NONE )
165
LEX_TOKEN ( lex_colon_Hcolon, "::", TOK_FULL_NAME )
166
LEX_TOKEN ( lex_dot_Hstar, ".*", TOK_NONE )
167
 
168
 
169
/*
170
    ADDITIONAL SYMBOL TOKENS
171
 
172
    These tokens describe the additional extension symbols.
173
*/
174
 
175
LEX_TOKEN ( lex_abs, "+?", TOK_EXP )
176
LEX_TOKEN ( lex_max, ">?", TOK_NONE )
177
LEX_TOKEN ( lex_min, "<?", TOK_NONE )
178
 
179
 
180
/*
181
    DIGRAPH TOKENS
182
 
183
    These tokens describe the digraphs.
184
*/
185
 
186
LEX_TOKEN ( lex_close_Hbrace_H2, "%>", TOK_NONE )
187
LEX_TOKEN ( lex_close_Hsquare_H2, ":>", TOK_NONE )
188
LEX_TOKEN ( lex_hash_H2, "%:", TOK_NONE )
189
LEX_TOKEN ( lex_hash_Hhash_H2, "%:%:", TOK_NONE )
190
LEX_TOKEN ( lex_open_Hbrace_H2, "<%", TOK_NONE )
191
LEX_TOKEN ( lex_open_Hsquare_H2, "<:", TOK_NONE )
192
 
193
 
194
/*
195
    C KEYWORD TOKENS
196
 
197
    These tokens describe the C keywords.
198
*/
199
 
200
LEX_TOKEN ( lex_auto, "auto", TOK_DECL_SPEC )
201
LEX_TOKEN ( lex_break, "break", TOK_STATEMENT )
202
LEX_TOKEN ( lex_case, "case", TOK_STATEMENT )
203
LEX_TOKEN ( lex_char, "char", TOK_SIMPLE_TYPE )
204
LEX_TOKEN ( lex_const, "const", TOK_TYPE_SPEC )
205
LEX_TOKEN ( lex_continue, "continue", TOK_STATEMENT )
206
LEX_TOKEN ( lex_default, "default", TOK_STATEMENT )
207
LEX_TOKEN ( lex_do, "do", TOK_STATEMENT )
208
LEX_TOKEN ( lex_double, "double", TOK_SIMPLE_TYPE )
209
LEX_TOKEN ( lex_else, "else", TOK_STATEMENT )
210
LEX_TOKEN ( lex_enum, "enum", TOK_TYPE_KEY )
211
LEX_TOKEN ( lex_extern, "extern", TOK_EXTERN )
212
LEX_TOKEN ( lex_float, "float", TOK_SIMPLE_TYPE )
213
LEX_TOKEN ( lex_for, "for", TOK_STATEMENT )
214
LEX_TOKEN ( lex_goto, "goto", TOK_STATEMENT )
215
LEX_TOKEN ( lex_if, "if", TOK_STATEMENT )
216
LEX_TOKEN ( lex_int, "int", TOK_SIMPLE_TYPE )
217
LEX_TOKEN ( lex_long, "long", TOK_SIMPLE_TYPE )
218
LEX_TOKEN ( lex_register, "register", TOK_DECL_SPEC )
219
LEX_TOKEN ( lex_return, "return", TOK_STATEMENT )
220
LEX_TOKEN ( lex_short, "short", TOK_SIMPLE_TYPE )
221
LEX_TOKEN ( lex_signed, "signed", TOK_SIMPLE_TYPE )
222
LEX_TOKEN ( lex_sizeof, "sizeof", TOK_EXP )
223
LEX_TOKEN ( lex_static, "static", TOK_DECL_SPEC )
224
LEX_TOKEN ( lex_struct, "struct", TOK_TYPE_KEY )
225
LEX_TOKEN ( lex_switch, "switch", TOK_STATEMENT )
226
LEX_TOKEN ( lex_typedef, "typedef", TOK_DECL_SPEC )
227
LEX_TOKEN ( lex_union, "union", TOK_TYPE_KEY )
228
LEX_TOKEN ( lex_unsigned, "unsigned", TOK_SIMPLE_TYPE )
229
LEX_TOKEN ( lex_void, "void", TOK_SIMPLE_TYPE )
230
LEX_TOKEN ( lex_volatile, "volatile", TOK_TYPE_SPEC )
231
LEX_TOKEN ( lex_while, "while", TOK_STATEMENT )
232
 
233
 
234
/*
235
    ADDITIONAL C++ KEYWORD TOKENS
236
 
237
    These tokens describe the additional C++ keywords.
238
*/
239
 
240
LEX_TOKEN ( lex_asm, "asm", TOK_ASM )
241
LEX_TOKEN ( lex_bool, "bool", TOK_SIMPLE_TYPE )
242
LEX_TOKEN ( lex_catch, "catch", TOK_STATEMENT )
243
LEX_TOKEN ( lex_class, "class", TOK_TYPE_KEY )
244
LEX_TOKEN ( lex_const_Hcast, "const_cast", TOK_EXP )
245
LEX_TOKEN ( lex_delete, "delete", TOK_EXP )
246
LEX_TOKEN ( lex_dynamic_Hcast, "dynamic_cast", TOK_EXP )
247
LEX_TOKEN ( lex_explicit, "explicit", TOK_DECL_SPEC )
248
LEX_TOKEN ( lex_export, "export", TOK_DECLARATION )
249
LEX_TOKEN ( lex_false, "false", TOK_EXP )
250
LEX_TOKEN ( lex_friend, "friend", TOK_DECL_SPEC )
251
LEX_TOKEN ( lex_inline, "inline", TOK_DECL_SPEC )
252
LEX_TOKEN ( lex_mutable, "mutable", TOK_DECL_SPEC )
253
LEX_TOKEN ( lex_namespace, "namespace", TOK_DECLARATION )
254
LEX_TOKEN ( lex_new, "new", TOK_EXP )
255
LEX_TOKEN ( lex_operator, "operator", TOK_EXP )
256
LEX_TOKEN ( lex_private, "private", TOK_NONE )
257
LEX_TOKEN ( lex_protected, "protected", TOK_NONE )
258
LEX_TOKEN ( lex_public, "public", TOK_NONE )
259
LEX_TOKEN ( lex_reinterpret_Hcast, "reinterpret_cast", TOK_EXP )
260
LEX_TOKEN ( lex_static_Hcast, "static_cast", TOK_EXP )
261
LEX_TOKEN ( lex_template, "template", TOK_DECLARATION )
262
LEX_TOKEN ( lex_this, "this", TOK_EXP )
263
LEX_TOKEN ( lex_throw, "throw", TOK_NONE )
264
LEX_TOKEN ( lex_true, "true", TOK_EXP )
265
LEX_TOKEN ( lex_try, "try", TOK_STATEMENT )
266
LEX_TOKEN ( lex_typeid, "typeid", TOK_EXP )
267
LEX_TOKEN ( lex_typename, "typename", TOK_TYPE_KEY )
268
LEX_TOKEN ( lex_using, "using", TOK_DECLARATION )
269
LEX_TOKEN ( lex_virtual, "virtual", TOK_DECL_SPEC )
270
LEX_TOKEN ( lex_wchar_Ht, "wchar_t", TOK_SIMPLE_TYPE )
271
 
272
 
273
/*
274
    ISO KEYWORD TOKENS
275
 
276
    These tokens describe the ISO keywords which give alternative
277
    representations of various symbols.
278
*/
279
 
280
LEX_TOKEN ( lex_and_H2, "bitand", TOK_EXP )
281
LEX_TOKEN ( lex_and_Heq_H2, "and_eq", TOK_NONE )
282
LEX_TOKEN ( lex_compl_H2, "compl", TOK_EXP )
283
LEX_TOKEN ( lex_logical_Hand_H2, "and", TOK_NONE )
284
LEX_TOKEN ( lex_logical_Hor_H2, "or", TOK_NONE )
285
LEX_TOKEN ( lex_not_H2, "not", TOK_EXP )
286
LEX_TOKEN ( lex_not_Heq_H2, "not_eq", TOK_NONE )
287
LEX_TOKEN ( lex_or_H2, "bitor", TOK_NONE )
288
LEX_TOKEN ( lex_or_Heq_H2, "or_eq", TOK_NONE )
289
LEX_TOKEN ( lex_xor_H2, "xor", TOK_NONE )
290
LEX_TOKEN ( lex_xor_Heq_H2, "xor_eq", TOK_NONE )
291
 
292
 
293
/*
294
    NON-STANDARD KEYWORD TOKENS
295
 
296
    These keywords represent the non-standard keywords.
297
*/
298
 
299
LEX_TOKEN ( lex_accept, "accept", TOK_NONE )
300
LEX_TOKEN ( lex_after, "after", TOK_NONE )
301
LEX_TOKEN ( lex_alignof, "alignof", TOK_EXP )
302
LEX_TOKEN ( lex_all, "all", TOK_NONE )
303
LEX_TOKEN ( lex_allow, "allow", TOK_NONE )
304
LEX_TOKEN ( lex_ambiguous, "ambiguous", TOK_NONE )
305
LEX_TOKEN ( lex_analysis, "analysis", TOK_NONE )
306
LEX_TOKEN ( lex_argument, "argument", TOK_NONE )
307
LEX_TOKEN ( lex_arith_Hcap, "ARITHMETIC", TOK_NONE )
308
LEX_TOKEN ( lex_array, "array", TOK_NONE )
309
LEX_TOKEN ( lex_as, "as", TOK_NONE )
310
LEX_TOKEN ( lex_assert, "assert", TOK_NONE )
311
LEX_TOKEN ( lex_assignment, "assignment", TOK_NONE )
312
LEX_TOKEN ( lex_begin, "begin", TOK_NONE )
313
LEX_TOKEN ( lex_bitfield, "bitfield", TOK_NONE )
314
LEX_TOKEN ( lex_block, "block", TOK_NONE )
315
LEX_TOKEN ( lex_bottom, "bottom", TOK_SIMPLE_TYPE )
316
LEX_TOKEN ( lex_cast, "cast", TOK_NONE )
317
LEX_TOKEN ( lex_character, "character", TOK_NONE )
318
LEX_TOKEN ( lex_class_Hcap, "CLASS", TOK_NONE )
319
LEX_TOKEN ( lex_code, "code", TOK_NONE )
320
LEX_TOKEN ( lex_comment, "comment", TOK_NONE )
321
LEX_TOKEN ( lex_compatible, "compatible", TOK_NONE )
322
LEX_TOKEN ( lex_complete, "complete", TOK_NONE )
323
LEX_TOKEN ( lex_compute, "compute", TOK_NONE )
324
LEX_TOKEN ( lex_conditional, "conditional", TOK_NONE )
325
LEX_TOKEN ( lex_conversion, "conversion", TOK_NONE )
326
LEX_TOKEN ( lex_decimal, "decimal", TOK_NONE )
327
LEX_TOKEN ( lex_decl, "declaration", TOK_NONE )
328
LEX_TOKEN ( lex_define, "define", TOK_NONE )
329
LEX_TOKEN ( lex_define_Hcap, "DEFINE", TOK_NONE )
330
LEX_TOKEN ( lex_defined, "defined", TOK_EXP )
331
LEX_TOKEN ( lex_definition, "definition", TOK_NONE )
332
LEX_TOKEN ( lex_depth, "depth", TOK_NONE )
333
LEX_TOKEN ( lex_directive, "directive", TOK_NONE )
334
LEX_TOKEN ( lex_directory, "directory", TOK_NONE )
335
LEX_TOKEN ( lex_disallow, "disallow", TOK_NONE )
336
LEX_TOKEN ( lex_discard, "discard", TOK_EXP )
337
LEX_TOKEN ( lex_dollar, "dollar", TOK_NONE )
338
LEX_TOKEN ( lex_either, "either", TOK_NONE )
339
LEX_TOKEN ( lex_elif, "elif", TOK_EXP )
340
LEX_TOKEN ( lex_ellipsis_Hexp, "...", TOK_NONE )
341
LEX_TOKEN ( lex_end, "end", TOK_NONE )
342
LEX_TOKEN ( lex_endif, "endif", TOK_EXP )
343
LEX_TOKEN ( lex_environment, "environment", TOK_NONE )
344
LEX_TOKEN ( lex_equality, "equality", TOK_NONE )
345
LEX_TOKEN ( lex_error, "error", TOK_NONE )
346
LEX_TOKEN ( lex_escape, "escape", TOK_NONE )
347
LEX_TOKEN ( lex_exhaustive, "exhaustive", TOK_NONE )
348
LEX_TOKEN ( lex_exp_Hcap, "EXP", TOK_NONE )
349
LEX_TOKEN ( lex_explain, "explain", TOK_DECLARATION )
350
LEX_TOKEN ( lex_extend, "extend", TOK_NONE )
351
LEX_TOKEN ( lex_external, "external", TOK_NONE )
352
LEX_TOKEN ( lex_extra, "extra", TOK_NONE )
353
LEX_TOKEN ( lex_fall, "fall", TOK_NONE )
354
LEX_TOKEN ( lex_file, "file", TOK_NONE )
355
LEX_TOKEN ( lex_float_Hcap, "FLOAT", TOK_NONE )
356
LEX_TOKEN ( lex_forward, "forward", TOK_NONE )
357
LEX_TOKEN ( lex_func_Hcap, "FUNC", TOK_NONE )
358
LEX_TOKEN ( lex_function, "function", TOK_NONE )
359
LEX_TOKEN ( lex_hexadecimal, "hexadecimal", TOK_NONE )
360
LEX_TOKEN ( lex_hiding, "hiding", TOK_NONE )
361
LEX_TOKEN ( lex_ident, "ident", TOK_NONE )
362
LEX_TOKEN ( lex_identif, "identifier", TOK_NONE )
363
LEX_TOKEN ( lex_ifdef, "ifdef", TOK_EXP )
364
LEX_TOKEN ( lex_ifndef, "ifndef", TOK_EXP )
365
LEX_TOKEN ( lex_ignore, "ignore", TOK_NONE )
366
LEX_TOKEN ( lex_implement, "implement", TOK_NONE )
367
LEX_TOKEN ( lex_implicit, "implicit", TOK_NONE )
368
LEX_TOKEN ( lex_import, "import", TOK_NONE )
369
LEX_TOKEN ( lex_include, "include", TOK_NONE )
370
LEX_TOKEN ( lex_includes, "includes", TOK_NONE )
371
LEX_TOKEN ( lex_include_Hnext, "include_next", TOK_NONE )
372
LEX_TOKEN ( lex_incompatible, "incompatible", TOK_NONE )
373
LEX_TOKEN ( lex_incomplete, "incomplete", TOK_NONE )
374
LEX_TOKEN ( lex_indented, "indented", TOK_NONE )
375
LEX_TOKEN ( lex_initialization, "initialization", TOK_NONE )
376
LEX_TOKEN ( lex_integer, "integer", TOK_NONE )
377
LEX_TOKEN ( lex_interface, "interface", TOK_NONE )
378
LEX_TOKEN ( lex_internal, "internal", TOK_NONE )
379
LEX_TOKEN ( lex_into, "into", TOK_NONE )
380
LEX_TOKEN ( lex_int_Hcap, "INTEGER", TOK_NONE )
381
LEX_TOKEN ( lex_keyword, "keyword", TOK_NONE )
382
LEX_TOKEN ( lex_limit, "limit", TOK_NONE )
383
LEX_TOKEN ( lex_line, "line", TOK_NONE )
384
LEX_TOKEN ( lex_linkage, "linkage", TOK_NONE )
385
LEX_TOKEN ( lex_lit, "literal", TOK_NONE )
386
LEX_TOKEN ( lex_longlong, "longlong", TOK_NONE )
387
LEX_TOKEN ( lex_lvalue, "lvalue", TOK_NONE )
388
LEX_TOKEN ( lex_macro, "macro", TOK_NONE )
389
LEX_TOKEN ( lex_main, "main", TOK_NONE )
390
LEX_TOKEN ( lex_member, "member", TOK_NONE )
391
LEX_TOKEN ( lex_member_Hcap, "MEMBER", TOK_NONE )
392
LEX_TOKEN ( lex_name, "name", TOK_NONE )
393
LEX_TOKEN ( lex_nat_Hcap, "NAT", TOK_NONE )
394
LEX_TOKEN ( lex_nested, "nested", TOK_NONE )
395
LEX_TOKEN ( lex_nline, "nline", TOK_NONE )
396
LEX_TOKEN ( lex_no, "no", TOK_NONE )
397
LEX_TOKEN ( lex_no_Hdef, "no_def", TOK_NONE )
398
LEX_TOKEN ( lex_object, "object", TOK_NONE )
399
LEX_TOKEN ( lex_octal, "octal", TOK_NONE )
400
LEX_TOKEN ( lex_of, "of", TOK_NONE )
401
LEX_TOKEN ( lex_off, "off", TOK_NONE )
402
LEX_TOKEN ( lex_on, "on", TOK_NONE )
403
LEX_TOKEN ( lex_option, "option", TOK_NONE )
404
LEX_TOKEN ( lex_overflow, "overflow", TOK_NONE )
405
LEX_TOKEN ( lex_overload, "overload", TOK_DECL_SPEC )
406
LEX_TOKEN ( lex_pointer, "pointer", TOK_NONE )
407
LEX_TOKEN ( lex_postpone, "postpone", TOK_NONE )
408
LEX_TOKEN ( lex_pragma, "pragma", TOK_NONE )
409
LEX_TOKEN ( lex_precedence, "precedence", TOK_NONE )
410
LEX_TOKEN ( lex_preserve, "preserve", TOK_NONE )
411
LEX_TOKEN ( lex_printf, "printf", TOK_NONE )
412
LEX_TOKEN ( lex_proc_Hcap, "PROC", TOK_NONE )
413
LEX_TOKEN ( lex_promote, "promote", TOK_NONE )
414
LEX_TOKEN ( lex_promoted, "promoted", TOK_NONE )
415
LEX_TOKEN ( lex_prototype, "prototype", TOK_NONE )
416
LEX_TOKEN ( lex_ptrdiff_Ht, "ptrdiff_t", TOK_SIMPLE_TYPE )
417
LEX_TOKEN ( lex_qualifier, "qualifier", TOK_NONE )
418
LEX_TOKEN ( lex_quote, "quote", TOK_NONE )
419
LEX_TOKEN ( lex_reachable, "reachable", TOK_STATEMENT )
420
LEX_TOKEN ( lex_reference, "reference", TOK_NONE )
421
LEX_TOKEN ( lex_reject, "reject", TOK_NONE )
422
LEX_TOKEN ( lex_representation, "representation", TOK_NONE )
423
LEX_TOKEN ( lex_reset, "reset", TOK_NONE )
424
LEX_TOKEN ( lex_resolution, "resolution", TOK_NONE )
425
LEX_TOKEN ( lex_rvalue, "rvalue", TOK_NONE )
426
LEX_TOKEN ( lex_scalar_Hcap, "SCALAR", TOK_NONE )
427
LEX_TOKEN ( lex_scanf, "scanf", TOK_NONE )
428
LEX_TOKEN ( lex_set, "set", TOK_EXP )
429
LEX_TOKEN ( lex_size_Ht, "size_t", TOK_SIMPLE_TYPE )
430
LEX_TOKEN ( lex_size_Ht_H2, "__size_t", TOK_SIMPLE_TYPE )
431
LEX_TOKEN ( lex_sort, "sort", TOK_NONE )
432
LEX_TOKEN ( lex_std, "std", TOK_NONE )
433
LEX_TOKEN ( lex_stmt_Hcap, "STATEMENT", TOK_NONE )
434
LEX_TOKEN ( lex_string, "string", TOK_NONE )
435
LEX_TOKEN ( lex_struct_Hcap, "STRUCT", TOK_NONE )
436
LEX_TOKEN ( lex_suspend, "suspend", TOK_NONE )
437
LEX_TOKEN ( lex_tag, "tag", TOK_NONE )
438
LEX_TOKEN ( lex_tag_Hcap, "TAG", TOK_NONE )
439
LEX_TOKEN ( lex_tendra, "TenDRA", TOK_NONE )
440
LEX_TOKEN ( lex_text, "text", TOK_NONE )
441
LEX_TOKEN ( lex_this_Hname, "<this>", TOK_EXP )
442
LEX_TOKEN ( lex_token, "token", TOK_NONE )
443
LEX_TOKEN ( lex_type, "type", TOK_NONE )
444
LEX_TOKEN ( lex_type_Hcap, "TYPE", TOK_NONE )
445
LEX_TOKEN ( lex_typeof, "typeof", TOK_NONE )
446
LEX_TOKEN ( lex_un_Hknown, "unknown", TOK_NONE )
447
LEX_TOKEN ( lex_unassert, "unassert", TOK_NONE )
448
LEX_TOKEN ( lex_undef, "undef", TOK_NONE )
449
LEX_TOKEN ( lex_unify, "unify", TOK_NONE )
450
LEX_TOKEN ( lex_union_Hcap, "UNION", TOK_NONE )
451
LEX_TOKEN ( lex_unmatched, "unmatched", TOK_NONE )
452
LEX_TOKEN ( lex_unpostpone, "unpostpone", TOK_NONE )
453
LEX_TOKEN ( lex_unreachable, "unreachable", TOK_STATEMENT )
454
LEX_TOKEN ( lex_unused, "unused", TOK_EXP )
455
LEX_TOKEN ( lex_use, "use", TOK_NONE )
456
LEX_TOKEN ( lex_value, "value", TOK_NONE )
457
LEX_TOKEN ( lex_variable, "variable", TOK_NONE )
458
LEX_TOKEN ( lex_variety_Hcap, "VARIETY", TOK_NONE )
459
LEX_TOKEN ( lex_volatile_Ht, "volatile_t", TOK_NONE )
460
LEX_TOKEN ( lex_vtable, "vtable", TOK_EXP )
461
LEX_TOKEN ( lex_warning, "warning", TOK_NONE )
462
LEX_TOKEN ( lex_weak, "weak", TOK_NONE )
463
LEX_TOKEN ( lex_writeable, "writeable", TOK_NONE )
464
LEX_TOKEN ( lex_zzzz, "<dummy>", TOK_NONE )
465
 
466
 
467
/*
468
    MISCELLANEOUS SYMBOLS
469
 
470
    These tokens describe certain symbols which are used in various
471
    circumstances.
472
*/
473
 
474
LEX_TOKEN ( lex_array_Hop, "[]", TOK_NONE )
475
LEX_TOKEN ( lex_builtin_Hfile, "#file", TOK_NONE )
476
LEX_TOKEN ( lex_builtin_Hline, "#line", TOK_NONE )
477
LEX_TOKEN ( lex_close_Htemplate, ">", TOK_NONE )
478
LEX_TOKEN ( lex_cond_Hop, "?:", TOK_NONE )
479
LEX_TOKEN ( lex_delete_Hfull, "::delete", TOK_NONE )
480
LEX_TOKEN ( lex_delete_Harray, "delete[]", TOK_NONE )
481
LEX_TOKEN ( lex_delete_Harray_Hfull, "::delete[]", TOK_NONE )
482
LEX_TOKEN ( lex_func_Hop, "()", TOK_NONE )
483
LEX_TOKEN ( lex_hash_Hop, "#", TOK_NONE )
484
LEX_TOKEN ( lex_hash_Hhash_Hop, "##", TOK_NONE )
485
LEX_TOKEN ( lex_inset_Hstart, "#pragma", TOK_NONE )
486
LEX_TOKEN ( lex_inset_Hend, "<newline>", TOK_NONE )
487
LEX_TOKEN ( lex_macro_Harg, "<argument>", TOK_NONE )
488
LEX_TOKEN ( lex_new_Hfull, "::new", TOK_NONE )
489
LEX_TOKEN ( lex_new_Harray, "new[]", TOK_NONE )
490
LEX_TOKEN ( lex_new_Harray_Hfull, "::new[]", TOK_NONE )
491
LEX_TOKEN ( lex_open_Hinit, "(", TOK_NONE )
492
LEX_TOKEN ( lex_open_Htemplate, "<", TOK_NONE )
493
LEX_TOKEN ( lex_zzzzzz, "<dummy>", TOK_NONE )
494
 
495
 
496
#endif /* LEX_TOKEN */
497
 
498
 
499
/*
500
    TOKEN GROUPS
501
 
502
    These macros give the bounds for the various groups of tokens.
503
*/
504
 
505
#ifndef FIRST_TOKEN
506
 
507
#define FIRST_TOKEN		lex_unknown
508
#define LAST_TOKEN		lex_zzzzzz
509
 
510
#define FIRST_SYMBOL		lex_and_H1
511
#define LAST_SYMBOL		lex_open_Hsquare_H2
512
 
513
#define FIRST_C_SYMBOL		lex_and_H1
514
#define LAST_C_SYMBOL		lex_xor_Heq_H1
515
 
516
#define FIRST_CPP_SYMBOL	lex_arrow_Hstar
517
#define LAST_CPP_SYMBOL		lex_dot_Hstar
518
 
519
#define FIRST_EXTRA_SYMBOL	lex_abs
520
#define LAST_EXTRA_SYMBOL	lex_min
521
 
522
#define FIRST_DIGRAPH		lex_close_Hbrace_H2
523
#define LAST_DIGRAPH		lex_open_Hsquare_H2
524
 
525
#define FIRST_C_KEYWORD		lex_auto
526
#define LAST_C_KEYWORD		lex_while
527
 
528
#define FIRST_CPP_KEYWORD	lex_asm
529
#define LAST_CPP_KEYWORD	lex_wchar_Ht
530
 
531
#define FIRST_ISO_KEYWORD	lex_and_H2
532
#define LAST_ISO_KEYWORD	lex_xor_Heq_H2
533
 
534
#define FIRST_PP_KEYWORD	lex_hash_Hif
535
#define LAST_PP_KEYWORD		lex_hash_Hpragma
536
 
537
#define FIRST_KEYWORD		lex_auto
538
#define LAST_KEYWORD		lex_zzzz
539
 
540
#define FIRST_COMPLEX_TOKEN	lex_unknown
541
#define LAST_COMPLEX_TOKEN	lex_hash_Hpragma
542
 
543
#endif /* FIRST_TOKEN */