Lines Matching +full:0 +full:- +full:9 +full:a +full:- +full:e

1 /* SPDX-License-Identifier: GPL-2.0-or-later */
23 /* We've got a two-level lexer here. We let flex do basic tokenization
29 IDENT [A-Za-z_\$][A-Za-z0-9_\$]*
31 O_INT 0[0-7]*
32 D_INT [1-9][0-9]*
33 X_INT 0[Xx][0-9A-Fa-f]+
37 FRAC ([0-9]*\.[0-9]+)|([0-9]+\.)
38 EXP [Ee][+-]?[0-9]+
40 REAL ({FRAC}{EXP}?{F_SUF}?)|([0-9]+{EXP}{F_SUF}?)
45 MC_TOKEN ([~%^&*+=|<>/-]=)|(&&)|("||")|(->)|(<<)|(>>)
69 /* The Pedant requires that the other C multi-character tokens be
80 . return yytext[0];
93 * We mark any token, that that equals to a known enumerator, as
96 * enum e { a, b }; struct s { int a, b; }
104 next_node->next = cur_node; \
105 cur_node->string = memcpy(xmalloc(L+1), T, L+1); \
106 cur_node->tag = \
107 find_symbol(cur_node->string, SYM_ENUM_CONST, 1)?\
109 cur_node->in_source_file = in_source_file; \
110 } while (0)
119 * The lexer cannot distinguish whether a typedef'ed string is a TYPE or an
120 * IDENT. We need a hint from the parser to handle this accurately.
136 int token, count = 0;
142 next_node->next = NULL;
149 if (token == 0)
150 return 0;
153 char *file, *e;
161 e = strchr(file, '\"');
162 *e = '\0';
163 cur_filename = memcpy(xmalloc(e-file+1), file, e-file+1);
170 in_source_file = (strcmp(cur_filename, source_file) == 0);
185 if (r >= 0)
191 count = 0;
195 count = 0;
199 count = 0;
214 count = 0;
259 if (--count == 0)
279 if (--count == 0)
294 if (is_reserved_word(yytext, yyleng) >= 0
297 yyless(0);
319 if (--count == 0)
340 if (--count == 0)
360 if (--count == 0)
381 if (count == 0)
393 --count;
397 if (count == 0)
423 if (--count == 0)
440 if (suppress_type_lookup > 0)
441 --suppress_type_lookup;
445 * e.g.) struct __attribute__((__packed__)) foo { ... };
447 if (token != ATTRIBUTE_PHRASE && dont_want_brace_phrase > 0)
448 --dont_want_brace_phrase;
450 yylval = &next_node->next;