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