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