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