d9d7b58db666af94ab6fd180212db57952f58e32
[m6w6/ext-psi] / src / parser.c
1 /* Generated by re2c 1.0.2 on Tue Oct 24 14:53:03 2017 */
2 #line 1 "src/parser.re"
3 /*******************************************************************************
4 Copyright (c) 2016, Michael Wallner <mike@php.net>.
5 All rights reserved.
6
7 Redistribution and use in source and binary forms, with or without
8 modification, are permitted provided that the following conditions are met:
9
10 * Redistributions of source code must retain the above copyright notice,
11 this list of conditions and the following disclaimer.
12 * Redistributions in binary form must reproduce the above copyright
13 notice, this list of conditions and the following disclaimer in the
14 documentation and/or other materials provided with the distribution.
15
16 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
20 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 *******************************************************************************/
27
28 #include "php_psi_stdinc.h"
29 #include <sys/mman.h>
30 #include <assert.h>
31 #include <stdarg.h>
32
33 #include "parser.h"
34
35 #define YYMAXFILL 15
36
37 #ifndef YYMAXFILL
38 # define YYMAXFILL 256
39 #endif
40
41 struct psi_parser *psi_parser_init(struct psi_parser *P, psi_error_cb error, unsigned flags)
42 {
43 if (!P) {
44 P = malloc(sizeof(*P));
45 }
46 memset(P, 0, sizeof(*P));
47
48 psi_data_ctor_with_dtors(PSI_DATA(P), error, flags);
49
50 P->preproc = psi_cpp_init(P);
51
52 psi_cpp_load_defaults(P->preproc);
53
54 return P;
55 }
56
57 struct psi_parser_input *psi_parser_open_file(struct psi_parser *P, const char *filename, bool report_errors)
58 {
59 struct stat sb;
60 FILE *fp;
61 struct psi_parser_input *fb;
62
63 if (stat(filename, &sb)) {
64 if (report_errors) {
65 P->error(PSI_DATA(P), NULL, PSI_WARNING,
66 "Could not stat '%s': %s",
67 filename, strerror(errno));
68 }
69 return NULL;
70 }
71
72 if (!(fb = malloc(sizeof(*fb) + strlen(filename) + 1 + sb.st_size + YYMAXFILL))) {
73 if (report_errors) {
74 P->error(PSI_DATA(P), NULL, PSI_WARNING,
75 "Could not allocate %zu bytes for reading '%s': %s",
76 sb.st_size + YYMAXFILL, filename, strerror(errno));
77 }
78 return NULL;
79 }
80
81 if (!(fp = fopen(filename, "r"))) {
82 free(fb);
83 if (report_errors) {
84 P->error(PSI_DATA(P), NULL, PSI_WARNING,
85 "Could not open '%s' for reading: %s",
86 filename, strerror(errno));
87 }
88 return NULL;
89 }
90
91 if (sb.st_size != fread(fb->buffer, 1, sb.st_size, fp)) {
92 free(fb);
93 fclose(fp);
94 if (report_errors) {
95 P->error(PSI_DATA(P), NULL, PSI_WARNING,
96 "Could not read %zu bytes from '%s': %s",
97 sb.st_size + YYMAXFILL, filename, strerror(errno));
98 }
99 return NULL;
100 }
101
102 memset(fb->buffer + sb.st_size, 0, YYMAXFILL);
103 fb->length = sb.st_size;
104 fb->file = &fb->buffer[sb.st_size + YYMAXFILL];
105 memcpy(fb->file, filename, strlen(filename) + 1);
106
107 return fb;
108 }
109
110 struct psi_parser_input *psi_parser_open_string(struct psi_parser *P, const char *string, size_t length)
111 {
112 struct psi_parser_input *sb;
113
114 if (!(sb = malloc(sizeof(*sb) + sizeof("<stdin>") + length + YYMAXFILL))) {
115 P->error(PSI_DATA(P), NULL, PSI_WARNING,
116 "Could not allocate %zu bytes: %s",
117 length + YYMAXFILL, strerror(errno));
118 return NULL;
119 }
120
121 memcpy(sb->buffer, string, length);
122 memset(sb->buffer + length, 0, YYMAXFILL);
123
124 sb->length = length;
125 sb->file = &sb->buffer[length + YYMAXFILL];
126 memcpy(sb->file, "<stdin>", sizeof("<stdin>"));
127
128 return sb;
129 }
130
131 #if 0
132 static void psi_parser_register_constants(struct psi_parser *P)
133 {
134 zend_string *key;
135 zval *val;
136
137 ZEND_HASH_FOREACH_STR_KEY_VAL(&P->cpp.defs, key, val)
138 {
139 struct psi_impl_def_val *iv;
140 struct psi_const_type *ct;
141 struct psi_const *c;
142 const char *ctn;
143 token_t ctt;
144 impl_val tmp;
145 zend_string *str;
146
147 ZVAL_DEREF(val);
148 switch (Z_TYPE_P(val)) {
149 case IS_TRUE:
150 case IS_FALSE:
151 ctt = PSI_T_BOOL;
152 ctn = "bool";
153 tmp.zend.bval = Z_TYPE_P(val) == IS_TRUE;
154 break;
155 case IS_LONG:
156 ctt = PSI_T_INT;
157 ctn = "int";
158 tmp.zend.lval = Z_LVAL_P(val);
159 break;
160 case IS_DOUBLE:
161 ctt = PSI_T_FLOAT;
162 ctn = "float";
163 tmp.dval = Z_DVAL_P(val);
164 break;
165 default:
166 ctt = PSI_T_STRING;
167 ctn = "string";
168 str = zval_get_string(val);
169 tmp.zend.str = zend_string_dup(str, 1);
170 zend_string_release(str);
171 break;
172 }
173
174 iv = psi_impl_def_val_init(ctt, NULL);
175 iv->ival = tmp;
176 ct = psi_const_type_init(ctt, ctn);
177 c = psi_const_init(ct, key->val, iv);
178 if (!P->consts) {
179 P->consts = psi_plist_init((psi_plist_dtor) psi_const_free);
180 }
181 P->consts = psi_plist_add(P->consts, &c);
182 }
183 ZEND_HASH_FOREACH_END();
184 }
185 #endif
186
187 struct psi_plist *psi_parser_preprocess(struct psi_parser *P, struct psi_plist **tokens)
188 {
189 if (psi_cpp_process(P->preproc, tokens)) {
190 return *tokens;
191 }
192 return NULL;
193 }
194
195 bool psi_parser_process(struct psi_parser *P, struct psi_plist *tokens, size_t *processed)
196 {
197 if (psi_plist_count(tokens)) {
198 return 0 == psi_parser_proc_parse(P, tokens, processed);
199 }
200 return true;
201 }
202
203 void psi_parser_postprocess(struct psi_parser *P)
204 {
205 unsigned flags;
206 zend_string *name;
207 struct psi_validate_scope scope = {0};
208
209 psi_validate_scope_ctor(&scope);
210 scope.defs = &P->preproc->defs;
211
212 flags = P->flags;
213 P->flags |= PSI_SILENT;
214
215 /* register const macros */
216 ZEND_HASH_FOREACH_STR_KEY_PTR(&P->preproc->defs, name, scope.macro)
217 {
218 if (scope.macro->sig) {
219 } else if (scope.macro->exp) {
220 if (psi_num_exp_validate(PSI_DATA(P), scope.macro->exp, &scope)) {
221 struct psi_impl_type *type;
222 struct psi_impl_def_val *def;
223 struct psi_const *cnst;
224 struct psi_num_exp *num;
225 char *name_str = malloc(name->len + sizeof("psi\\"));
226
227 strcat(strcpy(name_str, "psi\\"), name->val);
228 num = psi_num_exp_copy(scope.macro->exp);
229 def = psi_impl_def_val_init(PSI_T_NUMBER, num);
230 type = psi_impl_type_init(PSI_T_NUMBER, "<eval number>");
231 cnst = psi_const_init(type, name_str, def);
232 P->consts = psi_plist_add(P->consts, &cnst);
233 free(name_str);
234 }
235 } else {
236 if (psi_plist_count(scope.macro->tokens) == 1) {
237 struct psi_token *t;
238
239 if (psi_plist_get(scope.macro->tokens, 0, &t)) {
240 if (t->type == PSI_T_QUOTED_STRING) {
241 struct psi_impl_type *type;
242 struct psi_impl_def_val *def;
243 struct psi_const *cnst;
244 char *name_str = malloc(name->len + sizeof("psi\\"));
245
246 strcat(strcpy(name_str, "psi\\"), name->val);
247 type = psi_impl_type_init(PSI_T_STRING, "string");
248 def = psi_impl_def_val_init(PSI_T_QUOTED_STRING, t->text);
249 cnst = psi_const_init(type, name_str, def);
250 P->consts = psi_plist_add(P->consts, &cnst);
251 free(name_str);
252 }
253 }
254 }
255 }
256 }
257 ZEND_HASH_FOREACH_END();
258
259 P->flags = flags;
260
261 psi_validate_scope_dtor(&scope);
262 }
263
264 bool psi_parser_parse(struct psi_parser *P, struct psi_parser_input *I)
265 {
266 struct psi_plist *scanned, *preproc;
267 size_t processed = 0;
268
269 if (!(scanned = psi_parser_scan(P, I))) {
270 return false;
271 }
272
273 if (!(preproc = psi_parser_preprocess(P, &scanned))) {
274 psi_plist_free(scanned);
275 return false;
276 }
277
278 if (!psi_parser_process(P, preproc, &processed)) {
279 psi_plist_free(preproc);
280 return false;
281 }
282
283 psi_parser_postprocess(P);
284
285 psi_plist_free(preproc);
286 return true;
287 }
288
289 void psi_parser_dtor(struct psi_parser *P)
290 {
291 psi_cpp_free(&P->preproc);
292 psi_data_dtor(PSI_DATA(P));
293
294 memset(P, 0, sizeof(*P));
295 }
296
297 void psi_parser_free(struct psi_parser **P)
298 {
299 if (*P) {
300 psi_parser_dtor(*P);
301 free(*P);
302 *P = NULL;
303 }
304 }
305
306 #define NEWLINE() \
307 eol = cur; \
308 ++I->lines
309
310 #define NEWTOKEN(t) \
311 token = psi_token_init(t, tok, cur - tok, tok - eol + 1, I->lines, I->file); \
312 tokens = psi_plist_add(tokens, &token); \
313 if (P->flags & PSI_DEBUG) { \
314 fprintf(stderr, "PSI< "); \
315 psi_token_dump(2, token); \
316 }
317
318 union int_suffix {
319 char s[4];
320 uint32_t i;
321 };
322
323 struct psi_plist *psi_parser_scan(struct psi_parser *P, struct psi_parser_input *I)
324 {
325 struct psi_plist *tokens;
326 struct psi_token *token;
327 const char *tok, *cur, *lim, *mrk, *eol, *ctxmrk;
328 unsigned parens;
329 bool escaped;
330 token_t char_width;
331
332 PSI_DEBUG_PRINT(P, "PSI: scanning %s\n", I->file);
333
334 tok = mrk = eol = cur = I->buffer;
335 lim = I->buffer + I->length;
336 I->lines = 1;
337 tokens = psi_plist_init((psi_plist_dtor) psi_token_free);
338
339 start: ;
340 char_width = 1;
341 ctxmrk = NULL;
342 tok = cur;
343
344 (void) ctxmrk;
345
346
347 #line 348 "src/parser.c"
348 {
349 unsigned char yych;
350 unsigned int yyaccept = 0;
351 if ((lim - cur) < 15) if (cur >= lim) goto done;;
352 yych = *cur;
353 switch (yych) {
354 case 0x00:
355 case 0x01:
356 case 0x02:
357 case 0x03:
358 case 0x04:
359 case 0x05:
360 case 0x06:
361 case 0x07:
362 case 0x08:
363 case '\v':
364 case 0x0E:
365 case 0x0F:
366 case 0x10:
367 case 0x11:
368 case 0x12:
369 case 0x13:
370 case 0x14:
371 case 0x15:
372 case 0x16:
373 case 0x17:
374 case 0x18:
375 case 0x19:
376 case 0x1A:
377 case 0x1B:
378 case 0x1C:
379 case 0x1D:
380 case 0x1E:
381 case 0x1F:
382 case '@':
383 case '`':
384 case 0x7F: goto yy2;
385 case '\t':
386 case '\f':
387 case ' ': goto yy4;
388 case '\n':
389 case '\r': goto yy7;
390 case '!': goto yy9;
391 case '"': goto yy11;
392 case '#': goto yy13;
393 case '$': goto yy15;
394 case '%': goto yy16;
395 case '&': goto yy18;
396 case '\'': goto yy20;
397 case '(': goto yy22;
398 case ')': goto yy24;
399 case '*': goto yy26;
400 case '+': goto yy28;
401 case ',': goto yy30;
402 case '-': goto yy32;
403 case '.': goto yy34;
404 case '/': goto yy36;
405 case '0': goto yy38;
406 case '1':
407 case '2':
408 case '3':
409 case '4':
410 case '5':
411 case '6':
412 case '7':
413 case '8':
414 case '9': goto yy40;
415 case ':': goto yy42;
416 case ';': goto yy44;
417 case '<': goto yy46;
418 case '=': goto yy48;
419 case '>': goto yy50;
420 case '?': goto yy52;
421 case 'A':
422 case 'a': goto yy54;
423 case 'B': goto yy56;
424 case 'C': goto yy57;
425 case 'D': goto yy58;
426 case 'E': goto yy59;
427 case 'F': goto yy60;
428 case 'I': goto yy63;
429 case 'L': goto yy64;
430 case 'M':
431 case 'm': goto yy65;
432 case 'N':
433 case 'n': goto yy66;
434 case 'O':
435 case 'o': goto yy67;
436 case 'P': goto yy68;
437 case 'R':
438 case 'r': goto yy69;
439 case 'S': goto yy70;
440 case 'T': goto yy71;
441 case 'U': goto yy72;
442 case 'W':
443 case 'w': goto yy73;
444 case 'Z':
445 case 'z': goto yy74;
446 case '[': goto yy75;
447 case '\\': goto yy77;
448 case ']': goto yy79;
449 case '^': goto yy81;
450 case '_': goto yy83;
451 case 'b': goto yy84;
452 case 'c': goto yy85;
453 case 'd': goto yy86;
454 case 'e': goto yy87;
455 case 'f': goto yy88;
456 case 'i': goto yy89;
457 case 'l': goto yy90;
458 case 'p': goto yy91;
459 case 's': goto yy92;
460 case 't': goto yy93;
461 case 'u': goto yy94;
462 case 'v': goto yy95;
463 case '{': goto yy96;
464 case '|': goto yy98;
465 case '}': goto yy100;
466 case '~': goto yy102;
467 default: goto yy61;
468 }
469 yy2:
470 ++cur;
471 yy3:
472 #line 513 "src/parser.re"
473 { NEWTOKEN(-2); goto error; }
474 #line 475 "src/parser.c"
475 yy4:
476 ++cur;
477 if (lim <= cur) if (cur >= lim) goto done;;
478 yych = *cur;
479 switch (yych) {
480 case '\t':
481 case '\f':
482 case ' ': goto yy4;
483 default: goto yy6;
484 }
485 yy6:
486 #line 512 "src/parser.re"
487 { NEWTOKEN(PSI_T_WHITESPACE); goto start; }
488 #line 489 "src/parser.c"
489 yy7:
490 ++cur;
491 #line 511 "src/parser.re"
492 { NEWTOKEN(PSI_T_EOL); NEWLINE(); goto start; }
493 #line 494 "src/parser.c"
494 yy9:
495 yych = *++cur;
496 switch (yych) {
497 case '=': goto yy104;
498 default: goto yy10;
499 }
500 yy10:
501 #line 414 "src/parser.re"
502 { NEWTOKEN(PSI_T_NOT); goto start; }
503 #line 504 "src/parser.c"
504 yy11:
505 ++cur;
506 #line 387 "src/parser.re"
507 { escaped = false; tok += 1; goto string; }
508 #line 509 "src/parser.c"
509 yy13:
510 yych = *++cur;
511 switch (yych) {
512 case '#': goto yy106;
513 default: goto yy14;
514 }
515 yy14:
516 #line 397 "src/parser.re"
517 { NEWTOKEN(PSI_T_HASH); goto start; }
518 #line 519 "src/parser.c"
519 yy15:
520 yych = *++cur;
521 switch (yych) {
522 case 0x00:
523 case 0x01:
524 case 0x02:
525 case 0x03:
526 case 0x04:
527 case 0x05:
528 case 0x06:
529 case 0x07:
530 case 0x08:
531 case '\t':
532 case '\n':
533 case '\v':
534 case '\f':
535 case '\r':
536 case 0x0E:
537 case 0x0F:
538 case 0x10:
539 case 0x11:
540 case 0x12:
541 case 0x13:
542 case 0x14:
543 case 0x15:
544 case 0x16:
545 case 0x17:
546 case 0x18:
547 case 0x19:
548 case 0x1A:
549 case 0x1B:
550 case 0x1C:
551 case 0x1D:
552 case 0x1E:
553 case 0x1F:
554 case ' ':
555 case '!':
556 case '"':
557 case '#':
558 case '$':
559 case '%':
560 case '&':
561 case '\'':
562 case '(':
563 case ')':
564 case '*':
565 case '+':
566 case ',':
567 case '-':
568 case '.':
569 case '/':
570 case ':':
571 case ';':
572 case '<':
573 case '=':
574 case '>':
575 case '?':
576 case '@':
577 case '[':
578 case '\\':
579 case ']':
580 case '^':
581 case '`':
582 case '{':
583 case '|':
584 case '}':
585 case '~':
586 case 0x7F: goto yy3;
587 default: goto yy108;
588 }
589 yy16:
590 ++cur;
591 #line 415 "src/parser.re"
592 { NEWTOKEN(PSI_T_MODULO); goto start; }
593 #line 594 "src/parser.c"
594 yy18:
595 yych = *++cur;
596 switch (yych) {
597 case '&': goto yy111;
598 default: goto yy19;
599 }
600 yy19:
601 #line 416 "src/parser.re"
602 { NEWTOKEN(PSI_T_AMPERSAND); goto start; }
603 #line 604 "src/parser.c"
604 yy20:
605 ++cur;
606 #line 386 "src/parser.re"
607 { escaped = false; tok += 1; goto character; }
608 #line 609 "src/parser.c"
609 yy22:
610 ++cur;
611 #line 398 "src/parser.re"
612 { NEWTOKEN(PSI_T_LPAREN); goto start; }
613 #line 614 "src/parser.c"
614 yy24:
615 ++cur;
616 #line 399 "src/parser.re"
617 { NEWTOKEN(PSI_T_RPAREN); goto start; }
618 #line 619 "src/parser.c"
619 yy26:
620 ++cur;
621 #line 412 "src/parser.re"
622 { NEWTOKEN(PSI_T_ASTERISK); goto start; }
623 #line 624 "src/parser.c"
624 yy28:
625 yyaccept = 0;
626 yych = *(mrk = ++cur);
627 switch (yych) {
628 case '.': goto yy113;
629 case '0': goto yy38;
630 case '1':
631 case '2':
632 case '3':
633 case '4':
634 case '5':
635 case '6':
636 case '7':
637 case '8':
638 case '9': goto yy40;
639 default: goto yy29;
640 }
641 yy29:
642 #line 417 "src/parser.re"
643 { NEWTOKEN(PSI_T_PLUS); goto start; }
644 #line 645 "src/parser.c"
645 yy30:
646 ++cur;
647 #line 401 "src/parser.re"
648 { NEWTOKEN(PSI_T_COMMA); goto start; }
649 #line 650 "src/parser.c"
650 yy32:
651 yyaccept = 1;
652 yych = *(mrk = ++cur);
653 switch (yych) {
654 case '.': goto yy113;
655 case '0': goto yy38;
656 case '1':
657 case '2':
658 case '3':
659 case '4':
660 case '5':
661 case '6':
662 case '7':
663 case '8':
664 case '9': goto yy40;
665 default: goto yy33;
666 }
667 yy33:
668 #line 418 "src/parser.re"
669 { NEWTOKEN(PSI_T_MINUS); goto start; }
670 #line 671 "src/parser.c"
671 yy34:
672 yyaccept = 2;
673 yych = *(mrk = ++cur);
674 switch (yych) {
675 case '.': goto yy115;
676 case '0':
677 case '1':
678 case '2':
679 case '3':
680 case '4':
681 case '5':
682 case '6':
683 case '7':
684 case '8':
685 case '9': goto yy116;
686 default: goto yy35;
687 }
688 yy35:
689 #line 429 "src/parser.re"
690 { NEWTOKEN(PSI_T_PERIOD); goto start; }
691 #line 692 "src/parser.c"
692 yy36:
693 yych = *++cur;
694 switch (yych) {
695 case '*': goto yy119;
696 case '/': goto yy121;
697 default: goto yy37;
698 }
699 yy37:
700 #line 419 "src/parser.re"
701 { NEWTOKEN(PSI_T_SLASH); goto start; }
702 #line 703 "src/parser.c"
703 yy38:
704 yyaccept = 3;
705 yych = *(mrk = ++cur);
706 switch (yych) {
707 case '.': goto yy123;
708 case 'E':
709 case 'e': goto yy127;
710 case 'X':
711 case 'x': goto yy132;
712 default: goto yy126;
713 }
714 yy39:
715 #line 373 "src/parser.re"
716 { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT; goto start; }
717 #line 718 "src/parser.c"
718 yy40:
719 yyaccept = 3;
720 mrk = ++cur;
721 if ((lim - cur) < 3) if (cur >= lim) goto done;;
722 yych = *cur;
723 switch (yych) {
724 case '.': goto yy123;
725 case '0':
726 case '1':
727 case '2':
728 case '3':
729 case '4':
730 case '5':
731 case '6':
732 case '7':
733 case '8':
734 case '9': goto yy40;
735 case 'E':
736 case 'e': goto yy127;
737 case 'L':
738 case 'l': goto yy128;
739 case 'U':
740 case 'u': goto yy130;
741 default: goto yy39;
742 }
743 yy42:
744 ++cur;
745 #line 402 "src/parser.re"
746 { NEWTOKEN(PSI_T_COLON); goto start; }
747 #line 748 "src/parser.c"
748 yy44:
749 ++cur;
750 #line 400 "src/parser.re"
751 { NEWTOKEN(PSI_T_EOS); goto start; }
752 #line 753 "src/parser.c"
753 yy46:
754 yyaccept = 4;
755 yych = *(mrk = ++cur);
756 switch (yych) {
757 case '-':
758 case '.':
759 case '/':
760 case '0':
761 case '1':
762 case '2':
763 case '3':
764 case '4':
765 case '5':
766 case '6':
767 case '7':
768 case '8':
769 case '9':
770 case 'A':
771 case 'B':
772 case 'C':
773 case 'D':
774 case 'E':
775 case 'F':
776 case 'G':
777 case 'H':
778 case 'I':
779 case 'J':
780 case 'K':
781 case 'L':
782 case 'M':
783 case 'N':
784 case 'O':
785 case 'P':
786 case 'Q':
787 case 'R':
788 case 'S':
789 case 'T':
790 case 'U':
791 case 'V':
792 case 'W':
793 case 'X':
794 case 'Y':
795 case 'Z':
796 case '_':
797 case 'a':
798 case 'b':
799 case 'c':
800 case 'd':
801 case 'e':
802 case 'f':
803 case 'g':
804 case 'h':
805 case 'i':
806 case 'j':
807 case 'k':
808 case 'l':
809 case 'm':
810 case 'n':
811 case 'o':
812 case 'p':
813 case 'q':
814 case 'r':
815 case 's':
816 case 't':
817 case 'u':
818 case 'v':
819 case 'w':
820 case 'x':
821 case 'y':
822 case 'z': goto yy133;
823 case '<': goto yy135;
824 case '=': goto yy137;
825 default: goto yy47;
826 }
827 yy47:
828 #line 427 "src/parser.re"
829 { NEWTOKEN(PSI_T_LCHEVR); goto start; }
830 #line 831 "src/parser.c"
831 yy48:
832 yych = *++cur;
833 switch (yych) {
834 case '=': goto yy139;
835 default: goto yy49;
836 }
837 yy49:
838 #line 411 "src/parser.re"
839 { NEWTOKEN(PSI_T_EQUALS); goto start; }
840 #line 841 "src/parser.c"
841 yy50:
842 yych = *++cur;
843 switch (yych) {
844 case '=': goto yy141;
845 case '>': goto yy143;
846 default: goto yy51;
847 }
848 yy51:
849 #line 428 "src/parser.re"
850 { NEWTOKEN(PSI_T_RCHEVR); goto start; }
851 #line 852 "src/parser.c"
852 yy52:
853 ++cur;
854 #line 431 "src/parser.re"
855 { NEWTOKEN(PSI_T_IIF); goto start; }
856 #line 857 "src/parser.c"
857 yy54:
858 yyaccept = 5;
859 yych = *(mrk = ++cur);
860 switch (yych) {
861 case 'R':
862 case 'r': goto yy145;
863 case 'S':
864 case 's': goto yy146;
865 default: goto yy62;
866 }
867 yy55:
868 #line 506 "src/parser.re"
869 { NEWTOKEN(PSI_T_NAME); goto start; }
870 #line 871 "src/parser.c"
871 yy56:
872 yyaccept = 5;
873 yych = *(mrk = ++cur);
874 switch (yych) {
875 case 'O':
876 case 'o': goto yy149;
877 default: goto yy62;
878 }
879 yy57:
880 yyaccept = 5;
881 yych = *(mrk = ++cur);
882 switch (yych) {
883 case 'A':
884 case 'a': goto yy150;
885 case 'O':
886 case 'o': goto yy151;
887 default: goto yy62;
888 }
889 yy58:
890 yyaccept = 5;
891 yych = *(mrk = ++cur);
892 switch (yych) {
893 case 'E':
894 case 'e': goto yy152;
895 default: goto yy62;
896 }
897 yy59:
898 yyaccept = 5;
899 yych = *(mrk = ++cur);
900 switch (yych) {
901 case 'L':
902 case 'l': goto yy153;
903 case 'N':
904 case 'n': goto yy154;
905 case 'R':
906 case 'r': goto yy155;
907 default: goto yy62;
908 }
909 yy60:
910 yyaccept = 5;
911 yych = *(mrk = ++cur);
912 switch (yych) {
913 case 'A':
914 case 'a': goto yy156;
915 case 'L':
916 case 'l': goto yy157;
917 case 'R':
918 case 'r': goto yy158;
919 case 'U':
920 case 'u': goto yy159;
921 default: goto yy62;
922 }
923 yy61:
924 yyaccept = 5;
925 mrk = ++cur;
926 if (lim <= cur) if (cur >= lim) goto done;;
927 yych = *cur;
928 yy62:
929 switch (yych) {
930 case 0x00:
931 case 0x01:
932 case 0x02:
933 case 0x03:
934 case 0x04:
935 case 0x05:
936 case 0x06:
937 case 0x07:
938 case 0x08:
939 case '\t':
940 case '\n':
941 case '\v':
942 case '\f':
943 case '\r':
944 case 0x0E:
945 case 0x0F:
946 case 0x10:
947 case 0x11:
948 case 0x12:
949 case 0x13:
950 case 0x14:
951 case 0x15:
952 case 0x16:
953 case 0x17:
954 case 0x18:
955 case 0x19:
956 case 0x1A:
957 case 0x1B:
958 case 0x1C:
959 case 0x1D:
960 case 0x1E:
961 case 0x1F:
962 case ' ':
963 case '!':
964 case '"':
965 case '#':
966 case '$':
967 case '%':
968 case '&':
969 case '\'':
970 case '(':
971 case ')':
972 case '*':
973 case '+':
974 case ',':
975 case '-':
976 case '.':
977 case '/':
978 case ':':
979 case ';':
980 case '<':
981 case '=':
982 case '>':
983 case '?':
984 case '@':
985 case '[':
986 case ']':
987 case '^':
988 case '`':
989 case '{':
990 case '|':
991 case '}':
992 case '~':
993 case 0x7F: goto yy55;
994 case '\\': goto yy148;
995 default: goto yy61;
996 }
997 yy63:
998 yyaccept = 5;
999 yych = *(mrk = ++cur);
1000 switch (yych) {
1001 case 'F':
1002 case 'f': goto yy160;
1003 case 'N':
1004 case 'n': goto yy162;
1005 default: goto yy62;
1006 }
1007 yy64:
1008 yyaccept = 5;
1009 yych = *(mrk = ++cur);
1010 switch (yych) {
1011 case '"':
1012 case '\'': goto yy163;
1013 case 'E':
1014 case 'e': goto yy165;
1015 case 'I':
1016 case 'i': goto yy166;
1017 default: goto yy62;
1018 }
1019 yy65:
1020 yyaccept = 5;
1021 yych = *(mrk = ++cur);
1022 switch (yych) {
1023 case 'I':
1024 case 'i': goto yy167;
1025 default: goto yy62;
1026 }
1027 yy66:
1028 yyaccept = 5;
1029 yych = *(mrk = ++cur);
1030 switch (yych) {
1031 case 'U':
1032 case 'u': goto yy168;
1033 default: goto yy62;
1034 }
1035 yy67:
1036 yyaccept = 5;
1037 yych = *(mrk = ++cur);
1038 switch (yych) {
1039 case 'B':
1040 case 'b': goto yy169;
1041 default: goto yy62;
1042 }
1043 yy68:
1044 yyaccept = 5;
1045 yych = *(mrk = ++cur);
1046 switch (yych) {
1047 case 'A':
1048 case 'a': goto yy170;
1049 case 'O':
1050 case 'o': goto yy171;
1051 case 'R':
1052 case 'r': goto yy172;
1053 default: goto yy62;
1054 }
1055 yy69:
1056 yyaccept = 5;
1057 yych = *(mrk = ++cur);
1058 switch (yych) {
1059 case 'E':
1060 case 'e': goto yy173;
1061 default: goto yy62;
1062 }
1063 yy70:
1064 yyaccept = 5;
1065 yych = *(mrk = ++cur);
1066 switch (yych) {
1067 case 'E':
1068 case 'e': goto yy174;
1069 case 'T':
1070 case 't': goto yy175;
1071 default: goto yy62;
1072 }
1073 yy71:
1074 yyaccept = 5;
1075 yych = *(mrk = ++cur);
1076 switch (yych) {
1077 case 'E':
1078 case 'e': goto yy176;
1079 case 'O':
1080 case 'o': goto yy177;
1081 case 'R':
1082 case 'r': goto yy178;
1083 default: goto yy62;
1084 }
1085 yy72:
1086 yyaccept = 5;
1087 yych = *(mrk = ++cur);
1088 switch (yych) {
1089 case '"':
1090 case '\'': goto yy179;
1091 case 'N':
1092 case 'n': goto yy181;
1093 default: goto yy62;
1094 }
1095 yy73:
1096 yyaccept = 5;
1097 yych = *(mrk = ++cur);
1098 switch (yych) {
1099 case 'A':
1100 case 'a': goto yy182;
1101 default: goto yy62;
1102 }
1103 yy74:
1104 yyaccept = 5;
1105 yych = *(mrk = ++cur);
1106 switch (yych) {
1107 case 'V':
1108 case 'v': goto yy183;
1109 default: goto yy62;
1110 }
1111 yy75:
1112 ++cur;
1113 #line 405 "src/parser.re"
1114 { NEWTOKEN(PSI_T_LBRACKET); goto start; }
1115 #line 1116 "src/parser.c"
1116 yy77:
1117 yych = *++cur;
1118 switch (yych) {
1119 case 0x00:
1120 case 0x01:
1121 case 0x02:
1122 case 0x03:
1123 case 0x04:
1124 case 0x05:
1125 case 0x06:
1126 case 0x07:
1127 case 0x08:
1128 case '\t':
1129 case '\n':
1130 case '\v':
1131 case '\f':
1132 case '\r':
1133 case 0x0E:
1134 case 0x0F:
1135 case 0x10:
1136 case 0x11:
1137 case 0x12:
1138 case 0x13:
1139 case 0x14:
1140 case 0x15:
1141 case 0x16:
1142 case 0x17:
1143 case 0x18:
1144 case 0x19:
1145 case 0x1A:
1146 case 0x1B:
1147 case 0x1C:
1148 case 0x1D:
1149 case 0x1E:
1150 case 0x1F:
1151 case ' ':
1152 case '!':
1153 case '"':
1154 case '#':
1155 case '$':
1156 case '%':
1157 case '&':
1158 case '\'':
1159 case '(':
1160 case ')':
1161 case '*':
1162 case '+':
1163 case ',':
1164 case '-':
1165 case '.':
1166 case '/':
1167 case '0':
1168 case '1':
1169 case '2':
1170 case '3':
1171 case '4':
1172 case '5':
1173 case '6':
1174 case '7':
1175 case '8':
1176 case '9':
1177 case ':':
1178 case ';':
1179 case '<':
1180 case '=':
1181 case '>':
1182 case '?':
1183 case '@':
1184 case '[':
1185 case '\\':
1186 case ']':
1187 case '^':
1188 case '`':
1189 case '{':
1190 case '|':
1191 case '}':
1192 case '~':
1193 case 0x7F: goto yy78;
1194 default: goto yy184;
1195 }
1196 yy78:
1197 #line 420 "src/parser.re"
1198 { NEWTOKEN(PSI_T_BSLASH); goto start; }
1199 #line 1200 "src/parser.c"
1200 yy79:
1201 ++cur;
1202 #line 406 "src/parser.re"
1203 { NEWTOKEN(PSI_T_RBRACKET); goto start; }
1204 #line 1205 "src/parser.c"
1205 yy81:
1206 ++cur;
1207 #line 422 "src/parser.re"
1208 { NEWTOKEN(PSI_T_CARET); goto start; }
1209 #line 1210 "src/parser.c"
1210 yy83:
1211 yyaccept = 5;
1212 yych = *(mrk = ++cur);
1213 switch (yych) {
1214 case '_': goto yy187;
1215 default: goto yy62;
1216 }
1217 yy84:
1218 yyaccept = 5;
1219 yych = *(mrk = ++cur);
1220 switch (yych) {
1221 case 'O': goto yy149;
1222 case 'o': goto yy188;
1223 default: goto yy62;
1224 }
1225 yy85:
1226 yyaccept = 5;
1227 yych = *(mrk = ++cur);
1228 switch (yych) {
1229 case 'A':
1230 case 'a': goto yy150;
1231 case 'O': goto yy151;
1232 case 'h': goto yy189;
1233 case 'o': goto yy190;
1234 default: goto yy62;
1235 }
1236 yy86:
1237 yyaccept = 5;
1238 yych = *(mrk = ++cur);
1239 switch (yych) {
1240 case 'E':
1241 case 'e': goto yy152;
1242 case 'o': goto yy191;
1243 default: goto yy62;
1244 }
1245 yy87:
1246 yyaccept = 5;
1247 yych = *(mrk = ++cur);
1248 switch (yych) {
1249 case 'L':
1250 case 'l': goto yy153;
1251 case 'N': goto yy154;
1252 case 'R':
1253 case 'r': goto yy155;
1254 case 'n': goto yy192;
1255 default: goto yy62;
1256 }
1257 yy88:
1258 yyaccept = 5;
1259 yych = *(mrk = ++cur);
1260 switch (yych) {
1261 case 'A':
1262 case 'a': goto yy156;
1263 case 'L': goto yy157;
1264 case 'R':
1265 case 'r': goto yy158;
1266 case 'U':
1267 case 'u': goto yy159;
1268 case 'l': goto yy193;
1269 default: goto yy62;
1270 }
1271 yy89:
1272 yyaccept = 5;
1273 yych = *(mrk = ++cur);
1274 switch (yych) {
1275 case 'F':
1276 case 'f': goto yy160;
1277 case 'N': goto yy162;
1278 case 'n': goto yy194;
1279 default: goto yy62;
1280 }
1281 yy90:
1282 yyaccept = 5;
1283 yych = *(mrk = ++cur);
1284 switch (yych) {
1285 case 'E':
1286 case 'e': goto yy165;
1287 case 'I': goto yy166;
1288 case 'i': goto yy195;
1289 case 'o': goto yy196;
1290 default: goto yy62;
1291 }
1292 yy91:
1293 yyaccept = 5;
1294 yych = *(mrk = ++cur);
1295 switch (yych) {
1296 case 'A':
1297 case 'a': goto yy170;
1298 case 'O':
1299 case 'o': goto yy171;
1300 case 'R': goto yy172;
1301 case 'r': goto yy197;
1302 default: goto yy62;
1303 }
1304 yy92:
1305 yyaccept = 5;
1306 yych = *(mrk = ++cur);
1307 switch (yych) {
1308 case 'E':
1309 case 'e': goto yy174;
1310 case 'T': goto yy175;
1311 case 'h': goto yy198;
1312 case 'i': goto yy199;
1313 case 't': goto yy200;
1314 default: goto yy62;
1315 }
1316 yy93:
1317 yyaccept = 5;
1318 yych = *(mrk = ++cur);
1319 switch (yych) {
1320 case 'E':
1321 case 'e': goto yy176;
1322 case 'O':
1323 case 'o': goto yy177;
1324 case 'R':
1325 case 'r': goto yy178;
1326 case 'y': goto yy201;
1327 default: goto yy62;
1328 }
1329 yy94:
1330 yyaccept = 5;
1331 yych = *(mrk = ++cur);
1332 switch (yych) {
1333 case '"':
1334 case '\'': goto yy202;
1335 case '8': goto yy204;
1336 case 'N': goto yy181;
1337 case 'n': goto yy205;
1338 default: goto yy62;
1339 }
1340 yy95:
1341 yyaccept = 5;
1342 yych = *(mrk = ++cur);
1343 switch (yych) {
1344 case 'o': goto yy206;
1345 default: goto yy62;
1346 }
1347 yy96:
1348 ++cur;
1349 #line 403 "src/parser.re"
1350 { NEWTOKEN(PSI_T_LBRACE); goto start; }
1351 #line 1352 "src/parser.c"
1352 yy98:
1353 yych = *++cur;
1354 switch (yych) {
1355 case '|': goto yy207;
1356 default: goto yy99;
1357 }
1358 yy99:
1359 #line 421 "src/parser.re"
1360 { NEWTOKEN(PSI_T_PIPE); goto start; }
1361 #line 1362 "src/parser.c"
1362 yy100:
1363 ++cur;
1364 #line 404 "src/parser.re"
1365 { NEWTOKEN(PSI_T_RBRACE); goto start; }
1366 #line 1367 "src/parser.c"
1367 yy102:
1368 ++cur;
1369 #line 413 "src/parser.re"
1370 { NEWTOKEN(PSI_T_TILDE); goto start; }
1371 #line 1372 "src/parser.c"
1372 yy104:
1373 ++cur;
1374 #line 407 "src/parser.re"
1375 { NEWTOKEN(PSI_T_CMP_NE); goto start; }
1376 #line 1377 "src/parser.c"
1377 yy106:
1378 ++cur;
1379 #line 396 "src/parser.re"
1380 { NEWTOKEN(PSI_T_CPP_PASTE); goto start; }
1381 #line 1382 "src/parser.c"
1382 yy108:
1383 ++cur;
1384 if (lim <= cur) if (cur >= lim) goto done;;
1385 yych = *cur;
1386 switch (yych) {
1387 case 0x00:
1388 case 0x01:
1389 case 0x02:
1390 case 0x03:
1391 case 0x04:
1392 case 0x05:
1393 case 0x06:
1394 case 0x07:
1395 case 0x08:
1396 case '\t':
1397 case '\n':
1398 case '\v':
1399 case '\f':
1400 case '\r':
1401 case 0x0E:
1402 case 0x0F:
1403 case 0x10:
1404 case 0x11:
1405 case 0x12:
1406 case 0x13:
1407 case 0x14:
1408 case 0x15:
1409 case 0x16:
1410 case 0x17:
1411 case 0x18:
1412 case 0x19:
1413 case 0x1A:
1414 case 0x1B:
1415 case 0x1C:
1416 case 0x1D:
1417 case 0x1E:
1418 case 0x1F:
1419 case ' ':
1420 case '!':
1421 case '"':
1422 case '#':
1423 case '$':
1424 case '%':
1425 case '&':
1426 case '\'':
1427 case '(':
1428 case ')':
1429 case '*':
1430 case '+':
1431 case ',':
1432 case '-':
1433 case '.':
1434 case '/':
1435 case ':':
1436 case ';':
1437 case '<':
1438 case '=':
1439 case '>':
1440 case '?':
1441 case '@':
1442 case '[':
1443 case '\\':
1444 case ']':
1445 case '^':
1446 case '`':
1447 case '{':
1448 case '|':
1449 case '}':
1450 case '~':
1451 case 0x7F: goto yy110;
1452 default: goto yy108;
1453 }
1454 yy110:
1455 #line 508 "src/parser.re"
1456 { NEWTOKEN(PSI_T_DOLLAR_NAME); goto start; }
1457 #line 1458 "src/parser.c"
1458 yy111:
1459 ++cur;
1460 #line 409 "src/parser.re"
1461 { NEWTOKEN(PSI_T_AND); goto start; }
1462 #line 1463 "src/parser.c"
1463 yy113:
1464 yych = *++cur;
1465 switch (yych) {
1466 case '0':
1467 case '1':
1468 case '2':
1469 case '3':
1470 case '4':
1471 case '5':
1472 case '6':
1473 case '7':
1474 case '8':
1475 case '9': goto yy116;
1476 default: goto yy114;
1477 }
1478 yy114:
1479 cur = mrk;
1480 switch (yyaccept) {
1481 case 0: goto yy29;
1482 case 1: goto yy33;
1483 case 2: goto yy35;
1484 case 3: goto yy39;
1485 case 4: goto yy47;
1486 case 5: goto yy55;
1487 case 6: goto yy118;
1488 case 7: goto yy129;
1489 case 8: goto yy147;
1490 case 9: goto yy161;
1491 case 10: goto yy186;
1492 case 11: goto yy242;
1493 case 12: goto yy244;
1494 case 13: goto yy253;
1495 case 14: goto yy273;
1496 case 15: goto yy305;
1497 case 16: goto yy307;
1498 case 17: goto yy313;
1499 case 18: goto yy321;
1500 case 19: goto yy333;
1501 case 20: goto yy341;
1502 case 21: goto yy345;
1503 case 22: goto yy352;
1504 case 23: goto yy354;
1505 case 24: goto yy358;
1506 case 25: goto yy361;
1507 case 26: goto yy363;
1508 case 27: goto yy373;
1509 case 28: goto yy376;
1510 case 29: goto yy383;
1511 case 30: goto yy386;
1512 case 31: goto yy388;
1513 case 32: goto yy390;
1514 case 33: goto yy394;
1515 case 34: goto yy399;
1516 case 35: goto yy417;
1517 case 36: goto yy425;
1518 case 37: goto yy428;
1519 case 38: goto yy431;
1520 case 39: goto yy437;
1521 case 40: goto yy441;
1522 case 41: goto yy446;
1523 case 42: goto yy448;
1524 case 43: goto yy452;
1525 case 44: goto yy455;
1526 case 45: goto yy457;
1527 case 46: goto yy459;
1528 case 47: goto yy464;
1529 case 48: goto yy466;
1530 case 49: goto yy468;
1531 case 50: goto yy470;
1532 case 51: goto yy472;
1533 case 52: goto yy477;
1534 case 53: goto yy487;
1535 case 54: goto yy489;
1536 case 55: goto yy491;
1537 case 56: goto yy493;
1538 case 57: goto yy495;
1539 case 58: goto yy500;
1540 case 59: goto yy504;
1541 case 60: goto yy508;
1542 case 61: goto yy510;
1543 case 62: goto yy515;
1544 case 63: goto yy520;
1545 case 64: goto yy522;
1546 case 65: goto yy530;
1547 case 66: goto yy534;
1548 case 67: goto yy536;
1549 case 68: goto yy538;
1550 case 69: goto yy540;
1551 case 70: goto yy545;
1552 case 71: goto yy547;
1553 case 72: goto yy553;
1554 case 73: goto yy558;
1555 case 74: goto yy560;
1556 case 75: goto yy565;
1557 case 76: goto yy567;
1558 case 77: goto yy575;
1559 case 78: goto yy579;
1560 case 79: goto yy583;
1561 case 80: goto yy587;
1562 case 81: goto yy589;
1563 default: goto yy594;
1564 }
1565 yy115:
1566 yych = *++cur;
1567 switch (yych) {
1568 case '.': goto yy209;
1569 default: goto yy114;
1570 }
1571 yy116:
1572 yyaccept = 6;
1573 mrk = ++cur;
1574 if ((lim - cur) < 2) if (cur >= lim) goto done;;
1575 yych = *cur;
1576 switch (yych) {
1577 case '0':
1578 case '1':
1579 case '2':
1580 case '3':
1581 case '4':
1582 case '5':
1583 case '6':
1584 case '7':
1585 case '8':
1586 case '9': goto yy116;
1587 case 'D':
1588 case 'd': goto yy211;
1589 case 'F':
1590 case 'f': goto yy212;
1591 case 'L':
1592 case 'l': goto yy214;
1593 default: goto yy118;
1594 }
1595 yy118:
1596 #line 379 "src/parser.re"
1597 { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT; goto start; }
1598 #line 1599 "src/parser.c"
1599 yy119:
1600 ++cur;
1601 #line 393 "src/parser.re"
1602 { goto comment; }
1603 #line 1604 "src/parser.c"
1604 yy121:
1605 ++cur;
1606 #line 394 "src/parser.re"
1607 { goto comment_sl; }
1608 #line 1609 "src/parser.c"
1609 yy123:
1610 yyaccept = 6;
1611 mrk = ++cur;
1612 if ((lim - cur) < 3) if (cur >= lim) goto done;;
1613 yych = *cur;
1614 switch (yych) {
1615 case '0':
1616 case '1':
1617 case '2':
1618 case '3':
1619 case '4':
1620 case '5':
1621 case '6':
1622 case '7':
1623 case '8':
1624 case '9': goto yy123;
1625 case 'D':
1626 case 'd': goto yy211;
1627 case 'E':
1628 case 'e': goto yy127;
1629 case 'F':
1630 case 'f': goto yy212;
1631 case 'L':
1632 case 'l': goto yy214;
1633 default: goto yy118;
1634 }
1635 yy125:
1636 ++cur;
1637 if ((lim - cur) < 3) if (cur >= lim) goto done;;
1638 yych = *cur;
1639 yy126:
1640 switch (yych) {
1641 case '0':
1642 case '1':
1643 case '2':
1644 case '3':
1645 case '4':
1646 case '5':
1647 case '6':
1648 case '7': goto yy125;
1649 case 'L':
1650 case 'l': goto yy128;
1651 case 'U':
1652 case 'u': goto yy130;
1653 default: goto yy39;
1654 }
1655 yy127:
1656 yych = *++cur;
1657 switch (yych) {
1658 case '+':
1659 case '-': goto yy113;
1660 case '0':
1661 case '1':
1662 case '2':
1663 case '3':
1664 case '4':
1665 case '5':
1666 case '6':
1667 case '7':
1668 case '8':
1669 case '9': goto yy116;
1670 default: goto yy114;
1671 }
1672 yy128:
1673 yyaccept = 7;
1674 yych = *(mrk = ++cur);
1675 switch (yych) {
1676 case 'L':
1677 case 'l': goto yy216;
1678 case 'U':
1679 case 'u': goto yy217;
1680 default: goto yy129;
1681 }
1682 yy129:
1683 cur -= 1;
1684 #line 375 "src/parser.re"
1685 { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_L; cur += 1; goto start; }
1686 #line 1687 "src/parser.c"
1687 yy130:
1688 yych = *++cur;
1689 switch (yych) {
1690 case 'L':
1691 case 'l': goto yy219;
1692 default: goto yy131;
1693 }
1694 yy131:
1695 cur -= 1;
1696 #line 374 "src/parser.re"
1697 { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_U; cur += 1; goto start; }
1698 #line 1699 "src/parser.c"
1699 yy132:
1700 yych = *++cur;
1701 switch (yych) {
1702 case '0':
1703 case '1':
1704 case '2':
1705 case '3':
1706 case '4':
1707 case '5':
1708 case '6':
1709 case '7':
1710 case '8':
1711 case '9':
1712 case 'A':
1713 case 'B':
1714 case 'C':
1715 case 'D':
1716 case 'E':
1717 case 'F':
1718 case 'a':
1719 case 'b':
1720 case 'c':
1721 case 'd':
1722 case 'e':
1723 case 'f': goto yy220;
1724 default: goto yy114;
1725 }
1726 yy133:
1727 ++cur;
1728 if (lim <= cur) if (cur >= lim) goto done;;
1729 yych = *cur;
1730 switch (yych) {
1731 case '-':
1732 case '.':
1733 case '/':
1734 case '0':
1735 case '1':
1736 case '2':
1737 case '3':
1738 case '4':
1739 case '5':
1740 case '6':
1741 case '7':
1742 case '8':
1743 case '9':
1744 case 'A':
1745 case 'B':
1746 case 'C':
1747 case 'D':
1748 case 'E':
1749 case 'F':
1750 case 'G':
1751 case 'H':
1752 case 'I':
1753 case 'J':
1754 case 'K':
1755 case 'L':
1756 case 'M':
1757 case 'N':
1758 case 'O':
1759 case 'P':
1760 case 'Q':
1761 case 'R':
1762 case 'S':
1763 case 'T':
1764 case 'U':
1765 case 'V':
1766 case 'W':
1767 case 'X':
1768 case 'Y':
1769 case 'Z':
1770 case '_':
1771 case 'a':
1772 case 'b':
1773 case 'c':
1774 case 'd':
1775 case 'e':
1776 case 'f':
1777 case 'g':
1778 case 'h':
1779 case 'i':
1780 case 'j':
1781 case 'k':
1782 case 'l':
1783 case 'm':
1784 case 'n':
1785 case 'o':
1786 case 'p':
1787 case 'q':
1788 case 'r':
1789 case 's':
1790 case 't':
1791 case 'u':
1792 case 'v':
1793 case 'w':
1794 case 'x':
1795 case 'y':
1796 case 'z': goto yy133;
1797 case '>': goto yy222;
1798 default: goto yy114;
1799 }
1800 yy135:
1801 ++cur;
1802 #line 423 "src/parser.re"
1803 { NEWTOKEN(PSI_T_LSHIFT); goto start; }
1804 #line 1805 "src/parser.c"
1805 yy137:
1806 ++cur;
1807 #line 425 "src/parser.re"
1808 { NEWTOKEN(PSI_T_CMP_LE); goto start; }
1809 #line 1810 "src/parser.c"
1810 yy139:
1811 ++cur;
1812 #line 408 "src/parser.re"
1813 { NEWTOKEN(PSI_T_CMP_EQ); goto start; }
1814 #line 1815 "src/parser.c"
1815 yy141:
1816 ++cur;
1817 #line 426 "src/parser.re"
1818 { NEWTOKEN(PSI_T_CMP_GE); goto start; }
1819 #line 1820 "src/parser.c"
1820 yy143:
1821 ++cur;
1822 #line 424 "src/parser.re"
1823 { NEWTOKEN(PSI_T_RSHIFT); goto start; }
1824 #line 1825 "src/parser.c"
1825 yy145:
1826 yyaccept = 5;
1827 yych = *(mrk = ++cur);
1828 switch (yych) {
1829 case 'R':
1830 case 'r': goto yy224;
1831 default: goto yy62;
1832 }
1833 yy146:
1834 yyaccept = 8;
1835 yych = *(mrk = ++cur);
1836 switch (yych) {
1837 case 0x00:
1838 case 0x01:
1839 case 0x02:
1840 case 0x03:
1841 case 0x04:
1842 case 0x05:
1843 case 0x06:
1844 case 0x07:
1845 case 0x08:
1846 case '\t':
1847 case '\n':
1848 case '\v':
1849 case '\f':
1850 case '\r':
1851 case 0x0E:
1852 case 0x0F:
1853 case 0x10:
1854 case 0x11:
1855 case 0x12:
1856 case 0x13:
1857 case 0x14:
1858 case 0x15:
1859 case 0x16:
1860 case 0x17:
1861 case 0x18:
1862 case 0x19:
1863 case 0x1A:
1864 case 0x1B:
1865 case 0x1C:
1866 case 0x1D:
1867 case 0x1E:
1868 case 0x1F:
1869 case ' ':
1870 case '!':
1871 case '"':
1872 case '#':
1873 case '$':
1874 case '%':
1875 case '&':
1876 case '\'':
1877 case '(':
1878 case ')':
1879 case '*':
1880 case '+':
1881 case ',':
1882 case '-':
1883 case '.':
1884 case '/':
1885 case ':':
1886 case ';':
1887 case '<':
1888 case '=':
1889 case '>':
1890 case '?':
1891 case '@':
1892 case '[':
1893 case ']':
1894 case '^':
1895 case '`':
1896 case '{':
1897 case '|':
1898 case '}':
1899 case '~':
1900 case 0x7F: goto yy147;
1901 case '\\': goto yy148;
1902 default: goto yy61;
1903 }
1904 yy147:
1905 #line 486 "src/parser.re"
1906 { NEWTOKEN(PSI_T_AS); goto start; }
1907 #line 1908 "src/parser.c"
1908 yy148:
1909 ++cur;
1910 if (lim <= cur) if (cur >= lim) goto done;;
1911 yych = *cur;
1912 switch (yych) {
1913 case 0x00:
1914 case 0x01:
1915 case 0x02:
1916 case 0x03:
1917 case 0x04:
1918 case 0x05:
1919 case 0x06:
1920 case 0x07:
1921 case 0x08:
1922 case '\t':
1923 case '\n':
1924 case '\v':
1925 case '\f':
1926 case '\r':
1927 case 0x0E:
1928 case 0x0F:
1929 case 0x10:
1930 case 0x11:
1931 case 0x12:
1932 case 0x13:
1933 case 0x14:
1934 case 0x15:
1935 case 0x16:
1936 case 0x17:
1937 case 0x18:
1938 case 0x19:
1939 case 0x1A:
1940 case 0x1B:
1941 case 0x1C:
1942 case 0x1D:
1943 case 0x1E:
1944 case 0x1F:
1945 case ' ':
1946 case '!':
1947 case '"':
1948 case '#':
1949 case '$':
1950 case '%':
1951 case '&':
1952 case '\'':
1953 case '(':
1954 case ')':
1955 case '*':
1956 case '+':
1957 case ',':
1958 case '-':
1959 case '.':
1960 case '/':
1961 case '0':
1962 case '1':
1963 case '2':
1964 case '3':
1965 case '4':
1966 case '5':
1967 case '6':
1968 case '7':
1969 case '8':
1970 case '9':
1971 case ':':
1972 case ';':
1973 case '<':
1974 case '=':
1975 case '>':
1976 case '?':
1977 case '@':
1978 case '[':
1979 case '\\':
1980 case ']':
1981 case '^':
1982 case '`':
1983 case '{':
1984 case '|':
1985 case '}':
1986 case '~':
1987 case 0x7F: goto yy114;
1988 default: goto yy184;
1989 }
1990 yy149:
1991 yyaccept = 5;
1992 yych = *(mrk = ++cur);
1993 switch (yych) {
1994 case 'O':
1995 case 'o': goto yy225;
1996 default: goto yy62;
1997 }
1998 yy150:
1999 yyaccept = 5;
2000 yych = *(mrk = ++cur);
2001 switch (yych) {
2002 case 'L':
2003 case 'l': goto yy226;
2004 default: goto yy62;
2005 }
2006 yy151:
2007 yyaccept = 5;
2008 yych = *(mrk = ++cur);
2009 switch (yych) {
2010 case 'U':
2011 case 'u': goto yy227;
2012 default: goto yy62;
2013 }
2014 yy152:
2015 yyaccept = 5;
2016 yych = *(mrk = ++cur);
2017 switch (yych) {
2018 case 'F':
2019 case 'f': goto yy228;
2020 default: goto yy62;
2021 }
2022 yy153:
2023 yyaccept = 5;
2024 yych = *(mrk = ++cur);
2025 switch (yych) {
2026 case 'I':
2027 case 'i': goto yy229;
2028 case 'S':
2029 case 's': goto yy230;
2030 default: goto yy62;
2031 }
2032 yy154:
2033 yyaccept = 5;
2034 yych = *(mrk = ++cur);
2035 switch (yych) {
2036 case 'D':
2037 case 'd': goto yy231;
2038 default: goto yy62;
2039 }
2040 yy155:
2041 yyaccept = 5;
2042 yych = *(mrk = ++cur);
2043 switch (yych) {
2044 case 'R':
2045 case 'r': goto yy232;
2046 default: goto yy62;
2047 }
2048 yy156:
2049 yyaccept = 5;
2050 yych = *(mrk = ++cur);
2051 switch (yych) {
2052 case 'L':
2053 case 'l': goto yy233;
2054 default: goto yy62;
2055 }
2056 yy157:
2057 yyaccept = 5;
2058 yych = *(mrk = ++cur);
2059 switch (yych) {
2060 case 'O':
2061 case 'o': goto yy234;
2062 default: goto yy62;
2063 }
2064 yy158:
2065 yyaccept = 5;
2066 yych = *(mrk = ++cur);
2067 switch (yych) {
2068 case 'E':
2069 case 'e': goto yy235;
2070 default: goto yy62;
2071 }
2072 yy159:
2073 yyaccept = 5;
2074 yych = *(mrk = ++cur);
2075 switch (yych) {
2076 case 'N':
2077 case 'n': goto yy236;
2078 default: goto yy62;
2079 }
2080 yy160:
2081 yyaccept = 9;
2082 yych = *(mrk = ++cur);
2083 switch (yych) {
2084 case 0x00:
2085 case 0x01:
2086 case 0x02:
2087 case 0x03:
2088 case 0x04:
2089 case 0x05:
2090 case 0x06:
2091 case 0x07:
2092 case 0x08:
2093 case '\t':
2094 case '\n':
2095 case '\v':
2096 case '\f':
2097 case '\r':
2098 case 0x0E:
2099 case 0x0F:
2100 case 0x10:
2101 case 0x11:
2102 case 0x12:
2103 case 0x13:
2104 case 0x14:
2105 case 0x15:
2106 case 0x16:
2107 case 0x17:
2108 case 0x18:
2109 case 0x19:
2110 case 0x1A:
2111 case 0x1B:
2112 case 0x1C:
2113 case 0x1D:
2114 case 0x1E:
2115 case 0x1F:
2116 case ' ':
2117 case '!':
2118 case '"':
2119 case '#':
2120 case '$':
2121 case '%':
2122 case '&':
2123 case '\'':
2124 case '(':
2125 case ')':
2126 case '*':
2127 case '+':
2128 case ',':
2129 case '-':
2130 case '.':
2131 case '/':
2132 case ':':
2133 case ';':
2134 case '<':
2135 case '=':
2136 case '>':
2137 case '?':
2138 case '@':
2139 case '[':
2140 case ']':
2141 case '^':
2142 case '`':
2143 case '{':
2144 case '|':
2145 case '}':
2146 case '~':
2147 case 0x7F: goto yy161;
2148 case 'D':
2149 case 'd': goto yy237;
2150 case 'N':
2151 case 'n': goto yy238;
2152 case '\\': goto yy148;
2153 default: goto yy61;
2154 }
2155 yy161:
2156 #line 456 "src/parser.re"
2157 { NEWTOKEN(PSI_T_IF); goto start; }
2158 #line 2159 "src/parser.c"
2159 yy162:
2160 yyaccept = 5;
2161 yych = *(mrk = ++cur);
2162 switch (yych) {
2163 case 'C':
2164 case 'c': goto yy239;
2165 case 'T':
2166 case 't': goto yy240;
2167 default: goto yy62;
2168 }
2169 yy163:
2170 ++cur;
2171 cur -= 1;
2172 #line 391 "src/parser.re"
2173 { char_width = sizeof(wchar_t)/8; }
2174 #line 2175 "src/parser.c"
2175 yy165:
2176 yyaccept = 5;
2177 yych = *(mrk = ++cur);
2178 switch (yych) {
2179 case 'T':
2180 case 't': goto yy241;
2181 default: goto yy62;
2182 }
2183 yy166:
2184 yyaccept = 5;
2185 yych = *(mrk = ++cur);
2186 switch (yych) {
2187 case 'B':
2188 case 'b': goto yy243;
2189 default: goto yy62;
2190 }
2191 yy167:
2192 yyaccept = 5;
2193 yych = *(mrk = ++cur);
2194 switch (yych) {
2195 case 'X':
2196 case 'x': goto yy245;
2197 default: goto yy62;
2198 }
2199 yy168:
2200 yyaccept = 5;
2201 yych = *(mrk = ++cur);
2202 switch (yych) {
2203 case 'L':
2204 case 'l': goto yy246;
2205 default: goto yy62;
2206 }
2207 yy169:
2208 yyaccept = 5;
2209 yych = *(mrk = ++cur);
2210 switch (yych) {
2211 case 'J':
2212 case 'j': goto yy247;
2213 default: goto yy62;
2214 }
2215 yy170:
2216 yyaccept = 5;
2217 yych = *(mrk = ++cur);
2218 switch (yych) {
2219 case 'T':
2220 case 't': goto yy248;
2221 default: goto yy62;
2222 }
2223 yy171:
2224 yyaccept = 5;
2225 yych = *(mrk = ++cur);
2226 switch (yych) {
2227 case 'S':
2228 case 's': goto yy249;
2229 default: goto yy62;
2230 }
2231 yy172:
2232 yyaccept = 5;
2233 yych = *(mrk = ++cur);
2234 switch (yych) {
2235 case 'E':
2236 case 'e': goto yy250;
2237 default: goto yy62;
2238 }
2239 yy173:
2240 yyaccept = 5;
2241 yych = *(mrk = ++cur);
2242 switch (yych) {
2243 case 'T':
2244 case 't': goto yy251;
2245 default: goto yy62;
2246 }
2247 yy174:
2248 yyaccept = 5;
2249 yych = *(mrk = ++cur);
2250 switch (yych) {
2251 case 'T':
2252 case 't': goto yy252;
2253 default: goto yy62;
2254 }
2255 yy175:
2256 yyaccept = 5;
2257 yych = *(mrk = ++cur);
2258 switch (yych) {
2259 case 'A':
2260 case 'a': goto yy254;
2261 case 'R':
2262 case 'r': goto yy255;
2263 default: goto yy62;
2264 }
2265 yy176:
2266 yyaccept = 5;
2267 yych = *(mrk = ++cur);
2268 switch (yych) {
2269 case 'M':
2270 case 'm': goto yy256;
2271 default: goto yy62;
2272 }
2273 yy177:
2274 yyaccept = 5;
2275 yych = *(mrk = ++cur);
2276 switch (yych) {
2277 case '_': goto yy257;
2278 default: goto yy62;
2279 }
2280 yy178:
2281 yyaccept = 5;
2282 yych = *(mrk = ++cur);
2283 switch (yych) {
2284 case 'U':
2285 case 'u': goto yy258;
2286 default: goto yy62;
2287 }
2288 yy179:
2289 ++cur;
2290 cur -= 1;
2291 #line 390 "src/parser.re"
2292 { char_width = 4; }
2293 #line 2294 "src/parser.c"
2294 yy181:
2295 yyaccept = 5;
2296 yych = *(mrk = ++cur);
2297 switch (yych) {
2298 case 'D':
2299 case 'd': goto yy259;
2300 default: goto yy62;
2301 }
2302 yy182:
2303 yyaccept = 5;
2304 yych = *(mrk = ++cur);
2305 switch (yych) {
2306 case 'R':
2307 case 'r': goto yy260;
2308 default: goto yy62;
2309 }
2310 yy183:
2311 yyaccept = 5;
2312 yych = *(mrk = ++cur);
2313 switch (yych) {
2314 case 'A':
2315 case 'a': goto yy261;
2316 default: goto yy62;
2317 }
2318 yy184:
2319 yyaccept = 10;
2320 mrk = ++cur;
2321 if (lim <= cur) if (cur >= lim) goto done;;
2322 yych = *cur;
2323 switch (yych) {
2324 case 0x00:
2325 case 0x01:
2326 case 0x02:
2327 case 0x03:
2328 case 0x04:
2329 case 0x05:
2330 case 0x06:
2331 case 0x07:
2332 case 0x08:
2333 case '\t':
2334 case '\n':
2335 case '\v':
2336 case '\f':
2337 case '\r':
2338 case 0x0E:
2339 case 0x0F:
2340 case 0x10:
2341 case 0x11:
2342 case 0x12:
2343 case 0x13:
2344 case 0x14:
2345 case 0x15:
2346 case 0x16:
2347 case 0x17:
2348 case 0x18:
2349 case 0x19:
2350 case 0x1A:
2351 case 0x1B:
2352 case 0x1C:
2353 case 0x1D:
2354 case 0x1E:
2355 case 0x1F:
2356 case ' ':
2357 case '!':
2358 case '"':
2359 case '#':
2360 case '$':
2361 case '%':
2362 case '&':
2363 case '\'':
2364 case '(':
2365 case ')':
2366 case '*':
2367 case '+':
2368 case ',':
2369 case '-':
2370 case '.':
2371 case '/':
2372 case ':':
2373 case ';':
2374 case '<':
2375 case '=':
2376 case '>':
2377 case '?':
2378 case '@':
2379 case '[':
2380 case ']':
2381 case '^':
2382 case '`':
2383 case '{':
2384 case '|':
2385 case '}':
2386 case '~':
2387 case 0x7F: goto yy186;
2388 case '\\': goto yy148;
2389 default: goto yy184;
2390 }
2391 yy186:
2392 #line 507 "src/parser.re"
2393 { NEWTOKEN(PSI_T_NSNAME); goto start; }
2394 #line 2395 "src/parser.c"
2395 yy187:
2396 yyaccept = 5;
2397 yych = *(mrk = ++cur);
2398 switch (yych) {
2399 case 'a': goto yy262;
2400 case 'e': goto yy263;
2401 case 'i': goto yy264;
2402 case 'r': goto yy265;
2403 default: goto yy62;
2404 }
2405 yy188:
2406 yyaccept = 5;
2407 yych = *(mrk = ++cur);
2408 switch (yych) {
2409 case 'O': goto yy225;
2410 case 'o': goto yy266;
2411 default: goto yy62;
2412 }
2413 yy189:
2414 yyaccept = 5;
2415 yych = *(mrk = ++cur);
2416 switch (yych) {
2417 case 'a': goto yy267;
2418 default: goto yy62;
2419 }
2420 yy190:
2421 yyaccept = 5;
2422 yych = *(mrk = ++cur);
2423 switch (yych) {
2424 case 'U':
2425 case 'u': goto yy227;
2426 case 'n': goto yy268;
2427 default: goto yy62;
2428 }
2429 yy191:
2430 yyaccept = 5;
2431 yych = *(mrk = ++cur);
2432 switch (yych) {
2433 case 'u': goto yy269;
2434 default: goto yy62;
2435 }
2436 yy192:
2437 yyaccept = 5;
2438 yych = *(mrk = ++cur);
2439 switch (yych) {
2440 case 'D':
2441 case 'd': goto yy231;
2442 case 'u': goto yy270;
2443 default: goto yy62;
2444 }
2445 yy193:
2446 yyaccept = 5;
2447 yych = *(mrk = ++cur);
2448 switch (yych) {
2449 case 'O': goto yy234;
2450 case 'o': goto yy271;
2451 default: goto yy62;
2452 }
2453 yy194:
2454 yyaccept = 5;
2455 yych = *(mrk = ++cur);
2456 switch (yych) {
2457 case 'C':
2458 case 'c': goto yy239;
2459 case 'T': goto yy240;
2460 case 't': goto yy272;
2461 default: goto yy62;
2462 }
2463 yy195:
2464 yyaccept = 5;
2465 yych = *(mrk = ++cur);
2466 switch (yych) {
2467 case 'B':
2468 case 'b': goto yy243;
2469 case 'n': goto yy274;
2470 default: goto yy62;
2471 }
2472 yy196:
2473 yyaccept = 5;
2474 yych = *(mrk = ++cur);
2475 switch (yych) {
2476 case 'n': goto yy275;
2477 default: goto yy62;
2478 }
2479 yy197:
2480 yyaccept = 5;
2481 yych = *(mrk = ++cur);
2482 switch (yych) {
2483 case 'E':
2484 case 'e': goto yy250;
2485 case 'a': goto yy276;
2486 default: goto yy62;
2487 }
2488 yy198:
2489 yyaccept = 5;
2490 yych = *(mrk = ++cur);
2491 switch (yych) {
2492 case 'o': goto yy277;
2493 default: goto yy62;
2494 }
2495 yy199:
2496 yyaccept = 5;
2497 yych = *(mrk = ++cur);
2498 switch (yych) {
2499 case 'g': goto yy278;
2500 case 'z': goto yy279;
2501 default: goto yy62;
2502 }
2503 yy200:
2504 yyaccept = 5;
2505 yych = *(mrk = ++cur);
2506 switch (yych) {
2507 case 'A':
2508 case 'a': goto yy254;
2509 case 'R': goto yy255;
2510 case 'r': goto yy280;
2511 default: goto yy62;
2512 }
2513 yy201:
2514 yyaccept = 5;
2515 yych = *(mrk = ++cur);
2516 switch (yych) {
2517 case 'p': goto yy281;
2518 default: goto yy62;
2519 }
2520 yy202:
2521 ++cur;
2522 cur -= 1;
2523 #line 389 "src/parser.re"
2524 { char_width = 2; }
2525 #line 2526 "src/parser.c"
2526 yy204:
2527 yyaccept = 5;
2528 yych = *(mrk = ++cur);
2529 switch (yych) {
2530 case '"': goto yy282;
2531 default: goto yy62;
2532 }
2533 yy205:
2534 yyaccept = 5;
2535 yych = *(mrk = ++cur);
2536 switch (yych) {
2537 case 'D':
2538 case 'd': goto yy259;
2539 case 'i': goto yy284;
2540 case 's': goto yy285;
2541 default: goto yy62;
2542 }
2543 yy206:
2544 yyaccept = 5;
2545 yych = *(mrk = ++cur);
2546 switch (yych) {
2547 case 'i': goto yy286;
2548 case 'l': goto yy287;
2549 default: goto yy62;
2550 }
2551 yy207:
2552 ++cur;
2553 #line 410 "src/parser.re"
2554 { NEWTOKEN(PSI_T_OR); goto start; }
2555 #line 2556 "src/parser.c"
2556 yy209:
2557 ++cur;
2558 #line 430 "src/parser.re"
2559 { NEWTOKEN(PSI_T_ELLIPSIS); goto start; }
2560 #line 2561 "src/parser.c"
2561 yy211:
2562 yych = *++cur;
2563 switch (yych) {
2564 case 'D':
2565 case 'd': goto yy288;
2566 case 'F':
2567 case 'f': goto yy290;
2568 case 'L':
2569 case 'l': goto yy292;
2570 default: goto yy114;
2571 }
2572 yy212:
2573 ++cur;
2574 cur -= 1;
2575 #line 380 "src/parser.re"
2576 { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_F; cur += 1; goto start; }
2577 #line 2578 "src/parser.c"
2578 yy214:
2579 ++cur;
2580 cur -= 1;
2581 #line 381 "src/parser.re"
2582 { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_L; cur += 1; goto start; }
2583 #line 2584 "src/parser.c"
2584 yy216:
2585 yych = *++cur;
2586 switch (yych) {
2587 case 'U':
2588 case 'u': goto yy294;
2589 default: goto yy114;
2590 }
2591 yy217:
2592 ++cur;
2593 yy218:
2594 cur -= 2;
2595 #line 376 "src/parser.re"
2596 { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_UL; cur += 2; goto start; }
2597 #line 2598 "src/parser.c"
2598 yy219:
2599 yych = *++cur;
2600 switch (yych) {
2601 case 'L':
2602 case 'l': goto yy294;
2603 default: goto yy218;
2604 }
2605 yy220:
2606 yyaccept = 3;
2607 mrk = ++cur;
2608 if ((lim - cur) < 3) if (cur >= lim) goto done;;
2609 yych = *cur;
2610 switch (yych) {
2611 case '.': goto yy296;
2612 case '0':
2613 case '1':
2614 case '2':
2615 case '3':
2616 case '4':
2617 case '5':
2618 case '6':
2619 case '7':
2620 case '8':
2621 case '9':
2622 case 'A':
2623 case 'B':
2624 case 'C':
2625 case 'D':
2626 case 'E':
2627 case 'F':
2628 case 'a':
2629 case 'b':
2630 case 'c':
2631 case 'd':
2632 case 'e':
2633 case 'f': goto yy220;
2634 case 'L':
2635 case 'l': goto yy128;
2636 case 'P':
2637 case 'p': goto yy127;
2638 case 'U':
2639 case 'u': goto yy130;
2640 default: goto yy39;
2641 }
2642 yy222:
2643 ++cur;
2644 #line 509 "src/parser.re"
2645 { tok += 1; cur -= 1; NEWTOKEN(PSI_T_CPP_HEADER); cur += 1; goto start; }
2646 #line 2647 "src/parser.c"
2647 yy224:
2648 yyaccept = 5;
2649 yych = *(mrk = ++cur);
2650 switch (yych) {
2651 case 'A':
2652 case 'a': goto yy298;
2653 case 'V':
2654 case 'v': goto yy299;
2655 default: goto yy62;
2656 }
2657 yy225:
2658 yyaccept = 5;
2659 yych = *(mrk = ++cur);
2660 switch (yych) {
2661 case 'L':
2662 case 'l': goto yy300;
2663 default: goto yy62;
2664 }
2665 yy226:
2666 yyaccept = 5;
2667 yych = *(mrk = ++cur);
2668 switch (yych) {
2669 case 'L':
2670 case 'l': goto yy301;
2671 default: goto yy62;
2672 }
2673 yy227:
2674 yyaccept = 5;
2675 yych = *(mrk = ++cur);
2676 switch (yych) {
2677 case 'N':
2678 case 'n': goto yy302;
2679 default: goto yy62;
2680 }
2681 yy228:
2682 yyaccept = 5;
2683 yych = *(mrk = ++cur);
2684 switch (yych) {
2685 case 'I':
2686 case 'i': goto yy303;
2687 default: goto yy62;
2688 }
2689 yy229:
2690 yyaccept = 5;
2691 yych = *(mrk = ++cur);
2692 switch (yych) {
2693 case 'F':
2694 case 'f': goto yy304;
2695 default: goto yy62;
2696 }
2697 yy230:
2698 yyaccept = 5;
2699 yych = *(mrk = ++cur);
2700 switch (yych) {
2701 case 'E':
2702 case 'e': goto yy306;
2703 default: goto yy62;
2704 }
2705 yy231:
2706 yyaccept = 5;
2707 yych = *(mrk = ++cur);
2708 switch (yych) {
2709 case 'I':
2710 case 'i': goto yy308;
2711 default: goto yy62;
2712 }
2713 yy232:
2714 yyaccept = 5;
2715 yych = *(mrk = ++cur);
2716 switch (yych) {
2717 case 'O':
2718 case 'o': goto yy309;
2719 default: goto yy62;
2720 }
2721 yy233:
2722 yyaccept = 5;
2723 yych = *(mrk = ++cur);
2724 switch (yych) {
2725 case 'S':
2726 case 's': goto yy310;
2727 default: goto yy62;
2728 }
2729 yy234:
2730 yyaccept = 5;
2731 yych = *(mrk = ++cur);
2732 switch (yych) {
2733 case 'A':
2734 case 'a': goto yy311;
2735 default: goto yy62;
2736 }
2737 yy235:
2738 yyaccept = 5;
2739 yych = *(mrk = ++cur);
2740 switch (yych) {
2741 case 'E':
2742 case 'e': goto yy312;
2743 default: goto yy62;
2744 }
2745 yy236:
2746 yyaccept = 5;
2747 yych = *(mrk = ++cur);
2748 switch (yych) {
2749 case 'C':
2750 case 'c': goto yy314;
2751 default: goto yy62;
2752 }
2753 yy237:
2754 yyaccept = 5;
2755 yych = *(mrk = ++cur);
2756 switch (yych) {
2757 case 'E':
2758 case 'e': goto yy315;
2759 default: goto yy62;
2760 }
2761 yy238:
2762 yyaccept = 5;
2763 yych = *(mrk = ++cur);
2764 switch (yych) {
2765 case 'D':
2766 case 'd': goto yy316;
2767 default: goto yy62;
2768 }
2769 yy239:
2770 yyaccept = 5;
2771 yych = *(mrk = ++cur);
2772 switch (yych) {
2773 case 'L':
2774 case 'l': goto yy317;
2775 default: goto yy62;
2776 }
2777 yy240:
2778 yyaccept = 5;
2779 yych = *(mrk = ++cur);
2780 switch (yych) {
2781 case 'V':
2782 case 'v': goto yy318;
2783 default: goto yy62;
2784 }
2785 yy241:
2786 yyaccept = 11;
2787 yych = *(mrk = ++cur);
2788 switch (yych) {
2789 case 0x00:
2790 case 0x01:
2791 case 0x02:
2792 case 0x03:
2793 case 0x04:
2794 case 0x05:
2795 case 0x06:
2796 case 0x07:
2797 case 0x08:
2798 case '\t':
2799 case '\n':
2800 case '\v':
2801 case '\f':
2802 case '\r':
2803 case 0x0E:
2804 case 0x0F:
2805 case 0x10:
2806 case 0x11:
2807 case 0x12:
2808 case 0x13:
2809 case 0x14:
2810 case 0x15:
2811 case 0x16:
2812 case 0x17:
2813 case 0x18:
2814 case 0x19:
2815 case 0x1A:
2816 case 0x1B:
2817 case 0x1C:
2818 case 0x1D:
2819 case 0x1E:
2820 case 0x1F:
2821 case ' ':
2822 case '!':
2823 case '"':
2824 case '#':
2825 case '$':
2826 case '%':
2827 case '&':
2828 case '\'':
2829 case '(':
2830 case ')':
2831 case '*':
2832 case '+':
2833 case ',':
2834 case '-':
2835 case '.':
2836 case '/':
2837 case ':':
2838 case ';':
2839 case '<':
2840 case '=':
2841 case '>':
2842 case '?':
2843 case '@':
2844 case '[':
2845 case ']':
2846 case '^':
2847 case '`':
2848 case '{':
2849 case '|':
2850 case '}':
2851 case '~':
2852 case 0x7F: goto yy242;
2853 case '\\': goto yy148;
2854 default: goto yy61;
2855 }
2856 yy242:
2857 #line 481 "src/parser.re"
2858 { NEWTOKEN(PSI_T_LET); goto start; }
2859 #line 2860 "src/parser.c"
2860 yy243:
2861 yyaccept = 12;
2862 yych = *(mrk = ++cur);
2863 switch (yych) {
2864 case 0x00:
2865 case 0x01:
2866 case 0x02:
2867 case 0x03:
2868 case 0x04:
2869 case 0x05:
2870 case 0x06:
2871 case 0x07:
2872 case 0x08:
2873 case '\t':
2874 case '\n':
2875 case '\v':
2876 case '\f':
2877 case '\r':
2878 case 0x0E:
2879 case 0x0F:
2880 case 0x10:
2881 case 0x11:
2882 case 0x12:
2883 case 0x13:
2884 case 0x14:
2885 case 0x15:
2886 case 0x16:
2887 case 0x17:
2888 case 0x18:
2889 case 0x19:
2890 case 0x1A:
2891 case 0x1B:
2892 case 0x1C:
2893 case 0x1D:
2894 case 0x1E:
2895 case 0x1F:
2896 case ' ':
2897 case '!':
2898 case '"':
2899 case '#':
2900 case '$':
2901 case '%':
2902 case '&':
2903 case '\'':
2904 case '(':
2905 case ')':
2906 case '*':
2907 case '+':
2908 case ',':
2909 case '-':
2910 case '.':
2911 case '/':
2912 case ':':
2913 case ';':
2914 case '<':
2915 case '=':
2916 case '>':
2917 case '?':
2918 case '@':
2919 case '[':
2920 case ']':
2921 case '^':
2922 case '`':
2923 case '{':
2924 case '|':
2925 case '}':
2926 case '~':
2927 case 0x7F: goto yy244;
2928 case '\\': goto yy148;
2929 default: goto yy61;
2930 }
2931 yy244:
2932 #line 480 "src/parser.re"
2933 { NEWTOKEN(PSI_T_LIB); goto start; }
2934 #line 2935 "src/parser.c"
2935 yy245:
2936 yyaccept = 5;
2937 yych = *(mrk = ++cur);
2938 switch (yych) {
2939 case 'E':
2940 case 'e': goto yy319;
2941 default: goto yy62;
2942 }
2943 yy246:
2944 yyaccept = 5;
2945 yych = *(mrk = ++cur);
2946 switch (yych) {
2947 case 'L':
2948 case 'l': goto yy320;
2949 default: goto yy62;
2950 }
2951 yy247:
2952 yyaccept = 5;
2953 yych = *(mrk = ++cur);
2954 switch (yych) {
2955 case 'E':
2956 case 'e': goto yy322;
2957 case 'V':
2958 case 'v': goto yy323;
2959 default: goto yy62;
2960 }
2961 yy248:
2962 yyaccept = 5;
2963 yych = *(mrk = ++cur);
2964 switch (yych) {
2965 case 'H':
2966 case 'h': goto yy324;
2967 default: goto yy62;
2968 }
2969 yy249:
2970 yyaccept = 5;
2971 yych = *(mrk = ++cur);
2972 switch (yych) {
2973 case 'T':
2974 case 't': goto yy325;
2975 default: goto yy62;
2976 }
2977 yy250:
2978 yyaccept = 5;
2979 yych = *(mrk = ++cur);
2980 switch (yych) {
2981 case '_': goto yy326;
2982 default: goto yy62;
2983 }
2984 yy251:
2985 yyaccept = 5;
2986 yych = *(mrk = ++cur);
2987 switch (yych) {
2988 case 'U':
2989 case 'u': goto yy327;
2990 default: goto yy62;
2991 }
2992 yy252:
2993 yyaccept = 13;
2994 yych = *(mrk = ++cur);
2995 switch (yych) {
2996 case 0x00:
2997 case 0x01:
2998 case 0x02:
2999 case 0x03:
3000 case 0x04:
3001 case 0x05:
3002 case 0x06:
3003 case 0x07:
3004 case 0x08:
3005 case '\t':
3006 case '\n':
3007 case '\v':
3008 case '\f':
3009 case '\r':
3010 case 0x0E:
3011 case 0x0F:
3012 case 0x10:
3013 case 0x11:
3014 case 0x12:
3015 case 0x13:
3016 case 0x14:
3017 case 0x15:
3018 case 0x16:
3019 case 0x17:
3020 case 0x18:
3021 case 0x19:
3022 case 0x1A:
3023 case 0x1B:
3024 case 0x1C:
3025 case 0x1D:
3026 case 0x1E:
3027 case 0x1F:
3028 case ' ':
3029 case '!':
3030 case '"':
3031 case '#':
3032 case '$':
3033 case '%':
3034 case '&':
3035 case '\'':
3036 case '(':
3037 case ')':
3038 case '*':
3039 case '+':
3040 case ',':
3041 case '-':
3042 case '.':
3043 case '/':
3044 case ':':
3045 case ';':
3046 case '<':
3047 case '=':
3048 case '>':
3049 case '?':
3050 case '@':
3051 case '[':
3052 case ']':
3053 case '^':
3054 case '`':
3055 case '{':
3056 case '|':
3057 case '}':
3058 case '~':
3059 case 0x7F: goto yy253;
3060 case '\\': goto yy148;
3061 default: goto yy61;
3062 }
3063 yy253:
3064 #line 482 "src/parser.re"
3065 { NEWTOKEN(PSI_T_SET); goto start; }
3066 #line 3067 "src/parser.c"
3067 yy254:
3068 yyaccept = 5;
3069 yych = *(mrk = ++cur);
3070 switch (yych) {
3071 case 'T':
3072 case 't': goto yy328;
3073 default: goto yy62;
3074 }
3075 yy255:
3076 yyaccept = 5;
3077 yych = *(mrk = ++cur);
3078 switch (yych) {
3079 case 'I':
3080 case 'i': goto yy329;
3081 case 'L':
3082 case 'l': goto yy330;
3083 case 'V':
3084 case 'v': goto yy331;
3085 default: goto yy62;
3086 }
3087 yy256:
3088 yyaccept = 5;
3089 yych = *(mrk = ++cur);
3090 switch (yych) {
3091 case 'P':
3092 case 'p': goto yy332;
3093 default: goto yy62;
3094 }
3095 yy257:
3096 yyaccept = 5;
3097 yych = *(mrk = ++cur);
3098 switch (yych) {
3099 case 'A':
3100 case 'a': goto yy334;
3101 case 'B':
3102 case 'b': goto yy335;
3103 case 'F':
3104 case 'f': goto yy336;
3105 case 'I':
3106 case 'i': goto yy337;
3107 case 'O':
3108 case 'o': goto yy338;
3109 case 'S':
3110 case 's': goto yy339;
3111 default: goto yy62;
3112 }
3113 yy258:
3114 yyaccept = 5;
3115 yych = *(mrk = ++cur);
3116 switch (yych) {
3117 case 'E':
3118 case 'e': goto yy340;
3119 default: goto yy62;
3120 }
3121 yy259:
3122 yyaccept = 5;
3123 yych = *(mrk = ++cur);
3124 switch (yych) {
3125 case 'E':
3126 case 'e': goto yy342;
3127 default: goto yy62;
3128 }
3129 yy260:
3130 yyaccept = 5;
3131 yych = *(mrk = ++cur);
3132 switch (yych) {
3133 case 'N':
3134 case 'n': goto yy343;
3135 default: goto yy62;
3136 }
3137 yy261:
3138 yyaccept = 5;
3139 yych = *(mrk = ++cur);
3140 switch (yych) {
3141 case 'L':
3142 case 'l': goto yy344;
3143 default: goto yy62;
3144 }
3145 yy262:
3146 yyaccept = 5;
3147 yych = *(mrk = ++cur);
3148 switch (yych) {
3149 case 's': goto yy346;
3150 case 't': goto yy347;
3151 default: goto yy62;
3152 }
3153 yy263:
3154 yyaccept = 5;
3155 yych = *(mrk = ++cur);
3156 switch (yych) {
3157 case 'x': goto yy348;
3158 default: goto yy62;
3159 }
3160 yy264:
3161 yyaccept = 5;
3162 yych = *(mrk = ++cur);
3163 switch (yych) {
3164 case 'n': goto yy349;
3165 default: goto yy62;
3166 }
3167 yy265:
3168 yyaccept = 5;
3169 yych = *(mrk = ++cur);
3170 switch (yych) {
3171 case 'e': goto yy350;
3172 default: goto yy62;
3173 }
3174 yy266:
3175 yyaccept = 5;
3176 yych = *(mrk = ++cur);
3177 switch (yych) {
3178 case 'L': goto yy300;
3179 case 'l': goto yy351;
3180 default: goto yy62;
3181 }
3182 yy267:
3183 yyaccept = 5;
3184 yych = *(mrk = ++cur);
3185 switch (yych) {
3186 case 'r': goto yy353;
3187 default: goto yy62;
3188 }
3189 yy268:
3190 yyaccept = 5;
3191 yych = *(mrk = ++cur);
3192 switch (yych) {
3193 case 's': goto yy355;
3194 default: goto yy62;
3195 }
3196 yy269:
3197 yyaccept = 5;
3198 yych = *(mrk = ++cur);
3199 switch (yych) {
3200 case 'b': goto yy356;
3201 default: goto yy62;
3202 }
3203 yy270:
3204 yyaccept = 5;
3205 yych = *(mrk = ++cur);
3206 switch (yych) {
3207 case 'm': goto yy357;
3208 default: goto yy62;
3209 }
3210 yy271:
3211 yyaccept = 5;
3212 yych = *(mrk = ++cur);
3213 switch (yych) {
3214 case 'A': goto yy311;
3215 case 'a': goto yy359;
3216 default: goto yy62;
3217 }
3218 yy272:
3219 yyaccept = 14;
3220 yych = *(mrk = ++cur);
3221 switch (yych) {
3222 case 0x00:
3223 case 0x01:
3224 case 0x02:
3225 case 0x03:
3226 case 0x04:
3227 case 0x05:
3228 case 0x06:
3229 case 0x07:
3230 case 0x08:
3231 case '\t':
3232 case '\n':
3233 case '\v':
3234 case '\f':
3235 case '\r':
3236 case 0x0E:
3237 case 0x0F:
3238 case 0x10:
3239 case 0x11:
3240 case 0x12:
3241 case 0x13:
3242 case 0x14:
3243 case 0x15:
3244 case 0x16:
3245 case 0x17:
3246 case 0x18:
3247 case 0x19:
3248 case 0x1A:
3249 case 0x1B:
3250 case 0x1C:
3251 case 0x1D:
3252 case 0x1E:
3253 case 0x1F:
3254 case ' ':
3255 case '!':
3256 case '"':
3257 case '#':
3258 case '$':
3259 case '%':
3260 case '&':
3261 case '\'':
3262 case '(':
3263 case ')':
3264 case '*':
3265 case '+':
3266 case ',':
3267 case '-':
3268 case '.':
3269 case '/':
3270 case ':':
3271 case ';':
3272 case '<':
3273 case '=':
3274 case '>':
3275 case '?':
3276 case '@':
3277 case '[':
3278 case ']':
3279 case '^':
3280 case '`':
3281 case '{':
3282 case '|':
3283 case '}':
3284 case '~':
3285 case 0x7F: goto yy273;
3286 case 'V':
3287 case 'v': goto yy318;
3288 case '\\': goto yy148;
3289 default: goto yy61;
3290 }
3291 yy273:
3292 #line 450 "src/parser.re"
3293 { NEWTOKEN(PSI_T_INT); goto start; }
3294 #line 3295 "src/parser.c"
3295 yy274:
3296 yyaccept = 5;
3297 yych = *(mrk = ++cur);
3298 switch (yych) {
3299 case 'e': goto yy360;
3300 default: goto yy62;
3301 }
3302 yy275:
3303 yyaccept = 5;
3304 yych = *(mrk = ++cur);
3305 switch (yych) {
3306 case 'g': goto yy362;
3307 default: goto yy62;
3308 }
3309 yy276:
3310 yyaccept = 5;
3311 yych = *(mrk = ++cur);
3312 switch (yych) {
3313 case 'g': goto yy364;
3314 default: goto yy62;
3315 }
3316 yy277:
3317 yyaccept = 5;
3318 yych = *(mrk = ++cur);
3319 switch (yych) {
3320 case 'r': goto yy365;
3321 default: goto yy62;
3322 }
3323 yy278:
3324 yyaccept = 5;
3325 yych = *(mrk = ++cur);
3326 switch (yych) {
3327 case 'n': goto yy366;
3328 default: goto yy62;
3329 }
3330 yy279:
3331 yyaccept = 5;
3332 yych = *(mrk = ++cur);
3333 switch (yych) {
3334 case 'e': goto yy367;
3335 default: goto yy62;
3336 }
3337 yy280:
3338 yyaccept = 5;
3339 yych = *(mrk = ++cur);
3340 switch (yych) {
3341 case 'I':
3342 case 'i': goto yy329;
3343 case 'L':
3344 case 'l': goto yy330;
3345 case 'V':
3346 case 'v': goto yy331;
3347 case 'u': goto yy368;
3348 default: goto yy62;
3349 }
3350 yy281:
3351 yyaccept = 5;
3352 yych = *(mrk = ++cur);
3353 switch (yych) {
3354 case 'e': goto yy369;
3355 default: goto yy62;
3356 }
3357 yy282:
3358 ++cur;
3359 cur -= 1;
3360 #line 388 "src/parser.re"
3361 { char_width = 1; }
3362 #line 3363 "src/parser.c"
3363 yy284:
3364 yyaccept = 5;
3365 yych = *(mrk = ++cur);
3366 switch (yych) {
3367 case 'o': goto yy370;
3368 default: goto yy62;
3369 }
3370 yy285:
3371 yyaccept = 5;
3372 yych = *(mrk = ++cur);
3373 switch (yych) {
3374 case 'i': goto yy371;
3375 default: goto yy62;
3376 }
3377 yy286:
3378 yyaccept = 5;
3379 yych = *(mrk = ++cur);
3380 switch (yych) {
3381 case 'd': goto yy372;
3382 default: goto yy62;
3383 }
3384 yy287:
3385 yyaccept = 5;
3386 yych = *(mrk = ++cur);
3387 switch (yych) {
3388 case 'a': goto yy374;
3389 default: goto yy62;
3390 }
3391 yy288:
3392 ++cur;
3393 cur -= 2;
3394 #line 383 "src/parser.re"
3395 { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_DD; cur += 2; goto start; }
3396 #line 3397 "src/parser.c"
3397 yy290:
3398 ++cur;
3399 cur -= 2;
3400 #line 382 "src/parser.re"
3401 { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_DF; cur += 2; goto start; }
3402 #line 3403 "src/parser.c"
3403 yy292:
3404 ++cur;
3405 cur -= 2;
3406 #line 384 "src/parser.re"
3407 { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_DL; cur += 2; goto start; }
3408 #line 3409 "src/parser.c"
3409 yy294:
3410 ++cur;
3411 cur -= 3;
3412 #line 377 "src/parser.re"
3413 { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_ULL; cur += 3; goto start; }
3414 #line 3415 "src/parser.c"
3415 yy296:
3416 ++cur;
3417 if ((lim - cur) < 3) if (cur >= lim) goto done;;
3418 yych = *cur;
3419 switch (yych) {
3420 case '0':
3421 case '1':
3422 case '2':
3423 case '3':
3424 case '4':
3425 case '5':
3426 case '6':
3427 case '7':
3428 case '8':
3429 case '9':
3430 case 'A':
3431 case 'B':
3432 case 'C':
3433 case 'D':
3434 case 'E':
3435 case 'F':
3436 case 'a':
3437 case 'b':
3438 case 'c':
3439 case 'd':
3440 case 'e':
3441 case 'f': goto yy296;
3442 case 'P':
3443 case 'p': goto yy127;
3444 default: goto yy114;
3445 }
3446 yy298:
3447 yyaccept = 5;
3448 yych = *(mrk = ++cur);
3449 switch (yych) {
3450 case 'Y':
3451 case 'y': goto yy375;
3452 default: goto yy62;
3453 }
3454 yy299:
3455 yyaccept = 5;
3456 yych = *(mrk = ++cur);
3457 switch (yych) {
3458 case 'A':
3459 case 'a': goto yy377;
3460 default: goto yy62;
3461 }
3462 yy300:
3463 yyaccept = 5;
3464 yych = *(mrk = ++cur);
3465 switch (yych) {
3466 case 'V':
3467 case 'v': goto yy378;
3468 default: goto yy62;
3469 }
3470 yy301:
3471 yyaccept = 5;
3472 yych = *(mrk = ++cur);
3473 switch (yych) {
3474 case 'A':
3475 case 'a': goto yy379;
3476 case 'B':
3477 case 'b': goto yy380;
3478 case 'O':
3479 case 'o': goto yy381;
3480 default: goto yy62;
3481 }
3482 yy302:
3483 yyaccept = 5;
3484 yych = *(mrk = ++cur);
3485 switch (yych) {
3486 case 'T':
3487 case 't': goto yy382;
3488 default: goto yy62;
3489 }
3490 yy303:
3491 yyaccept = 5;
3492 yych = *(mrk = ++cur);
3493 switch (yych) {
3494 case 'N':
3495 case 'n': goto yy384;
3496 default: goto yy62;
3497 }
3498 yy304:
3499 yyaccept = 15;
3500 yych = *(mrk = ++cur);
3501 switch (yych) {
3502 case 0x00:
3503 case 0x01:
3504 case 0x02:
3505 case 0x03:
3506 case 0x04:
3507 case 0x05:
3508 case 0x06:
3509 case 0x07:
3510 case 0x08:
3511 case '\t':
3512 case '\n':
3513 case '\v':
3514 case '\f':
3515 case '\r':
3516 case 0x0E:
3517 case 0x0F:
3518 case 0x10:
3519 case 0x11:
3520 case 0x12:
3521 case 0x13:
3522 case 0x14:
3523 case 0x15:
3524 case 0x16:
3525 case 0x17:
3526 case 0x18:
3527 case 0x19:
3528 case 0x1A:
3529 case 0x1B:
3530 case 0x1C:
3531 case 0x1D:
3532 case 0x1E:
3533 case 0x1F:
3534 case ' ':
3535 case '!':
3536 case '"':
3537 case '#':
3538 case '$':
3539 case '%':
3540 case '&':
3541 case '\'':
3542 case '(':
3543 case ')':
3544 case '*':
3545 case '+':
3546 case ',':
3547 case '-':
3548 case '.':
3549 case '/':
3550 case ':':
3551 case ';':
3552 case '<':
3553 case '=':
3554 case '>':
3555 case '?':
3556 case '@':
3557 case '[':
3558 case ']':
3559 case '^':
3560 case '`':
3561 case '{':
3562 case '|':
3563 case '}':
3564 case '~':
3565 case 0x7F: goto yy305;
3566 case '\\': goto yy148;
3567 default: goto yy61;
3568 }
3569 yy305:
3570 #line 460 "src/parser.re"
3571 { NEWTOKEN(PSI_T_ELIF); goto start; }
3572 #line 3573 "src/parser.c"
3573 yy306:
3574 yyaccept = 16;
3575 yych = *(mrk = ++cur);
3576 switch (yych) {
3577 case 0x00:
3578 case 0x01:
3579 case 0x02:
3580 case 0x03:
3581 case 0x04:
3582 case 0x05:
3583 case 0x06:
3584 case 0x07:
3585 case 0x08:
3586 case '\t':
3587 case '\n':
3588 case '\v':
3589 case '\f':
3590 case '\r':
3591 case 0x0E:
3592 case 0x0F:
3593 case 0x10:
3594 case 0x11:
3595 case 0x12:
3596 case 0x13:
3597 case 0x14:
3598 case 0x15:
3599 case 0x16:
3600 case 0x17:
3601 case 0x18:
3602 case 0x19:
3603 case 0x1A:
3604 case 0x1B:
3605 case 0x1C:
3606 case 0x1D:
3607 case 0x1E:
3608 case 0x1F:
3609 case ' ':
3610 case '!':
3611 case '"':
3612 case '#':
3613 case '$':
3614 case '%':
3615 case '&':
3616 case '\'':
3617 case '(':
3618 case ')':
3619 case '*':
3620 case '+':
3621 case ',':
3622 case '-':
3623 case '.':
3624 case '/':
3625 case ':':
3626 case ';':
3627 case '<':
3628 case '=':
3629 case '>':
3630 case '?':
3631 case '@':
3632 case '[':
3633 case ']':
3634 case '^':
3635 case '`':
3636 case '{':
3637 case '|':
3638 case '}':
3639 case '~':
3640 case 0x7F: goto yy307;
3641 case '\\': goto yy148;
3642 default: goto yy61;
3643 }
3644 yy307:
3645 #line 459 "src/parser.re"
3646 { NEWTOKEN(PSI_T_ELSE); goto start; }
3647 #line 3648 "src/parser.c"
3648 yy308:
3649 yyaccept = 5;
3650 yych = *(mrk = ++cur);
3651 switch (yych) {
3652 case 'F':
3653 case 'f': goto yy385;
3654 default: goto yy62;
3655 }
3656 yy309:
3657 yyaccept = 5;
3658 yych = *(mrk = ++cur);
3659 switch (yych) {
3660 case 'R':
3661 case 'r': goto yy387;
3662 default: goto yy62;
3663 }
3664 yy310:
3665 yyaccept = 5;
3666 yych = *(mrk = ++cur);
3667 switch (yych) {
3668 case 'E':
3669 case 'e': goto yy389;
3670 default: goto yy62;
3671 }
3672 yy311:
3673 yyaccept = 5;
3674 yych = *(mrk = ++cur);
3675 switch (yych) {
3676 case 'T':
3677 case 't': goto yy391;
3678 default: goto yy62;
3679 }
3680 yy312:
3681 yyaccept = 17;
3682 yych = *(mrk = ++cur);
3683 switch (yych) {
3684 case 0x00:
3685 case 0x01:
3686 case 0x02:
3687 case 0x03:
3688 case 0x04:
3689 case 0x05:
3690 case 0x06:
3691 case 0x07:
3692 case 0x08:
3693 case '\t':
3694 case '\n':
3695 case '\v':
3696 case '\f':
3697 case '\r':
3698 case 0x0E:
3699 case 0x0F:
3700 case 0x10:
3701 case 0x11:
3702 case 0x12:
3703 case 0x13:
3704 case 0x14:
3705 case 0x15:
3706 case 0x16:
3707 case 0x17:
3708 case 0x18:
3709 case 0x19:
3710 case 0x1A:
3711 case 0x1B:
3712 case 0x1C:
3713 case 0x1D:
3714 case 0x1E:
3715 case 0x1F:
3716 case ' ':
3717 case '!':
3718 case '"':
3719 case '#':
3720 case '$':
3721 case '%':
3722 case '&':
3723 case '\'':
3724 case '(':
3725 case ')':
3726 case '*':
3727 case '+':
3728 case ',':
3729 case '-':
3730 case '.':
3731 case '/':
3732 case ':':
3733 case ';':
3734 case '<':
3735 case '=':
3736 case '>':
3737 case '?':
3738 case '@':
3739 case '[':
3740 case ']':
3741 case '^':
3742 case '`':
3743 case '{':
3744 case '|':
3745 case '}':
3746 case '~':
3747 case 0x7F: goto yy313;
3748 case '\\': goto yy148;
3749 default: goto yy61;
3750 }
3751 yy313:
3752 #line 487 "src/parser.re"
3753 { NEWTOKEN(PSI_T_FREE); goto start; }
3754 #line 3755 "src/parser.c"
3755 yy314:
3756 yyaccept = 5;
3757 yych = *(mrk = ++cur);
3758 switch (yych) {
3759 case 'T':
3760 case 't': goto yy392;
3761 default: goto yy62;
3762 }
3763 yy315:
3764 yyaccept = 5;
3765 yych = *(mrk = ++cur);
3766 switch (yych) {
3767 case 'F':
3768 case 'f': goto yy393;
3769 default: goto yy62;
3770 }
3771 yy316:
3772 yyaccept = 5;
3773 yych = *(mrk = ++cur);
3774 switch (yych) {
3775 case 'E':
3776 case 'e': goto yy395;
3777 default: goto yy62;
3778 }
3779 yy317:
3780 yyaccept = 5;
3781 yych = *(mrk = ++cur);
3782 switch (yych) {
3783 case 'U':
3784 case 'u': goto yy396;
3785 default: goto yy62;
3786 }
3787 yy318:
3788 yyaccept = 5;
3789 yych = *(mrk = ++cur);
3790 switch (yych) {
3791 case 'A':
3792 case 'a': goto yy397;
3793 default: goto yy62;
3794 }
3795 yy319:
3796 yyaccept = 5;
3797 yych = *(mrk = ++cur);
3798 switch (yych) {
3799 case 'D':
3800 case 'd': goto yy398;
3801 default: goto yy62;
3802 }
3803 yy320:
3804 yyaccept = 18;
3805 yych = *(mrk = ++cur);
3806 switch (yych) {
3807 case 0x00:
3808 case 0x01:
3809 case 0x02:
3810 case 0x03:
3811 case 0x04:
3812 case 0x05:
3813 case 0x06:
3814 case 0x07:
3815 case 0x08:
3816 case '\t':
3817 case '\n':
3818 case '\v':
3819 case '\f':
3820 case '\r':
3821 case 0x0E:
3822 case 0x0F:
3823 case 0x10:
3824 case 0x11:
3825 case 0x12:
3826 case 0x13:
3827 case 0x14:
3828 case 0x15:
3829 case 0x16:
3830 case 0x17:
3831 case 0x18:
3832 case 0x19:
3833 case 0x1A:
3834 case 0x1B:
3835 case 0x1C:
3836 case 0x1D:
3837 case 0x1E:
3838 case 0x1F:
3839 case ' ':
3840 case '!':
3841 case '"':
3842 case '#':
3843 case '$':
3844 case '%':
3845 case '&':
3846 case '\'':
3847 case '(':
3848 case ')':
3849 case '*':
3850 case '+':
3851 case ',':
3852 case '-':
3853 case '.':
3854 case '/':
3855 case ':':
3856 case ';':
3857 case '<':
3858 case '=':
3859 case '>':
3860 case '?':
3861 case '@':
3862 case '[':
3863 case ']':
3864 case '^':
3865 case '`':
3866 case '{':
3867 case '|':
3868 case '}':
3869 case '~':
3870 case 0x7F: goto yy321;
3871 case '\\': goto yy148;
3872 default: goto yy61;
3873 }
3874 yy321:
3875 #line 471 "src/parser.re"
3876 { NEWTOKEN(PSI_T_NULL); goto start; }
3877 #line 3878 "src/parser.c"
3878 yy322:
3879 yyaccept = 5;
3880 yych = *(mrk = ++cur);
3881 switch (yych) {
3882 case 'C':
3883 case 'c': goto yy400;
3884 default: goto yy62;
3885 }
3886 yy323:
3887 yyaccept = 5;
3888 yych = *(mrk = ++cur);
3889 switch (yych) {
3890 case 'A':
3891 case 'a': goto yy401;
3892 default: goto yy62;
3893 }
3894 yy324:
3895 yyaccept = 5;
3896 yych = *(mrk = ++cur);
3897 switch (yych) {
3898 case 'V':
3899 case 'v': goto yy402;
3900 default: goto yy62;
3901 }
3902 yy325:
3903 yyaccept = 5;
3904 yych = *(mrk = ++cur);
3905 switch (yych) {
3906 case '_': goto yy403;
3907 default: goto yy62;
3908 }
3909 yy326:
3910 yyaccept = 5;
3911 yych = *(mrk = ++cur);
3912 switch (yych) {
3913 case 'A':
3914 case 'a': goto yy404;
3915 default: goto yy62;
3916 }
3917 yy327:
3918 yyaccept = 5;
3919 yych = *(mrk = ++cur);
3920 switch (yych) {
3921 case 'R':
3922 case 'r': goto yy405;
3923 default: goto yy62;
3924 }
3925 yy328:
3926 yyaccept = 5;
3927 yych = *(mrk = ++cur);
3928 switch (yych) {
3929 case 'I':
3930 case 'i': goto yy406;
3931 default: goto yy62;
3932 }
3933 yy329:
3934 yyaccept = 5;
3935 yych = *(mrk = ++cur);
3936 switch (yych) {
3937 case 'N':
3938 case 'n': goto yy407;
3939 default: goto yy62;
3940 }
3941 yy330:
3942 yyaccept = 5;
3943 yych = *(mrk = ++cur);
3944 switch (yych) {
3945 case 'E':
3946 case 'e': goto yy408;
3947 default: goto yy62;
3948 }
3949 yy331:
3950 yyaccept = 5;
3951 yych = *(mrk = ++cur);
3952 switch (yych) {
3953 case 'A':
3954 case 'a': goto yy409;
3955 default: goto yy62;
3956 }
3957 yy332:
3958 yyaccept = 19;
3959 yych = *(mrk = ++cur);
3960 switch (yych) {
3961 case 0x00:
3962 case 0x01:
3963 case 0x02:
3964 case 0x03:
3965 case 0x04:
3966 case 0x05:
3967 case 0x06:
3968 case 0x07:
3969 case 0x08:
3970 case '\t':
3971 case '\n':
3972 case '\v':
3973 case '\f':
3974 case '\r':
3975 case 0x0E:
3976 case 0x0F:
3977 case 0x10:
3978 case 0x11:
3979 case 0x12:
3980 case 0x13:
3981 case 0x14:
3982 case 0x15:
3983 case 0x16:
3984 case 0x17:
3985 case 0x18:
3986 case 0x19:
3987 case 0x1A:
3988 case 0x1B:
3989 case 0x1C:
3990 case 0x1D:
3991 case 0x1E:
3992 case 0x1F:
3993 case ' ':
3994 case '!':
3995 case '"':
3996 case '#':
3997 case '$':
3998 case '%':
3999 case '&':
4000 case '\'':
4001 case '(':
4002 case ')':
4003 case '*':
4004 case '+':
4005 case ',':
4006 case '-':
4007 case '.':
4008 case '/':
4009 case ':':
4010 case ';':
4011 case '<':
4012 case '=':
4013 case '>':
4014 case '?':
4015 case '@':
4016 case '[':
4017 case ']':
4018 case '^':
4019 case '`':
4020 case '{':
4021 case '|':
4022 case '}':
4023 case '~':
4024 case 0x7F: goto yy333;
4025 case '\\': goto yy148;
4026 default: goto yy61;
4027 }
4028 yy333:
4029 #line 488 "src/parser.re"
4030 { NEWTOKEN(PSI_T_TEMP); goto start; }
4031 #line 4032 "src/parser.c"
4032 yy334:
4033 yyaccept = 5;
4034 yych = *(mrk = ++cur);
4035 switch (yych) {
4036 case 'R':
4037 case 'r': goto yy410;
4038 default: goto yy62;
4039 }
4040 yy335:
4041 yyaccept = 5;
4042 yych = *(mrk = ++cur);
4043 switch (yych) {
4044 case 'O':
4045 case 'o': goto yy411;
4046 default: goto yy62;
4047 }
4048 yy336:
4049 yyaccept = 5;
4050 yych = *(mrk = ++cur);
4051 switch (yych) {
4052 case 'L':
4053 case 'l': goto yy412;
4054 default: goto yy62;
4055 }
4056 yy337:
4057 yyaccept = 5;
4058 yych = *(mrk = ++cur);
4059 switch (yych) {
4060 case 'N':
4061 case 'n': goto yy413;
4062 default: goto yy62;
4063 }
4064 yy338:
4065 yyaccept = 5;
4066 yych = *(mrk = ++cur);
4067 switch (yych) {
4068 case 'B':
4069 case 'b': goto yy414;
4070 default: goto yy62;
4071 }
4072 yy339:
4073 yyaccept = 5;
4074 yych = *(mrk = ++cur);
4075 switch (yych) {
4076 case 'T':
4077 case 't': goto yy415;
4078 default: goto yy62;
4079 }
4080 yy340:
4081 yyaccept = 20;
4082 yych = *(mrk = ++cur);
4083 switch (yych) {
4084 case 0x00:
4085 case 0x01:
4086 case 0x02:
4087 case 0x03:
4088 case 0x04:
4089 case 0x05:
4090 case 0x06:
4091 case 0x07:
4092 case 0x08:
4093 case '\t':
4094 case '\n':
4095 case '\v':
4096 case '\f':
4097 case '\r':
4098 case 0x0E:
4099 case 0x0F:
4100 case 0x10:
4101 case 0x11:
4102 case 0x12:
4103 case 0x13:
4104 case 0x14:
4105 case 0x15:
4106 case 0x16:
4107 case 0x17:
4108 case 0x18:
4109 case 0x19:
4110 case 0x1A:
4111 case 0x1B:
4112 case 0x1C:
4113 case 0x1D:
4114 case 0x1E:
4115 case 0x1F:
4116 case ' ':
4117 case '!':
4118 case '"':
4119 case '#':
4120 case '$':
4121 case '%':
4122 case '&':
4123 case '\'':
4124 case '(':
4125 case ')':
4126 case '*':
4127 case '+':
4128 case ',':
4129 case '-':
4130 case '.':
4131 case '/':
4132 case ':':
4133 case ';':
4134 case '<':
4135 case '=':
4136 case '>':
4137 case '?':
4138 case '@':
4139 case '[':
4140 case ']':
4141 case '^':
4142 case '`':
4143 case '{':
4144 case '|':
4145 case '}':
4146 case '~':
4147 case 0x7F: goto yy341;
4148 case '\\': goto yy148;
4149 default: goto yy61;
4150 }
4151 yy341:
4152 #line 469 "src/parser.re"
4153 { NEWTOKEN(PSI_T_TRUE); goto start; }
4154 #line 4155 "src/parser.c"
4155 yy342:
4156 yyaccept = 5;
4157 yych = *(mrk = ++cur);
4158 switch (yych) {
4159 case 'F':
4160 case 'f': goto yy416;
4161 default: goto yy62;
4162 }
4163 yy343:
4164 yyaccept = 5;
4165 yych = *(mrk = ++cur);
4166 switch (yych) {
4167 case 'I':
4168 case 'i': goto yy418;
4169 default: goto yy62;
4170 }
4171 yy344:
4172 yyaccept = 21;
4173 yych = *(mrk = ++cur);
4174 switch (yych) {
4175 case 0x00:
4176 case 0x01:
4177 case 0x02:
4178 case 0x03:
4179 case 0x04:
4180 case 0x05:
4181 case 0x06:
4182 case 0x07:
4183 case 0x08:
4184 case '\t':
4185 case '\n':
4186 case '\v':
4187 case '\f':
4188 case '\r':
4189 case 0x0E:
4190 case 0x0F:
4191 case 0x10:
4192 case 0x11:
4193 case 0x12:
4194 case 0x13:
4195 case 0x14:
4196 case 0x15:
4197 case 0x16:
4198 case 0x17:
4199 case 0x18:
4200 case 0x19:
4201 case 0x1A:
4202 case 0x1B:
4203 case 0x1C:
4204 case 0x1D:
4205 case 0x1E:
4206 case 0x1F:
4207 case ' ':
4208 case '!':
4209 case '"':
4210 case '#':
4211 case '$':
4212 case '%':
4213 case '&':
4214 case '\'':
4215 case '(':
4216 case ')':
4217 case '*':
4218 case '+':
4219 case ',':
4220 case '-':
4221 case '.':
4222 case '/':
4223 case ':':
4224 case ';':
4225 case '<':
4226 case '=':
4227 case '>':
4228 case '?':
4229 case '@':
4230 case '[':
4231 case ']':
4232 case '^':
4233 case '`':
4234 case '{':
4235 case '|':
4236 case '}':
4237 case '~':
4238 case 0x7F: goto yy345;
4239 case '\\': goto yy148;
4240 default: goto yy61;
4241 }
4242 yy345:
4243 #line 497 "src/parser.re"
4244 { NEWTOKEN(PSI_T_ZVAL); goto start; }
4245 #line 4246 "src/parser.c"
4246 yy346:
4247 yyaccept = 5;
4248 yych = *(mrk = ++cur);
4249 switch (yych) {
4250 case 'm': goto yy419;
4251 default: goto yy62;
4252 }
4253 yy347:
4254 yyaccept = 5;
4255 yych = *(mrk = ++cur);
4256 switch (yych) {
4257 case 't': goto yy420;
4258 default: goto yy62;
4259 }
4260 yy348:
4261 yyaccept = 5;
4262 yych = *(mrk = ++cur);
4263 switch (yych) {
4264 case 't': goto yy421;
4265 default: goto yy62;
4266 }
4267 yy349:
4268 yyaccept = 5;
4269 yych = *(mrk = ++cur);
4270 switch (yych) {
4271 case 'l': goto yy422;
4272 default: goto yy62;
4273 }
4274 yy350:
4275 yyaccept = 5;
4276 yych = *(mrk = ++cur);
4277 switch (yych) {
4278 case 's': goto yy423;
4279 default: goto yy62;
4280 }
4281 yy351:
4282 yyaccept = 22;
4283 yych = *(mrk = ++cur);
4284 switch (yych) {
4285 case 0x00:
4286 case 0x01:
4287 case 0x02:
4288 case 0x03:
4289 case 0x04:
4290 case 0x05:
4291 case 0x06:
4292 case 0x07:
4293 case 0x08:
4294 case '\t':
4295 case '\n':
4296 case '\v':
4297 case '\f':
4298 case '\r':
4299 case 0x0E:
4300 case 0x0F:
4301 case 0x10:
4302 case 0x11:
4303 case 0x12:
4304 case 0x13:
4305 case 0x14:
4306 case 0x15:
4307 case 0x16:
4308 case 0x17:
4309 case 0x18:
4310 case 0x19:
4311 case 0x1A:
4312 case 0x1B:
4313 case 0x1C:
4314 case 0x1D:
4315 case 0x1E:
4316 case 0x1F:
4317 case ' ':
4318 case '!':
4319 case '"':
4320 case '#':
4321 case '$':
4322 case '%':
4323 case '&':
4324 case '\'':
4325 case '(':
4326 case ')':
4327 case '*':
4328 case '+':
4329 case ',':
4330 case '-':
4331 case '.':
4332 case '/':
4333 case ':':
4334 case ';':
4335 case '<':
4336 case '=':
4337 case '>':
4338 case '?':
4339 case '@':
4340 case '[':
4341 case ']':
4342 case '^':
4343 case '`':
4344 case '{':
4345 case '|':
4346 case '}':
4347 case '~':
4348 case 0x7F: goto yy352;
4349 case 'V':
4350 case 'v': goto yy378;
4351 case '\\': goto yy148;
4352 default: goto yy61;
4353 }
4354 yy352:
4355 #line 447 "src/parser.re"
4356 { NEWTOKEN(PSI_T_BOOL); goto start; }
4357 #line 4358 "src/parser.c"
4358 yy353:
4359 yyaccept = 23;
4360 yych = *(mrk = ++cur);
4361 switch (yych) {
4362 case 0x00:
4363 case 0x01:
4364 case 0x02:
4365 case 0x03:
4366 case 0x04:
4367 case 0x05:
4368 case 0x06:
4369 case 0x07:
4370 case 0x08:
4371 case '\t':
4372 case '\n':
4373 case '\v':
4374 case '\f':
4375 case '\r':
4376 case 0x0E:
4377 case 0x0F:
4378 case 0x10:
4379 case 0x11:
4380 case 0x12:
4381 case 0x13:
4382 case 0x14:
4383 case 0x15:
4384 case 0x16:
4385 case 0x17:
4386 case 0x18:
4387 case 0x19:
4388 case 0x1A:
4389 case 0x1B:
4390 case 0x1C:
4391 case 0x1D:
4392 case 0x1E:
4393 case 0x1F:
4394 case ' ':
4395 case '!':
4396 case '"':
4397 case '#':
4398 case '$':
4399 case '%':
4400 case '&':
4401 case '\'':
4402 case '(':
4403 case ')':
4404 case '*':
4405 case '+':
4406 case ',':
4407 case '-':
4408 case '.':
4409 case '/':
4410 case ':':
4411 case ';':
4412 case '<':
4413 case '=':
4414 case '>':
4415 case '?':
4416 case '@':
4417 case '[':
4418 case ']':
4419 case '^':
4420 case '`':
4421 case '{':
4422 case '|':
4423 case '}':
4424 case '~':
4425 case 0x7F: goto yy354;
4426 case '\\': goto yy148;
4427 default: goto yy61;
4428 }
4429 yy354:
4430 #line 448 "src/parser.re"
4431 { NEWTOKEN(PSI_T_CHAR); goto start; }
4432 #line 4433 "src/parser.c"
4433 yy355:
4434 yyaccept = 5;
4435 yych = *(mrk = ++cur);
4436 switch (yych) {
4437 case 't': goto yy424;
4438 default: goto yy62;
4439 }
4440 yy356:
4441 yyaccept = 5;
4442 yych = *(mrk = ++cur);
4443 switch (yych) {
4444 case 'l': goto yy426;
4445 default: goto yy62;
4446 }
4447 yy357:
4448 yyaccept = 24;
4449 yych = *(mrk = ++cur);
4450 switch (yych) {
4451 case 0x00:
4452 case 0x01:
4453 case 0x02:
4454 case 0x03:
4455 case 0x04:
4456 case 0x05:
4457 case 0x06:
4458 case 0x07:
4459 case 0x08:
4460 case '\t':
4461 case '\n':
4462 case '\v':
4463 case '\f':
4464 case '\r':
4465 case 0x0E:
4466 case 0x0F:
4467 case 0x10:
4468 case 0x11:
4469 case 0x12:
4470 case 0x13:
4471 case 0x14:
4472 case 0x15:
4473 case 0x16:
4474 case 0x17:
4475 case 0x18:
4476 case 0x19:
4477 case 0x1A:
4478 case 0x1B:
4479 case 0x1C:
4480 case 0x1D:
4481 case 0x1E:
4482 case 0x1F:
4483 case ' ':
4484 case '!':
4485 case '"':
4486 case '#':
4487 case '$':
4488 case '%':
4489 case '&':
4490 case '\'':
4491 case '(':
4492 case ')':
4493 case '*':
4494 case '+':
4495 case ',':
4496 case '-':
4497 case '.':
4498 case '/':
4499 case ':':
4500 case ';':
4501 case '<':
4502 case '=':
4503 case '>':
4504 case '?':
4505 case '@':
4506 case '[':
4507 case ']':
4508 case '^':
4509 case '`':
4510 case '{':
4511 case '|':
4512 case '}':
4513 case '~':
4514 case 0x7F: goto yy358;
4515 case '\\': goto yy148;
4516 default: goto yy61;
4517 }
4518 yy358:
4519 #line 444 "src/parser.re"
4520 { NEWTOKEN(PSI_T_ENUM); goto start; }
4521 #line 4522 "src/parser.c"
4522 yy359:
4523 yyaccept = 5;
4524 yych = *(mrk = ++cur);
4525 switch (yych) {
4526 case 'T': goto yy391;
4527 case 't': goto yy427;
4528 default: goto yy62;
4529 }
4530 yy360:
4531 yyaccept = 25;
4532 yych = *(mrk = ++cur);
4533 switch (yych) {
4534 case 0x00:
4535 case 0x01:
4536 case 0x02:
4537 case 0x03:
4538 case 0x04:
4539 case 0x05:
4540 case 0x06:
4541 case 0x07:
4542 case 0x08:
4543 case '\t':
4544 case '\n':
4545 case '\v':
4546 case '\f':
4547 case '\r':
4548 case 0x0E:
4549 case 0x0F:
4550 case 0x10:
4551 case 0x11:
4552 case 0x12:
4553 case 0x13:
4554 case 0x14:
4555 case 0x15:
4556 case 0x16:
4557 case 0x17:
4558 case 0x18:
4559 case 0x19:
4560 case 0x1A:
4561 case 0x1B:
4562 case 0x1C:
4563 case 0x1D:
4564 case 0x1E:
4565 case 0x1F:
4566 case ' ':
4567 case '!':
4568 case '"':
4569 case '#':
4570 case '$':
4571 case '%':
4572 case '&':
4573 case '\'':
4574 case '(':
4575 case ')':
4576 case '*':
4577 case '+':
4578 case ',':
4579 case '-':
4580 case '.':
4581 case '/':
4582 case ':':
4583 case ';':
4584 case '<':
4585 case '=':
4586 case '>':
4587 case '?':
4588 case '@':
4589 case '[':
4590 case ']':
4591 case '^':
4592 case '`':
4593 case '{':
4594 case '|':
4595 case '}':
4596 case '~':
4597 case 0x7F: goto yy361;
4598 case '\\': goto yy148;
4599 default: goto yy61;
4600 }
4601 yy361:
4602 #line 440 "src/parser.re"
4603 { NEWTOKEN(PSI_T_LINE); goto start; }
4604 #line 4605 "src/parser.c"
4605 yy362:
4606 yyaccept = 26;
4607 yych = *(mrk = ++cur);
4608 switch (yych) {
4609 case 0x00:
4610 case 0x01:
4611 case 0x02:
4612 case 0x03:
4613 case 0x04:
4614 case 0x05:
4615 case 0x06:
4616 case 0x07:
4617 case 0x08:
4618 case '\t':
4619 case '\n':
4620 case '\v':
4621 case '\f':
4622 case '\r':
4623 case 0x0E:
4624 case 0x0F:
4625 case 0x10:
4626 case 0x11:
4627 case 0x12:
4628 case 0x13:
4629 case 0x14:
4630 case 0x15:
4631 case 0x16:
4632 case 0x17:
4633 case 0x18:
4634 case 0x19:
4635 case 0x1A:
4636 case 0x1B:
4637 case 0x1C:
4638 case 0x1D:
4639 case 0x1E:
4640 case 0x1F:
4641 case ' ':
4642 case '!':
4643 case '"':
4644 case '#':
4645 case '$':
4646 case '%':
4647 case '&':
4648 case '\'':
4649 case '(':
4650 case ')':
4651 case '*':
4652 case '+':
4653 case ',':
4654 case '-':
4655 case '.':
4656 case '/':
4657 case ':':
4658 case ';':
4659 case '<':
4660 case '=':
4661 case '>':
4662 case '?':
4663 case '@':
4664 case '[':
4665 case ']':
4666 case '^':
4667 case '`':
4668 case '{':
4669 case '|':
4670 case '}':
4671 case '~':
4672 case 0x7F: goto yy363;
4673 case '\\': goto yy148;
4674 default: goto yy61;
4675 }
4676 yy363:
4677 #line 451 "src/parser.re"
4678 { NEWTOKEN(PSI_T_LONG); goto start; }
4679 #line 4680 "src/parser.c"
4680 yy364:
4681 yyaccept = 5;
4682 yych = *(mrk = ++cur);
4683 switch (yych) {
4684 case 'm': goto yy429;
4685 default: goto yy62;
4686 }
4687 yy365:
4688 yyaccept = 5;
4689 yych = *(mrk = ++cur);
4690 switch (yych) {
4691 case 't': goto yy430;
4692 default: goto yy62;
4693 }
4694 yy366:
4695 yyaccept = 5;
4696 yych = *(mrk = ++cur);
4697 switch (yych) {
4698 case 'e': goto yy432;
4699 default: goto yy62;
4700 }
4701 yy367:
4702 yyaccept = 5;
4703 yych = *(mrk = ++cur);
4704 switch (yych) {
4705 case 'o': goto yy433;
4706 default: goto yy62;
4707 }
4708 yy368:
4709 yyaccept = 5;
4710 yych = *(mrk = ++cur);
4711 switch (yych) {
4712 case 'c': goto yy434;
4713 default: goto yy62;
4714 }
4715 yy369:
4716 yyaccept = 5;
4717 yych = *(mrk = ++cur);
4718 switch (yych) {
4719 case 'd': goto yy435;
4720 default: goto yy62;
4721 }
4722 yy370:
4723 yyaccept = 5;
4724 yych = *(mrk = ++cur);
4725 switch (yych) {
4726 case 'n': goto yy436;
4727 default: goto yy62;
4728 }
4729 yy371:
4730 yyaccept = 5;
4731 yych = *(mrk = ++cur);
4732 switch (yych) {
4733 case 'g': goto yy438;
4734 default: goto yy62;
4735 }
4736 yy372:
4737 yyaccept = 27;
4738 yych = *(mrk = ++cur);
4739 switch (yych) {
4740 case 0x00:
4741 case 0x01:
4742 case 0x02:
4743 case 0x03:
4744 case 0x04:
4745 case 0x05:
4746 case 0x06:
4747 case 0x07:
4748 case 0x08:
4749 case '\t':
4750 case '\n':
4751 case '\v':
4752 case '\f':
4753 case '\r':
4754 case 0x0E:
4755 case 0x0F:
4756 case 0x10:
4757 case 0x11:
4758 case 0x12:
4759 case 0x13:
4760 case 0x14:
4761 case 0x15:
4762 case 0x16:
4763 case 0x17:
4764 case 0x18:
4765 case 0x19:
4766 case 0x1A:
4767 case 0x1B:
4768 case 0x1C:
4769 case 0x1D:
4770 case 0x1E:
4771 case 0x1F:
4772 case ' ':
4773 case '!':
4774 case '"':
4775 case '#':
4776 case '$':
4777 case '%':
4778 case '&':
4779 case '\'':
4780 case '(':
4781 case ')':
4782 case '*':
4783 case '+':
4784 case ',':
4785 case '-':
4786 case '.':
4787 case '/':
4788 case ':':
4789 case ';':
4790 case '<':
4791 case '=':
4792 case '>':
4793 case '?':
4794 case '@':
4795 case '[':
4796 case ']':
4797 case '^':
4798 case '`':
4799 case '{':
4800 case '|':
4801 case '}':
4802 case '~':
4803 case 0x7F: goto yy373;
4804 case '\\': goto yy148;
4805 default: goto yy61;
4806 }
4807 yy373:
4808 #line 446 "src/parser.re"
4809 { NEWTOKEN(PSI_T_VOID); goto start; }
4810 #line 4811 "src/parser.c"
4811 yy374:
4812 yyaccept = 5;
4813 yych = *(mrk = ++cur);
4814 switch (yych) {
4815 case 't': goto yy439;
4816 default: goto yy62;
4817 }
4818 yy375:
4819 yyaccept = 28;
4820 yych = *(mrk = ++cur);
4821 switch (yych) {
4822 case 0x00:
4823 case 0x01:
4824 case 0x02:
4825 case 0x03:
4826 case 0x04:
4827 case 0x05:
4828 case 0x06:
4829 case 0x07:
4830 case 0x08:
4831 case '\t':
4832 case '\n':
4833 case '\v':
4834 case '\f':
4835 case '\r':
4836 case 0x0E:
4837 case 0x0F:
4838 case 0x10:
4839 case 0x11:
4840 case 0x12:
4841 case 0x13:
4842 case 0x14:
4843 case 0x15:
4844 case 0x16:
4845 case 0x17:
4846 case 0x18:
4847 case 0x19:
4848 case 0x1A:
4849 case 0x1B:
4850 case 0x1C:
4851 case 0x1D:
4852 case 0x1E:
4853 case 0x1F:
4854 case ' ':
4855 case '!':
4856 case '"':
4857 case '#':
4858 case '$':
4859 case '%':
4860 case '&':
4861 case '\'':
4862 case '(':
4863 case ')':
4864 case '*':
4865 case '+':
4866 case ',':
4867 case '-':
4868 case '.':
4869 case '/':
4870 case ':':
4871 case ';':
4872 case '<':
4873 case '=':
4874 case '>':
4875 case '?':
4876 case '@':
4877 case '[':
4878 case ']':
4879 case '^':
4880 case '`':
4881 case '{':
4882 case '|':
4883 case '}':
4884 case '~':
4885 case 0x7F: goto yy376;
4886 case '\\': goto yy148;
4887 default: goto yy61;
4888 }
4889 yy376:
4890 #line 475 "src/parser.re"
4891 { NEWTOKEN(PSI_T_ARRAY); goto start; }
4892 #line 4893 "src/parser.c"
4893 yy377:
4894 yyaccept = 5;
4895 yych = *(mrk = ++cur);
4896 switch (yych) {
4897 case 'L':
4898 case 'l': goto yy440;
4899 default: goto yy62;
4900 }
4901 yy378:
4902 yyaccept = 5;
4903 yych = *(mrk = ++cur);
4904 switch (yych) {
4905 case 'A':
4906 case 'a': goto yy442;
4907 default: goto yy62;
4908 }
4909 yy379:
4910 yyaccept = 5;
4911 yych = *(mrk = ++cur);
4912 switch (yych) {
4913 case 'B':
4914 case 'b': goto yy443;
4915 default: goto yy62;
4916 }
4917 yy380:
4918 yyaccept = 5;
4919 yych = *(mrk = ++cur);
4920 switch (yych) {
4921 case 'A':
4922 case 'a': goto yy444;
4923 default: goto yy62;
4924 }
4925 yy381:
4926 yyaccept = 5;
4927 yych = *(mrk = ++cur);
4928 switch (yych) {
4929 case 'C':
4930 case 'c': goto yy445;
4931 default: goto yy62;
4932 }
4933 yy382:
4934 yyaccept = 29;
4935 yych = *(mrk = ++cur);
4936 switch (yych) {
4937 case 0x00:
4938 case 0x01:
4939 case 0x02:
4940 case 0x03:
4941 case 0x04:
4942 case 0x05:
4943 case 0x06:
4944 case 0x07:
4945 case 0x08:
4946 case '\t':
4947 case '\n':
4948 case '\v':
4949 case '\f':
4950 case '\r':
4951 case 0x0E:
4952 case 0x0F:
4953 case 0x10:
4954 case 0x11:
4955 case 0x12:
4956 case 0x13:
4957 case 0x14:
4958 case 0x15:
4959 case 0x16:
4960 case 0x17:
4961 case 0x18:
4962 case 0x19:
4963 case 0x1A:
4964 case 0x1B:
4965 case 0x1C:
4966 case 0x1D:
4967 case 0x1E:
4968 case 0x1F:
4969 case ' ':
4970 case '!':
4971 case '"':
4972 case '#':
4973 case '$':
4974 case '%':
4975 case '&':
4976 case '\'':
4977 case '(':
4978 case ')':
4979 case '*':
4980 case '+':
4981 case ',':
4982 case '-':
4983 case '.':
4984 case '/':
4985 case ':':
4986 case ';':
4987 case '<':
4988 case '=':
4989 case '>':
4990 case '?':
4991 case '@':
4992 case '[':
4993 case ']':
4994 case '^':
4995 case '`':
4996 case '{':
4997 case '|':
4998 case '}':
4999 case '~':
5000 case 0x7F: goto yy383;
5001 case '\\': goto yy148;
5002 default: goto yy61;
5003 }
5004 yy383:
5005 #line 498 "src/parser.re"
5006 { NEWTOKEN(PSI_T_COUNT); goto start; }
5007 #line 5008 "src/parser.c"
5008 yy384:
5009 yyaccept = 5;
5010 yych = *(mrk = ++cur);
5011 switch (yych) {
5012 case 'E':
5013 case 'e': goto yy447;
5014 default: goto yy62;
5015 }
5016 yy385:
5017 yyaccept = 30;
5018 yych = *(mrk = ++cur);
5019 switch (yych) {
5020 case 0x00:
5021 case 0x01:
5022 case 0x02:
5023 case 0x03:
5024 case 0x04:
5025 case 0x05:
5026 case 0x06:
5027 case 0x07:
5028 case 0x08:
5029 case '\t':
5030 case '\n':
5031 case '\v':
5032 case '\f':
5033 case '\r':
5034 case 0x0E:
5035 case 0x0F:
5036 case 0x10:
5037 case 0x11:
5038 case 0x12:
5039 case 0x13:
5040 case 0x14:
5041 case 0x15:
5042 case 0x16:
5043 case 0x17:
5044 case 0x18:
5045 case 0x19:
5046 case 0x1A:
5047 case 0x1B:
5048 case 0x1C:
5049 case 0x1D:
5050 case 0x1E:
5051 case 0x1F:
5052 case ' ':
5053 case '!':
5054 case '"':
5055 case '#':
5056 case '$':
5057 case '%':
5058 case '&':
5059 case '\'':
5060 case '(':
5061 case ')':
5062 case '*':
5063 case '+':
5064 case ',':
5065 case '-':
5066 case '.':
5067 case '/':
5068 case ':':
5069 case ';':
5070 case '<':
5071 case '=':
5072 case '>':
5073 case '?':
5074 case '@':
5075 case '[':
5076 case ']':
5077 case '^':
5078 case '`':
5079 case '{':
5080 case '|':
5081 case '}':
5082 case '~':
5083 case 0x7F: goto yy386;
5084 case '\\': goto yy148;
5085 default: goto yy61;
5086 }
5087 yy386:
5088 #line 461 "src/parser.re"
5089 { NEWTOKEN(PSI_T_ENDIF); goto start; }
5090 #line 5091 "src/parser.c"
5091 yy387:
5092 yyaccept = 31;
5093 yych = *(mrk = ++cur);
5094 switch (yych) {
5095 case 0x00:
5096 case 0x01:
5097 case 0x02:
5098 case 0x03:
5099 case 0x04:
5100 case 0x05:
5101 case 0x06:
5102 case 0x07:
5103 case 0x08:
5104 case '\t':
5105 case '\n':
5106 case '\v':
5107 case '\f':
5108 case '\r':
5109 case 0x0E:
5110 case 0x0F:
5111 case 0x10:
5112 case 0x11:
5113 case 0x12:
5114 case 0x13:
5115 case 0x14:
5116 case 0x15:
5117 case 0x16:
5118 case 0x17:
5119 case 0x18:
5120 case 0x19:
5121 case 0x1A:
5122 case 0x1B:
5123 case 0x1C:
5124 case 0x1D:
5125 case 0x1E:
5126 case 0x1F:
5127 case ' ':
5128 case '!':
5129 case '"':
5130 case '#':
5131 case '$':
5132 case '%':
5133 case '&':
5134 case '\'':
5135 case '(':
5136 case ')':
5137 case '*':
5138 case '+':
5139 case ',':
5140 case '-':
5141 case '.':
5142 case '/':
5143 case ':':
5144 case ';':
5145 case '<':
5146 case '=':
5147 case '>':
5148 case '?':
5149 case '@':
5150 case '[':
5151 case ']':
5152 case '^':
5153 case '`':
5154 case '{':
5155 case '|':
5156 case '}':
5157 case '~':
5158 case 0x7F: goto yy388;
5159 case '\\': goto yy148;
5160 default: goto yy61;
5161 }
5162 yy388:
5163 #line 466 "src/parser.re"
5164 { NEWTOKEN(PSI_T_ERROR); goto start; }
5165 #line 5166 "src/parser.c"
5166 yy389:
5167 yyaccept = 32;
5168 yych = *(mrk = ++cur);
5169 switch (yych) {
5170 case 0x00:
5171 case 0x01:
5172 case 0x02:
5173 case 0x03:
5174 case 0x04:
5175 case 0x05:
5176 case 0x06:
5177 case 0x07:
5178 case 0x08:
5179 case '\t':
5180 case '\n':
5181 case '\v':
5182 case '\f':
5183 case '\r':
5184 case 0x0E:
5185 case 0x0F:
5186 case 0x10:
5187 case 0x11:
5188 case 0x12:
5189 case 0x13:
5190 case 0x14:
5191 case 0x15:
5192 case 0x16:
5193 case 0x17:
5194 case 0x18:
5195 case 0x19:
5196 case 0x1A:
5197 case 0x1B:
5198 case 0x1C:
5199 case 0x1D:
5200 case 0x1E:
5201 case 0x1F:
5202 case ' ':
5203 case '!':
5204 case '"':
5205 case '#':
5206 case '$':
5207 case '%':
5208 case '&':
5209 case '\'':
5210 case '(':
5211 case ')':
5212 case '*':
5213 case '+':
5214 case ',':
5215 case '-':
5216 case '.':
5217 case '/':
5218 case ':':
5219 case ';':
5220 case '<':
5221 case '=':
5222 case '>':
5223 case '?':
5224 case '@':
5225 case '[':
5226 case ']':
5227 case '^':
5228 case '`':
5229 case '{':
5230 case '|':
5231 case '}':
5232 case '~':
5233 case 0x7F: goto yy390;
5234 case '\\': goto yy148;
5235 default: goto yy61;
5236 }
5237 yy390:
5238 #line 470 "src/parser.re"
5239 { NEWTOKEN(PSI_T_FALSE); goto start; }
5240 #line 5241 "src/parser.c"
5241 yy391:
5242 yyaccept = 5;
5243 yych = *(mrk = ++cur);
5244 switch (yych) {
5245 case 'V':
5246 case 'v': goto yy449;
5247 default: goto yy62;
5248 }
5249 yy392:
5250 yyaccept = 5;
5251 yych = *(mrk = ++cur);
5252 switch (yych) {
5253 case 'I':
5254 case 'i': goto yy450;
5255 default: goto yy62;
5256 }
5257 yy393:
5258 yyaccept = 33;
5259 yych = *(mrk = ++cur);
5260 switch (yych) {
5261 case 0x00:
5262 case 0x01:
5263 case 0x02:
5264 case 0x03:
5265 case 0x04:
5266 case 0x05:
5267 case 0x06:
5268 case 0x07:
5269 case 0x08:
5270 case '\t':
5271 case '\n':
5272 case '\v':
5273 case '\f':
5274 case '\r':
5275 case 0x0E:
5276 case 0x0F:
5277 case 0x10:
5278 case 0x11:
5279 case 0x12:
5280 case 0x13:
5281 case 0x14:
5282 case 0x15:
5283 case 0x16:
5284 case 0x17:
5285 case 0x18:
5286 case 0x19:
5287 case 0x1A:
5288 case 0x1B:
5289 case 0x1C:
5290 case 0x1D:
5291 case 0x1E:
5292 case 0x1F:
5293 case ' ':
5294 case '!':
5295 case '"':
5296 case '#':
5297 case '$':
5298 case '%':
5299 case '&':
5300 case '\'':
5301 case '(':
5302 case ')':
5303 case '*':
5304 case '+':
5305 case ',':
5306 case '-':
5307 case '.':
5308 case '/':
5309 case ':':
5310 case ';':
5311 case '<':
5312 case '=':
5313 case '>':
5314 case '?':
5315 case '@':
5316 case '[':
5317 case ']':
5318 case '^':
5319 case '`':
5320 case '{':
5321 case '|':
5322 case '}':
5323 case '~':
5324 case 0x7F: goto yy394;
5325 case '\\': goto yy148;
5326 default: goto yy61;
5327 }
5328 yy394:
5329 #line 457 "src/parser.re"
5330 { NEWTOKEN(PSI_T_IFDEF); goto start; }
5331 #line 5332 "src/parser.c"
5332 yy395:
5333 yyaccept = 5;
5334 yych = *(mrk = ++cur);
5335 switch (yych) {
5336 case 'F':
5337 case 'f': goto yy451;
5338 default: goto yy62;
5339 }
5340 yy396:
5341 yyaccept = 5;
5342 yych = *(mrk = ++cur);
5343 switch (yych) {
5344 case 'D':
5345 case 'd': goto yy453;
5346 default: goto yy62;
5347 }
5348 yy397:
5349 yyaccept = 5;
5350 yych = *(mrk = ++cur);
5351 switch (yych) {
5352 case 'L':
5353 case 'l': goto yy454;
5354 default: goto yy62;
5355 }
5356 yy398:
5357 yyaccept = 34;
5358 yych = *(mrk = ++cur);
5359 switch (yych) {
5360 case 0x00:
5361 case 0x01:
5362 case 0x02:
5363 case 0x03:
5364 case 0x04:
5365 case 0x05:
5366 case 0x06:
5367 case 0x07:
5368 case 0x08:
5369 case '\t':
5370 case '\n':
5371 case '\v':
5372 case '\f':
5373 case '\r':
5374 case 0x0E:
5375 case 0x0F:
5376 case 0x10:
5377 case 0x11:
5378 case 0x12:
5379 case 0x13:
5380 case 0x14:
5381 case 0x15:
5382 case 0x16:
5383 case 0x17:
5384 case 0x18:
5385 case 0x19:
5386 case 0x1A:
5387 case 0x1B:
5388 case 0x1C:
5389 case 0x1D:
5390 case 0x1E:
5391 case 0x1F:
5392 case ' ':
5393 case '!':
5394 case '"':
5395 case '#':
5396 case '$':
5397 case '%':
5398 case '&':
5399 case '\'':
5400 case '(':
5401 case ')':
5402 case '*':
5403 case '+':
5404 case ',':
5405 case '-':
5406 case '.':
5407 case '/':
5408 case ':':
5409 case ';':
5410 case '<':
5411 case '=':
5412 case '>':
5413 case '?':
5414 case '@':
5415 case '[':
5416 case ']':
5417 case '^':
5418 case '`':
5419 case '{':
5420 case '|':
5421 case '}':
5422 case '~':
5423 case 0x7F: goto yy399;
5424 case '\\': goto yy148;
5425 default: goto yy61;
5426 }
5427 yy399:
5428 #line 472 "src/parser.re"
5429 { NEWTOKEN(PSI_T_MIXED); goto start; }
5430 #line 5431 "src/parser.c"
5431 yy400:
5432 yyaccept = 5;
5433 yych = *(mrk = ++cur);
5434 switch (yych) {
5435 case 'T':
5436 case 't': goto yy456;
5437 default: goto yy62;
5438 }
5439 yy401:
5440 yyaccept = 5;
5441 yych = *(mrk = ++cur);
5442 switch (yych) {
5443 case 'L':
5444 case 'l': goto yy458;
5445 default: goto yy62;
5446 }
5447 yy402:
5448 yyaccept = 5;
5449 yych = *(mrk = ++cur);
5450 switch (yych) {
5451 case 'A':
5452 case 'a': goto yy460;
5453 default: goto yy62;
5454 }
5455 yy403:
5456 yyaccept = 5;
5457 yych = *(mrk = ++cur);
5458 switch (yych) {
5459 case 'A':
5460 case 'a': goto yy461;
5461 default: goto yy62;
5462 }
5463 yy404:
5464 yyaccept = 5;
5465 yych = *(mrk = ++cur);
5466 switch (yych) {
5467 case 'S':
5468 case 's': goto yy462;
5469 default: goto yy62;
5470 }
5471 yy405:
5472 yyaccept = 5;
5473 yych = *(mrk = ++cur);
5474 switch (yych) {
5475 case 'N':
5476 case 'n': goto yy463;
5477 default: goto yy62;
5478 }
5479 yy406:
5480 yyaccept = 5;
5481 yych = *(mrk = ++cur);
5482 switch (yych) {
5483 case 'C':
5484 case 'c': goto yy465;
5485 default: goto yy62;
5486 }
5487 yy407:
5488 yyaccept = 5;
5489 yych = *(mrk = ++cur);
5490 switch (yych) {
5491 case 'G':
5492 case 'g': goto yy467;
5493 default: goto yy62;
5494 }
5495 yy408:
5496 yyaccept = 5;
5497 yych = *(mrk = ++cur);
5498 switch (yych) {
5499 case 'N':
5500 case 'n': goto yy469;
5501 default: goto yy62;
5502 }
5503 yy409:
5504 yyaccept = 5;
5505 yych = *(mrk = ++cur);
5506 switch (yych) {
5507 case 'L':
5508 case 'l': goto yy471;
5509 default: goto yy62;
5510 }
5511 yy410:
5512 yyaccept = 5;
5513 yych = *(mrk = ++cur);
5514 switch (yych) {
5515 case 'R':
5516 case 'r': goto yy473;
5517 default: goto yy62;
5518 }
5519 yy411:
5520 yyaccept = 5;
5521 yych = *(mrk = ++cur);
5522 switch (yych) {
5523 case 'O':
5524 case 'o': goto yy474;
5525 default: goto yy62;
5526 }
5527 yy412:
5528 yyaccept = 5;
5529 yych = *(mrk = ++cur);
5530 switch (yych) {
5531 case 'O':
5532 case 'o': goto yy475;
5533 default: goto yy62;
5534 }
5535 yy413:
5536 yyaccept = 5;
5537 yych = *(mrk = ++cur);
5538 switch (yych) {
5539 case 'T':
5540 case 't': goto yy476;
5541 default: goto yy62;
5542 }
5543 yy414:
5544 yyaccept = 5;
5545 yych = *(mrk = ++cur);
5546 switch (yych) {
5547 case 'J':
5548 case 'j': goto yy478;
5549 default: goto yy62;
5550 }
5551 yy415:
5552 yyaccept = 5;
5553 yych = *(mrk = ++cur);
5554 switch (yych) {
5555 case 'R':
5556 case 'r': goto yy479;
5557 default: goto yy62;
5558 }
5559 yy416:
5560 yyaccept = 35;
5561 yych = *(mrk = ++cur);
5562 switch (yych) {
5563 case 0x00:
5564 case 0x01:
5565 case 0x02:
5566 case 0x03:
5567 case 0x04:
5568 case 0x05:
5569 case 0x06:
5570 case 0x07:
5571 case 0x08:
5572 case '\t':
5573 case '\n':
5574 case '\v':
5575 case '\f':
5576 case '\r':
5577 case 0x0E:
5578 case 0x0F:
5579 case 0x10:
5580 case 0x11:
5581 case 0x12:
5582 case 0x13:
5583 case 0x14:
5584 case 0x15:
5585 case 0x16:
5586 case 0x17:
5587 case 0x18:
5588 case 0x19:
5589 case 0x1A:
5590 case 0x1B:
5591 case 0x1C:
5592 case 0x1D:
5593 case 0x1E:
5594 case 0x1F:
5595 case ' ':
5596 case '!':
5597 case '"':
5598 case '#':
5599 case '$':
5600 case '%':
5601 case '&':
5602 case '\'':
5603 case '(':
5604 case ')':
5605 case '*':
5606 case '+':
5607 case ',':
5608 case '-':
5609 case '.':
5610 case '/':
5611 case ':':
5612 case ';':
5613 case '<':
5614 case '=':
5615 case '>':
5616 case '?':
5617 case '@':
5618 case '[':
5619 case ']':
5620 case '^':
5621 case '`':
5622 case '{':
5623 case '|':
5624 case '}':
5625 case '~':
5626 case 0x7F: goto yy417;
5627 case '\\': goto yy148;
5628 default: goto yy61;
5629 }
5630 yy417:
5631 #line 464 "src/parser.re"
5632 { NEWTOKEN(PSI_T_UNDEF); goto start; }
5633 #line 5634 "src/parser.c"
5634 yy418:
5635 yyaccept = 5;
5636 yych = *(mrk = ++cur);
5637 switch (yych) {
5638 case 'N':
5639 case 'n': goto yy480;
5640 default: goto yy62;
5641 }
5642 yy419:
5643 yyaccept = 5;
5644 yych = *(mrk = ++cur);
5645 switch (yych) {
5646 case '_': goto yy481;
5647 default: goto yy62;
5648 }
5649 yy420:
5650 yyaccept = 5;
5651 yych = *(mrk = ++cur);
5652 switch (yych) {
5653 case 'r': goto yy482;
5654 default: goto yy62;
5655 }
5656 yy421:
5657 yyaccept = 5;
5658 yych = *(mrk = ++cur);
5659 switch (yych) {
5660 case 'e': goto yy483;
5661 default: goto yy62;
5662 }
5663 yy422:
5664 yyaccept = 5;
5665 yych = *(mrk = ++cur);
5666 switch (yych) {
5667 case 'i': goto yy484;
5668 default: goto yy62;
5669 }
5670 yy423:
5671 yyaccept = 5;
5672 yych = *(mrk = ++cur);
5673 switch (yych) {
5674 case 't': goto yy485;
5675 default: goto yy62;
5676 }
5677 yy424:
5678 yyaccept = 36;
5679 yych = *(mrk = ++cur);
5680 switch (yych) {
5681 case 0x00:
5682 case 0x01:
5683 case 0x02:
5684 case 0x03:
5685 case 0x04:
5686 case 0x05:
5687 case 0x06:
5688 case 0x07:
5689 case 0x08:
5690 case '\t':
5691 case '\n':
5692 case '\v':
5693 case '\f':
5694 case '\r':
5695 case 0x0E:
5696 case 0x0F:
5697 case 0x10:
5698 case 0x11:
5699 case 0x12:
5700 case 0x13:
5701 case 0x14:
5702 case 0x15:
5703 case 0x16:
5704 case 0x17:
5705 case 0x18:
5706 case 0x19:
5707 case 0x1A:
5708 case 0x1B:
5709 case 0x1C:
5710 case 0x1D:
5711 case 0x1E:
5712 case 0x1F:
5713 case ' ':
5714 case '!':
5715 case '"':
5716 case '#':
5717 case '$':
5718 case '%':
5719 case '&':
5720 case '\'':
5721 case '(':
5722 case ')':
5723 case '*':
5724 case '+':
5725 case ',':
5726 case '-':
5727 case '.':
5728 case '/':
5729 case ':':
5730 case ';':
5731 case '<':
5732 case '=':
5733 case '>':
5734 case '?':
5735 case '@':
5736 case '[':
5737 case ']':
5738 case '^':
5739 case '`':
5740 case '{':
5741 case '|':
5742 case '}':
5743 case '~':
5744 case 0x7F: goto yy425;
5745 case '\\': goto yy148;
5746 default: goto yy61;
5747 }
5748 yy425:
5749 #line 445 "src/parser.re"
5750 { NEWTOKEN(PSI_T_CONST); goto start; }
5751 #line 5752 "src/parser.c"
5752 yy426:
5753 yyaccept = 5;
5754 yych = *(mrk = ++cur);
5755 switch (yych) {
5756 case 'e': goto yy486;
5757 default: goto yy62;
5758 }
5759 yy427:
5760 yyaccept = 37;
5761 yych = *(mrk = ++cur);
5762 switch (yych) {
5763 case 0x00:
5764 case 0x01:
5765 case 0x02:
5766 case 0x03:
5767 case 0x04:
5768 case 0x05:
5769 case 0x06:
5770 case 0x07:
5771 case 0x08:
5772 case '\t':
5773 case '\n':
5774 case '\v':
5775 case '\f':
5776 case '\r':
5777 case 0x0E:
5778 case 0x0F:
5779 case 0x10:
5780 case 0x11:
5781 case 0x12:
5782 case 0x13:
5783 case 0x14:
5784 case 0x15:
5785 case 0x16:
5786 case 0x17:
5787 case 0x18:
5788 case 0x19:
5789 case 0x1A:
5790 case 0x1B:
5791 case 0x1C:
5792 case 0x1D:
5793 case 0x1E:
5794 case 0x1F:
5795 case ' ':
5796 case '!':
5797 case '"':
5798 case '#':
5799 case '$':
5800 case '%':
5801 case '&':
5802 case '\'':
5803 case '(':
5804 case ')':
5805 case '*':
5806 case '+':
5807 case ',':
5808 case '-':
5809 case '.':
5810 case '/':
5811 case ':':
5812 case ';':
5813 case '<':
5814 case '=':
5815 case '>':
5816 case '?':
5817 case '@':
5818 case '[':
5819 case ']':
5820 case '^':
5821 case '`':
5822 case '{':
5823 case '|':
5824 case '}':
5825 case '~':
5826 case 0x7F: goto yy428;
5827 case 'V':
5828 case 'v': goto yy449;
5829 case '\\': goto yy148;
5830 default: goto yy61;
5831 }
5832 yy428:
5833 #line 452 "src/parser.re"
5834 { NEWTOKEN(PSI_T_FLOAT); goto start; }
5835 #line 5836 "src/parser.c"
5836 yy429:
5837 yyaccept = 5;
5838 yych = *(mrk = ++cur);
5839 switch (yych) {
5840 case 'a': goto yy488;
5841 default: goto yy62;
5842 }
5843 yy430:
5844 yyaccept = 38;
5845 yych = *(mrk = ++cur);
5846 switch (yych) {
5847 case 0x00:
5848 case 0x01:
5849 case 0x02:
5850 case 0x03:
5851 case 0x04:
5852 case 0x05:
5853 case 0x06:
5854 case 0x07:
5855 case 0x08:
5856 case '\t':
5857 case '\n':
5858 case '\v':
5859 case '\f':
5860 case '\r':
5861 case 0x0E:
5862 case 0x0F:
5863 case 0x10:
5864 case 0x11:
5865 case 0x12:
5866 case 0x13:
5867 case 0x14:
5868 case 0x15:
5869 case 0x16:
5870 case 0x17:
5871 case 0x18:
5872 case 0x19:
5873 case 0x1A:
5874 case 0x1B:
5875 case 0x1C:
5876 case 0x1D:
5877 case 0x1E:
5878 case 0x1F:
5879 case ' ':
5880 case '!':
5881 case '"':
5882 case '#':
5883 case '$':
5884 case '%':
5885 case '&':
5886 case '\'':
5887 case '(':
5888 case ')':
5889 case '*':
5890 case '+':
5891 case ',':
5892 case '-':
5893 case '.':
5894 case '/':
5895 case ':':
5896 case ';':
5897 case '<':
5898 case '=':
5899 case '>':
5900 case '?':
5901 case '@':
5902 case '[':
5903 case ']':
5904 case '^':
5905 case '`':
5906 case '{':
5907 case '|':
5908 case '}':
5909 case '~':
5910 case 0x7F: goto yy431;
5911 case '\\': goto yy148;
5912 default: goto yy61;
5913 }
5914 yy431:
5915 #line 449 "src/parser.re"
5916 { NEWTOKEN(PSI_T_SHORT); goto start; }
5917 #line 5918 "src/parser.c"
5918 yy432:
5919 yyaccept = 5;
5920 yych = *(mrk = ++cur);
5921 switch (yych) {
5922 case 'd': goto yy490;
5923 default: goto yy62;
5924 }
5925 yy433:
5926 yyaccept = 5;
5927 yych = *(mrk = ++cur);
5928 switch (yych) {
5929 case 'f': goto yy492;
5930 default: goto yy62;
5931 }
5932 yy434:
5933 yyaccept = 5;
5934 yych = *(mrk = ++cur);
5935 switch (yych) {
5936 case 't': goto yy494;
5937 default: goto yy62;
5938 }
5939 yy435:
5940 yyaccept = 5;
5941 yych = *(mrk = ++cur);
5942 switch (yych) {
5943 case 'e': goto yy496;
5944 default: goto yy62;
5945 }
5946 yy436:
5947 yyaccept = 39;
5948 yych = *(mrk = ++cur);
5949 switch (yych) {
5950 case 0x00:
5951 case 0x01:
5952 case 0x02:
5953 case 0x03:
5954 case 0x04:
5955 case 0x05:
5956 case 0x06:
5957 case 0x07:
5958 case 0x08:
5959 case '\t':
5960 case '\n':
5961 case '\v':
5962 case '\f':
5963 case '\r':
5964 case 0x0E:
5965 case 0x0F:
5966 case 0x10:
5967 case 0x11:
5968 case 0x12:
5969 case 0x13:
5970 case 0x14:
5971 case 0x15:
5972 case 0x16:
5973 case 0x17:
5974 case 0x18:
5975 case 0x19:
5976 case 0x1A:
5977 case 0x1B:
5978 case 0x1C:
5979 case 0x1D:
5980 case 0x1E:
5981 case 0x1F:
5982 case ' ':
5983 case '!':
5984 case '"':
5985 case '#':
5986 case '$':
5987 case '%':
5988 case '&':
5989 case '\'':
5990 case '(':
5991 case ')':
5992 case '*':
5993 case '+':
5994 case ',':
5995 case '-':
5996 case '.':
5997 case '/':
5998 case ':':
5999 case ';':
6000 case '<':
6001 case '=':
6002 case '>':
6003 case '?':
6004 case '@':
6005 case '[':
6006 case ']':
6007 case '^':
6008 case '`':
6009 case '{':
6010 case '|':
6011 case '}':
6012 case '~':
6013 case 0x7F: goto yy437;
6014 case '\\': goto yy148;
6015 default: goto yy61;
6016 }
6017 yy437:
6018 #line 443 "src/parser.re"
6019 { NEWTOKEN(PSI_T_UNION); goto start; }
6020 #line 6021 "src/parser.c"
6021 yy438:
6022 yyaccept = 5;
6023 yych = *(mrk = ++cur);
6024 switch (yych) {
6025 case 'n': goto yy497;
6026 default: goto yy62;
6027 }
6028 yy439:
6029 yyaccept = 5;
6030 yych = *(mrk = ++cur);
6031 switch (yych) {
6032 case 'i': goto yy498;
6033 default: goto yy62;
6034 }
6035 yy440:
6036 yyaccept = 40;
6037 yych = *(mrk = ++cur);
6038 switch (yych) {
6039 case 0x00:
6040 case 0x01:
6041 case 0x02:
6042 case 0x03:
6043 case 0x04:
6044 case 0x05:
6045 case 0x06:
6046 case 0x07:
6047 case 0x08:
6048 case '\t':
6049 case '\n':
6050 case '\v':
6051 case '\f':
6052 case '\r':
6053 case 0x0E:
6054 case 0x0F:
6055 case 0x10:
6056 case 0x11:
6057 case 0x12:
6058 case 0x13:
6059 case 0x14:
6060 case 0x15:
6061 case 0x16:
6062 case 0x17:
6063 case 0x18:
6064 case 0x19:
6065 case 0x1A:
6066 case 0x1B:
6067 case 0x1C:
6068 case 0x1D:
6069 case 0x1E:
6070 case 0x1F:
6071 case ' ':
6072 case '!':
6073 case '"':
6074 case '#':
6075 case '$':
6076 case '%':
6077 case '&':
6078 case '\'':
6079 case '(':
6080 case ')':
6081 case '*':
6082 case '+':
6083 case ',':
6084 case '-':
6085 case '.':
6086 case '/':
6087 case ':':
6088 case ';':
6089 case '<':
6090 case '=':
6091 case '>':
6092 case '?':
6093 case '@':
6094 case '[':
6095 case ']':
6096 case '^':
6097 case '`':
6098 case '{':
6099 case '|':
6100 case '}':
6101 case '~':
6102 case 0x7F: goto yy441;
6103 case '\\': goto yy148;
6104 default: goto yy61;
6105 }
6106 yy441:
6107 #line 495 "src/parser.re"
6108 { NEWTOKEN(PSI_T_ARRVAL); goto start; }
6109 #line 6110 "src/parser.c"
6110 yy442:
6111 yyaccept = 5;
6112 yych = *(mrk = ++cur);
6113 switch (yych) {
6114 case 'L':
6115 case 'l': goto yy499;
6116 default: goto yy62;
6117 }
6118 yy443:
6119 yyaccept = 5;
6120 yych = *(mrk = ++cur);
6121 switch (yych) {
6122 case 'L':
6123 case 'l': goto yy501;
6124 default: goto yy62;
6125 }
6126 yy444:
6127 yyaccept = 5;
6128 yych = *(mrk = ++cur);
6129 switch (yych) {
6130 case 'C':
6131 case 'c': goto yy502;
6132 default: goto yy62;
6133 }
6134 yy445:
6135 yyaccept = 41;
6136 yych = *(mrk = ++cur);
6137 switch (yych) {
6138 case 0x00:
6139 case 0x01:
6140 case 0x02:
6141 case 0x03:
6142 case 0x04:
6143 case 0x05:
6144 case 0x06:
6145 case 0x07:
6146 case 0x08:
6147 case '\t':
6148 case '\n':
6149 case '\v':
6150 case '\f':
6151 case '\r':
6152 case 0x0E:
6153 case 0x0F:
6154 case 0x10:
6155 case 0x11:
6156 case 0x12:
6157 case 0x13:
6158 case 0x14:
6159 case 0x15:
6160 case 0x16:
6161 case 0x17:
6162 case 0x18:
6163 case 0x19:
6164 case 0x1A:
6165 case 0x1B:
6166 case 0x1C:
6167 case 0x1D:
6168 case 0x1E:
6169 case 0x1F:
6170 case ' ':
6171 case '!':
6172 case '"':
6173 case '#':
6174 case '$':
6175 case '%':
6176 case '&':
6177 case '\'':
6178 case '(':
6179 case ')':
6180 case '*':
6181 case '+':
6182 case ',':
6183 case '-':
6184 case '.':
6185 case '/':
6186 case ':':
6187 case ';':
6188 case '<':
6189 case '=':
6190 case '>':
6191 case '?':
6192 case '@':
6193 case '[':
6194 case ']':
6195 case '^':
6196 case '`':
6197 case '{':
6198 case '|':
6199 case '}':
6200 case '~':
6201 case 0x7F: goto yy446;
6202 case '\\': goto yy148;
6203 default: goto yy61;
6204 }
6205 yy446:
6206 #line 499 "src/parser.re"
6207 { NEWTOKEN(PSI_T_CALLOC); goto start; }
6208 #line 6209 "src/parser.c"
6209 yy447:
6210 yyaccept = 42;
6211 yych = *(mrk = ++cur);
6212 switch (yych) {
6213 case 0x00:
6214 case 0x01:
6215 case 0x02:
6216 case 0x03:
6217 case 0x04:
6218 case 0x05:
6219 case 0x06:
6220 case 0x07:
6221 case 0x08:
6222 case '\t':
6223 case '\n':
6224 case '\v':
6225 case '\f':
6226 case '\r':
6227 case 0x0E:
6228 case 0x0F:
6229 case 0x10:
6230 case 0x11:
6231 case 0x12:
6232 case 0x13:
6233 case 0x14:
6234 case 0x15:
6235 case 0x16:
6236 case 0x17:
6237 case 0x18:
6238 case 0x19:
6239 case 0x1A:
6240 case 0x1B:
6241 case 0x1C:
6242 case 0x1D:
6243 case 0x1E:
6244 case 0x1F:
6245 case ' ':
6246 case '!':
6247 case '"':
6248 case '#':
6249 case '$':
6250 case '%':
6251 case '&':
6252 case '\'':
6253 case '(':
6254 case ')':
6255 case '*':
6256 case '+':
6257 case ',':
6258 case '-':
6259 case '.':
6260 case '/':
6261 case ':':
6262 case ';':
6263 case '<':
6264 case '=':
6265 case '>':
6266 case '?':
6267 case '@':
6268 case '[':
6269 case ']':
6270 case '^':
6271 case '`':
6272 case '{':
6273 case '|':
6274 case '}':
6275 case '~':
6276 case 0x7F: goto yy448;
6277 case 'D':
6278 case 'd': goto yy503;
6279 case '\\': goto yy148;
6280 default: goto yy61;
6281 }
6282 yy448:
6283 #line 462 "src/parser.re"
6284 { NEWTOKEN(PSI_T_DEFINE); goto start; }
6285 #line 6286 "src/parser.c"
6286 yy449:
6287 yyaccept = 5;
6288 yych = *(mrk = ++cur);
6289 switch (yych) {
6290 case 'A':
6291 case 'a': goto yy505;
6292 default: goto yy62;
6293 }
6294 yy450:
6295 yyaccept = 5;
6296 yych = *(mrk = ++cur);
6297 switch (yych) {
6298 case 'O':
6299 case 'o': goto yy506;
6300 default: goto yy62;
6301 }
6302 yy451:
6303 yyaccept = 43;
6304 yych = *(mrk = ++cur);
6305 switch (yych) {
6306 case 0x00:
6307 case 0x01:
6308 case 0x02:
6309 case 0x03:
6310 case 0x04:
6311 case 0x05:
6312 case 0x06:
6313 case 0x07:
6314 case 0x08:
6315 case '\t':
6316 case '\n':
6317 case '\v':
6318 case '\f':
6319 case '\r':
6320 case 0x0E:
6321 case 0x0F:
6322 case 0x10:
6323 case 0x11:
6324 case 0x12:
6325 case 0x13:
6326 case 0x14:
6327 case 0x15:
6328 case 0x16:
6329 case 0x17:
6330 case 0x18:
6331 case 0x19:
6332 case 0x1A:
6333 case 0x1B:
6334 case 0x1C:
6335 case 0x1D:
6336 case 0x1E:
6337 case 0x1F:
6338 case ' ':
6339 case '!':
6340 case '"':
6341 case '#':
6342 case '$':
6343 case '%':
6344 case '&':
6345 case '\'':
6346 case '(':
6347 case ')':
6348 case '*':
6349 case '+':
6350 case ',':
6351 case '-':
6352 case '.':
6353 case '/':
6354 case ':':
6355 case ';':
6356 case '<':
6357 case '=':
6358 case '>':
6359 case '?':
6360 case '@':
6361 case '[':
6362 case ']':
6363 case '^':
6364 case '`':
6365 case '{':
6366 case '|':
6367 case '}':
6368 case '~':
6369 case 0x7F: goto yy452;
6370 case '\\': goto yy148;
6371 default: goto yy61;
6372 }
6373 yy452:
6374 #line 458 "src/parser.re"
6375 { NEWTOKEN(PSI_T_IFNDEF); goto start; }
6376 #line 6377 "src/parser.c"
6377 yy453:
6378 yyaccept = 5;
6379 yych = *(mrk = ++cur);
6380 switch (yych) {
6381 case 'E':
6382 case 'e': goto yy507;
6383 default: goto yy62;
6384 }
6385 yy454:
6386 yyaccept = 44;
6387 yych = *(mrk = ++cur);
6388 switch (yych) {
6389 case 0x00:
6390 case 0x01:
6391 case 0x02:
6392 case 0x03:
6393 case 0x04:
6394 case 0x05:
6395 case 0x06:
6396 case 0x07:
6397 case 0x08:
6398 case '\t':
6399 case '\n':
6400 case '\v':
6401 case '\f':
6402 case '\r':
6403 case 0x0E:
6404 case 0x0F:
6405 case 0x10:
6406 case 0x11:
6407 case 0x12:
6408 case 0x13:
6409 case 0x14:
6410 case 0x15:
6411 case 0x16:
6412 case 0x17:
6413 case 0x18:
6414 case 0x19:
6415 case 0x1A:
6416 case 0x1B:
6417 case 0x1C:
6418 case 0x1D:
6419 case 0x1E:
6420 case 0x1F:
6421 case ' ':
6422 case '!':
6423 case '"':
6424 case '#':
6425 case '$':
6426 case '%':
6427 case '&':
6428 case '\'':
6429 case '(':
6430 case ')':
6431 case '*':
6432 case '+':
6433 case ',':
6434 case '-':
6435 case '.':
6436 case '/':
6437 case ':':
6438 case ';':
6439 case '<':
6440 case '=':
6441 case '>':
6442 case '?':
6443 case '@':
6444 case '[':
6445 case ']':
6446 case '^':
6447 case '`':
6448 case '{':
6449 case '|':
6450 case '}':
6451 case '~':
6452 case 0x7F: goto yy455;
6453 case '\\': goto yy148;
6454 default: goto yy61;
6455 }
6456 yy455:
6457 #line 492 "src/parser.re"
6458 { NEWTOKEN(PSI_T_INTVAL); goto start; }
6459 #line 6460 "src/parser.c"
6460 yy456:
6461 yyaccept = 45;
6462 yych = *(mrk = ++cur);
6463 switch (yych) {
6464 case 0x00:
6465 case 0x01:
6466 case 0x02:
6467 case 0x03:
6468 case 0x04:
6469 case 0x05:
6470 case 0x06:
6471 case 0x07:
6472 case 0x08:
6473 case '\t':
6474 case '\n':
6475 case '\v':
6476 case '\f':
6477 case '\r':
6478 case 0x0E:
6479 case 0x0F:
6480 case 0x10:
6481 case 0x11:
6482 case 0x12:
6483 case 0x13:
6484 case 0x14:
6485 case 0x15:
6486 case 0x16:
6487 case 0x17:
6488 case 0x18:
6489 case 0x19:
6490 case 0x1A:
6491 case 0x1B:
6492 case 0x1C:
6493 case 0x1D:
6494 case 0x1E:
6495 case 0x1F:
6496 case ' ':
6497 case '!':
6498 case '"':
6499 case '#':
6500 case '$':
6501 case '%':
6502 case '&':
6503 case '\'':
6504 case '(':
6505 case ')':
6506 case '*':
6507 case '+':
6508 case ',':
6509 case '-':
6510 case '.':
6511 case '/':
6512 case ':':
6513 case ';':
6514 case '<':
6515 case '=':
6516 case '>':
6517 case '?':
6518 case '@':
6519 case '[':
6520 case ']':
6521 case '^':
6522 case '`':
6523 case '{':
6524 case '|':
6525 case '}':
6526 case '~':
6527 case 0x7F: goto yy457;
6528 case '\\': goto yy148;
6529 default: goto yy61;
6530 }
6531 yy457:
6532 #line 476 "src/parser.re"
6533 { NEWTOKEN(PSI_T_OBJECT); goto start; }
6534 #line 6535 "src/parser.c"
6535 yy458:
6536 yyaccept = 46;
6537 yych = *(mrk = ++cur);
6538 switch (yych) {
6539 case 0x00:
6540 case 0x01:
6541 case 0x02:
6542 case 0x03:
6543 case 0x04:
6544 case 0x05:
6545 case 0x06:
6546 case 0x07:
6547 case 0x08:
6548 case '\t':
6549 case '\n':
6550 case '\v':
6551 case '\f':
6552 case '\r':
6553 case 0x0E:
6554 case 0x0F:
6555 case 0x10:
6556 case 0x11:
6557 case 0x12:
6558 case 0x13:
6559 case 0x14:
6560 case 0x15:
6561 case 0x16:
6562 case 0x17:
6563 case 0x18:
6564 case 0x19:
6565 case 0x1A:
6566 case 0x1B:
6567 case 0x1C:
6568 case 0x1D:
6569 case 0x1E:
6570 case 0x1F:
6571 case ' ':
6572 case '!':
6573 case '"':
6574 case '#':
6575 case '$':
6576 case '%':
6577 case '&':
6578 case '\'':
6579 case '(':
6580 case ')':
6581 case '*':
6582 case '+':
6583 case ',':
6584 case '-':
6585 case '.':
6586 case '/':
6587 case ':':
6588 case ';':
6589 case '<':
6590 case '=':
6591 case '>':
6592 case '?':
6593 case '@':
6594 case '[':
6595 case ']':
6596 case '^':
6597 case '`':
6598 case '{':
6599 case '|':
6600 case '}':
6601 case '~':
6602 case 0x7F: goto yy459;
6603 case '\\': goto yy148;
6604 default: goto yy61;
6605 }
6606 yy459:
6607 #line 496 "src/parser.re"
6608 { NEWTOKEN(PSI_T_OBJVAL); goto start; }
6609 #line 6610 "src/parser.c"
6610 yy460:
6611 yyaccept = 5;
6612 yych = *(mrk = ++cur);
6613 switch (yych) {
6614 case 'L':
6615 case 'l': goto yy509;
6616 default: goto yy62;
6617 }
6618 yy461:
6619 yyaccept = 5;
6620 yych = *(mrk = ++cur);
6621 switch (yych) {
6622 case 'S':
6623 case 's': goto yy511;
6624 default: goto yy62;
6625 }
6626 yy462:
6627 yyaccept = 5;
6628 yych = *(mrk = ++cur);
6629 switch (yych) {
6630 case 'S':
6631 case 's': goto yy512;
6632 default: goto yy62;
6633 }
6634 yy463:
6635 yyaccept = 47;
6636 yych = *(mrk = ++cur);
6637 switch (yych) {
6638 case 0x00:
6639 case 0x01:
6640 case 0x02:
6641 case 0x03:
6642 case 0x04:
6643 case 0x05:
6644 case 0x06:
6645 case 0x07:
6646 case 0x08:
6647 case '\t':
6648 case '\n':
6649 case '\v':
6650 case '\f':
6651 case '\r':
6652 case 0x0E:
6653 case 0x0F:
6654 case 0x10:
6655 case 0x11:
6656 case 0x12:
6657 case 0x13:
6658 case 0x14:
6659 case 0x15:
6660 case 0x16:
6661 case 0x17:
6662 case 0x18:
6663 case 0x19:
6664 case 0x1A:
6665 case 0x1B:
6666 case 0x1C:
6667 case 0x1D:
6668 case 0x1E:
6669 case 0x1F:
6670 case ' ':
6671 case '!':
6672 case '"':
6673 case '#':
6674 case '$':
6675 case '%':
6676 case '&':
6677 case '\'':
6678 case '(':
6679 case ')':
6680 case '*':
6681 case '+':
6682 case ',':
6683 case '-':
6684 case '.':
6685 case '/':
6686 case ':':
6687 case ';':
6688 case '<':
6689 case '=':
6690 case '>':
6691 case '?':
6692 case '@':
6693 case '[':
6694 case ']':
6695 case '^':
6696 case '`':
6697 case '{':
6698 case '|':
6699 case '}':
6700 case '~':
6701 case 0x7F: goto yy464;
6702 case '\\': goto yy148;
6703 default: goto yy61;
6704 }
6705 yy464:
6706 #line 485 "src/parser.re"
6707 { NEWTOKEN(PSI_T_RETURN); goto start; }
6708 #line 6709 "src/parser.c"
6709 yy465:
6710 yyaccept = 48;
6711 yych = *(mrk = ++cur);
6712 switch (yych) {
6713 case 0x00:
6714 case 0x01:
6715 case 0x02:
6716 case 0x03:
6717 case 0x04:
6718 case 0x05:
6719 case 0x06:
6720 case 0x07:
6721 case 0x08:
6722 case '\t':
6723 case '\n':
6724 case '\v':
6725 case '\f':
6726 case '\r':
6727 case 0x0E:
6728 case 0x0F:
6729 case 0x10:
6730 case 0x11:
6731 case 0x12:
6732 case 0x13:
6733 case 0x14:
6734 case 0x15:
6735 case 0x16:
6736 case 0x17:
6737 case 0x18:
6738 case 0x19:
6739 case 0x1A:
6740 case 0x1B:
6741 case 0x1C:
6742 case 0x1D:
6743 case 0x1E:
6744 case 0x1F:
6745 case ' ':
6746 case '!':
6747 case '"':
6748 case '#':
6749 case '$':
6750 case '%':
6751 case '&':
6752 case '\'':
6753 case '(':
6754 case ')':
6755 case '*':
6756 case '+':
6757 case ',':
6758 case '-':
6759 case '.':
6760 case '/':
6761 case ':':
6762 case ';':
6763 case '<':
6764 case '=':
6765 case '>':
6766 case '?':
6767 case '@':
6768 case '[':
6769 case ']':
6770 case '^':
6771 case '`':
6772 case '{':
6773 case '|':
6774 case '}':
6775 case '~':
6776 case 0x7F: goto yy466;
6777 case '\\': goto yy148;
6778 default: goto yy61;
6779 }
6780 yy466:
6781 #line 478 "src/parser.re"
6782 { NEWTOKEN(PSI_T_STATIC); goto start; }
6783 #line 6784 "src/parser.c"
6784 yy467:
6785 yyaccept = 49;
6786 yych = *(mrk = ++cur);
6787 switch (yych) {
6788 case 0x00:
6789 case 0x01:
6790 case 0x02:
6791 case 0x03:
6792 case 0x04:
6793 case 0x05:
6794 case 0x06:
6795 case 0x07:
6796 case 0x08:
6797 case '\t':
6798 case '\n':
6799 case '\v':
6800 case '\f':
6801 case '\r':
6802 case 0x0E:
6803 case 0x0F:
6804 case 0x10:
6805 case 0x11:
6806 case 0x12:
6807 case 0x13:
6808 case 0x14:
6809 case 0x15:
6810 case 0x16:
6811 case 0x17:
6812 case 0x18:
6813 case 0x19:
6814 case 0x1A:
6815 case 0x1B:
6816 case 0x1C:
6817 case 0x1D:
6818 case 0x1E:
6819 case 0x1F:
6820 case ' ':
6821 case '!':
6822 case '"':
6823 case '#':
6824 case '$':
6825 case '%':
6826 case '&':
6827 case '\'':
6828 case '(':
6829 case ')':
6830 case '*':
6831 case '+':
6832 case ',':
6833 case '-':
6834 case '.':
6835 case '/':
6836 case ':':
6837 case ';':
6838 case '<':
6839 case '=':
6840 case '>':
6841 case '?':
6842 case '@':
6843 case '[':
6844 case ']':
6845 case '^':
6846 case '`':
6847 case '{':
6848 case '|':
6849 case '}':
6850 case '~':
6851 case 0x7F: goto yy468;
6852 case '\\': goto yy148;
6853 default: goto yy61;
6854 }
6855 yy468:
6856 #line 474 "src/parser.re"
6857 { NEWTOKEN(PSI_T_STRING); goto start; }
6858 #line 6859 "src/parser.c"
6859 yy469:
6860 yyaccept = 50;
6861 yych = *(mrk = ++cur);
6862 switch (yych) {
6863 case 0x00:
6864 case 0x01:
6865 case 0x02:
6866 case 0x03:
6867 case 0x04:
6868 case 0x05:
6869 case 0x06:
6870 case 0x07:
6871 case 0x08:
6872 case '\t':
6873 case '\n':
6874 case '\v':
6875 case '\f':
6876 case '\r':
6877 case 0x0E:
6878 case 0x0F:
6879 case 0x10:
6880 case 0x11:
6881 case 0x12:
6882 case 0x13:
6883 case 0x14:
6884 case 0x15:
6885 case 0x16:
6886 case 0x17:
6887 case 0x18:
6888 case 0x19:
6889 case 0x1A:
6890 case 0x1B:
6891 case 0x1C:
6892 case 0x1D:
6893 case 0x1E:
6894 case 0x1F:
6895 case ' ':
6896 case '!':
6897 case '"':
6898 case '#':
6899 case '$':
6900 case '%':
6901 case '&':
6902 case '\'':
6903 case '(':
6904 case ')':
6905 case '*':
6906 case '+':
6907 case ',':
6908 case '-':
6909 case '.':
6910 case '/':
6911 case ':':
6912 case ';':
6913 case '<':
6914 case '=':
6915 case '>':
6916 case '?':
6917 case '@':
6918 case '[':
6919 case ']':
6920 case '^':
6921 case '`':
6922 case '{':
6923 case '|':
6924 case '}':
6925 case '~':
6926 case 0x7F: goto yy470;
6927 case '\\': goto yy148;
6928 default: goto yy61;
6929 }
6930 yy470:
6931 #line 489 "src/parser.re"
6932 { NEWTOKEN(PSI_T_STRLEN); goto start; }
6933 #line 6934 "src/parser.c"
6934 yy471:
6935 yyaccept = 51;
6936 yych = *(mrk = ++cur);
6937 switch (yych) {
6938 case 0x00:
6939 case 0x01:
6940 case 0x02:
6941 case 0x03:
6942 case 0x04:
6943 case 0x05:
6944 case 0x06:
6945 case 0x07:
6946 case 0x08:
6947 case '\t':
6948 case '\n':
6949 case '\v':
6950 case '\f':
6951 case '\r':
6952 case 0x0E:
6953 case 0x0F:
6954 case 0x10:
6955 case 0x11:
6956 case 0x12:
6957 case 0x13:
6958 case 0x14:
6959 case 0x15:
6960 case 0x16:
6961 case 0x17:
6962 case 0x18:
6963 case 0x19:
6964 case 0x1A:
6965 case 0x1B:
6966 case 0x1C:
6967 case 0x1D:
6968 case 0x1E:
6969 case 0x1F:
6970 case ' ':
6971 case '!':
6972 case '"':
6973 case '#':
6974 case '$':
6975 case '%':
6976 case '&':
6977 case '\'':
6978 case '(':
6979 case ')':
6980 case '*':
6981 case '+':
6982 case ',':
6983 case '-':
6984 case '.':
6985 case '/':
6986 case ':':
6987 case ';':
6988 case '<':
6989 case '=':
6990 case '>':
6991 case '?':
6992 case '@':
6993 case '[':
6994 case ']':
6995 case '^':
6996 case '`':
6997 case '{':
6998 case '|':
6999 case '}':
7000 case '~':
7001 case 0x7F: goto yy472;
7002 case '\\': goto yy148;
7003 default: goto yy61;
7004 }
7005 yy472:
7006 #line 490 "src/parser.re"
7007 { NEWTOKEN(PSI_T_STRVAL); goto start; }
7008 #line 7009 "src/parser.c"
7009 yy473:
7010 yyaccept = 5;
7011 yych = *(mrk = ++cur);
7012 switch (yych) {
7013 case 'A':
7014 case 'a': goto yy513;
7015 default: goto yy62;
7016 }
7017 yy474:
7018 yyaccept = 5;
7019 yych = *(mrk = ++cur);
7020 switch (yych) {
7021 case 'L':
7022 case 'l': goto yy514;
7023 default: goto yy62;
7024 }
7025 yy475:
7026 yyaccept = 5;
7027 yych = *(mrk = ++cur);
7028 switch (yych) {
7029 case 'A':
7030 case 'a': goto yy516;
7031 default: goto yy62;
7032 }
7033 yy476:
7034 yyaccept = 52;
7035 yych = *(mrk = ++cur);
7036 switch (yych) {
7037 case 0x00:
7038 case 0x01:
7039 case 0x02:
7040 case 0x03:
7041 case 0x04:
7042 case 0x05:
7043 case 0x06:
7044 case 0x07:
7045 case 0x08:
7046 case '\t':
7047 case '\n':
7048 case '\v':
7049 case '\f':
7050 case '\r':
7051 case 0x0E:
7052 case 0x0F:
7053 case 0x10:
7054 case 0x11:
7055 case 0x12:
7056 case 0x13:
7057 case 0x14:
7058 case 0x15:
7059 case 0x16:
7060 case 0x17:
7061 case 0x18:
7062 case 0x19:
7063 case 0x1A:
7064 case 0x1B:
7065 case 0x1C:
7066 case 0x1D:
7067 case 0x1E:
7068 case 0x1F:
7069 case ' ':
7070 case '!':
7071 case '"':
7072 case '#':
7073 case '$':
7074 case '%':
7075 case '&':
7076 case '\'':
7077 case '(':
7078 case ')':
7079 case '*':
7080 case '+':
7081 case ',':
7082 case '-':
7083 case '.':
7084 case '/':
7085 case ':':
7086 case ';':
7087 case '<':
7088 case '=':
7089 case '>':
7090 case '?':
7091 case '@':
7092 case '[':
7093 case ']':
7094 case '^':
7095 case '`':
7096 case '{':
7097 case '|':
7098 case '}':
7099 case '~':
7100 case 0x7F: goto yy477;
7101 case '\\': goto yy148;
7102 default: goto yy61;
7103 }
7104 yy477:
7105 #line 503 "src/parser.re"
7106 { NEWTOKEN(PSI_T_TO_INT); goto start; }
7107 #line 7108 "src/parser.c"
7108 yy478:
7109 yyaccept = 5;
7110 yych = *(mrk = ++cur);
7111 switch (yych) {
7112 case 'E':
7113 case 'e': goto yy517;
7114 default: goto yy62;
7115 }
7116 yy479:
7117 yyaccept = 5;
7118 yych = *(mrk = ++cur);
7119 switch (yych) {
7120 case 'I':
7121 case 'i': goto yy518;
7122 default: goto yy62;
7123 }
7124 yy480:
7125 yyaccept = 5;
7126 yych = *(mrk = ++cur);
7127 switch (yych) {
7128 case 'G':
7129 case 'g': goto yy519;
7130 default: goto yy62;
7131 }
7132 yy481:
7133 yyaccept = 5;
7134 yych = *(mrk = ++cur);
7135 switch (yych) {
7136 case '_': goto yy521;
7137 default: goto yy62;
7138 }
7139 yy482:
7140 yyaccept = 5;
7141 yych = *(mrk = ++cur);
7142 switch (yych) {
7143 case 'i': goto yy523;
7144 default: goto yy62;
7145 }
7146 yy483:
7147 yyaccept = 5;
7148 yych = *(mrk = ++cur);
7149 switch (yych) {
7150 case 'n': goto yy524;
7151 default: goto yy62;
7152 }
7153 yy484:
7154 yyaccept = 5;
7155 yych = *(mrk = ++cur);
7156 switch (yych) {
7157 case 'n': goto yy525;
7158 default: goto yy62;
7159 }
7160 yy485:
7161 yyaccept = 5;
7162 yych = *(mrk = ++cur);
7163 switch (yych) {
7164 case 'r': goto yy526;
7165 default: goto yy62;
7166 }
7167 yy486:
7168 yyaccept = 53;
7169 yych = *(mrk = ++cur);
7170 switch (yych) {
7171 case 0x00:
7172 case 0x01:
7173 case 0x02:
7174 case 0x03:
7175 case 0x04:
7176 case 0x05:
7177 case 0x06:
7178 case 0x07:
7179 case 0x08:
7180 case '\t':
7181 case '\n':
7182 case '\v':
7183 case '\f':
7184 case '\r':
7185 case 0x0E:
7186 case 0x0F:
7187 case 0x10:
7188 case 0x11:
7189 case 0x12:
7190 case 0x13:
7191 case 0x14:
7192 case 0x15:
7193 case 0x16:
7194 case 0x17:
7195 case 0x18:
7196 case 0x19:
7197 case 0x1A:
7198 case 0x1B:
7199 case 0x1C:
7200 case 0x1D:
7201 case 0x1E:
7202 case 0x1F:
7203 case ' ':
7204 case '!':
7205 case '"':
7206 case '#':
7207 case '$':
7208 case '%':
7209 case '&':
7210 case '\'':
7211 case '(':
7212 case ')':
7213 case '*':
7214 case '+':
7215 case ',':
7216 case '-':
7217 case '.':
7218 case '/':
7219 case ':':
7220 case ';':
7221 case '<':
7222 case '=':
7223 case '>':
7224 case '?':
7225 case '@':
7226 case '[':
7227 case ']':
7228 case '^':
7229 case '`':
7230 case '{':
7231 case '|':
7232 case '}':
7233 case '~':
7234 case 0x7F: goto yy487;
7235 case '\\': goto yy148;
7236 default: goto yy61;
7237 }
7238 yy487:
7239 #line 453 "src/parser.re"
7240 { NEWTOKEN(PSI_T_DOUBLE); goto start; }
7241 #line 7242 "src/parser.c"
7242 yy488:
7243 yyaccept = 54;
7244 yych = *(mrk = ++cur);
7245 switch (yych) {
7246 case 0x00:
7247 case 0x01:
7248 case 0x02:
7249 case 0x03:
7250 case 0x04:
7251 case 0x05:
7252 case 0x06:
7253 case 0x07:
7254 case 0x08:
7255 case '\t':
7256 case '\n':
7257 case '\v':
7258 case '\f':
7259 case '\r':
7260 case 0x0E:
7261 case 0x0F:
7262 case 0x10:
7263 case 0x11:
7264 case 0x12:
7265 case 0x13:
7266 case 0x14:
7267 case 0x15:
7268 case 0x16:
7269 case 0x17:
7270 case 0x18:
7271 case 0x19:
7272 case 0x1A:
7273 case 0x1B:
7274 case 0x1C:
7275 case 0x1D:
7276 case 0x1E:
7277 case 0x1F:
7278 case ' ':
7279 case '!':
7280 case '"':
7281 case '#':
7282 case '$':
7283 case '%':
7284 case '&':
7285 case '\'':
7286 case '(':
7287 case ')':
7288 case '*':
7289 case '+':
7290 case ',':
7291 case '-':
7292 case '.':
7293 case '/':
7294 case ':':
7295 case ';':
7296 case '<':
7297 case '=':
7298 case '>':
7299 case '?':
7300 case '@':
7301 case '[':
7302 case ']':
7303 case '^':
7304 case '`':
7305 case '{':
7306 case '|':
7307 case '}':
7308 case '~':
7309 case 0x7F: goto yy489;
7310 case '\\': goto yy148;
7311 default: goto yy527;
7312 }
7313 yy489:
7314 #line 432 "src/parser.re"
7315 { NEWTOKEN(PSI_T_PRAGMA); goto start; }
7316 #line 7317 "src/parser.c"
7317 yy490:
7318 yyaccept = 55;
7319 yych = *(mrk = ++cur);
7320 switch (yych) {
7321 case 0x00:
7322 case 0x01:
7323 case 0x02:
7324 case 0x03:
7325 case 0x04:
7326 case 0x05:
7327 case 0x06:
7328 case 0x07:
7329 case 0x08:
7330 case '\t':
7331 case '\n':
7332 case '\v':
7333 case '\f':
7334 case '\r':
7335 case 0x0E:
7336 case 0x0F:
7337 case 0x10:
7338 case 0x11:
7339 case 0x12:
7340 case 0x13:
7341 case 0x14:
7342 case 0x15:
7343 case 0x16:
7344 case 0x17:
7345 case 0x18:
7346 case 0x19:
7347 case 0x1A:
7348 case 0x1B:
7349 case 0x1C:
7350 case 0x1D:
7351 case 0x1E:
7352 case 0x1F:
7353 case ' ':
7354 case '!':
7355 case '"':
7356 case '#':
7357 case '$':
7358 case '%':
7359 case '&':
7360 case '\'':
7361 case '(':
7362 case ')':
7363 case '*':
7364 case '+':
7365 case ',':
7366 case '-':
7367 case '.':
7368 case '/':
7369 case ':':
7370 case ';':
7371 case '<':
7372 case '=':
7373 case '>':
7374 case '?':
7375 case '@':
7376 case '[':
7377 case ']':
7378 case '^':
7379 case '`':
7380 case '{':
7381 case '|':
7382 case '}':
7383 case '~':
7384 case 0x7F: goto yy491;
7385 case '\\': goto yy148;
7386 default: goto yy61;
7387 }
7388 yy491:
7389 #line 455 "src/parser.re"
7390 { NEWTOKEN(PSI_T_SIGNED); goto start; }
7391 #line 7392 "src/parser.c"
7392 yy492:
7393 yyaccept = 56;
7394 yych = *(mrk = ++cur);
7395 switch (yych) {
7396 case 0x00:
7397 case 0x01:
7398 case 0x02:
7399 case 0x03:
7400 case 0x04:
7401 case 0x05:
7402 case 0x06:
7403 case 0x07:
7404 case 0x08:
7405 case '\t':
7406 case '\n':
7407 case '\v':
7408 case '\f':
7409 case '\r':
7410 case 0x0E:
7411 case 0x0F:
7412 case 0x10:
7413 case 0x11:
7414 case 0x12:
7415 case 0x13:
7416 case 0x14:
7417 case 0x15:
7418 case 0x16:
7419 case 0x17:
7420 case 0x18:
7421 case 0x19:
7422 case 0x1A:
7423 case 0x1B:
7424 case 0x1C:
7425 case 0x1D:
7426 case 0x1E:
7427 case 0x1F:
7428 case ' ':
7429 case '!':
7430 case '"':
7431 case '#':
7432 case '$':
7433 case '%':
7434 case '&':
7435 case '\'':
7436 case '(':
7437 case ')':
7438 case '*':
7439 case '+':
7440 case ',':
7441 case '-':
7442 case '.':
7443 case '/':
7444 case ':':
7445 case ';':
7446 case '<':
7447 case '=':
7448 case '>':
7449 case '?':
7450 case '@':
7451 case '[':
7452 case ']':
7453 case '^':
7454 case '`':
7455 case '{':
7456 case '|':
7457 case '}':
7458 case '~':
7459 case 0x7F: goto yy493;
7460 case '\\': goto yy148;
7461 default: goto yy61;
7462 }
7463 yy493:
7464 #line 439 "src/parser.re"
7465 { NEWTOKEN(PSI_T_SIZEOF); goto start; }
7466 #line 7467 "src/parser.c"
7467 yy494:
7468 yyaccept = 57;
7469 yych = *(mrk = ++cur);
7470 switch (yych) {
7471 case 0x00:
7472 case 0x01:
7473 case 0x02:
7474 case 0x03:
7475 case 0x04:
7476 case 0x05:
7477 case 0x06:
7478 case 0x07:
7479 case 0x08:
7480 case '\t':
7481 case '\n':
7482 case '\v':
7483 case '\f':
7484 case '\r':
7485 case 0x0E:
7486 case 0x0F:
7487 case 0x10:
7488 case 0x11:
7489 case 0x12:
7490 case 0x13:
7491 case 0x14:
7492 case 0x15:
7493 case 0x16:
7494 case 0x17:
7495 case 0x18:
7496 case 0x19:
7497 case 0x1A:
7498 case 0x1B:
7499 case 0x1C:
7500 case 0x1D:
7501 case 0x1E:
7502 case 0x1F:
7503 case ' ':
7504 case '!':
7505 case '"':
7506 case '#':
7507 case '$':
7508 case '%':
7509 case '&':
7510 case '\'':
7511 case '(':
7512 case ')':
7513 case '*':
7514 case '+':
7515 case ',':
7516 case '-':
7517 case '.':
7518 case '/':
7519 case ':':
7520 case ';':
7521 case '<':
7522 case '=':
7523 case '>':
7524 case '?':
7525 case '@':
7526 case '[':
7527 case ']':
7528 case '^':
7529 case '`':
7530 case '{':
7531 case '|':
7532 case '}':
7533 case '~':
7534 case 0x7F: goto yy495;
7535 case '\\': goto yy148;
7536 default: goto yy61;
7537 }
7538 yy495:
7539 #line 442 "src/parser.re"
7540 { NEWTOKEN(PSI_T_STRUCT); goto start; }
7541 #line 7542 "src/parser.c"
7542 yy496:
7543 yyaccept = 5;
7544 yych = *(mrk = ++cur);
7545 switch (yych) {
7546 case 'f': goto yy529;
7547 default: goto yy62;
7548 }
7549 yy497:
7550 yyaccept = 5;
7551 yych = *(mrk = ++cur);
7552 switch (yych) {
7553 case 'e': goto yy531;
7554 default: goto yy62;
7555 }
7556 yy498:
7557 yyaccept = 5;
7558 yych = *(mrk = ++cur);
7559 switch (yych) {
7560 case 'l': goto yy532;
7561 default: goto yy62;
7562 }
7563 yy499:
7564 yyaccept = 58;
7565 yych = *(mrk = ++cur);
7566 switch (yych) {
7567 case 0x00:
7568 case 0x01:
7569 case 0x02:
7570 case 0x03:
7571 case 0x04:
7572 case 0x05:
7573 case 0x06:
7574 case 0x07:
7575 case 0x08:
7576 case '\t':
7577 case '\n':
7578 case '\v':
7579 case '\f':
7580 case '\r':
7581 case 0x0E:
7582 case 0x0F:
7583 case 0x10:
7584 case 0x11:
7585 case 0x12:
7586 case 0x13:
7587 case 0x14:
7588 case 0x15:
7589 case 0x16:
7590 case 0x17:
7591 case 0x18:
7592 case 0x19:
7593 case 0x1A:
7594 case 0x1B:
7595 case 0x1C:
7596 case 0x1D:
7597 case 0x1E:
7598 case 0x1F:
7599 case ' ':
7600 case '!':
7601 case '"':
7602 case '#':
7603 case '$':
7604 case '%':
7605 case '&':
7606 case '\'':
7607 case '(':
7608 case ')':
7609 case '*':
7610 case '+':
7611 case ',':
7612 case '-':
7613 case '.':
7614 case '/':
7615 case ':':
7616 case ';':
7617 case '<':
7618 case '=':
7619 case '>':
7620 case '?':
7621 case '@':
7622 case '[':
7623 case ']':
7624 case '^':
7625 case '`':
7626 case '{':
7627 case '|':
7628 case '}':
7629 case '~':
7630 case 0x7F: goto yy500;
7631 case '\\': goto yy148;
7632 default: goto yy61;
7633 }
7634 yy500:
7635 #line 494 "src/parser.re"
7636 { NEWTOKEN(PSI_T_BOOLVAL); goto start; }
7637 #line 7638 "src/parser.c"
7638 yy501:
7639 yyaccept = 5;
7640 yych = *(mrk = ++cur);
7641 switch (yych) {
7642 case 'E':
7643 case 'e': goto yy533;
7644 default: goto yy62;
7645 }
7646 yy502:
7647 yyaccept = 5;
7648 yych = *(mrk = ++cur);
7649 switch (yych) {
7650 case 'K':
7651 case 'k': goto yy535;
7652 default: goto yy62;
7653 }
7654 yy503:
7655 yyaccept = 59;
7656 yych = *(mrk = ++cur);
7657 switch (yych) {
7658 case 0x00:
7659 case 0x01:
7660 case 0x02:
7661 case 0x03:
7662 case 0x04:
7663 case 0x05:
7664 case 0x06:
7665 case 0x07:
7666 case 0x08:
7667 case '\t':
7668 case '\n':
7669 case '\v':
7670 case '\f':
7671 case '\r':
7672 case 0x0E:
7673 case 0x0F:
7674 case 0x10:
7675 case 0x11:
7676 case 0x12:
7677 case 0x13:
7678 case 0x14:
7679 case 0x15:
7680 case 0x16:
7681 case 0x17:
7682 case 0x18:
7683 case 0x19:
7684 case 0x1A:
7685 case 0x1B:
7686 case 0x1C:
7687 case 0x1D:
7688 case 0x1E:
7689 case 0x1F:
7690 case ' ':
7691 case '!':
7692 case '"':
7693 case '#':
7694 case '$':
7695 case '%':
7696 case '&':
7697 case '\'':
7698 case '(':
7699 case ')':
7700 case '*':
7701 case '+':
7702 case ',':
7703 case '-':
7704 case '.':
7705 case '/':
7706 case ':':
7707 case ';':
7708 case '<':
7709 case '=':
7710 case '>':
7711 case '?':
7712 case '@':
7713 case '[':
7714 case ']':
7715 case '^':
7716 case '`':
7717 case '{':
7718 case '|':
7719 case '}':
7720 case '~':
7721 case 0x7F: goto yy504;
7722 case '\\': goto yy148;
7723 default: goto yy61;
7724 }
7725 yy504:
7726 #line 463 "src/parser.re"
7727 { NEWTOKEN(PSI_T_DEFINED); goto start; }
7728 #line 7729 "src/parser.c"
7729 yy505:
7730 yyaccept = 5;
7731 yych = *(mrk = ++cur);
7732 switch (yych) {
7733 case 'L':
7734 case 'l': goto yy537;
7735 default: goto yy62;
7736 }
7737 yy506:
7738 yyaccept = 5;
7739 yych = *(mrk = ++cur);
7740 switch (yych) {
7741 case 'N':
7742 case 'n': goto yy539;
7743 default: goto yy62;
7744 }
7745 yy507:
7746 yyaccept = 60;
7747 yych = *(mrk = ++cur);
7748 switch (yych) {
7749 case 0x00:
7750 case 0x01:
7751 case 0x02:
7752 case 0x03:
7753 case 0x04:
7754 case 0x05:
7755 case 0x06:
7756 case 0x07:
7757 case 0x08:
7758 case '\t':
7759 case '\n':
7760 case '\v':
7761 case '\f':
7762 case '\r':
7763 case 0x0E:
7764 case 0x0F:
7765 case 0x10:
7766 case 0x11:
7767 case 0x12:
7768 case 0x13:
7769 case 0x14:
7770 case 0x15:
7771 case 0x16:
7772 case 0x17:
7773 case 0x18:
7774 case 0x19:
7775 case 0x1A:
7776 case 0x1B:
7777 case 0x1C:
7778 case 0x1D:
7779 case 0x1E:
7780 case 0x1F:
7781 case ' ':
7782 case '!':
7783 case '"':
7784 case '#':
7785 case '$':
7786 case '%':
7787 case '&':
7788 case '\'':
7789 case '(':
7790 case ')':
7791 case '*':
7792 case '+':
7793 case ',':
7794 case '-':
7795 case '.':
7796 case '/':
7797 case ':':
7798 case ';':
7799 case '<':
7800 case '=':
7801 case '>':
7802 case '?':
7803 case '@':
7804 case '[':
7805 case ']':
7806 case '^':
7807 case '`':
7808 case '{':
7809 case '|':
7810 case '}':
7811 case '~':
7812 case 0x7F: goto yy508;
7813 case '\\': goto yy148;
7814 case '_': goto yy541;
7815 default: goto yy61;
7816 }
7817 yy508:
7818 #line 467 "src/parser.re"
7819 { NEWTOKEN(PSI_T_INCLUDE); goto start; }
7820 #line 7821 "src/parser.c"
7821 yy509:
7822 yyaccept = 61;
7823 yych = *(mrk = ++cur);
7824 switch (yych) {
7825 case 0x00:
7826 case 0x01:
7827 case 0x02:
7828 case 0x03:
7829 case 0x04:
7830 case 0x05:
7831 case 0x06:
7832 case 0x07:
7833 case 0x08:
7834 case '\t':
7835 case '\n':
7836 case '\v':
7837 case '\f':
7838 case '\r':
7839 case 0x0E:
7840 case 0x0F:
7841 case 0x10:
7842 case 0x11:
7843 case 0x12:
7844 case 0x13:
7845 case 0x14:
7846 case 0x15:
7847 case 0x16:
7848 case 0x17:
7849 case 0x18:
7850 case 0x19:
7851 case 0x1A:
7852 case 0x1B:
7853 case 0x1C:
7854 case 0x1D:
7855 case 0x1E:
7856 case 0x1F:
7857 case ' ':
7858 case '!':
7859 case '"':
7860 case '#':
7861 case '$':
7862 case '%':
7863 case '&':
7864 case '\'':
7865 case '(':
7866 case ')':
7867 case '*':
7868 case '+':
7869 case ',':
7870 case '-':
7871 case '.':
7872 case '/':
7873 case ':':
7874 case ';':
7875 case '<':
7876 case '=':
7877 case '>':
7878 case '?':
7879 case '@':
7880 case '[':
7881 case ']':
7882 case '^':
7883 case '`':
7884 case '{':
7885 case '|':
7886 case '}':
7887 case '~':
7888 case 0x7F: goto yy510;
7889 case '\\': goto yy148;
7890 default: goto yy61;
7891 }
7892 yy510:
7893 #line 491 "src/parser.re"
7894 { NEWTOKEN(PSI_T_PATHVAL); goto start; }
7895 #line 7896 "src/parser.c"
7896 yy511:
7897 yyaccept = 5;
7898 yych = *(mrk = ++cur);
7899 switch (yych) {
7900 case 'S':
7901 case 's': goto yy542;
7902 default: goto yy62;
7903 }
7904 yy512:
7905 yyaccept = 5;
7906 yych = *(mrk = ++cur);
7907 switch (yych) {
7908 case 'E':
7909 case 'e': goto yy543;
7910 default: goto yy62;
7911 }
7912 yy513:
7913 yyaccept = 5;
7914 yych = *(mrk = ++cur);
7915 switch (yych) {
7916 case 'Y':
7917 case 'y': goto yy544;
7918 default: goto yy62;
7919 }
7920 yy514:
7921 yyaccept = 62;
7922 yych = *(mrk = ++cur);
7923 switch (yych) {
7924 case 0x00:
7925 case 0x01:
7926 case 0x02:
7927 case 0x03:
7928 case 0x04:
7929 case 0x05:
7930 case 0x06:
7931 case 0x07:
7932 case 0x08:
7933 case '\t':
7934 case '\n':
7935 case '\v':
7936 case '\f':
7937 case '\r':
7938 case 0x0E:
7939 case 0x0F:
7940 case 0x10:
7941 case 0x11:
7942 case 0x12:
7943 case 0x13:
7944 case 0x14:
7945 case 0x15:
7946 case 0x16:
7947 case 0x17:
7948 case 0x18:
7949 case 0x19:
7950 case 0x1A:
7951 case 0x1B:
7952 case 0x1C:
7953 case 0x1D:
7954 case 0x1E:
7955 case 0x1F:
7956 case ' ':
7957 case '!':
7958 case '"':
7959 case '#':
7960 case '$':
7961 case '%':
7962 case '&':
7963 case '\'':
7964 case '(':
7965 case ')':
7966 case '*':
7967 case '+':
7968 case ',':
7969 case '-':
7970 case '.':
7971 case '/':
7972 case ':':
7973 case ';':
7974 case '<':
7975 case '=':
7976 case '>':
7977 case '?':
7978 case '@':
7979 case '[':
7980 case ']':
7981 case '^':
7982 case '`':
7983 case '{':
7984 case '|':
7985 case '}':
7986 case '~':
7987 case 0x7F: goto yy515;
7988 case '\\': goto yy148;
7989 default: goto yy61;
7990 }
7991 yy515:
7992 #line 505 "src/parser.re"
7993 { NEWTOKEN(PSI_T_TO_BOOL); goto start; }
7994 #line 7995 "src/parser.c"
7995 yy516:
7996 yyaccept = 5;
7997 yych = *(mrk = ++cur);
7998 switch (yych) {
7999 case 'T':
8000 case 't': goto yy546;
8001 default: goto yy62;
8002 }
8003 yy517:
8004 yyaccept = 5;
8005 yych = *(mrk = ++cur);
8006 switch (yych) {
8007 case 'C':
8008 case 'c': goto yy548;
8009 default: goto yy62;
8010 }
8011 yy518:
8012 yyaccept = 5;
8013 yych = *(mrk = ++cur);
8014 switch (yych) {
8015 case 'N':
8016 case 'n': goto yy549;
8017 default: goto yy62;
8018 }
8019 yy519:
8020 yyaccept = 63;
8021 yych = *(mrk = ++cur);
8022 switch (yych) {
8023 case 0x00:
8024 case 0x01:
8025 case 0x02:
8026 case 0x03:
8027 case 0x04:
8028 case 0x05:
8029 case 0x06:
8030 case 0x07:
8031 case 0x08:
8032 case '\t':
8033 case '\n':
8034 case '\v':
8035 case '\f':
8036 case '\r':
8037 case 0x0E:
8038 case 0x0F:
8039 case 0x10:
8040 case 0x11:
8041 case 0x12:
8042 case 0x13:
8043 case 0x14:
8044 case 0x15:
8045 case 0x16:
8046 case 0x17:
8047 case 0x18:
8048 case 0x19:
8049 case 0x1A:
8050 case 0x1B:
8051 case 0x1C:
8052 case 0x1D:
8053 case 0x1E:
8054 case 0x1F:
8055 case ' ':
8056 case '!':
8057 case '"':
8058 case '#':
8059 case '$':
8060 case '%':
8061 case '&':
8062 case '\'':
8063 case '(':
8064 case ')':
8065 case '*':
8066 case '+':
8067 case ',':
8068 case '-':
8069 case '.':
8070 case '/':
8071 case ':':
8072 case ';':
8073 case '<':
8074 case '=':
8075 case '>':
8076 case '?':
8077 case '@':
8078 case '[':
8079 case ']':
8080 case '^':
8081 case '`':
8082 case '{':
8083 case '|':
8084 case '}':
8085 case '~':
8086 case 0x7F: goto yy520;
8087 case '\\': goto yy148;
8088 default: goto yy61;
8089 }
8090 yy520:
8091 #line 465 "src/parser.re"
8092 { NEWTOKEN(PSI_T_WARNING); goto start; }
8093 #line 8094 "src/parser.c"
8094 yy521:
8095 yyaccept = 64;
8096 yych = *(mrk = ++cur);
8097 switch (yych) {
8098 case 0x00:
8099 case 0x01:
8100 case 0x02:
8101 case 0x03:
8102 case 0x04:
8103 case 0x05:
8104 case 0x06:
8105 case 0x07:
8106 case 0x08:
8107 case '\t':
8108 case '\n':
8109 case '\v':
8110 case '\f':
8111 case '\r':
8112 case 0x0E:
8113 case 0x0F:
8114 case 0x10:
8115 case 0x11:
8116 case 0x12:
8117 case 0x13:
8118 case 0x14:
8119 case 0x15:
8120 case 0x16:
8121 case 0x17:
8122 case 0x18:
8123 case 0x19:
8124 case 0x1A:
8125 case 0x1B:
8126 case 0x1C:
8127 case 0x1D:
8128 case 0x1E:
8129 case 0x1F:
8130 case ' ':
8131 case '!':
8132 case '"':
8133 case '#':
8134 case '$':
8135 case '%':
8136 case '&':
8137 case '\'':
8138 case '(':
8139 case ')':
8140 case '*':
8141 case '+':
8142 case ',':
8143 case '-':
8144 case '.':
8145 case '/':
8146 case ':':
8147 case ';':
8148 case '<':
8149 case '=':
8150 case '>':
8151 case '?':
8152 case '@':
8153 case '[':
8154 case ']':
8155 case '^':
8156 case '`':
8157 case '{':
8158 case '|':
8159 case '}':
8160 case '~':
8161 case 0x7F: goto yy522;
8162 case '\\': goto yy148;
8163 default: goto yy61;
8164 }
8165 yy522:
8166 #line 437 "src/parser.re"
8167 { NEWTOKEN(PSI_T_CPP_ASM); goto start; }
8168 #line 8169 "src/parser.c"
8169 yy523:
8170 yyaccept = 5;
8171 yych = *(mrk = ++cur);
8172 switch (yych) {
8173 case 'b': goto yy550;
8174 default: goto yy62;
8175 }
8176 yy524:
8177 yyaccept = 5;
8178 yych = *(mrk = ++cur);
8179 switch (yych) {
8180 case 's': goto yy551;
8181 default: goto yy62;
8182 }
8183 yy525:
8184 yyaccept = 5;
8185 yych = *(mrk = ++cur);
8186 switch (yych) {
8187 case 'e': goto yy552;
8188 default: goto yy62;
8189 }
8190 yy526:
8191 yyaccept = 5;
8192 yych = *(mrk = ++cur);
8193 switch (yych) {
8194 case 'i': goto yy554;
8195 default: goto yy62;
8196 }
8197 yy527:
8198 yyaccept = 5;
8199 mrk = ++cur;
8200 if (lim <= cur) if (cur >= lim) goto done;;
8201 yych = *cur;
8202 switch (yych) {
8203 case 0x00:
8204 case 0x01:
8205 case 0x02:
8206 case 0x03:
8207 case 0x04:
8208 case 0x05:
8209 case 0x06:
8210 case 0x07:
8211 case 0x08:
8212 case '\t':
8213 case '\n':
8214 case '\v':
8215 case '\f':
8216 case '\r':
8217 case 0x0E:
8218 case 0x0F:
8219 case 0x10:
8220 case 0x11:
8221 case 0x12:
8222 case 0x13:
8223 case 0x14:
8224 case 0x15:
8225 case 0x16:
8226 case 0x17:
8227 case 0x18:
8228 case 0x19:
8229 case 0x1A:
8230 case 0x1B:
8231 case 0x1C:
8232 case 0x1D:
8233 case 0x1E:
8234 case 0x1F:
8235 case ' ':
8236 case '!':
8237 case '"':
8238 case '#':
8239 case '$':
8240 case '%':
8241 case '&':
8242 case '\'':
8243 case '(':
8244 case ')':
8245 case '*':
8246 case '+':
8247 case ',':
8248 case '-':
8249 case '.':
8250 case '/':
8251 case ':':
8252 case ';':
8253 case '<':
8254 case '=':
8255 case '>':
8256 case '?':
8257 case '@':
8258 case '[':
8259 case ']':
8260 case '^':
8261 case '`':
8262 case '{':
8263 case '|':
8264 case '}':
8265 case '~':
8266 case 0x7F: goto yy55;
8267 case '\\': goto yy148;
8268 case 'o': goto yy555;
8269 default: goto yy527;
8270 }
8271 yy529:
8272 yyaccept = 65;
8273 yych = *(mrk = ++cur);
8274 switch (yych) {
8275 case 0x00:
8276 case 0x01:
8277 case 0x02:
8278 case 0x03:
8279 case 0x04:
8280 case 0x05:
8281 case 0x06:
8282 case 0x07:
8283 case 0x08:
8284 case '\t':
8285 case '\n':
8286 case '\v':
8287 case '\f':
8288 case '\r':
8289 case 0x0E:
8290 case 0x0F:
8291 case 0x10:
8292 case 0x11:
8293 case 0x12:
8294 case 0x13:
8295 case 0x14:
8296 case 0x15:
8297 case 0x16:
8298 case 0x17:
8299 case 0x18:
8300 case 0x19:
8301 case 0x1A:
8302 case 0x1B:
8303 case 0x1C:
8304 case 0x1D:
8305 case 0x1E:
8306 case 0x1F:
8307 case ' ':
8308 case '!':
8309 case '"':
8310 case '#':
8311 case '$':
8312 case '%':
8313 case '&':
8314 case '\'':
8315 case '(':
8316 case ')':
8317 case '*':
8318 case '+':
8319 case ',':
8320 case '-':
8321 case '.':
8322 case '/':
8323 case ':':
8324 case ';':
8325 case '<':
8326 case '=':
8327 case '>':
8328 case '?':
8329 case '@':
8330 case '[':
8331 case ']':
8332 case '^':
8333 case '`':
8334 case '{':
8335 case '|':
8336 case '}':
8337 case '~':
8338 case 0x7F: goto yy530;
8339 case '\\': goto yy148;
8340 default: goto yy61;
8341 }
8342 yy530:
8343 #line 441 "src/parser.re"
8344 { NEWTOKEN(PSI_T_TYPEDEF); goto start; }
8345 #line 8346 "src/parser.c"
8346 yy531:
8347 yyaccept = 5;
8348 yych = *(mrk = ++cur);
8349 switch (yych) {
8350 case 'd': goto yy557;
8351 default: goto yy62;
8352 }
8353 yy532:
8354 yyaccept = 5;
8355 yych = *(mrk = ++cur);
8356 switch (yych) {
8357 case 'e': goto yy559;
8358 default: goto yy62;
8359 }
8360 yy533:
8361 yyaccept = 66;
8362 yych = *(mrk = ++cur);
8363 switch (yych) {
8364 case 0x00:
8365 case 0x01:
8366 case 0x02:
8367 case 0x03:
8368 case 0x04:
8369 case 0x05:
8370 case 0x06:
8371 case 0x07:
8372 case 0x08:
8373 case '\t':
8374 case '\n':
8375 case '\v':
8376 case '\f':
8377 case '\r':
8378 case 0x0E:
8379 case 0x0F:
8380 case 0x10:
8381 case 0x11:
8382 case 0x12:
8383 case 0x13:
8384 case 0x14:
8385 case 0x15:
8386 case 0x16:
8387 case 0x17:
8388 case 0x18:
8389 case 0x19:
8390 case 0x1A:
8391 case 0x1B:
8392 case 0x1C:
8393 case 0x1D:
8394 case 0x1E:
8395 case 0x1F:
8396 case ' ':
8397 case '!':
8398 case '"':
8399 case '#':
8400 case '$':
8401 case '%':
8402 case '&':
8403 case '\'':
8404 case '(':
8405 case ')':
8406 case '*':
8407 case '+':
8408 case ',':
8409 case '-':
8410 case '.':
8411 case '/':
8412 case ':':
8413 case ';':
8414 case '<':
8415 case '=':
8416 case '>':
8417 case '?':
8418 case '@':
8419 case '[':
8420 case ']':
8421 case '^':
8422 case '`':
8423 case '{':
8424 case '|':
8425 case '}':
8426 case '~':
8427 case 0x7F: goto yy534;
8428 case '\\': goto yy148;
8429 default: goto yy61;
8430 }
8431 yy534:
8432 #line 473 "src/parser.re"
8433 { NEWTOKEN(PSI_T_CALLABLE); goto start; }
8434 #line 8435 "src/parser.c"
8435 yy535:
8436 yyaccept = 67;
8437 yych = *(mrk = ++cur);
8438 switch (yych) {
8439 case 0x00:
8440 case 0x01:
8441 case 0x02:
8442 case 0x03:
8443 case 0x04:
8444 case 0x05:
8445 case 0x06:
8446 case 0x07:
8447 case 0x08:
8448 case '\t':
8449 case '\n':
8450 case '\v':
8451 case '\f':
8452 case '\r':
8453 case 0x0E:
8454 case 0x0F:
8455 case 0x10:
8456 case 0x11:
8457 case 0x12:
8458 case 0x13:
8459 case 0x14:
8460 case 0x15:
8461 case 0x16:
8462 case 0x17:
8463 case 0x18:
8464 case 0x19:
8465 case 0x1A:
8466 case 0x1B:
8467 case 0x1C:
8468 case 0x1D:
8469 case 0x1E:
8470 case 0x1F:
8471 case ' ':
8472 case '!':
8473 case '"':
8474 case '#':
8475 case '$':
8476 case '%':
8477 case '&':
8478 case '\'':
8479 case '(':
8480 case ')':
8481 case '*':
8482 case '+':
8483 case ',':
8484 case '-':
8485 case '.':
8486 case '/':
8487 case ':':
8488 case ';':
8489 case '<':
8490 case '=':
8491 case '>':
8492 case '?':
8493 case '@':
8494 case '[':
8495 case ']':
8496 case '^':
8497 case '`':
8498 case '{':
8499 case '|':
8500 case '}':
8501 case '~':
8502 case 0x7F: goto yy536;
8503 case '\\': goto yy148;
8504 default: goto yy61;
8505 }
8506 yy536:
8507 #line 477 "src/parser.re"
8508 { NEWTOKEN(PSI_T_CALLBACK); goto start; }
8509 #line 8510 "src/parser.c"
8510 yy537:
8511 yyaccept = 68;
8512 yych = *(mrk = ++cur);
8513 switch (yych) {
8514 case 0x00:
8515 case 0x01:
8516 case 0x02:
8517 case 0x03:
8518 case 0x04:
8519 case 0x05:
8520 case 0x06:
8521 case 0x07:
8522 case 0x08:
8523 case '\t':
8524 case '\n':
8525 case '\v':
8526 case '\f':
8527 case '\r':
8528 case 0x0E:
8529 case 0x0F:
8530 case 0x10:
8531 case 0x11:
8532 case 0x12:
8533 case 0x13:
8534 case 0x14:
8535 case 0x15:
8536 case 0x16:
8537 case 0x17:
8538 case 0x18:
8539 case 0x19:
8540 case 0x1A:
8541 case 0x1B:
8542 case 0x1C:
8543 case 0x1D:
8544 case 0x1E:
8545 case 0x1F:
8546 case ' ':
8547 case '!':
8548 case '"':
8549 case '#':
8550 case '$':
8551 case '%':
8552 case '&':
8553 case '\'':
8554 case '(':
8555 case ')':
8556 case '*':
8557 case '+':
8558 case ',':
8559 case '-':
8560 case '.':
8561 case '/':
8562 case ':':
8563 case ';':
8564 case '<':
8565 case '=':
8566 case '>':
8567 case '?':
8568 case '@':
8569 case '[':
8570 case ']':
8571 case '^':
8572 case '`':
8573 case '{':
8574 case '|':
8575 case '}':
8576 case '~':
8577 case 0x7F: goto yy538;
8578 case '\\': goto yy148;
8579 default: goto yy61;
8580 }
8581 yy538:
8582 #line 493 "src/parser.re"
8583 { NEWTOKEN(PSI_T_FLOATVAL); goto start; }
8584 #line 8585 "src/parser.c"
8585 yy539:
8586 yyaccept = 69;
8587 yych = *(mrk = ++cur);
8588 switch (yych) {
8589 case 0x00:
8590 case 0x01:
8591 case 0x02:
8592 case 0x03:
8593 case 0x04:
8594 case 0x05:
8595 case 0x06:
8596 case 0x07:
8597 case 0x08:
8598 case '\t':
8599 case '\n':
8600 case '\v':
8601 case '\f':
8602 case '\r':
8603 case 0x0E:
8604 case 0x0F:
8605 case 0x10:
8606 case 0x11:
8607 case 0x12:
8608 case 0x13:
8609 case 0x14:
8610 case 0x15:
8611 case 0x16:
8612 case 0x17:
8613 case 0x18:
8614 case 0x19:
8615 case 0x1A:
8616 case 0x1B:
8617 case 0x1C:
8618 case 0x1D:
8619 case 0x1E:
8620 case 0x1F:
8621 case ' ':
8622 case '!':
8623 case '"':
8624 case '#':
8625 case '$':
8626 case '%':
8627 case '&':
8628 case '\'':
8629 case '(':
8630 case ')':
8631 case '*':
8632 case '+':
8633 case ',':
8634 case '-':
8635 case '.':
8636 case '/':
8637 case ':':
8638 case ';':
8639 case '<':
8640 case '=':
8641 case '>':
8642 case '?':
8643 case '@':
8644 case '[':
8645 case ']':
8646 case '^':
8647 case '`':
8648 case '{':
8649 case '|':
8650 case '}':
8651 case '~':
8652 case 0x7F: goto yy540;
8653 case '\\': goto yy148;
8654 default: goto yy61;
8655 }
8656 yy540:
8657 #line 479 "src/parser.re"
8658 { NEWTOKEN(PSI_T_FUNCTION); goto start; }
8659 #line 8660 "src/parser.c"
8660 yy541:
8661 yyaccept = 5;
8662 yych = *(mrk = ++cur);
8663 switch (yych) {
8664 case 'N':
8665 case 'n': goto yy561;
8666 default: goto yy62;
8667 }
8668 yy542:
8669 yyaccept = 5;
8670 yych = *(mrk = ++cur);
8671 switch (yych) {
8672 case 'E':
8673 case 'e': goto yy562;
8674 default: goto yy62;
8675 }
8676 yy543:
8677 yyaccept = 5;
8678 yych = *(mrk = ++cur);
8679 switch (yych) {
8680 case 'R':
8681 case 'r': goto yy563;
8682 default: goto yy62;
8683 }
8684 yy544:
8685 yyaccept = 70;
8686 yych = *(mrk = ++cur);
8687 switch (yych) {
8688 case 0x00:
8689 case 0x01:
8690 case 0x02:
8691 case 0x03:
8692 case 0x04:
8693 case 0x05:
8694 case 0x06:
8695 case 0x07:
8696 case 0x08:
8697 case '\t':
8698 case '\n':
8699 case '\v':
8700 case '\f':
8701 case '\r':
8702 case 0x0E:
8703 case 0x0F:
8704 case 0x10:
8705 case 0x11:
8706 case 0x12:
8707 case 0x13:
8708 case 0x14:
8709 case 0x15:
8710 case 0x16:
8711 case 0x17:
8712 case 0x18:
8713 case 0x19:
8714 case 0x1A:
8715 case 0x1B:
8716 case 0x1C:
8717 case 0x1D:
8718 case 0x1E:
8719 case 0x1F:
8720 case ' ':
8721 case '!':
8722 case '"':
8723 case '#':
8724 case '$':
8725 case '%':
8726 case '&':
8727 case '\'':
8728 case '(':
8729 case ')':
8730 case '*':
8731 case '+':
8732 case ',':
8733 case '-':
8734 case '.':
8735 case '/':
8736 case ':':
8737 case ';':
8738 case '<':
8739 case '=':
8740 case '>':
8741 case '?':
8742 case '@':
8743 case '[':
8744 case ']':
8745 case '^':
8746 case '`':
8747 case '{':
8748 case '|':
8749 case '}':
8750 case '~':
8751 case 0x7F: goto yy545;
8752 case '\\': goto yy148;
8753 default: goto yy61;
8754 }
8755 yy545:
8756 #line 501 "src/parser.re"
8757 { NEWTOKEN(PSI_T_TO_ARRAY); goto start; }
8758 #line 8759 "src/parser.c"
8759 yy546:
8760 yyaccept = 71;
8761 yych = *(mrk = ++cur);
8762 switch (yych) {
8763 case 0x00:
8764 case 0x01:
8765 case 0x02:
8766 case 0x03:
8767 case 0x04:
8768 case 0x05:
8769 case 0x06:
8770 case 0x07:
8771 case 0x08:
8772 case '\t':
8773 case '\n':
8774 case '\v':
8775 case '\f':
8776 case '\r':
8777 case 0x0E:
8778 case 0x0F:
8779 case 0x10:
8780 case 0x11:
8781 case 0x12:
8782 case 0x13:
8783 case 0x14:
8784 case 0x15:
8785 case 0x16:
8786 case 0x17:
8787 case 0x18:
8788 case 0x19:
8789 case 0x1A:
8790 case 0x1B:
8791 case 0x1C:
8792 case 0x1D:
8793 case 0x1E:
8794 case 0x1F:
8795 case ' ':
8796 case '!':
8797 case '"':
8798 case '#':
8799 case '$':
8800 case '%':
8801 case '&':
8802 case '\'':
8803 case '(':
8804 case ')':
8805 case '*':
8806 case '+':
8807 case ',':
8808 case '-':
8809 case '.':
8810 case '/':
8811 case ':':
8812 case ';':
8813 case '<':
8814 case '=':
8815 case '>':
8816 case '?':
8817 case '@':
8818 case '[':
8819 case ']':
8820 case '^':
8821 case '`':
8822 case '{':
8823 case '|':
8824 case '}':
8825 case '~':
8826 case 0x7F: goto yy547;
8827 case '\\': goto yy148;
8828 default: goto yy61;
8829 }
8830 yy547:
8831 #line 504 "src/parser.re"
8832 { NEWTOKEN(PSI_T_TO_FLOAT); goto start; }
8833 #line 8834 "src/parser.c"
8834 yy548:
8835 yyaccept = 5;
8836 yych = *(mrk = ++cur);
8837 switch (yych) {
8838 case 'T':
8839 case 't': goto yy564;
8840 default: goto yy62;
8841 }
8842 yy549:
8843 yyaccept = 5;
8844 yych = *(mrk = ++cur);
8845 switch (yych) {
8846 case 'G':
8847 case 'g': goto yy566;
8848 default: goto yy62;
8849 }
8850 yy550:
8851 yyaccept = 5;
8852 yych = *(mrk = ++cur);
8853 switch (yych) {
8854 case 'u': goto yy568;
8855 default: goto yy62;
8856 }
8857 yy551:
8858 yyaccept = 5;
8859 yych = *(mrk = ++cur);
8860 switch (yych) {
8861 case 'i': goto yy569;
8862 default: goto yy62;
8863 }
8864 yy552:
8865 yyaccept = 72;
8866 yych = *(mrk = ++cur);
8867 switch (yych) {
8868 case 0x00:
8869 case 0x01:
8870 case 0x02:
8871 case 0x03:
8872 case 0x04:
8873 case 0x05:
8874 case 0x06:
8875 case 0x07:
8876 case 0x08:
8877 case '\t':
8878 case '\n':
8879 case '\v':
8880 case '\f':
8881 case '\r':
8882 case 0x0E:
8883 case 0x0F:
8884 case 0x10:
8885 case 0x11:
8886 case 0x12:
8887 case 0x13:
8888 case 0x14:
8889 case 0x15:
8890 case 0x16:
8891 case 0x17:
8892 case 0x18:
8893 case 0x19:
8894 case 0x1A:
8895 case 0x1B:
8896 case 0x1C:
8897 case 0x1D:
8898 case 0x1E:
8899 case 0x1F:
8900 case ' ':
8901 case '!':
8902 case '"':
8903 case '#':
8904 case '$':
8905 case '%':
8906 case '&':
8907 case '\'':
8908 case '(':
8909 case ')':
8910 case '*':
8911 case '+':
8912 case ',':
8913 case '-':
8914 case '.':
8915 case '/':
8916 case ':':
8917 case ';':
8918 case '<':
8919 case '=':
8920 case '>':
8921 case '?':
8922 case '@':
8923 case '[':
8924 case ']':
8925 case '^':
8926 case '`':
8927 case '{':
8928 case '|':
8929 case '}':
8930 case '~':
8931 case 0x7F: goto yy553;
8932 case '\\': goto yy148;
8933 default: goto yy61;
8934 }
8935 yy553:
8936 #line 434 "src/parser.re"
8937 { NEWTOKEN(PSI_T_CPP_INLINE); goto start; }
8938 #line 8939 "src/parser.c"
8939 yy554:
8940 yyaccept = 5;
8941 yych = *(mrk = ++cur);
8942 switch (yych) {
8943 case 'c': goto yy570;
8944 default: goto yy62;
8945 }
8946 yy555:
8947 yyaccept = 5;
8948 mrk = ++cur;
8949 if (lim <= cur) if (cur >= lim) goto done;;
8950 yych = *cur;
8951 switch (yych) {
8952 case 0x00:
8953 case 0x01:
8954 case 0x02:
8955 case 0x03:
8956 case 0x04:
8957 case 0x05:
8958 case 0x06:
8959 case 0x07:
8960 case 0x08:
8961 case '\t':
8962 case '\n':
8963 case '\v':
8964 case '\f':
8965 case '\r':
8966 case 0x0E:
8967 case 0x0F:
8968 case 0x10:
8969 case 0x11:
8970 case 0x12:
8971 case 0x13:
8972 case 0x14:
8973 case 0x15:
8974 case 0x16:
8975 case 0x17:
8976 case 0x18:
8977 case 0x19:
8978 case 0x1A:
8979 case 0x1B:
8980 case 0x1C:
8981 case 0x1D:
8982 case 0x1E:
8983 case 0x1F:
8984 case ' ':
8985 case '!':
8986 case '"':
8987 case '#':
8988 case '$':
8989 case '%':
8990 case '&':
8991 case '\'':
8992 case '(':
8993 case ')':
8994 case '*':
8995 case '+':
8996 case ',':
8997 case '-':
8998 case '.':
8999 case '/':
9000 case ':':
9001 case ';':
9002 case '<':
9003 case '=':
9004 case '>':
9005 case '?':
9006 case '@':
9007 case '[':
9008 case ']':
9009 case '^':
9010 case '`':
9011 case '{':
9012 case '|':
9013 case '}':
9014 case '~':
9015 case 0x7F: goto yy55;
9016 case '\\': goto yy148;
9017 case 'n': goto yy571;
9018 case 'o': goto yy555;
9019 default: goto yy527;
9020 }
9021 yy557:
9022 yyaccept = 73;
9023 yych = *(mrk = ++cur);
9024 switch (yych) {
9025 case 0x00:
9026 case 0x01:
9027 case 0x02:
9028 case 0x03:
9029 case 0x04:
9030 case 0x05:
9031 case 0x06:
9032 case 0x07:
9033 case 0x08:
9034 case '\t':
9035 case '\n':
9036 case '\v':
9037 case '\f':
9038 case '\r':
9039 case 0x0E:
9040 case 0x0F:
9041 case 0x10:
9042 case 0x11:
9043 case 0x12:
9044 case 0x13:
9045 case 0x14:
9046 case 0x15:
9047 case 0x16:
9048 case 0x17:
9049 case 0x18:
9050 case 0x19:
9051 case 0x1A:
9052 case 0x1B:
9053 case 0x1C:
9054 case 0x1D:
9055 case 0x1E:
9056 case 0x1F:
9057 case ' ':
9058 case '!':
9059 case '"':
9060 case '#':
9061 case '$':
9062 case '%':
9063 case '&':
9064 case '\'':
9065 case '(':
9066 case ')':
9067 case '*':
9068 case '+':
9069 case ',':
9070 case '-':
9071 case '.':
9072 case '/':
9073 case ':':
9074 case ';':
9075 case '<':
9076 case '=':
9077 case '>':
9078 case '?':
9079 case '@':
9080 case '[':
9081 case ']':
9082 case '^':
9083 case '`':
9084 case '{':
9085 case '|':
9086 case '}':
9087 case '~':
9088 case 0x7F: goto yy558;
9089 case '\\': goto yy148;
9090 default: goto yy61;
9091 }
9092 yy558:
9093 #line 454 "src/parser.re"
9094 { NEWTOKEN(PSI_T_UNSIGNED); goto start; }
9095 #line 9096 "src/parser.c"
9096 yy559:
9097 yyaccept = 74;
9098 yych = *(mrk = ++cur);
9099 switch (yych) {
9100 case 0x00:
9101 case 0x01:
9102 case 0x02:
9103 case 0x03:
9104 case 0x04:
9105 case 0x05:
9106 case 0x06:
9107 case 0x07:
9108 case 0x08:
9109 case '\t':
9110 case '\n':
9111 case '\v':
9112 case '\f':
9113 case '\r':
9114 case 0x0E:
9115 case 0x0F:
9116 case 0x10:
9117 case 0x11:
9118 case 0x12:
9119 case 0x13:
9120 case 0x14:
9121 case 0x15:
9122 case 0x16:
9123 case 0x17:
9124 case 0x18:
9125 case 0x19:
9126 case 0x1A:
9127 case 0x1B:
9128 case 0x1C:
9129 case 0x1D:
9130 case 0x1E:
9131 case 0x1F:
9132 case ' ':
9133 case '!':
9134 case '"':
9135 case '#':
9136 case '$':
9137 case '%':
9138 case '&':
9139 case '\'':
9140 case '(':
9141 case ')':
9142 case '*':
9143 case '+':
9144 case ',':
9145 case '-':
9146 case '.':
9147 case '/':
9148 case ':':
9149 case ';':
9150 case '<':
9151 case '=':
9152 case '>':
9153 case '?':
9154 case '@':
9155 case '[':
9156 case ']':
9157 case '^':
9158 case '`':
9159 case '{':
9160 case '|':
9161 case '}':
9162 case '~':
9163 case 0x7F: goto yy560;
9164 case '\\': goto yy148;
9165 default: goto yy61;
9166 }
9167 yy560:
9168 #line 438 "src/parser.re"
9169 { NEWTOKEN(PSI_T_VOLATILE); goto start; }
9170 #line 9171 "src/parser.c"
9171 yy561:
9172 yyaccept = 5;
9173 yych = *(mrk = ++cur);
9174 switch (yych) {
9175 case 'E':
9176 case 'e': goto yy572;
9177 default: goto yy62;
9178 }
9179 yy562:
9180 yyaccept = 5;
9181 yych = *(mrk = ++cur);
9182 switch (yych) {
9183 case 'R':
9184 case 'r': goto yy573;
9185 default: goto yy62;
9186 }
9187 yy563:
9188 yyaccept = 5;
9189 yych = *(mrk = ++cur);
9190 switch (yych) {
9191 case 'T':
9192 case 't': goto yy574;
9193 default: goto yy62;
9194 }
9195 yy564:
9196 yyaccept = 75;
9197 yych = *(mrk = ++cur);
9198 switch (yych) {
9199 case 0x00:
9200 case 0x01:
9201 case 0x02:
9202 case 0x03:
9203 case 0x04:
9204 case 0x05:
9205 case 0x06:
9206 case 0x07:
9207 case 0x08:
9208 case '\t':
9209 case '\n':
9210 case '\v':
9211 case '\f':
9212 case '\r':
9213 case 0x0E:
9214 case 0x0F:
9215 case 0x10:
9216 case 0x11:
9217 case 0x12:
9218 case 0x13:
9219 case 0x14:
9220 case 0x15:
9221 case 0x16:
9222 case 0x17:
9223 case 0x18:
9224 case 0x19:
9225 case 0x1A:
9226 case 0x1B:
9227 case 0x1C:
9228 case 0x1D:
9229 case 0x1E:
9230 case 0x1F:
9231 case ' ':
9232 case '!':
9233 case '"':
9234 case '#':
9235 case '$':
9236 case '%':
9237 case '&':
9238 case '\'':
9239 case '(':
9240 case ')':
9241 case '*':
9242 case '+':
9243 case ',':
9244 case '-':
9245 case '.':
9246 case '/':
9247 case ':':
9248 case ';':
9249 case '<':
9250 case '=':
9251 case '>':
9252 case '?':
9253 case '@':
9254 case '[':
9255 case ']':
9256 case '^':
9257 case '`':
9258 case '{':
9259 case '|':
9260 case '}':
9261 case '~':
9262 case 0x7F: goto yy565;
9263 case '\\': goto yy148;
9264 default: goto yy61;
9265 }
9266 yy565:
9267 #line 500 "src/parser.re"
9268 { NEWTOKEN(PSI_T_TO_OBJECT); goto start; }
9269 #line 9270 "src/parser.c"
9270 yy566:
9271 yyaccept = 76;
9272 yych = *(mrk = ++cur);
9273 switch (yych) {
9274 case 0x00:
9275 case 0x01:
9276 case 0x02:
9277 case 0x03:
9278 case 0x04:
9279 case 0x05:
9280 case 0x06:
9281 case 0x07:
9282 case 0x08:
9283 case '\t':
9284 case '\n':
9285 case '\v':
9286 case '\f':
9287 case '\r':
9288 case 0x0E:
9289 case 0x0F:
9290 case 0x10:
9291 case 0x11:
9292 case 0x12:
9293 case 0x13:
9294 case 0x14:
9295 case 0x15:
9296 case 0x16:
9297 case 0x17:
9298 case 0x18:
9299 case 0x19:
9300 case 0x1A:
9301 case 0x1B:
9302 case 0x1C:
9303 case 0x1D:
9304 case 0x1E:
9305 case 0x1F:
9306 case ' ':
9307 case '!':
9308 case '"':
9309 case '#':
9310 case '$':
9311 case '%':
9312 case '&':
9313 case '\'':
9314 case '(':
9315 case ')':
9316 case '*':
9317 case '+':
9318 case ',':
9319 case '-':
9320 case '.':
9321 case '/':
9322 case ':':
9323 case ';':
9324 case '<':
9325 case '=':
9326 case '>':
9327 case '?':
9328 case '@':
9329 case '[':
9330 case ']':
9331 case '^':
9332 case '`':
9333 case '{':
9334 case '|':
9335 case '}':
9336 case '~':
9337 case 0x7F: goto yy567;
9338 case '\\': goto yy148;
9339 default: goto yy61;
9340 }
9341 yy567:
9342 #line 502 "src/parser.re"
9343 { NEWTOKEN(PSI_T_TO_STRING); goto start; }
9344 #line 9345 "src/parser.c"
9345 yy568:
9346 yyaccept = 5;
9347 yych = *(mrk = ++cur);
9348 switch (yych) {
9349 case 't': goto yy576;
9350 default: goto yy62;
9351 }
9352 yy569:
9353 yyaccept = 5;
9354 yych = *(mrk = ++cur);
9355 switch (yych) {
9356 case 'o': goto yy577;
9357 default: goto yy62;
9358 }
9359 yy570:
9360 yyaccept = 5;
9361 yych = *(mrk = ++cur);
9362 switch (yych) {
9363 case 't': goto yy578;
9364 default: goto yy62;
9365 }
9366 yy571:
9367 yyaccept = 5;
9368 mrk = ++cur;
9369 if (lim <= cur) if (cur >= lim) goto done;;
9370 yych = *cur;
9371 switch (yych) {
9372 case 0x00:
9373 case 0x01:
9374 case 0x02:
9375 case 0x03:
9376 case 0x04:
9377 case 0x05:
9378 case 0x06:
9379 case 0x07:
9380 case 0x08:
9381 case '\t':
9382 case '\n':
9383 case '\v':
9384 case '\f':
9385 case '\r':
9386 case 0x0E:
9387 case 0x0F:
9388 case 0x10:
9389 case 0x11:
9390 case 0x12:
9391 case 0x13:
9392 case 0x14:
9393 case 0x15:
9394 case 0x16:
9395 case 0x17:
9396 case 0x18:
9397 case 0x19:
9398 case 0x1A:
9399 case 0x1B:
9400 case 0x1C:
9401 case 0x1D:
9402 case 0x1E:
9403 case 0x1F:
9404 case ' ':
9405 case '!':
9406 case '"':
9407 case '#':
9408 case '$':
9409 case '%':
9410 case '&':
9411 case '\'':
9412 case '(':
9413 case ')':
9414 case '*':
9415 case '+':
9416 case ',':
9417 case '-':
9418 case '.':
9419 case '/':
9420 case ':':
9421 case ';':
9422 case '<':
9423 case '=':
9424 case '>':
9425 case '?':
9426 case '@':
9427 case '[':
9428 case ']':
9429 case '^':
9430 case '`':
9431 case '{':
9432 case '|':
9433 case '}':
9434 case '~':
9435 case 0x7F: goto yy55;
9436 case '\\': goto yy148;
9437 case 'c': goto yy580;
9438 case 'o': goto yy555;
9439 default: goto yy527;
9440 }
9441 yy572:
9442 yyaccept = 5;
9443 yych = *(mrk = ++cur);
9444 switch (yych) {
9445 case 'X':
9446 case 'x': goto yy581;
9447 default: goto yy62;
9448 }
9449 yy573:
9450 yyaccept = 5;
9451 yych = *(mrk = ++cur);
9452 switch (yych) {
9453 case 'T':
9454 case 't': goto yy582;
9455 default: goto yy62;
9456 }
9457 yy574:
9458 yyaccept = 77;
9459 yych = *(mrk = ++cur);
9460 switch (yych) {
9461 case 0x00:
9462 case 0x01:
9463 case 0x02:
9464 case 0x03:
9465 case 0x04:
9466 case 0x05:
9467 case 0x06:
9468 case 0x07:
9469 case 0x08:
9470 case '\t':
9471 case '\n':
9472 case '\v':
9473 case '\f':
9474 case '\r':
9475 case 0x0E:
9476 case 0x0F:
9477 case 0x10:
9478 case 0x11:
9479 case 0x12:
9480 case 0x13:
9481 case 0x14:
9482 case 0x15:
9483 case 0x16:
9484 case 0x17:
9485 case 0x18:
9486 case 0x19:
9487 case 0x1A:
9488 case 0x1B:
9489 case 0x1C:
9490 case 0x1D:
9491 case 0x1E:
9492 case 0x1F:
9493 case ' ':
9494 case '!':
9495 case '"':
9496 case '#':
9497 case '$':
9498 case '%':
9499 case '&':
9500 case '\'':
9501 case '(':
9502 case ')':
9503 case '*':
9504 case '+':
9505 case ',':
9506 case '-':
9507 case '.':
9508 case '/':
9509 case ':':
9510 case ';':
9511 case '<':
9512 case '=':
9513 case '>':
9514 case '?':
9515 case '@':
9516 case '[':
9517 case ']':
9518 case '^':
9519 case '`':
9520 case '{':
9521 case '|':
9522 case '}':
9523 case '~':
9524 case 0x7F: goto yy575;
9525 case '\\': goto yy148;
9526 default: goto yy61;
9527 }
9528 yy575:
9529 #line 483 "src/parser.re"
9530 { NEWTOKEN(PSI_T_PRE_ASSERT); goto start; }
9531 #line 9532 "src/parser.c"
9532 yy576:
9533 yyaccept = 5;
9534 yych = *(mrk = ++cur);
9535 switch (yych) {
9536 case 'e': goto yy584;
9537 default: goto yy62;
9538 }
9539 yy577:
9540 yyaccept = 5;
9541 yych = *(mrk = ++cur);
9542 switch (yych) {
9543 case 'n': goto yy585;
9544 default: goto yy62;
9545 }
9546 yy578:
9547 yyaccept = 78;
9548 yych = *(mrk = ++cur);
9549 switch (yych) {
9550 case 0x00:
9551 case 0x01:
9552 case 0x02:
9553 case 0x03:
9554 case 0x04:
9555 case 0x05:
9556 case 0x06:
9557 case 0x07:
9558 case 0x08:
9559 case '\t':
9560 case '\n':
9561 case '\v':
9562 case '\f':
9563 case '\r':
9564 case 0x0E:
9565 case 0x0F:
9566 case 0x10:
9567 case 0x11:
9568 case 0x12:
9569 case 0x13:
9570 case 0x14:
9571 case 0x15:
9572 case 0x16:
9573 case 0x17:
9574 case 0x18:
9575 case 0x19:
9576 case 0x1A:
9577 case 0x1B:
9578 case 0x1C:
9579 case 0x1D:
9580 case 0x1E:
9581 case 0x1F:
9582 case ' ':
9583 case '!':
9584 case '"':
9585 case '#':
9586 case '$':
9587 case '%':
9588 case '&':
9589 case '\'':
9590 case '(':
9591 case ')':
9592 case '*':
9593 case '+':
9594 case ',':
9595 case '-':
9596 case '.':
9597 case '/':
9598 case ':':
9599 case ';':
9600 case '<':
9601 case '=':
9602 case '>':
9603 case '?':
9604 case '@':
9605 case '[':
9606 case ']':
9607 case '^':
9608 case '`':
9609 case '{':
9610 case '|':
9611 case '}':
9612 case '~':
9613 case 0x7F: goto yy579;
9614 case '\\': goto yy148;
9615 default: goto yy61;
9616 }
9617 yy579:
9618 #line 435 "src/parser.re"
9619 { NEWTOKEN(PSI_T_CPP_RESTRICT); goto start; }
9620 #line 9621 "src/parser.c"
9621 yy580:
9622 yyaccept = 5;
9623 mrk = ++cur;
9624 if (lim <= cur) if (cur >= lim) goto done;;
9625 yych = *cur;
9626 switch (yych) {
9627 case 0x00:
9628 case 0x01:
9629 case 0x02:
9630 case 0x03:
9631 case 0x04:
9632 case 0x05:
9633 case 0x06:
9634 case 0x07:
9635 case 0x08:
9636 case '\t':
9637 case '\n':
9638 case '\v':
9639 case '\f':
9640 case '\r':
9641 case 0x0E:
9642 case 0x0F:
9643 case 0x10:
9644 case 0x11:
9645 case 0x12:
9646 case 0x13:
9647 case 0x14:
9648 case 0x15:
9649 case 0x16:
9650 case 0x17:
9651 case 0x18:
9652 case 0x19:
9653 case 0x1A:
9654 case 0x1B:
9655 case 0x1C:
9656 case 0x1D:
9657 case 0x1E:
9658 case 0x1F:
9659 case ' ':
9660 case '!':
9661 case '"':
9662 case '#':
9663 case '$':
9664 case '%':
9665 case '&':
9666 case '\'':
9667 case '(':
9668 case ')':
9669 case '*':
9670 case '+':
9671 case ',':
9672 case '-':
9673 case '.':
9674 case '/':
9675 case ':':
9676 case ';':
9677 case '<':
9678 case '=':
9679 case '>':
9680 case '?':
9681 case '@':
9682 case '[':
9683 case ']':
9684 case '^':
9685 case '`':
9686 case '{':
9687 case '|':
9688 case '}':
9689 case '~':
9690 case 0x7F: goto yy55;
9691 case '\\': goto yy148;
9692 case 'e': goto yy586;
9693 case 'o': goto yy555;
9694 default: goto yy527;
9695 }
9696 yy581:
9697 yyaccept = 5;
9698 yych = *(mrk = ++cur);
9699 switch (yych) {
9700 case 'T':
9701 case 't': goto yy588;
9702 default: goto yy62;
9703 }
9704 yy582:
9705 yyaccept = 79;
9706 yych = *(mrk = ++cur);
9707 switch (yych) {
9708 case 0x00:
9709 case 0x01:
9710 case 0x02:
9711 case 0x03:
9712 case 0x04:
9713 case 0x05:
9714 case 0x06:
9715 case 0x07:
9716 case 0x08:
9717 case '\t':
9718 case '\n':
9719 case '\v':
9720 case '\f':
9721 case '\r':
9722 case 0x0E:
9723 case 0x0F:
9724 case 0x10:
9725 case 0x11:
9726 case 0x12:
9727 case 0x13:
9728 case 0x14:
9729 case 0x15:
9730 case 0x16:
9731 case 0x17:
9732 case 0x18:
9733 case 0x19:
9734 case 0x1A:
9735 case 0x1B:
9736 case 0x1C:
9737 case 0x1D:
9738 case 0x1E:
9739 case 0x1F:
9740 case ' ':
9741 case '!':
9742 case '"':
9743 case '#':
9744 case '$':
9745 case '%':
9746 case '&':
9747 case '\'':
9748 case '(':
9749 case ')':
9750 case '*':
9751 case '+':
9752 case ',':
9753 case '-':
9754 case '.':
9755 case '/':
9756 case ':':
9757 case ';':
9758 case '<':
9759 case '=':
9760 case '>':
9761 case '?':
9762 case '@':
9763 case '[':
9764 case ']':
9765 case '^':
9766 case '`':
9767 case '{':
9768 case '|':
9769 case '}':
9770 case '~':
9771 case 0x7F: goto yy583;
9772 case '\\': goto yy148;
9773 default: goto yy61;
9774 }
9775 yy583:
9776 #line 484 "src/parser.re"
9777 { NEWTOKEN(PSI_T_POST_ASSERT); goto start; }
9778 #line 9779 "src/parser.c"
9779 yy584:
9780 yyaccept = 5;
9781 yych = *(mrk = ++cur);
9782 switch (yych) {
9783 case '_': goto yy590;
9784 default: goto yy62;
9785 }
9786 yy585:
9787 yyaccept = 5;
9788 yych = *(mrk = ++cur);
9789 switch (yych) {
9790 case '_': goto yy591;
9791 default: goto yy62;
9792 }
9793 yy586:
9794 yyaccept = 80;
9795 mrk = ++cur;
9796 if (lim <= cur) if (cur >= lim) goto done;;
9797 yych = *cur;
9798 switch (yych) {
9799 case 0x00:
9800 case 0x01:
9801 case 0x02:
9802 case 0x03:
9803 case 0x04:
9804 case 0x05:
9805 case 0x06:
9806 case 0x07:
9807 case 0x08:
9808 case '\t':
9809 case '\n':
9810 case '\v':
9811 case '\f':
9812 case '\r':
9813 case 0x0E:
9814 case 0x0F:
9815 case 0x10:
9816 case 0x11:
9817 case 0x12:
9818 case 0x13:
9819 case 0x14:
9820 case 0x15:
9821 case 0x16:
9822 case 0x17:
9823 case 0x18:
9824 case 0x19:
9825 case 0x1A:
9826 case 0x1B:
9827 case 0x1C:
9828 case 0x1D:
9829 case 0x1E:
9830 case 0x1F:
9831 case ' ':
9832 case '!':
9833 case '"':
9834 case '#':
9835 case '$':
9836 case '%':
9837 case '&':
9838 case '\'':
9839 case '(':
9840 case ')':
9841 case '*':
9842 case '+':
9843 case ',':
9844 case '-':
9845 case '.':
9846 case '/':
9847 case ':':
9848 case ';':
9849 case '<':
9850 case '=':
9851 case '>':
9852 case '?':
9853 case '@':
9854 case '[':
9855 case ']':
9856 case '^':
9857 case '`':
9858 case '{':
9859 case '|':
9860 case '}':
9861 case '~':
9862 case 0x7F: goto yy587;
9863 case '\\': goto yy148;
9864 case 'o': goto yy555;
9865 default: goto yy527;
9866 }
9867 yy587:
9868 #line 433 "src/parser.re"
9869 { NEWTOKEN(PSI_T_PRAGMA_ONCE); goto start; }
9870 #line 9871 "src/parser.c"
9871 yy588:
9872 yyaccept = 81;
9873 yych = *(mrk = ++cur);
9874 switch (yych) {
9875 case 0x00:
9876 case 0x01:
9877 case 0x02:
9878 case 0x03:
9879 case 0x04:
9880 case 0x05:
9881 case 0x06:
9882 case 0x07:
9883 case 0x08:
9884 case '\t':
9885 case '\n':
9886 case '\v':
9887 case '\f':
9888 case '\r':
9889 case 0x0E:
9890 case 0x0F:
9891 case 0x10:
9892 case 0x11:
9893 case 0x12:
9894 case 0x13:
9895 case 0x14:
9896 case 0x15:
9897 case 0x16:
9898 case 0x17:
9899 case 0x18:
9900 case 0x19:
9901 case 0x1A:
9902 case 0x1B:
9903 case 0x1C:
9904 case 0x1D:
9905 case 0x1E:
9906 case 0x1F:
9907 case ' ':
9908 case '!':
9909 case '"':
9910 case '#':
9911 case '$':
9912 case '%':
9913 case '&':
9914 case '\'':
9915 case '(':
9916 case ')':
9917 case '*':
9918 case '+':
9919 case ',':
9920 case '-':
9921 case '.':
9922 case '/':
9923 case ':':
9924 case ';':
9925 case '<':
9926 case '=':
9927 case '>':
9928 case '?':
9929 case '@':
9930 case '[':
9931 case ']':
9932 case '^':
9933 case '`':
9934 case '{':
9935 case '|':
9936 case '}':
9937 case '~':
9938 case 0x7F: goto yy589;
9939 case '\\': goto yy148;
9940 default: goto yy61;
9941 }
9942 yy589:
9943 #line 468 "src/parser.re"
9944 { NEWTOKEN(PSI_T_INCLUDE_NEXT); goto start; }
9945 #line 9946 "src/parser.c"
9946 yy590:
9947 yyaccept = 5;
9948 yych = *(mrk = ++cur);
9949 switch (yych) {
9950 case '_': goto yy592;
9951 default: goto yy62;
9952 }
9953 yy591:
9954 yyaccept = 5;
9955 yych = *(mrk = ++cur);
9956 switch (yych) {
9957 case '_': goto yy593;
9958 default: goto yy62;
9959 }
9960 yy592:
9961 yyaccept = 5;
9962 yych = *(mrk = ++cur);
9963 switch (yych) {
9964 case '\t':
9965 case '\f':
9966 case ' ': goto yy595;
9967 case '(': goto yy597;
9968 default: goto yy62;
9969 }
9970 yy593:
9971 yyaccept = 82;
9972 yych = *(mrk = ++cur);
9973 switch (yych) {
9974 case 0x00:
9975 case 0x01:
9976 case 0x02:
9977 case 0x03:
9978 case 0x04:
9979 case 0x05:
9980 case 0x06:
9981 case 0x07:
9982 case 0x08:
9983 case '\t':
9984 case '\n':
9985 case '\v':
9986 case '\f':
9987 case '\r':
9988 case 0x0E:
9989 case 0x0F:
9990 case 0x10:
9991 case 0x11:
9992 case 0x12:
9993 case 0x13:
9994 case 0x14:
9995 case 0x15:
9996 case 0x16:
9997 case 0x17:
9998 case 0x18:
9999 case 0x19:
10000 case 0x1A:
10001 case 0x1B:
10002 case 0x1C:
10003 case 0x1D:
10004 case 0x1E:
10005 case 0x1F:
10006 case ' ':
10007 case '!':
10008 case '"':
10009 case '#':
10010 case '$':
10011 case '%':
10012 case '&':
10013 case '\'':
10014 case '(':
10015 case ')':
10016 case '*':
10017 case '+':
10018 case ',':
10019 case '-':
10020 case '.':
10021 case '/':
10022 case ':':
10023 case ';':
10024 case '<':
10025 case '=':
10026 case '>':
10027 case '?':
10028 case '@':
10029 case '[':
10030 case ']':
10031 case '^':
10032 case '`':
10033 case '{':
10034 case '|':
10035 case '}':
10036 case '~':
10037 case 0x7F: goto yy594;
10038 case '\\': goto yy148;
10039 default: goto yy61;
10040 }
10041 yy594:
10042 #line 436 "src/parser.re"
10043 { NEWTOKEN(PSI_T_CPP_EXTENSION); goto start; }
10044 #line 10045 "src/parser.c"
10045 yy595:
10046 ++cur;
10047 if ((lim - cur) < 2) if (cur >= lim) goto done;;
10048 yych = *cur;
10049 switch (yych) {
10050 case '\t':
10051 case '\f':
10052 case ' ': goto yy595;
10053 case '(': goto yy597;
10054 default: goto yy114;
10055 }
10056 yy597:
10057 yych = *++cur;
10058 switch (yych) {
10059 case '(': goto yy598;
10060 default: goto yy114;
10061 }
10062 yy598:
10063 ++cur;
10064 #line 510 "src/parser.re"
10065 { parens = 2; goto cpp_attribute; }
10066 #line 10067 "src/parser.c"
10067 }
10068 #line 516 "src/parser.re"
10069
10070
10071 character: ;
10072
10073 #line 10074 "src/parser.c"
10074 {
10075 unsigned char yych;
10076 if (lim <= cur) if (cur >= lim) goto done;;
10077 yych = *cur;
10078 switch (yych) {
10079 case '\n':
10080 case '\r': goto yy604;
10081 case '\'': goto yy606;
10082 case '\\': goto yy608;
10083 default: goto yy602;
10084 }
10085 yy602:
10086 ++cur;
10087 #line 534 "src/parser.re"
10088 { escaped = false; goto character; }
10089 #line 10090 "src/parser.c"
10090 yy604:
10091 ++cur;
10092 #line 521 "src/parser.re"
10093 { NEWLINE(); goto character; }
10094 #line 10095 "src/parser.c"
10095 yy606:
10096 ++cur;
10097 #line 523 "src/parser.re"
10098 {
10099 if (escaped) {
10100 escaped = false;
10101 goto character;
10102 }
10103 cur -= 1;
10104 NEWTOKEN(PSI_T_QUOTED_CHAR);
10105 cur += 1;
10106 token->flags = char_width;
10107 goto start;
10108 }
10109 #line 10110 "src/parser.c"
10110 yy608:
10111 ++cur;
10112 #line 522 "src/parser.re"
10113 { escaped = !escaped; goto character; }
10114 #line 10115 "src/parser.c"
10115 }
10116 #line 536 "src/parser.re"
10117
10118
10119 string: ;
10120
10121 #line 10122 "src/parser.c"
10122 {
10123 unsigned char yych;
10124 if (lim <= cur) if (cur >= lim) goto done;;
10125 yych = *cur;
10126 switch (yych) {
10127 case '\n':
10128 case '\r': goto yy614;
10129 case '"': goto yy616;
10130 case '\\': goto yy618;
10131 default: goto yy612;
10132 }
10133 yy612:
10134 ++cur;
10135 #line 554 "src/parser.re"
10136 { escaped = false; goto string; }
10137 #line 10138 "src/parser.c"
10138 yy614:
10139 ++cur;
10140 #line 541 "src/parser.re"
10141 { NEWLINE(); goto string; }
10142 #line 10143 "src/parser.c"
10143 yy616:
10144 ++cur;
10145 #line 543 "src/parser.re"
10146 {
10147 if (escaped) {
10148 escaped = false;
10149 goto string;
10150 }
10151 cur -= 1;
10152 NEWTOKEN(PSI_T_QUOTED_STRING);
10153 cur += 1;
10154 token->flags = char_width;
10155 goto start;
10156 }
10157 #line 10158 "src/parser.c"
10158 yy618:
10159 ++cur;
10160 #line 542 "src/parser.re"
10161 { escaped = !escaped; goto string; }
10162 #line 10163 "src/parser.c"
10163 }
10164 #line 556 "src/parser.re"
10165
10166
10167 comment: ;
10168
10169 #line 10170 "src/parser.c"
10170 {
10171 unsigned char yych;
10172 if ((lim - cur) < 2) if (cur >= lim) goto done;;
10173 yych = *cur;
10174 switch (yych) {
10175 case '\n':
10176 case '\r': goto yy624;
10177 case '*': goto yy626;
10178 default: goto yy622;
10179 }
10180 yy622:
10181 ++cur;
10182 yy623:
10183 #line 563 "src/parser.re"
10184 { goto comment; }
10185 #line 10186 "src/parser.c"
10186 yy624:
10187 ++cur;
10188 #line 561 "src/parser.re"
10189 { NEWLINE(); goto comment; }
10190 #line 10191 "src/parser.c"
10191 yy626:
10192 yych = *++cur;
10193 switch (yych) {
10194 case '/': goto yy627;
10195 default: goto yy623;
10196 }
10197 yy627:
10198 ++cur;
10199 #line 562 "src/parser.re"
10200 { NEWTOKEN(PSI_T_COMMENT); goto start; }
10201 #line 10202 "src/parser.c"
10202 }
10203 #line 565 "src/parser.re"
10204
10205
10206 comment_sl: ;
10207
10208 #line 10209 "src/parser.c"
10209 {
10210 unsigned char yych;
10211 if (lim <= cur) if (cur >= lim) goto done;;
10212 yych = *cur;
10213 switch (yych) {
10214 case '\n':
10215 case '\r': goto yy633;
10216 default: goto yy631;
10217 }
10218 yy631:
10219 ++cur;
10220 #line 571 "src/parser.re"
10221 { goto comment_sl; }
10222 #line 10223 "src/parser.c"
10223 yy633:
10224 ++cur;
10225 #line 570 "src/parser.re"
10226 { NEWTOKEN(PSI_T_COMMENT); NEWLINE(); goto start; }
10227 #line 10228 "src/parser.c"
10228 }
10229 #line 573 "src/parser.re"
10230
10231
10232 cpp_attribute: ;
10233
10234
10235 #line 10236 "src/parser.c"
10236 {
10237 unsigned char yych;
10238 if (lim <= cur) if (cur >= lim) goto done;;
10239 yych = *cur;
10240 switch (yych) {
10241 case '\n':
10242 case '\r': goto yy639;
10243 case '(': goto yy641;
10244 case ')': goto yy643;
10245 default: goto yy637;
10246 }
10247 yy637:
10248 ++cur;
10249 #line 582 "src/parser.re"
10250 { goto cpp_attribute; }
10251 #line 10252 "src/parser.c"
10252 yy639:
10253 ++cur;
10254 #line 581 "src/parser.re"
10255 { NEWLINE(); goto cpp_attribute; }
10256 #line 10257 "src/parser.c"
10257 yy641:
10258 ++cur;
10259 #line 579 "src/parser.re"
10260 { ++parens; goto cpp_attribute; }
10261 #line 10262 "src/parser.c"
10262 yy643:
10263 ++cur;
10264 #line 580 "src/parser.re"
10265 { if (parens == 1) { NEWTOKEN(PSI_T_CPP_ATTRIBUTE); goto start; } else { --parens; goto cpp_attribute; } }
10266 #line 10267 "src/parser.c"
10267 }
10268 #line 584 "src/parser.re"
10269
10270 error: ;
10271
10272 P->error(PSI_DATA(P), token, PSI_WARNING, "PSI syntax error: unexpected input (%d) '%.*s' at col %tu",
10273 token->type, token->size, token->text, tok - eol + 1);
10274 psi_plist_free(tokens);
10275 return NULL;
10276
10277 done:
10278
10279 PSI_DEBUG_PRINT(P, "PSI: EOF cur=%p lim=%p\n", cur, lim);
10280
10281 return tokens;
10282 }