cpp: fix relative includes
[m6w6/ext-psi] / src / parser.c
1 /* Generated by re2c 0.16 on Thu Jul 27 12:41:40 2017 */
2 #line 1 "src/parser.re"
3 /*******************************************************************************
4 Copyright (c) 2016, Michael Wallner <mike@php.net>.
5 All rights reserved.
6
7 Redistribution and use in source and binary forms, with or without
8 modification, are permitted provided that the following conditions are met:
9
10 * Redistributions of source code must retain the above copyright notice,
11 this list of conditions and the following disclaimer.
12 * Redistributions in binary form must reproduce the above copyright
13 notice, this list of conditions and the following disclaimer in the
14 documentation and/or other materials provided with the distribution.
15
16 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
20 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 *******************************************************************************/
27
28 #include "php_psi_stdinc.h"
29 #include <sys/mman.h>
30 #include <assert.h>
31 #include <stdarg.h>
32
33 #include "parser.h"
34
35 #define YYMAXFILL 15
36 #ifndef YYMAXFILL
37 # define YYMAXFILL 256
38 #endif
39
40 struct psi_parser *psi_parser_init(struct psi_parser *P, psi_error_cb error, unsigned flags)
41 {
42 if (!P) {
43 P = malloc(sizeof(*P));
44 }
45 memset(P, 0, sizeof(*P));
46
47 psi_data_ctor_with_dtors(PSI_DATA(P), error, flags);
48
49 P->preproc = psi_cpp_init(P);
50
51 psi_cpp_load_defaults(P->preproc);
52
53 return P;
54 }
55
56 struct psi_parser_input *psi_parser_open_file(struct psi_parser *P, const char *filename, bool report_errors)
57 {
58 struct stat sb;
59 FILE *fp;
60 struct psi_parser_input *fb;
61
62 if (stat(filename, &sb)) {
63 if (report_errors) {
64 P->error(PSI_DATA(P), NULL, PSI_WARNING,
65 "Could not stat '%s': %s",
66 filename, strerror(errno));
67 }
68 return NULL;
69 }
70
71 if (!(fb = malloc(sizeof(*fb) + strlen(filename) + 1 + sb.st_size + YYMAXFILL))) {
72 if (report_errors) {
73 P->error(PSI_DATA(P), NULL, PSI_WARNING,
74 "Could not allocate %zu bytes for reading '%s': %s",
75 sb.st_size + YYMAXFILL, filename, strerror(errno));
76 }
77 return NULL;
78 }
79
80 if (!(fp = fopen(filename, "r"))) {
81 free(fb);
82 if (report_errors) {
83 P->error(PSI_DATA(P), NULL, PSI_WARNING,
84 "Could not open '%s' for reading: %s",
85 filename, strerror(errno));
86 }
87 return NULL;
88 }
89
90 if (sb.st_size != fread(fb->buffer, 1, sb.st_size, fp)) {
91 free(fb);
92 fclose(fp);
93 if (report_errors) {
94 P->error(PSI_DATA(P), NULL, PSI_WARNING,
95 "Could not read %zu bytes from '%s': %s",
96 sb.st_size + YYMAXFILL, filename, strerror(errno));
97 }
98 return NULL;
99 }
100
101 memset(fb->buffer + sb.st_size, 0, YYMAXFILL);
102 fb->length = sb.st_size;
103 fb->file = &fb->buffer[sb.st_size + YYMAXFILL];
104 memcpy(fb->file, filename, strlen(filename) + 1);
105
106 return fb;
107 }
108
109 struct psi_parser_input *psi_parser_open_string(struct psi_parser *P, const char *string, size_t length)
110 {
111 struct psi_parser_input *sb;
112
113 if (!(sb = malloc(sizeof(*sb) + sizeof("<stdin>") + length + YYMAXFILL))) {
114 P->error(PSI_DATA(P), NULL, PSI_WARNING,
115 "Could not allocate %zu bytes: %s",
116 length + YYMAXFILL, strerror(errno));
117 return NULL;
118 }
119
120 memcpy(sb->buffer, string, length);
121 memset(sb->buffer + length, 0, YYMAXFILL);
122
123 sb->length = length;
124 sb->file = &sb->buffer[length + YYMAXFILL];
125 memcpy(sb->file, "<stdin>", sizeof("<stdin>"));
126
127 return sb;
128 }
129
130 #if 0
131 static void psi_parser_register_constants(struct psi_parser *P)
132 {
133 zend_string *key;
134 zval *val;
135
136 ZEND_HASH_FOREACH_STR_KEY_VAL(&P->cpp.defs, key, val)
137 {
138 struct psi_impl_def_val *iv;
139 struct psi_const_type *ct;
140 struct psi_const *c;
141 const char *ctn;
142 token_t ctt;
143 impl_val tmp;
144 zend_string *str;
145
146 ZVAL_DEREF(val);
147 switch (Z_TYPE_P(val)) {
148 case IS_TRUE:
149 case IS_FALSE:
150 ctt = PSI_T_BOOL;
151 ctn = "bool";
152 tmp.zend.bval = Z_TYPE_P(val) == IS_TRUE;
153 break;
154 case IS_LONG:
155 ctt = PSI_T_INT;
156 ctn = "int";
157 tmp.zend.lval = Z_LVAL_P(val);
158 break;
159 case IS_DOUBLE:
160 ctt = PSI_T_FLOAT;
161 ctn = "float";
162 tmp.dval = Z_DVAL_P(val);
163 break;
164 default:
165 ctt = PSI_T_STRING;
166 ctn = "string";
167 str = zval_get_string(val);
168 tmp.zend.str = zend_string_dup(str, 1);
169 zend_string_release(str);
170 break;
171 }
172
173 iv = psi_impl_def_val_init(ctt, NULL);
174 iv->ival = tmp;
175 ct = psi_const_type_init(ctt, ctn);
176 c = psi_const_init(ct, key->val, iv);
177 if (!P->consts) {
178 P->consts = psi_plist_init((psi_plist_dtor) psi_const_free);
179 }
180 P->consts = psi_plist_add(P->consts, &c);
181 }
182 ZEND_HASH_FOREACH_END();
183 }
184 #endif
185
186 struct psi_plist *psi_parser_preprocess(struct psi_parser *P, struct psi_plist **tokens)
187 {
188 if (psi_cpp_process(P->preproc, tokens)) {
189 return *tokens;
190 }
191 return NULL;
192 }
193
194 bool psi_parser_process(struct psi_parser *P, struct psi_plist *tokens, size_t *processed)
195 {
196 if (psi_plist_count(tokens)) {
197 return 0 == psi_parser_proc_parse(P, tokens, processed);
198 }
199 return true;
200 }
201
202 bool psi_parser_parse(struct psi_parser *P, struct psi_parser_input *I)
203 {
204 struct psi_plist *scanned, *preproc;
205 size_t processed = 0;
206
207 if (!(scanned = psi_parser_scan(P, I))) {
208 return false;
209 }
210
211 if (!(preproc = psi_parser_preprocess(P, &scanned))) {
212 psi_plist_free(scanned);
213 return false;
214 }
215
216 if (!psi_parser_process(P, preproc, &processed)) {
217 psi_plist_free(preproc);
218 return false;
219 }
220
221 psi_plist_free(preproc);
222 return true;
223 }
224
225 void psi_parser_dtor(struct psi_parser *P)
226 {
227 psi_cpp_free(&P->preproc);
228 psi_data_dtor(PSI_DATA(P));
229
230 memset(P, 0, sizeof(*P));
231 }
232
233 void psi_parser_free(struct psi_parser **P)
234 {
235 if (*P) {
236 psi_parser_dtor(*P);
237 free(*P);
238 *P = NULL;
239 }
240 }
241
242 #define NEWLINE() \
243 eol = cur; \
244 ++I->lines
245
246 #define NEWTOKEN(t) \
247 token = psi_token_init(t, tok, cur - tok, tok - eol + 1, I->lines, I->file); \
248 tokens = psi_plist_add(tokens, &token); \
249 if (P->flags & PSI_DEBUG) { \
250 fprintf(stderr, "PSI< "); \
251 psi_token_dump(2, token); \
252 }
253
254 union int_suffix {
255 char s[SIZEOF_UINT32_T];
256 uint32_t i;
257 };
258
259 struct psi_plist *psi_parser_scan(struct psi_parser *P, struct psi_parser_input *I)
260 {
261 struct psi_plist *tokens;
262 struct psi_token *token;
263 const char *tok, *cur, *lim, *mrk, *eol, *ctxmrk;
264 unsigned parens;
265 bool escaped;
266 token_t char_width;
267
268 PSI_DEBUG_PRINT(P, "PSI: scanning %s\n", I->file);
269
270 tok = mrk = eol = cur = I->buffer;
271 lim = I->buffer + I->length;
272 I->lines = 1;
273 tokens = psi_plist_init((psi_plist_dtor) psi_token_free);
274
275 start: ;
276 char_width = 1;
277 ctxmrk = NULL;
278 tok = cur;
279
280
281 #line 282 "src/parser.c"
282 {
283 unsigned char yych;
284 unsigned int yyaccept = 0;
285 if ((lim - cur) < 15) if (cur >= lim) goto done;;
286 yych = *cur;
287 switch (yych) {
288 case 0x00:
289 case 0x01:
290 case 0x02:
291 case 0x03:
292 case 0x04:
293 case 0x05:
294 case 0x06:
295 case 0x07:
296 case 0x08:
297 case '\v':
298 case 0x0E:
299 case 0x0F:
300 case 0x10:
301 case 0x11:
302 case 0x12:
303 case 0x13:
304 case 0x14:
305 case 0x15:
306 case 0x16:
307 case 0x17:
308 case 0x18:
309 case 0x19:
310 case 0x1A:
311 case 0x1B:
312 case 0x1C:
313 case 0x1D:
314 case 0x1E:
315 case 0x1F:
316 case '@':
317 case '`':
318 case 0x7F: goto yy2;
319 case '\t':
320 case '\f':
321 case ' ': goto yy4;
322 case '\n':
323 case '\r': goto yy7;
324 case '!': goto yy9;
325 case '"': goto yy11;
326 case '#': goto yy13;
327 case '$': goto yy15;
328 case '%': goto yy16;
329 case '&': goto yy18;
330 case '\'': goto yy20;
331 case '(': goto yy22;
332 case ')': goto yy24;
333 case '*': goto yy26;
334 case '+': goto yy28;
335 case ',': goto yy30;
336 case '-': goto yy32;
337 case '.': goto yy34;
338 case '/': goto yy36;
339 case '0': goto yy38;
340 case '1':
341 case '2':
342 case '3':
343 case '4':
344 case '5':
345 case '6':
346 case '7':
347 case '8':
348 case '9': goto yy40;
349 case ':': goto yy42;
350 case ';': goto yy44;
351 case '<': goto yy46;
352 case '=': goto yy48;
353 case '>': goto yy50;
354 case '?': goto yy52;
355 case 'A':
356 case 'a': goto yy54;
357 case 'B': goto yy56;
358 case 'C': goto yy57;
359 case 'D': goto yy58;
360 case 'E': goto yy59;
361 case 'F': goto yy60;
362 case 'I': goto yy63;
363 case 'L': goto yy64;
364 case 'M':
365 case 'm': goto yy65;
366 case 'N':
367 case 'n': goto yy66;
368 case 'O':
369 case 'o': goto yy67;
370 case 'P': goto yy68;
371 case 'R':
372 case 'r': goto yy69;
373 case 'S': goto yy70;
374 case 'T': goto yy71;
375 case 'U': goto yy72;
376 case 'W':
377 case 'w': goto yy73;
378 case 'Z':
379 case 'z': goto yy74;
380 case '[': goto yy75;
381 case '\\': goto yy77;
382 case ']': goto yy79;
383 case '^': goto yy81;
384 case '_': goto yy83;
385 case 'b': goto yy84;
386 case 'c': goto yy85;
387 case 'd': goto yy86;
388 case 'e': goto yy87;
389 case 'f': goto yy88;
390 case 'i': goto yy89;
391 case 'l': goto yy90;
392 case 'p': goto yy91;
393 case 's': goto yy92;
394 case 't': goto yy93;
395 case 'u': goto yy94;
396 case 'v': goto yy95;
397 case '{': goto yy96;
398 case '|': goto yy98;
399 case '}': goto yy100;
400 case '~': goto yy102;
401 default: goto yy61;
402 }
403 yy2:
404 ++cur;
405 yy3:
406 #line 452 "src/parser.re"
407 { NEWTOKEN(-2); goto error; }
408 #line 409 "src/parser.c"
409 yy4:
410 ++cur;
411 if (lim <= cur) if (cur >= lim) goto done;;
412 yych = *cur;
413 switch (yych) {
414 case '\t':
415 case '\f':
416 case ' ': goto yy4;
417 default: goto yy6;
418 }
419 yy6:
420 #line 451 "src/parser.re"
421 { NEWTOKEN(PSI_T_WHITESPACE); goto start; }
422 #line 423 "src/parser.c"
423 yy7:
424 ++cur;
425 #line 450 "src/parser.re"
426 { NEWTOKEN(PSI_T_EOL); NEWLINE(); goto start; }
427 #line 428 "src/parser.c"
428 yy9:
429 ++cur;
430 switch ((yych = *cur)) {
431 case '=': goto yy104;
432 default: goto yy10;
433 }
434 yy10:
435 #line 349 "src/parser.re"
436 { NEWTOKEN(PSI_T_NOT); goto start; }
437 #line 438 "src/parser.c"
438 yy11:
439 ++cur;
440 #line 322 "src/parser.re"
441 { escaped = false; tok += 1; goto string; }
442 #line 443 "src/parser.c"
443 yy13:
444 ++cur;
445 switch ((yych = *cur)) {
446 case '#': goto yy106;
447 default: goto yy14;
448 }
449 yy14:
450 #line 332 "src/parser.re"
451 { NEWTOKEN(PSI_T_HASH); goto start; }
452 #line 453 "src/parser.c"
453 yy15:
454 yych = *++cur;
455 switch (yych) {
456 case 0x00:
457 case 0x01:
458 case 0x02:
459 case 0x03:
460 case 0x04:
461 case 0x05:
462 case 0x06:
463 case 0x07:
464 case 0x08:
465 case '\t':
466 case '\n':
467 case '\v':
468 case '\f':
469 case '\r':
470 case 0x0E:
471 case 0x0F:
472 case 0x10:
473 case 0x11:
474 case 0x12:
475 case 0x13:
476 case 0x14:
477 case 0x15:
478 case 0x16:
479 case 0x17:
480 case 0x18:
481 case 0x19:
482 case 0x1A:
483 case 0x1B:
484 case 0x1C:
485 case 0x1D:
486 case 0x1E:
487 case 0x1F:
488 case ' ':
489 case '!':
490 case '"':
491 case '#':
492 case '$':
493 case '%':
494 case '&':
495 case '\'':
496 case '(':
497 case ')':
498 case '*':
499 case '+':
500 case ',':
501 case '-':
502 case '.':
503 case '/':
504 case ':':
505 case ';':
506 case '<':
507 case '=':
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 0x7F: goto yy3;
521 default: goto yy108;
522 }
523 yy16:
524 ++cur;
525 #line 350 "src/parser.re"
526 { NEWTOKEN(PSI_T_MODULO); goto start; }
527 #line 528 "src/parser.c"
528 yy18:
529 ++cur;
530 switch ((yych = *cur)) {
531 case '&': goto yy111;
532 default: goto yy19;
533 }
534 yy19:
535 #line 351 "src/parser.re"
536 { NEWTOKEN(PSI_T_AMPERSAND); goto start; }
537 #line 538 "src/parser.c"
538 yy20:
539 ++cur;
540 #line 321 "src/parser.re"
541 { escaped = false; tok += 1; goto character; }
542 #line 543 "src/parser.c"
543 yy22:
544 ++cur;
545 #line 333 "src/parser.re"
546 { NEWTOKEN(PSI_T_LPAREN); goto start; }
547 #line 548 "src/parser.c"
548 yy24:
549 ++cur;
550 #line 334 "src/parser.re"
551 { NEWTOKEN(PSI_T_RPAREN); goto start; }
552 #line 553 "src/parser.c"
553 yy26:
554 ++cur;
555 #line 347 "src/parser.re"
556 { NEWTOKEN(PSI_T_ASTERISK); goto start; }
557 #line 558 "src/parser.c"
558 yy28:
559 yyaccept = 0;
560 yych = *(mrk = ++cur);
561 switch (yych) {
562 case '.': goto yy113;
563 case '0': goto yy38;
564 case '1':
565 case '2':
566 case '3':
567 case '4':
568 case '5':
569 case '6':
570 case '7':
571 case '8':
572 case '9': goto yy40;
573 default: goto yy29;
574 }
575 yy29:
576 #line 352 "src/parser.re"
577 { NEWTOKEN(PSI_T_PLUS); goto start; }
578 #line 579 "src/parser.c"
579 yy30:
580 ++cur;
581 #line 336 "src/parser.re"
582 { NEWTOKEN(PSI_T_COMMA); goto start; }
583 #line 584 "src/parser.c"
584 yy32:
585 yyaccept = 1;
586 yych = *(mrk = ++cur);
587 switch (yych) {
588 case '.': goto yy113;
589 case '0': goto yy38;
590 case '1':
591 case '2':
592 case '3':
593 case '4':
594 case '5':
595 case '6':
596 case '7':
597 case '8':
598 case '9': goto yy40;
599 default: goto yy33;
600 }
601 yy33:
602 #line 353 "src/parser.re"
603 { NEWTOKEN(PSI_T_MINUS); goto start; }
604 #line 605 "src/parser.c"
605 yy34:
606 yyaccept = 2;
607 yych = *(mrk = ++cur);
608 switch (yych) {
609 case '.': goto yy115;
610 case '0':
611 case '1':
612 case '2':
613 case '3':
614 case '4':
615 case '5':
616 case '6':
617 case '7':
618 case '8':
619 case '9': goto yy116;
620 default: goto yy35;
621 }
622 yy35:
623 #line 364 "src/parser.re"
624 { NEWTOKEN(PSI_T_PERIOD); goto start; }
625 #line 626 "src/parser.c"
626 yy36:
627 ++cur;
628 switch ((yych = *cur)) {
629 case '*': goto yy119;
630 case '/': goto yy121;
631 default: goto yy37;
632 }
633 yy37:
634 #line 354 "src/parser.re"
635 { NEWTOKEN(PSI_T_SLASH); goto start; }
636 #line 637 "src/parser.c"
637 yy38:
638 yyaccept = 3;
639 yych = *(mrk = ++cur);
640 ctxmrk = cur;
641 switch (yych) {
642 case '.': goto yy123;
643 case '0':
644 case '1':
645 case '2':
646 case '3':
647 case '4':
648 case '5':
649 case '6':
650 case '7': goto yy125;
651 case 'E':
652 case 'e': goto yy127;
653 case 'L':
654 case 'l': goto yy128;
655 case 'U':
656 case 'u': goto yy130;
657 case 'X':
658 case 'x': goto yy132;
659 default: goto yy39;
660 }
661 yy39:
662 #line 308 "src/parser.re"
663 { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT; goto start; }
664 #line 665 "src/parser.c"
665 yy40:
666 yyaccept = 3;
667 mrk = ++cur;
668 if ((lim - cur) < 3) if (cur >= lim) goto done;;
669 yych = *cur;
670 ctxmrk = cur;
671 switch (yych) {
672 case '.': goto yy123;
673 case '0':
674 case '1':
675 case '2':
676 case '3':
677 case '4':
678 case '5':
679 case '6':
680 case '7':
681 case '8':
682 case '9': goto yy40;
683 case 'E':
684 case 'e': goto yy127;
685 case 'L':
686 case 'l': goto yy128;
687 case 'U':
688 case 'u': goto yy130;
689 default: goto yy39;
690 }
691 yy42:
692 ++cur;
693 #line 337 "src/parser.re"
694 { NEWTOKEN(PSI_T_COLON); goto start; }
695 #line 696 "src/parser.c"
696 yy44:
697 ++cur;
698 #line 335 "src/parser.re"
699 { NEWTOKEN(PSI_T_EOS); goto start; }
700 #line 701 "src/parser.c"
701 yy46:
702 yyaccept = 4;
703 yych = *(mrk = ++cur);
704 switch (yych) {
705 case '-':
706 case '.':
707 case '/':
708 case '0':
709 case '1':
710 case '2':
711 case '3':
712 case '4':
713 case '5':
714 case '6':
715 case '7':
716 case '8':
717 case '9':
718 case 'A':
719 case 'B':
720 case 'C':
721 case 'D':
722 case 'E':
723 case 'F':
724 case 'G':
725 case 'H':
726 case 'I':
727 case 'J':
728 case 'K':
729 case 'L':
730 case 'M':
731 case 'N':
732 case 'O':
733 case 'P':
734 case 'Q':
735 case 'R':
736 case 'S':
737 case 'T':
738 case 'U':
739 case 'V':
740 case 'W':
741 case 'X':
742 case 'Y':
743 case 'Z':
744 case '_':
745 case 'a':
746 case 'b':
747 case 'c':
748 case 'd':
749 case 'e':
750 case 'f':
751 case 'g':
752 case 'h':
753 case 'i':
754 case 'j':
755 case 'k':
756 case 'l':
757 case 'm':
758 case 'n':
759 case 'o':
760 case 'p':
761 case 'q':
762 case 'r':
763 case 's':
764 case 't':
765 case 'u':
766 case 'v':
767 case 'w':
768 case 'x':
769 case 'y':
770 case 'z': goto yy133;
771 case '<': goto yy135;
772 case '=': goto yy137;
773 default: goto yy47;
774 }
775 yy47:
776 #line 362 "src/parser.re"
777 { NEWTOKEN(PSI_T_LCHEVR); goto start; }
778 #line 779 "src/parser.c"
779 yy48:
780 ++cur;
781 switch ((yych = *cur)) {
782 case '=': goto yy139;
783 default: goto yy49;
784 }
785 yy49:
786 #line 346 "src/parser.re"
787 { NEWTOKEN(PSI_T_EQUALS); goto start; }
788 #line 789 "src/parser.c"
789 yy50:
790 ++cur;
791 switch ((yych = *cur)) {
792 case '=': goto yy141;
793 case '>': goto yy143;
794 default: goto yy51;
795 }
796 yy51:
797 #line 363 "src/parser.re"
798 { NEWTOKEN(PSI_T_RCHEVR); goto start; }
799 #line 800 "src/parser.c"
800 yy52:
801 ++cur;
802 #line 366 "src/parser.re"
803 { NEWTOKEN(PSI_T_IIF); goto start; }
804 #line 805 "src/parser.c"
805 yy54:
806 yyaccept = 5;
807 yych = *(mrk = ++cur);
808 switch (yych) {
809 case 'R':
810 case 'r': goto yy145;
811 default: goto yy62;
812 }
813 yy55:
814 #line 445 "src/parser.re"
815 { NEWTOKEN(PSI_T_NAME); goto start; }
816 #line 817 "src/parser.c"
817 yy56:
818 yyaccept = 5;
819 yych = *(mrk = ++cur);
820 switch (yych) {
821 case 'O':
822 case 'o': goto yy147;
823 default: goto yy62;
824 }
825 yy57:
826 yyaccept = 5;
827 yych = *(mrk = ++cur);
828 switch (yych) {
829 case 'A':
830 case 'a': goto yy148;
831 case 'O':
832 case 'o': goto yy149;
833 default: goto yy62;
834 }
835 yy58:
836 yyaccept = 5;
837 yych = *(mrk = ++cur);
838 switch (yych) {
839 case 'E':
840 case 'e': goto yy150;
841 default: goto yy62;
842 }
843 yy59:
844 yyaccept = 5;
845 yych = *(mrk = ++cur);
846 switch (yych) {
847 case 'L':
848 case 'l': goto yy151;
849 case 'N':
850 case 'n': goto yy152;
851 case 'R':
852 case 'r': goto yy153;
853 default: goto yy62;
854 }
855 yy60:
856 yyaccept = 5;
857 yych = *(mrk = ++cur);
858 switch (yych) {
859 case 'A':
860 case 'a': goto yy154;
861 case 'L':
862 case 'l': goto yy155;
863 case 'R':
864 case 'r': goto yy156;
865 case 'U':
866 case 'u': goto yy157;
867 default: goto yy62;
868 }
869 yy61:
870 yyaccept = 5;
871 mrk = ++cur;
872 if (lim <= cur) if (cur >= lim) goto done;;
873 yych = *cur;
874 yy62:
875 switch (yych) {
876 case 0x00:
877 case 0x01:
878 case 0x02:
879 case 0x03:
880 case 0x04:
881 case 0x05:
882 case 0x06:
883 case 0x07:
884 case 0x08:
885 case '\t':
886 case '\n':
887 case '\v':
888 case '\f':
889 case '\r':
890 case 0x0E:
891 case 0x0F:
892 case 0x10:
893 case 0x11:
894 case 0x12:
895 case 0x13:
896 case 0x14:
897 case 0x15:
898 case 0x16:
899 case 0x17:
900 case 0x18:
901 case 0x19:
902 case 0x1A:
903 case 0x1B:
904 case 0x1C:
905 case 0x1D:
906 case 0x1E:
907 case 0x1F:
908 case ' ':
909 case '!':
910 case '"':
911 case '#':
912 case '$':
913 case '%':
914 case '&':
915 case '\'':
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 0x7F: goto yy55;
940 case '\\': goto yy146;
941 default: goto yy61;
942 }
943 yy63:
944 yyaccept = 5;
945 yych = *(mrk = ++cur);
946 switch (yych) {
947 case 'F':
948 case 'f': goto yy158;
949 case 'N':
950 case 'n': goto yy160;
951 default: goto yy62;
952 }
953 yy64:
954 yyaccept = 5;
955 yych = *(mrk = ++cur);
956 ctxmrk = cur;
957 switch (yych) {
958 case '"':
959 case '\'': goto yy161;
960 case 'E':
961 case 'e': goto yy163;
962 case 'I':
963 case 'i': goto yy164;
964 default: goto yy62;
965 }
966 yy65:
967 yyaccept = 5;
968 yych = *(mrk = ++cur);
969 switch (yych) {
970 case 'I':
971 case 'i': goto yy165;
972 default: goto yy62;
973 }
974 yy66:
975 yyaccept = 5;
976 yych = *(mrk = ++cur);
977 switch (yych) {
978 case 'U':
979 case 'u': goto yy166;
980 default: goto yy62;
981 }
982 yy67:
983 yyaccept = 5;
984 yych = *(mrk = ++cur);
985 switch (yych) {
986 case 'B':
987 case 'b': goto yy167;
988 default: goto yy62;
989 }
990 yy68:
991 yyaccept = 5;
992 yych = *(mrk = ++cur);
993 switch (yych) {
994 case 'A':
995 case 'a': goto yy168;
996 case 'O':
997 case 'o': goto yy169;
998 case 'R':
999 case 'r': goto yy170;
1000 default: goto yy62;
1001 }
1002 yy69:
1003 yyaccept = 5;
1004 yych = *(mrk = ++cur);
1005 switch (yych) {
1006 case 'E':
1007 case 'e': goto yy171;
1008 default: goto yy62;
1009 }
1010 yy70:
1011 yyaccept = 5;
1012 yych = *(mrk = ++cur);
1013 switch (yych) {
1014 case 'E':
1015 case 'e': goto yy172;
1016 case 'T':
1017 case 't': goto yy173;
1018 default: goto yy62;
1019 }
1020 yy71:
1021 yyaccept = 5;
1022 yych = *(mrk = ++cur);
1023 switch (yych) {
1024 case 'E':
1025 case 'e': goto yy174;
1026 case 'O':
1027 case 'o': goto yy175;
1028 case 'R':
1029 case 'r': goto yy176;
1030 default: goto yy62;
1031 }
1032 yy72:
1033 yyaccept = 5;
1034 yych = *(mrk = ++cur);
1035 ctxmrk = cur;
1036 switch (yych) {
1037 case '"':
1038 case '\'': goto yy177;
1039 case 'N':
1040 case 'n': goto yy179;
1041 default: goto yy62;
1042 }
1043 yy73:
1044 yyaccept = 5;
1045 yych = *(mrk = ++cur);
1046 switch (yych) {
1047 case 'A':
1048 case 'a': goto yy180;
1049 default: goto yy62;
1050 }
1051 yy74:
1052 yyaccept = 5;
1053 yych = *(mrk = ++cur);
1054 switch (yych) {
1055 case 'V':
1056 case 'v': goto yy181;
1057 default: goto yy62;
1058 }
1059 yy75:
1060 ++cur;
1061 #line 340 "src/parser.re"
1062 { NEWTOKEN(PSI_T_LBRACKET); goto start; }
1063 #line 1064 "src/parser.c"
1064 yy77:
1065 ++cur;
1066 switch ((yych = *cur)) {
1067 case 0x00:
1068 case 0x01:
1069 case 0x02:
1070 case 0x03:
1071 case 0x04:
1072 case 0x05:
1073 case 0x06:
1074 case 0x07:
1075 case 0x08:
1076 case '\t':
1077 case '\n':
1078 case '\v':
1079 case '\f':
1080 case '\r':
1081 case 0x0E:
1082 case 0x0F:
1083 case 0x10:
1084 case 0x11:
1085 case 0x12:
1086 case 0x13:
1087 case 0x14:
1088 case 0x15:
1089 case 0x16:
1090 case 0x17:
1091 case 0x18:
1092 case 0x19:
1093 case 0x1A:
1094 case 0x1B:
1095 case 0x1C:
1096 case 0x1D:
1097 case 0x1E:
1098 case 0x1F:
1099 case ' ':
1100 case '!':
1101 case '"':
1102 case '#':
1103 case '$':
1104 case '%':
1105 case '&':
1106 case '\'':
1107 case '(':
1108 case ')':
1109 case '*':
1110 case '+':
1111 case ',':
1112 case '-':
1113 case '.':
1114 case '/':
1115 case '0':
1116 case '1':
1117 case '2':
1118 case '3':
1119 case '4':
1120 case '5':
1121 case '6':
1122 case '7':
1123 case '8':
1124 case '9':
1125 case ':':
1126 case ';':
1127 case '<':
1128 case '=':
1129 case '>':
1130 case '?':
1131 case '@':
1132 case '[':
1133 case '\\':
1134 case ']':
1135 case '^':
1136 case '`':
1137 case '{':
1138 case '|':
1139 case '}':
1140 case '~':
1141 case 0x7F: goto yy78;
1142 default: goto yy182;
1143 }
1144 yy78:
1145 #line 355 "src/parser.re"
1146 { NEWTOKEN(PSI_T_BSLASH); goto start; }
1147 #line 1148 "src/parser.c"
1148 yy79:
1149 ++cur;
1150 #line 341 "src/parser.re"
1151 { NEWTOKEN(PSI_T_RBRACKET); goto start; }
1152 #line 1153 "src/parser.c"
1153 yy81:
1154 ++cur;
1155 #line 357 "src/parser.re"
1156 { NEWTOKEN(PSI_T_CARET); goto start; }
1157 #line 1158 "src/parser.c"
1158 yy83:
1159 yyaccept = 5;
1160 yych = *(mrk = ++cur);
1161 switch (yych) {
1162 case '_': goto yy185;
1163 default: goto yy62;
1164 }
1165 yy84:
1166 yyaccept = 5;
1167 yych = *(mrk = ++cur);
1168 switch (yych) {
1169 case 'O': goto yy147;
1170 case 'o': goto yy186;
1171 default: goto yy62;
1172 }
1173 yy85:
1174 yyaccept = 5;
1175 yych = *(mrk = ++cur);
1176 switch (yych) {
1177 case 'A':
1178 case 'a': goto yy148;
1179 case 'O': goto yy149;
1180 case 'h': goto yy187;
1181 case 'o': goto yy188;
1182 default: goto yy62;
1183 }
1184 yy86:
1185 yyaccept = 5;
1186 yych = *(mrk = ++cur);
1187 switch (yych) {
1188 case 'E':
1189 case 'e': goto yy150;
1190 case 'o': goto yy189;
1191 default: goto yy62;
1192 }
1193 yy87:
1194 yyaccept = 5;
1195 yych = *(mrk = ++cur);
1196 switch (yych) {
1197 case 'L':
1198 case 'l': goto yy151;
1199 case 'N': goto yy152;
1200 case 'R':
1201 case 'r': goto yy153;
1202 case 'n': goto yy190;
1203 default: goto yy62;
1204 }
1205 yy88:
1206 yyaccept = 5;
1207 yych = *(mrk = ++cur);
1208 switch (yych) {
1209 case 'A':
1210 case 'a': goto yy154;
1211 case 'L': goto yy155;
1212 case 'R':
1213 case 'r': goto yy156;
1214 case 'U':
1215 case 'u': goto yy157;
1216 case 'l': goto yy191;
1217 default: goto yy62;
1218 }
1219 yy89:
1220 yyaccept = 5;
1221 yych = *(mrk = ++cur);
1222 switch (yych) {
1223 case 'F':
1224 case 'f': goto yy158;
1225 case 'N': goto yy160;
1226 case 'n': goto yy192;
1227 default: goto yy62;
1228 }
1229 yy90:
1230 yyaccept = 5;
1231 yych = *(mrk = ++cur);
1232 switch (yych) {
1233 case 'E':
1234 case 'e': goto yy163;
1235 case 'I': goto yy164;
1236 case 'i': goto yy193;
1237 case 'o': goto yy194;
1238 default: goto yy62;
1239 }
1240 yy91:
1241 yyaccept = 5;
1242 yych = *(mrk = ++cur);
1243 switch (yych) {
1244 case 'A':
1245 case 'a': goto yy168;
1246 case 'O':
1247 case 'o': goto yy169;
1248 case 'R': goto yy170;
1249 case 'r': goto yy195;
1250 default: goto yy62;
1251 }
1252 yy92:
1253 yyaccept = 5;
1254 yych = *(mrk = ++cur);
1255 switch (yych) {
1256 case 'E':
1257 case 'e': goto yy172;
1258 case 'T': goto yy173;
1259 case 'h': goto yy196;
1260 case 'i': goto yy197;
1261 case 't': goto yy198;
1262 default: goto yy62;
1263 }
1264 yy93:
1265 yyaccept = 5;
1266 yych = *(mrk = ++cur);
1267 switch (yych) {
1268 case 'E':
1269 case 'e': goto yy174;
1270 case 'O':
1271 case 'o': goto yy175;
1272 case 'R':
1273 case 'r': goto yy176;
1274 case 'y': goto yy199;
1275 default: goto yy62;
1276 }
1277 yy94:
1278 yyaccept = 5;
1279 yych = *(mrk = ++cur);
1280 ctxmrk = cur;
1281 switch (yych) {
1282 case '"':
1283 case '\'': goto yy200;
1284 case '8': goto yy202;
1285 case 'N': goto yy179;
1286 case 'i': goto yy203;
1287 case 'n': goto yy204;
1288 default: goto yy62;
1289 }
1290 yy95:
1291 yyaccept = 5;
1292 yych = *(mrk = ++cur);
1293 switch (yych) {
1294 case 'o': goto yy205;
1295 default: goto yy62;
1296 }
1297 yy96:
1298 ++cur;
1299 #line 338 "src/parser.re"
1300 { NEWTOKEN(PSI_T_LBRACE); goto start; }
1301 #line 1302 "src/parser.c"
1302 yy98:
1303 ++cur;
1304 switch ((yych = *cur)) {
1305 case '|': goto yy206;
1306 default: goto yy99;
1307 }
1308 yy99:
1309 #line 356 "src/parser.re"
1310 { NEWTOKEN(PSI_T_PIPE); goto start; }
1311 #line 1312 "src/parser.c"
1312 yy100:
1313 ++cur;
1314 #line 339 "src/parser.re"
1315 { NEWTOKEN(PSI_T_RBRACE); goto start; }
1316 #line 1317 "src/parser.c"
1317 yy102:
1318 ++cur;
1319 #line 348 "src/parser.re"
1320 { NEWTOKEN(PSI_T_TILDE); goto start; }
1321 #line 1322 "src/parser.c"
1322 yy104:
1323 ++cur;
1324 #line 342 "src/parser.re"
1325 { NEWTOKEN(PSI_T_CMP_NE); goto start; }
1326 #line 1327 "src/parser.c"
1327 yy106:
1328 ++cur;
1329 #line 331 "src/parser.re"
1330 { NEWTOKEN(PSI_T_CPP_PASTE); goto start; }
1331 #line 1332 "src/parser.c"
1332 yy108:
1333 ++cur;
1334 if (lim <= cur) if (cur >= lim) goto done;;
1335 yych = *cur;
1336 switch (yych) {
1337 case 0x00:
1338 case 0x01:
1339 case 0x02:
1340 case 0x03:
1341 case 0x04:
1342 case 0x05:
1343 case 0x06:
1344 case 0x07:
1345 case 0x08:
1346 case '\t':
1347 case '\n':
1348 case '\v':
1349 case '\f':
1350 case '\r':
1351 case 0x0E:
1352 case 0x0F:
1353 case 0x10:
1354 case 0x11:
1355 case 0x12:
1356 case 0x13:
1357 case 0x14:
1358 case 0x15:
1359 case 0x16:
1360 case 0x17:
1361 case 0x18:
1362 case 0x19:
1363 case 0x1A:
1364 case 0x1B:
1365 case 0x1C:
1366 case 0x1D:
1367 case 0x1E:
1368 case 0x1F:
1369 case ' ':
1370 case '!':
1371 case '"':
1372 case '#':
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 0x7F: goto yy110;
1402 default: goto yy108;
1403 }
1404 yy110:
1405 #line 447 "src/parser.re"
1406 { NEWTOKEN(PSI_T_DOLLAR_NAME); goto start; }
1407 #line 1408 "src/parser.c"
1408 yy111:
1409 ++cur;
1410 #line 344 "src/parser.re"
1411 { NEWTOKEN(PSI_T_AND); goto start; }
1412 #line 1413 "src/parser.c"
1413 yy113:
1414 yych = *++cur;
1415 switch (yych) {
1416 case '0':
1417 case '1':
1418 case '2':
1419 case '3':
1420 case '4':
1421 case '5':
1422 case '6':
1423 case '7':
1424 case '8':
1425 case '9': goto yy116;
1426 default: goto yy114;
1427 }
1428 yy114:
1429 cur = mrk;
1430 switch (yyaccept) {
1431 case 0: goto yy29;
1432 case 1: goto yy33;
1433 case 2: goto yy35;
1434 case 3: goto yy39;
1435 case 4: goto yy47;
1436 case 5: goto yy55;
1437 case 6: goto yy118;
1438 case 7: goto yy129;
1439 case 8: goto yy159;
1440 case 9: goto yy184;
1441 case 10: goto yy241;
1442 case 11: goto yy243;
1443 case 12: goto yy252;
1444 case 13: goto yy271;
1445 case 14: goto yy302;
1446 case 15: goto yy304;
1447 case 16: goto yy310;
1448 case 17: goto yy318;
1449 case 18: goto yy330;
1450 case 19: goto yy338;
1451 case 20: goto yy342;
1452 case 21: goto yy348;
1453 case 22: goto yy350;
1454 case 23: goto yy354;
1455 case 24: goto yy361;
1456 case 25: goto yy363;
1457 case 26: goto yy373;
1458 case 27: goto yy375;
1459 case 28: goto yy382;
1460 case 29: goto yy385;
1461 case 30: goto yy387;
1462 case 31: goto yy389;
1463 case 32: goto yy393;
1464 case 33: goto yy398;
1465 case 34: goto yy416;
1466 case 35: goto yy423;
1467 case 36: goto yy426;
1468 case 37: goto yy433;
1469 case 38: goto yy442;
1470 case 39: goto yy445;
1471 case 40: goto yy450;
1472 case 41: goto yy452;
1473 case 42: goto yy456;
1474 case 43: goto yy459;
1475 case 44: goto yy461;
1476 case 45: goto yy463;
1477 case 46: goto yy468;
1478 case 47: goto yy470;
1479 case 48: goto yy472;
1480 case 49: goto yy474;
1481 case 50: goto yy476;
1482 case 51: goto yy481;
1483 case 52: goto yy490;
1484 case 53: goto yy495;
1485 case 54: goto yy497;
1486 case 55: goto yy499;
1487 case 56: goto yy501;
1488 case 57: goto yy509;
1489 case 58: goto yy513;
1490 case 59: goto yy517;
1491 case 60: goto yy519;
1492 case 61: goto yy524;
1493 case 62: goto yy529;
1494 case 63: goto yy531;
1495 case 64: goto yy536;
1496 case 65: goto yy538;
1497 case 66: goto yy540;
1498 case 67: goto yy544;
1499 case 68: goto yy549;
1500 case 69: goto yy552;
1501 case 70: goto yy554;
1502 case 71: goto yy556;
1503 case 72: goto yy558;
1504 case 73: goto yy563;
1505 case 74: goto yy565;
1506 case 75: goto yy574;
1507 case 76: goto yy576;
1508 case 77: goto yy578;
1509 case 78: goto yy580;
1510 case 79: goto yy585;
1511 case 80: goto yy587;
1512 case 81: goto yy595;
1513 case 82: goto yy599;
1514 case 83: goto yy603;
1515 case 84: goto yy607;
1516 case 85: goto yy609;
1517 default: goto yy614;
1518 }
1519 yy115:
1520 yych = *++cur;
1521 switch (yych) {
1522 case '.': goto yy208;
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 ctxmrk = cur;
1531 switch (yych) {
1532 case '0':
1533 case '1':
1534 case '2':
1535 case '3':
1536 case '4':
1537 case '5':
1538 case '6':
1539 case '7':
1540 case '8':
1541 case '9': goto yy116;
1542 case 'D':
1543 case 'd': goto yy210;
1544 case 'F':
1545 case 'f': goto yy211;
1546 case 'L':
1547 case 'l': goto yy213;
1548 default: goto yy118;
1549 }
1550 yy118:
1551 #line 314 "src/parser.re"
1552 { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT; goto start; }
1553 #line 1554 "src/parser.c"
1554 yy119:
1555 ++cur;
1556 #line 328 "src/parser.re"
1557 { goto comment; }
1558 #line 1559 "src/parser.c"
1559 yy121:
1560 ++cur;
1561 #line 329 "src/parser.re"
1562 { goto comment_sl; }
1563 #line 1564 "src/parser.c"
1564 yy123:
1565 yyaccept = 6;
1566 mrk = ++cur;
1567 if ((lim - cur) < 3) if (cur >= lim) goto done;;
1568 yych = *cur;
1569 ctxmrk = cur;
1570 switch (yych) {
1571 case '0':
1572 case '1':
1573 case '2':
1574 case '3':
1575 case '4':
1576 case '5':
1577 case '6':
1578 case '7':
1579 case '8':
1580 case '9': goto yy123;
1581 case 'D':
1582 case 'd': goto yy210;
1583 case 'E':
1584 case 'e': goto yy127;
1585 case 'F':
1586 case 'f': goto yy211;
1587 case 'L':
1588 case 'l': goto yy213;
1589 default: goto yy118;
1590 }
1591 yy125:
1592 ++cur;
1593 if ((lim - cur) < 3) if (cur >= lim) goto done;;
1594 yych = *cur;
1595 ctxmrk = cur;
1596 switch (yych) {
1597 case '0':
1598 case '1':
1599 case '2':
1600 case '3':
1601 case '4':
1602 case '5':
1603 case '6':
1604 case '7': goto yy125;
1605 case 'L':
1606 case 'l': goto yy128;
1607 case 'U':
1608 case 'u': goto yy130;
1609 default: goto yy39;
1610 }
1611 yy127:
1612 yych = *++cur;
1613 switch (yych) {
1614 case '+':
1615 case '-': goto yy113;
1616 case '0':
1617 case '1':
1618 case '2':
1619 case '3':
1620 case '4':
1621 case '5':
1622 case '6':
1623 case '7':
1624 case '8':
1625 case '9': goto yy116;
1626 default: goto yy114;
1627 }
1628 yy128:
1629 yyaccept = 7;
1630 yych = *(mrk = ++cur);
1631 switch (yych) {
1632 case 'L':
1633 case 'l': goto yy215;
1634 case 'U':
1635 case 'u': goto yy216;
1636 default: goto yy129;
1637 }
1638 yy129:
1639 cur = ctxmrk;
1640 #line 310 "src/parser.re"
1641 { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_L; cur += 1; goto start; }
1642 #line 1643 "src/parser.c"
1643 yy130:
1644 ++cur;
1645 switch ((yych = *cur)) {
1646 case 'L':
1647 case 'l': goto yy218;
1648 default: goto yy131;
1649 }
1650 yy131:
1651 cur = ctxmrk;
1652 #line 309 "src/parser.re"
1653 { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_U; cur += 1; goto start; }
1654 #line 1655 "src/parser.c"
1655 yy132:
1656 yych = *++cur;
1657 switch (yych) {
1658 case '0':
1659 case '1':
1660 case '2':
1661 case '3':
1662 case '4':
1663 case '5':
1664 case '6':
1665 case '7':
1666 case '8':
1667 case '9':
1668 case 'A':
1669 case 'B':
1670 case 'C':
1671 case 'D':
1672 case 'E':
1673 case 'F':
1674 case 'a':
1675 case 'b':
1676 case 'c':
1677 case 'd':
1678 case 'e':
1679 case 'f': goto yy219;
1680 default: goto yy114;
1681 }
1682 yy133:
1683 ++cur;
1684 if (lim <= cur) if (cur >= lim) goto done;;
1685 yych = *cur;
1686 switch (yych) {
1687 case '-':
1688 case '.':
1689 case '/':
1690 case '0':
1691 case '1':
1692 case '2':
1693 case '3':
1694 case '4':
1695 case '5':
1696 case '6':
1697 case '7':
1698 case '8':
1699 case '9':
1700 case 'A':
1701 case 'B':
1702 case 'C':
1703 case 'D':
1704 case 'E':
1705 case 'F':
1706 case 'G':
1707 case 'H':
1708 case 'I':
1709 case 'J':
1710 case 'K':
1711 case 'L':
1712 case 'M':
1713 case 'N':
1714 case 'O':
1715 case 'P':
1716 case 'Q':
1717 case 'R':
1718 case 'S':
1719 case 'T':
1720 case 'U':
1721 case 'V':
1722 case 'W':
1723 case 'X':
1724 case 'Y':
1725 case 'Z':
1726 case '_':
1727 case 'a':
1728 case 'b':
1729 case 'c':
1730 case 'd':
1731 case 'e':
1732 case 'f':
1733 case 'g':
1734 case 'h':
1735 case 'i':
1736 case 'j':
1737 case 'k':
1738 case 'l':
1739 case 'm':
1740 case 'n':
1741 case 'o':
1742 case 'p':
1743 case 'q':
1744 case 'r':
1745 case 's':
1746 case 't':
1747 case 'u':
1748 case 'v':
1749 case 'w':
1750 case 'x':
1751 case 'y':
1752 case 'z': goto yy133;
1753 case '>': goto yy221;
1754 default: goto yy114;
1755 }
1756 yy135:
1757 ++cur;
1758 #line 358 "src/parser.re"
1759 { NEWTOKEN(PSI_T_LSHIFT); goto start; }
1760 #line 1761 "src/parser.c"
1761 yy137:
1762 ++cur;
1763 #line 360 "src/parser.re"
1764 { NEWTOKEN(PSI_T_CMP_LE); goto start; }
1765 #line 1766 "src/parser.c"
1766 yy139:
1767 ++cur;
1768 #line 343 "src/parser.re"
1769 { NEWTOKEN(PSI_T_CMP_EQ); goto start; }
1770 #line 1771 "src/parser.c"
1771 yy141:
1772 ++cur;
1773 #line 361 "src/parser.re"
1774 { NEWTOKEN(PSI_T_CMP_GE); goto start; }
1775 #line 1776 "src/parser.c"
1776 yy143:
1777 ++cur;
1778 #line 359 "src/parser.re"
1779 { NEWTOKEN(PSI_T_RSHIFT); goto start; }
1780 #line 1781 "src/parser.c"
1781 yy145:
1782 yyaccept = 5;
1783 yych = *(mrk = ++cur);
1784 switch (yych) {
1785 case 'R':
1786 case 'r': goto yy223;
1787 default: goto yy62;
1788 }
1789 yy146:
1790 ++cur;
1791 if (lim <= cur) if (cur >= lim) goto done;;
1792 yych = *cur;
1793 switch (yych) {
1794 case 0x00:
1795 case 0x01:
1796 case 0x02:
1797 case 0x03:
1798 case 0x04:
1799 case 0x05:
1800 case 0x06:
1801 case 0x07:
1802 case 0x08:
1803 case '\t':
1804 case '\n':
1805 case '\v':
1806 case '\f':
1807 case '\r':
1808 case 0x0E:
1809 case 0x0F:
1810 case 0x10:
1811 case 0x11:
1812 case 0x12:
1813 case 0x13:
1814 case 0x14:
1815 case 0x15:
1816 case 0x16:
1817 case 0x17:
1818 case 0x18:
1819 case 0x19:
1820 case 0x1A:
1821 case 0x1B:
1822 case 0x1C:
1823 case 0x1D:
1824 case 0x1E:
1825 case 0x1F:
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 '0':
1843 case '1':
1844 case '2':
1845 case '3':
1846 case '4':
1847 case '5':
1848 case '6':
1849 case '7':
1850 case '8':
1851 case '9':
1852 case ':':
1853 case ';':
1854 case '<':
1855 case '=':
1856 case '>':
1857 case '?':
1858 case '@':
1859 case '[':
1860 case '\\':
1861 case ']':
1862 case '^':
1863 case '`':
1864 case '{':
1865 case '|':
1866 case '}':
1867 case '~':
1868 case 0x7F: goto yy114;
1869 default: goto yy182;
1870 }
1871 yy147:
1872 yyaccept = 5;
1873 yych = *(mrk = ++cur);
1874 switch (yych) {
1875 case 'O':
1876 case 'o': goto yy224;
1877 default: goto yy62;
1878 }
1879 yy148:
1880 yyaccept = 5;
1881 yych = *(mrk = ++cur);
1882 switch (yych) {
1883 case 'L':
1884 case 'l': goto yy225;
1885 default: goto yy62;
1886 }
1887 yy149:
1888 yyaccept = 5;
1889 yych = *(mrk = ++cur);
1890 switch (yych) {
1891 case 'U':
1892 case 'u': goto yy226;
1893 default: goto yy62;
1894 }
1895 yy150:
1896 yyaccept = 5;
1897 yych = *(mrk = ++cur);
1898 switch (yych) {
1899 case 'F':
1900 case 'f': goto yy227;
1901 default: goto yy62;
1902 }
1903 yy151:
1904 yyaccept = 5;
1905 yych = *(mrk = ++cur);
1906 switch (yych) {
1907 case 'I':
1908 case 'i': goto yy228;
1909 case 'S':
1910 case 's': goto yy229;
1911 default: goto yy62;
1912 }
1913 yy152:
1914 yyaccept = 5;
1915 yych = *(mrk = ++cur);
1916 switch (yych) {
1917 case 'D':
1918 case 'd': goto yy230;
1919 default: goto yy62;
1920 }
1921 yy153:
1922 yyaccept = 5;
1923 yych = *(mrk = ++cur);
1924 switch (yych) {
1925 case 'R':
1926 case 'r': goto yy231;
1927 default: goto yy62;
1928 }
1929 yy154:
1930 yyaccept = 5;
1931 yych = *(mrk = ++cur);
1932 switch (yych) {
1933 case 'L':
1934 case 'l': goto yy232;
1935 default: goto yy62;
1936 }
1937 yy155:
1938 yyaccept = 5;
1939 yych = *(mrk = ++cur);
1940 switch (yych) {
1941 case 'O':
1942 case 'o': goto yy233;
1943 default: goto yy62;
1944 }
1945 yy156:
1946 yyaccept = 5;
1947 yych = *(mrk = ++cur);
1948 switch (yych) {
1949 case 'E':
1950 case 'e': goto yy234;
1951 default: goto yy62;
1952 }
1953 yy157:
1954 yyaccept = 5;
1955 yych = *(mrk = ++cur);
1956 switch (yych) {
1957 case 'N':
1958 case 'n': goto yy235;
1959 default: goto yy62;
1960 }
1961 yy158:
1962 yyaccept = 8;
1963 yych = *(mrk = ++cur);
1964 switch (yych) {
1965 case 0x00:
1966 case 0x01:
1967 case 0x02:
1968 case 0x03:
1969 case 0x04:
1970 case 0x05:
1971 case 0x06:
1972 case 0x07:
1973 case 0x08:
1974 case '\t':
1975 case '\n':
1976 case '\v':
1977 case '\f':
1978 case '\r':
1979 case 0x0E:
1980 case 0x0F:
1981 case 0x10:
1982 case 0x11:
1983 case 0x12:
1984 case 0x13:
1985 case 0x14:
1986 case 0x15:
1987 case 0x16:
1988 case 0x17:
1989 case 0x18:
1990 case 0x19:
1991 case 0x1A:
1992 case 0x1B:
1993 case 0x1C:
1994 case 0x1D:
1995 case 0x1E:
1996 case 0x1F:
1997 case ' ':
1998 case '!':
1999 case '"':
2000 case '#':
2001 case '$':
2002 case '%':
2003 case '&':
2004 case '\'':
2005 case '(':
2006 case ')':
2007 case '*':
2008 case '+':
2009 case ',':
2010 case '-':
2011 case '.':
2012 case '/':
2013 case ':':
2014 case ';':
2015 case '<':
2016 case '=':
2017 case '>':
2018 case '?':
2019 case '@':
2020 case '[':
2021 case ']':
2022 case '^':
2023 case '`':
2024 case '{':
2025 case '|':
2026 case '}':
2027 case '~':
2028 case 0x7F: goto yy159;
2029 case 'D':
2030 case 'd': goto yy236;
2031 case 'N':
2032 case 'n': goto yy237;
2033 case '\\': goto yy146;
2034 default: goto yy61;
2035 }
2036 yy159:
2037 #line 396 "src/parser.re"
2038 { NEWTOKEN(PSI_T_IF); goto start; }
2039 #line 2040 "src/parser.c"
2040 yy160:
2041 yyaccept = 5;
2042 yych = *(mrk = ++cur);
2043 switch (yych) {
2044 case 'C':
2045 case 'c': goto yy238;
2046 case 'T':
2047 case 't': goto yy239;
2048 default: goto yy62;
2049 }
2050 yy161:
2051 ++cur;
2052 cur = ctxmrk;
2053 #line 326 "src/parser.re"
2054 { char_width = SIZEOF_WCHAR_T/8; }
2055 #line 2056 "src/parser.c"
2056 yy163:
2057 yyaccept = 5;
2058 yych = *(mrk = ++cur);
2059 switch (yych) {
2060 case 'T':
2061 case 't': goto yy240;
2062 default: goto yy62;
2063 }
2064 yy164:
2065 yyaccept = 5;
2066 yych = *(mrk = ++cur);
2067 switch (yych) {
2068 case 'B':
2069 case 'b': goto yy242;
2070 default: goto yy62;
2071 }
2072 yy165:
2073 yyaccept = 5;
2074 yych = *(mrk = ++cur);
2075 switch (yych) {
2076 case 'X':
2077 case 'x': goto yy244;
2078 default: goto yy62;
2079 }
2080 yy166:
2081 yyaccept = 5;
2082 yych = *(mrk = ++cur);
2083 switch (yych) {
2084 case 'L':
2085 case 'l': goto yy245;
2086 default: goto yy62;
2087 }
2088 yy167:
2089 yyaccept = 5;
2090 yych = *(mrk = ++cur);
2091 switch (yych) {
2092 case 'J':
2093 case 'j': goto yy246;
2094 default: goto yy62;
2095 }
2096 yy168:
2097 yyaccept = 5;
2098 yych = *(mrk = ++cur);
2099 switch (yych) {
2100 case 'T':
2101 case 't': goto yy247;
2102 default: goto yy62;
2103 }
2104 yy169:
2105 yyaccept = 5;
2106 yych = *(mrk = ++cur);
2107 switch (yych) {
2108 case 'S':
2109 case 's': goto yy248;
2110 default: goto yy62;
2111 }
2112 yy170:
2113 yyaccept = 5;
2114 yych = *(mrk = ++cur);
2115 switch (yych) {
2116 case 'E':
2117 case 'e': goto yy249;
2118 default: goto yy62;
2119 }
2120 yy171:
2121 yyaccept = 5;
2122 yych = *(mrk = ++cur);
2123 switch (yych) {
2124 case 'T':
2125 case 't': goto yy250;
2126 default: goto yy62;
2127 }
2128 yy172:
2129 yyaccept = 5;
2130 yych = *(mrk = ++cur);
2131 switch (yych) {
2132 case 'T':
2133 case 't': goto yy251;
2134 default: goto yy62;
2135 }
2136 yy173:
2137 yyaccept = 5;
2138 yych = *(mrk = ++cur);
2139 switch (yych) {
2140 case 'A':
2141 case 'a': goto yy253;
2142 case 'R':
2143 case 'r': goto yy254;
2144 default: goto yy62;
2145 }
2146 yy174:
2147 yyaccept = 5;
2148 yych = *(mrk = ++cur);
2149 switch (yych) {
2150 case 'M':
2151 case 'm': goto yy255;
2152 default: goto yy62;
2153 }
2154 yy175:
2155 yyaccept = 5;
2156 yych = *(mrk = ++cur);
2157 switch (yych) {
2158 case '_': goto yy256;
2159 default: goto yy62;
2160 }
2161 yy176:
2162 yyaccept = 5;
2163 yych = *(mrk = ++cur);
2164 switch (yych) {
2165 case 'U':
2166 case 'u': goto yy257;
2167 default: goto yy62;
2168 }
2169 yy177:
2170 ++cur;
2171 cur = ctxmrk;
2172 #line 325 "src/parser.re"
2173 { char_width = 4; }
2174 #line 2175 "src/parser.c"
2175 yy179:
2176 yyaccept = 5;
2177 yych = *(mrk = ++cur);
2178 switch (yych) {
2179 case 'D':
2180 case 'd': goto yy258;
2181 default: goto yy62;
2182 }
2183 yy180:
2184 yyaccept = 5;
2185 yych = *(mrk = ++cur);
2186 switch (yych) {
2187 case 'R':
2188 case 'r': goto yy259;
2189 default: goto yy62;
2190 }
2191 yy181:
2192 yyaccept = 5;
2193 yych = *(mrk = ++cur);
2194 switch (yych) {
2195 case 'A':
2196 case 'a': goto yy260;
2197 default: goto yy62;
2198 }
2199 yy182:
2200 yyaccept = 9;
2201 mrk = ++cur;
2202 if (lim <= cur) if (cur >= lim) goto done;;
2203 yych = *cur;
2204 switch (yych) {
2205 case 0x00:
2206 case 0x01:
2207 case 0x02:
2208 case 0x03:
2209 case 0x04:
2210 case 0x05:
2211 case 0x06:
2212 case 0x07:
2213 case 0x08:
2214 case '\t':
2215 case '\n':
2216 case '\v':
2217 case '\f':
2218 case '\r':
2219 case 0x0E:
2220 case 0x0F:
2221 case 0x10:
2222 case 0x11:
2223 case 0x12:
2224 case 0x13:
2225 case 0x14:
2226 case 0x15:
2227 case 0x16:
2228 case 0x17:
2229 case 0x18:
2230 case 0x19:
2231 case 0x1A:
2232 case 0x1B:
2233 case 0x1C:
2234 case 0x1D:
2235 case 0x1E:
2236 case 0x1F:
2237 case ' ':
2238 case '!':
2239 case '"':
2240 case '#':
2241 case '$':
2242 case '%':
2243 case '&':
2244 case '\'':
2245 case '(':
2246 case ')':
2247 case '*':
2248 case '+':
2249 case ',':
2250 case '-':
2251 case '.':
2252 case '/':
2253 case ':':
2254 case ';':
2255 case '<':
2256 case '=':
2257 case '>':
2258 case '?':
2259 case '@':
2260 case '[':
2261 case ']':
2262 case '^':
2263 case '`':
2264 case '{':
2265 case '|':
2266 case '}':
2267 case '~':
2268 case 0x7F: goto yy184;
2269 case '\\': goto yy146;
2270 default: goto yy182;
2271 }
2272 yy184:
2273 #line 446 "src/parser.re"
2274 { NEWTOKEN(PSI_T_NSNAME); goto start; }
2275 #line 2276 "src/parser.c"
2276 yy185:
2277 yyaccept = 5;
2278 yych = *(mrk = ++cur);
2279 switch (yych) {
2280 case 'a': goto yy261;
2281 case 'e': goto yy262;
2282 case 'r': goto yy263;
2283 default: goto yy62;
2284 }
2285 yy186:
2286 yyaccept = 5;
2287 yych = *(mrk = ++cur);
2288 switch (yych) {
2289 case 'O': goto yy224;
2290 case 'o': goto yy264;
2291 default: goto yy62;
2292 }
2293 yy187:
2294 yyaccept = 5;
2295 yych = *(mrk = ++cur);
2296 switch (yych) {
2297 case 'a': goto yy265;
2298 default: goto yy62;
2299 }
2300 yy188:
2301 yyaccept = 5;
2302 yych = *(mrk = ++cur);
2303 switch (yych) {
2304 case 'U':
2305 case 'u': goto yy226;
2306 case 'n': goto yy266;
2307 default: goto yy62;
2308 }
2309 yy189:
2310 yyaccept = 5;
2311 yych = *(mrk = ++cur);
2312 switch (yych) {
2313 case 'u': goto yy267;
2314 default: goto yy62;
2315 }
2316 yy190:
2317 yyaccept = 5;
2318 yych = *(mrk = ++cur);
2319 switch (yych) {
2320 case 'D':
2321 case 'd': goto yy230;
2322 case 'u': goto yy268;
2323 default: goto yy62;
2324 }
2325 yy191:
2326 yyaccept = 5;
2327 yych = *(mrk = ++cur);
2328 switch (yych) {
2329 case 'O': goto yy233;
2330 case 'o': goto yy269;
2331 default: goto yy62;
2332 }
2333 yy192:
2334 yyaccept = 5;
2335 yych = *(mrk = ++cur);
2336 switch (yych) {
2337 case 'C':
2338 case 'c': goto yy238;
2339 case 'T': goto yy239;
2340 case 't': goto yy270;
2341 default: goto yy62;
2342 }
2343 yy193:
2344 yyaccept = 5;
2345 yych = *(mrk = ++cur);
2346 switch (yych) {
2347 case 'B':
2348 case 'b': goto yy242;
2349 case 'n': goto yy272;
2350 default: goto yy62;
2351 }
2352 yy194:
2353 yyaccept = 5;
2354 yych = *(mrk = ++cur);
2355 switch (yych) {
2356 case 'n': goto yy273;
2357 default: goto yy62;
2358 }
2359 yy195:
2360 yyaccept = 5;
2361 yych = *(mrk = ++cur);
2362 switch (yych) {
2363 case 'E':
2364 case 'e': goto yy249;
2365 case 'a': goto yy274;
2366 default: goto yy62;
2367 }
2368 yy196:
2369 yyaccept = 5;
2370 yych = *(mrk = ++cur);
2371 switch (yych) {
2372 case 'o': goto yy275;
2373 default: goto yy62;
2374 }
2375 yy197:
2376 yyaccept = 5;
2377 yych = *(mrk = ++cur);
2378 switch (yych) {
2379 case 'g': goto yy276;
2380 default: goto yy62;
2381 }
2382 yy198:
2383 yyaccept = 5;
2384 yych = *(mrk = ++cur);
2385 switch (yych) {
2386 case 'A':
2387 case 'a': goto yy253;
2388 case 'R': goto yy254;
2389 case 'r': goto yy277;
2390 default: goto yy62;
2391 }
2392 yy199:
2393 yyaccept = 5;
2394 yych = *(mrk = ++cur);
2395 switch (yych) {
2396 case 'p': goto yy278;
2397 default: goto yy62;
2398 }
2399 yy200:
2400 ++cur;
2401 cur = ctxmrk;
2402 #line 324 "src/parser.re"
2403 { char_width = 2; }
2404 #line 2405 "src/parser.c"
2405 yy202:
2406 yyaccept = 5;
2407 yych = *(mrk = ++cur);
2408 ctxmrk = cur;
2409 switch (yych) {
2410 case '"': goto yy279;
2411 default: goto yy62;
2412 }
2413 yy203:
2414 yyaccept = 5;
2415 yych = *(mrk = ++cur);
2416 switch (yych) {
2417 case 'n': goto yy281;
2418 default: goto yy62;
2419 }
2420 yy204:
2421 yyaccept = 5;
2422 yych = *(mrk = ++cur);
2423 switch (yych) {
2424 case 'D':
2425 case 'd': goto yy258;
2426 case 'i': goto yy282;
2427 case 's': goto yy283;
2428 default: goto yy62;
2429 }
2430 yy205:
2431 yyaccept = 5;
2432 yych = *(mrk = ++cur);
2433 switch (yych) {
2434 case 'i': goto yy284;
2435 default: goto yy62;
2436 }
2437 yy206:
2438 ++cur;
2439 #line 345 "src/parser.re"
2440 { NEWTOKEN(PSI_T_OR); goto start; }
2441 #line 2442 "src/parser.c"
2442 yy208:
2443 ++cur;
2444 #line 365 "src/parser.re"
2445 { NEWTOKEN(PSI_T_ELLIPSIS); goto start; }
2446 #line 2447 "src/parser.c"
2447 yy210:
2448 yych = *++cur;
2449 switch (yych) {
2450 case 'D':
2451 case 'd': goto yy285;
2452 case 'F':
2453 case 'f': goto yy287;
2454 case 'L':
2455 case 'l': goto yy289;
2456 default: goto yy114;
2457 }
2458 yy211:
2459 ++cur;
2460 cur = ctxmrk;
2461 #line 315 "src/parser.re"
2462 { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_F; cur += 1; goto start; }
2463 #line 2464 "src/parser.c"
2464 yy213:
2465 ++cur;
2466 cur = ctxmrk;
2467 #line 316 "src/parser.re"
2468 { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_FLT | PSI_NUMBER_L; cur += 1; goto start; }
2469 #line 2470 "src/parser.c"
2470 yy215:
2471 yych = *++cur;
2472 switch (yych) {
2473 case 'U':
2474 case 'u': goto yy291;
2475 default: goto yy114;
2476 }
2477 yy216:
2478 ++cur;
2479 yy217:
2480 cur = ctxmrk;
2481 #line 311 "src/parser.re"
2482 { NEWTOKEN(PSI_T_NUMBER); token->flags = PSI_NUMBER_INT | PSI_NUMBER_UL; cur += 2; goto start; }
2483 #line 2484 "src/parser.c"
2484 yy218:
2485 yych = *++cur;
2486 switch (yych) {
2487 case 'L':
2488 case 'l': goto yy291;
2489 default: goto yy217;
2490 }
2491 yy219:
2492 yyaccept = 3;
2493 mrk = ++cur;
2494 if ((lim - cur) < 3) if (cur >= lim) goto done;;
2495 yych = *cur;
2496 ctxmrk = cur;
2497 switch (yych) {
2498 case '.': goto yy293;
2499 case '0':
2500 case '1':
2501 case '2':
2502 case '3':
2503 case '4':
2504 case '5':
2505 case '6':
2506 case '7':
2507 case '8':
2508 case '9':
2509 case 'A':
2510 case 'B':
2511 case 'C':
2512 case 'D':
2513 case 'E':
2514 case 'F':
2515 case 'a':
2516 case 'b':
2517 case 'c':
2518 case 'd':
2519 case 'e':
2520 case 'f': goto yy219;
2521 case 'L':
2522 case 'l': goto yy128;
2523 case 'P':
2524 case 'p': goto yy127;
2525 case 'U':
2526 case 'u': goto yy130;
2527 default: goto yy39;
2528 }
2529 yy221:
2530 ++cur;
2531 #line 448 "src/parser.re"
2532 { tok += 1; cur -= 1; NEWTOKEN(PSI_T_CPP_HEADER); cur += 1; goto start; }
2533 #line 2534 "src/parser.c"
2534 yy223:
2535 yyaccept = 5;
2536 yych = *(mrk = ++cur);
2537 switch (yych) {
2538 case 'A':
2539 case 'a': goto yy295;
2540 case 'V':
2541 case 'v': goto yy296;
2542 default: goto yy62;
2543 }
2544 yy224:
2545 yyaccept = 5;
2546 yych = *(mrk = ++cur);
2547 switch (yych) {
2548 case 'L':
2549 case 'l': goto yy297;
2550 default: goto yy62;
2551 }
2552 yy225:
2553 yyaccept = 5;
2554 yych = *(mrk = ++cur);
2555 switch (yych) {
2556 case 'L':
2557 case 'l': goto yy298;
2558 default: goto yy62;
2559 }
2560 yy226:
2561 yyaccept = 5;
2562 yych = *(mrk = ++cur);
2563 switch (yych) {
2564 case 'N':
2565 case 'n': goto yy299;
2566 default: goto yy62;
2567 }
2568 yy227:
2569 yyaccept = 5;
2570 yych = *(mrk = ++cur);
2571 switch (yych) {
2572 case 'I':
2573 case 'i': goto yy300;
2574 default: goto yy62;
2575 }
2576 yy228:
2577 yyaccept = 5;
2578 yych = *(mrk = ++cur);
2579 switch (yych) {
2580 case 'F':
2581 case 'f': goto yy301;
2582 default: goto yy62;
2583 }
2584 yy229:
2585 yyaccept = 5;
2586 yych = *(mrk = ++cur);
2587 switch (yych) {
2588 case 'E':
2589 case 'e': goto yy303;
2590 default: goto yy62;
2591 }
2592 yy230:
2593 yyaccept = 5;
2594 yych = *(mrk = ++cur);
2595 switch (yych) {
2596 case 'I':
2597 case 'i': goto yy305;
2598 default: goto yy62;
2599 }
2600 yy231:
2601 yyaccept = 5;
2602 yych = *(mrk = ++cur);
2603 switch (yych) {
2604 case 'O':
2605 case 'o': goto yy306;
2606 default: goto yy62;
2607 }
2608 yy232:
2609 yyaccept = 5;
2610 yych = *(mrk = ++cur);
2611 switch (yych) {
2612 case 'S':
2613 case 's': goto yy307;
2614 default: goto yy62;
2615 }
2616 yy233:
2617 yyaccept = 5;
2618 yych = *(mrk = ++cur);
2619 switch (yych) {
2620 case 'A':
2621 case 'a': goto yy308;
2622 default: goto yy62;
2623 }
2624 yy234:
2625 yyaccept = 5;
2626 yych = *(mrk = ++cur);
2627 switch (yych) {
2628 case 'E':
2629 case 'e': goto yy309;
2630 default: goto yy62;
2631 }
2632 yy235:
2633 yyaccept = 5;
2634 yych = *(mrk = ++cur);
2635 switch (yych) {
2636 case 'C':
2637 case 'c': goto yy311;
2638 default: goto yy62;
2639 }
2640 yy236:
2641 yyaccept = 5;
2642 yych = *(mrk = ++cur);
2643 switch (yych) {
2644 case 'E':
2645 case 'e': goto yy312;
2646 default: goto yy62;
2647 }
2648 yy237:
2649 yyaccept = 5;
2650 yych = *(mrk = ++cur);
2651 switch (yych) {
2652 case 'D':
2653 case 'd': goto yy313;
2654 default: goto yy62;
2655 }
2656 yy238:
2657 yyaccept = 5;
2658 yych = *(mrk = ++cur);
2659 switch (yych) {
2660 case 'L':
2661 case 'l': goto yy314;
2662 default: goto yy62;
2663 }
2664 yy239:
2665 yyaccept = 5;
2666 yych = *(mrk = ++cur);
2667 switch (yych) {
2668 case 'V':
2669 case 'v': goto yy315;
2670 default: goto yy62;
2671 }
2672 yy240:
2673 yyaccept = 10;
2674 yych = *(mrk = ++cur);
2675 switch (yych) {
2676 case 0x00:
2677 case 0x01:
2678 case 0x02:
2679 case 0x03:
2680 case 0x04:
2681 case 0x05:
2682 case 0x06:
2683 case 0x07:
2684 case 0x08:
2685 case '\t':
2686 case '\n':
2687 case '\v':
2688 case '\f':
2689 case '\r':
2690 case 0x0E:
2691 case 0x0F:
2692 case 0x10:
2693 case 0x11:
2694 case 0x12:
2695 case 0x13:
2696 case 0x14:
2697 case 0x15:
2698 case 0x16:
2699 case 0x17:
2700 case 0x18:
2701 case 0x19:
2702 case 0x1A:
2703 case 0x1B:
2704 case 0x1C:
2705 case 0x1D:
2706 case 0x1E:
2707 case 0x1F:
2708 case ' ':
2709 case '!':
2710 case '"':
2711 case '#':
2712 case '$':
2713 case '%':
2714 case '&':
2715 case '\'':
2716 case '(':
2717 case ')':
2718 case '*':
2719 case '+':
2720 case ',':
2721 case '-':
2722 case '.':
2723 case '/':
2724 case ':':
2725 case ';':
2726 case '<':
2727 case '=':
2728 case '>':
2729 case '?':
2730 case '@':
2731 case '[':
2732 case ']':
2733 case '^':
2734 case '`':
2735 case '{':
2736 case '|':
2737 case '}':
2738 case '~':
2739 case 0x7F: goto yy241;
2740 case '\\': goto yy146;
2741 default: goto yy61;
2742 }
2743 yy241:
2744 #line 421 "src/parser.re"
2745 { NEWTOKEN(PSI_T_LET); goto start; }
2746 #line 2747 "src/parser.c"
2747 yy242:
2748 yyaccept = 11;
2749 yych = *(mrk = ++cur);
2750 switch (yych) {
2751 case 0x00:
2752 case 0x01:
2753 case 0x02:
2754 case 0x03:
2755 case 0x04:
2756 case 0x05:
2757 case 0x06:
2758 case 0x07:
2759 case 0x08:
2760 case '\t':
2761 case '\n':
2762 case '\v':
2763 case '\f':
2764 case '\r':
2765 case 0x0E:
2766 case 0x0F:
2767 case 0x10:
2768 case 0x11:
2769 case 0x12:
2770 case 0x13:
2771 case 0x14:
2772 case 0x15:
2773 case 0x16:
2774 case 0x17:
2775 case 0x18:
2776 case 0x19:
2777 case 0x1A:
2778 case 0x1B:
2779 case 0x1C:
2780 case 0x1D:
2781 case 0x1E:
2782 case 0x1F:
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 '[':
2807 case ']':
2808 case '^':
2809 case '`':
2810 case '{':
2811 case '|':
2812 case '}':
2813 case '~':
2814 case 0x7F: goto yy243;
2815 case '\\': goto yy146;
2816 default: goto yy61;
2817 }
2818 yy243:
2819 #line 420 "src/parser.re"
2820 { NEWTOKEN(PSI_T_LIB); goto start; }
2821 #line 2822 "src/parser.c"
2822 yy244:
2823 yyaccept = 5;
2824 yych = *(mrk = ++cur);
2825 switch (yych) {
2826 case 'E':
2827 case 'e': goto yy316;
2828 default: goto yy62;
2829 }
2830 yy245:
2831 yyaccept = 5;
2832 yych = *(mrk = ++cur);
2833 switch (yych) {
2834 case 'L':
2835 case 'l': goto yy317;
2836 default: goto yy62;
2837 }
2838 yy246:
2839 yyaccept = 5;
2840 yych = *(mrk = ++cur);
2841 switch (yych) {
2842 case 'E':
2843 case 'e': goto yy319;
2844 case 'V':
2845 case 'v': goto yy320;
2846 default: goto yy62;
2847 }
2848 yy247:
2849 yyaccept = 5;
2850 yych = *(mrk = ++cur);
2851 switch (yych) {
2852 case 'H':
2853 case 'h': goto yy321;
2854 default: goto yy62;
2855 }
2856 yy248:
2857 yyaccept = 5;
2858 yych = *(mrk = ++cur);
2859 switch (yych) {
2860 case 'T':
2861 case 't': goto yy322;
2862 default: goto yy62;
2863 }
2864 yy249:
2865 yyaccept = 5;
2866 yych = *(mrk = ++cur);
2867 switch (yych) {
2868 case '_': goto yy323;
2869 default: goto yy62;
2870 }
2871 yy250:
2872 yyaccept = 5;
2873 yych = *(mrk = ++cur);
2874 switch (yych) {
2875 case 'U':
2876 case 'u': goto yy324;
2877 default: goto yy62;
2878 }
2879 yy251:
2880 yyaccept = 12;
2881 yych = *(mrk = ++cur);
2882 switch (yych) {
2883 case 0x00:
2884 case 0x01:
2885 case 0x02:
2886 case 0x03:
2887 case 0x04:
2888 case 0x05:
2889 case 0x06:
2890 case 0x07:
2891 case 0x08:
2892 case '\t':
2893 case '\n':
2894 case '\v':
2895 case '\f':
2896 case '\r':
2897 case 0x0E:
2898 case 0x0F:
2899 case 0x10:
2900 case 0x11:
2901 case 0x12:
2902 case 0x13:
2903 case 0x14:
2904 case 0x15:
2905 case 0x16:
2906 case 0x17:
2907 case 0x18:
2908 case 0x19:
2909 case 0x1A:
2910 case 0x1B:
2911 case 0x1C:
2912 case 0x1D:
2913 case 0x1E:
2914 case 0x1F:
2915 case ' ':
2916 case '!':
2917 case '"':
2918 case '#':
2919 case '$':
2920 case '%':
2921 case '&':
2922 case '\'':
2923 case '(':
2924 case ')':
2925 case '*':
2926 case '+':
2927 case ',':
2928 case '-':
2929 case '.':
2930 case '/':
2931 case ':':
2932 case ';':
2933 case '<':
2934 case '=':
2935 case '>':
2936 case '?':
2937 case '@':
2938 case '[':
2939 case ']':
2940 case '^':
2941 case '`':
2942 case '{':
2943 case '|':
2944 case '}':
2945 case '~':
2946 case 0x7F: goto yy252;
2947 case '\\': goto yy146;
2948 default: goto yy61;
2949 }
2950 yy252:
2951 #line 422 "src/parser.re"
2952 { NEWTOKEN(PSI_T_SET); goto start; }
2953 #line 2954 "src/parser.c"
2954 yy253:
2955 yyaccept = 5;
2956 yych = *(mrk = ++cur);
2957 switch (yych) {
2958 case 'T':
2959 case 't': goto yy325;
2960 default: goto yy62;
2961 }
2962 yy254:
2963 yyaccept = 5;
2964 yych = *(mrk = ++cur);
2965 switch (yych) {
2966 case 'I':
2967 case 'i': goto yy326;
2968 case 'L':
2969 case 'l': goto yy327;
2970 case 'V':
2971 case 'v': goto yy328;
2972 default: goto yy62;
2973 }
2974 yy255:
2975 yyaccept = 5;
2976 yych = *(mrk = ++cur);
2977 switch (yych) {
2978 case 'P':
2979 case 'p': goto yy329;
2980 default: goto yy62;
2981 }
2982 yy256:
2983 yyaccept = 5;
2984 yych = *(mrk = ++cur);
2985 switch (yych) {
2986 case 'A':
2987 case 'a': goto yy331;
2988 case 'B':
2989 case 'b': goto yy332;
2990 case 'F':
2991 case 'f': goto yy333;
2992 case 'I':
2993 case 'i': goto yy334;
2994 case 'O':
2995 case 'o': goto yy335;
2996 case 'S':
2997 case 's': goto yy336;
2998 default: goto yy62;
2999 }
3000 yy257:
3001 yyaccept = 5;
3002 yych = *(mrk = ++cur);
3003 switch (yych) {
3004 case 'E':
3005 case 'e': goto yy337;
3006 default: goto yy62;
3007 }
3008 yy258:
3009 yyaccept = 5;
3010 yych = *(mrk = ++cur);
3011 switch (yych) {
3012 case 'E':
3013 case 'e': goto yy339;
3014 default: goto yy62;
3015 }
3016 yy259:
3017 yyaccept = 5;
3018 yych = *(mrk = ++cur);
3019 switch (yych) {
3020 case 'N':
3021 case 'n': goto yy340;
3022 default: goto yy62;
3023 }
3024 yy260:
3025 yyaccept = 5;
3026 yych = *(mrk = ++cur);
3027 switch (yych) {
3028 case 'L':
3029 case 'l': goto yy341;
3030 default: goto yy62;
3031 }
3032 yy261:
3033 yyaccept = 5;
3034 yych = *(mrk = ++cur);
3035 switch (yych) {
3036 case 's': goto yy343;
3037 case 't': goto yy344;
3038 default: goto yy62;
3039 }
3040 yy262:
3041 yyaccept = 5;
3042 yych = *(mrk = ++cur);
3043 switch (yych) {
3044 case 'x': goto yy345;
3045 default: goto yy62;
3046 }
3047 yy263:
3048 yyaccept = 5;
3049 yych = *(mrk = ++cur);
3050 switch (yych) {
3051 case 'e': goto yy346;
3052 default: goto yy62;
3053 }
3054 yy264:
3055 yyaccept = 5;
3056 yych = *(mrk = ++cur);
3057 switch (yych) {
3058 case 'L': goto yy297;
3059 case 'l': goto yy347;
3060 default: goto yy62;
3061 }
3062 yy265:
3063 yyaccept = 5;
3064 yych = *(mrk = ++cur);
3065 switch (yych) {
3066 case 'r': goto yy349;
3067 default: goto yy62;
3068 }
3069 yy266:
3070 yyaccept = 5;
3071 yych = *(mrk = ++cur);
3072 switch (yych) {
3073 case 's': goto yy351;
3074 default: goto yy62;
3075 }
3076 yy267:
3077 yyaccept = 5;
3078 yych = *(mrk = ++cur);
3079 switch (yych) {
3080 case 'b': goto yy352;
3081 default: goto yy62;
3082 }
3083 yy268:
3084 yyaccept = 5;
3085 yych = *(mrk = ++cur);
3086 switch (yych) {
3087 case 'm': goto yy353;
3088 default: goto yy62;
3089 }
3090 yy269:
3091 yyaccept = 5;
3092 yych = *(mrk = ++cur);
3093 switch (yych) {
3094 case 'A': goto yy308;
3095 case 'a': goto yy355;
3096 default: goto yy62;
3097 }
3098 yy270:
3099 yyaccept = 13;
3100 yych = *(mrk = ++cur);
3101 switch (yych) {
3102 case 0x00:
3103 case 0x01:
3104 case 0x02:
3105 case 0x03:
3106 case 0x04:
3107 case 0x05:
3108 case 0x06:
3109 case 0x07:
3110 case 0x08:
3111 case '\t':
3112 case '\n':
3113 case '\v':
3114 case '\f':
3115 case '\r':
3116 case 0x0E:
3117 case 0x0F:
3118 case 0x10:
3119 case 0x11:
3120 case 0x12:
3121 case 0x13:
3122 case 0x14:
3123 case 0x15:
3124 case 0x16:
3125 case 0x17:
3126 case 0x18:
3127 case 0x19:
3128 case 0x1A:
3129 case 0x1B:
3130 case 0x1C:
3131 case 0x1D:
3132 case 0x1E:
3133 case 0x1F:
3134 case ' ':
3135 case '!':
3136 case '"':
3137 case '#':
3138 case '$':
3139 case '%':
3140 case '&':
3141 case '\'':
3142 case '(':
3143 case ')':
3144 case '*':
3145 case '+':
3146 case ',':
3147 case '-':
3148 case '.':
3149 case '/':
3150 case ':':
3151 case ';':
3152 case '<':
3153 case '=':
3154 case '>':
3155 case '?':
3156 case '@':
3157 case '[':
3158 case ']':
3159 case '^':
3160 case '`':
3161 case '{':
3162 case '|':
3163 case '}':
3164 case '~':
3165 case 0x7F: goto yy271;
3166 case '1': goto yy356;
3167 case '3': goto yy357;
3168 case '6': goto yy358;
3169 case '8':