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