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