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