1 /* Generated by re2c 1.1.1 on Mon Dec 10 08:53:39 2018 */
2 #line 1 "src/parser_scan.re"
3 /*******************************************************************************
4 Copyright (c) 2016, Michael Wallner <mike@php.net>.
7 Redistribution and use in source and binary forms, with or without
8 modification, are permitted provided that the following conditions are met:
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.
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 *******************************************************************************/
31 # include "php_config.h"
41 # define YYMAXFILL 256
44 size_t psi_parser_maxfill(void) {
52 #define NEWTOKEN(t) do { \
53 if (t == PSI_T_COMMENT || t == PSI_T_WHITESPACE) { \
54 token = psi_token_init(t, "", 0, tok - eol + 1, lines, I->file); \
56 token = psi_token_init(t, tok, cur - tok, tok - eol + 1, lines, I->file); \
58 tokens = psi_plist_add(tokens, &token); \
60 PSI_DEBUG_PRINT(P, "PSI: scanned < "); \
61 PSI_DEBUG_DUMP(P, psi_token_dump, token); \
65 #define CHECKEOF() if (cur >= lim - YYMAXFILL) goto done
67 struct psi_plist
*psi_parser_scan(struct psi_parser
*P
, struct psi_parser_input
*I
)
69 struct psi_plist
*tokens
;
70 struct psi_token
*token
;
71 const char *tok
, *cur
, *lim
, *mrk
, *eol
, *ctxmrk
;
72 unsigned parens
, lines
= 1;
76 PSI_DEBUG_PRINT(P
, "PSI: scanning %s\n", I
->file
->val
);
78 tok
= mrk
= eol
= cur
= I
->buffer
;
79 lim
= I
->buffer
+ I
->length
+ YYMAXFILL
;
80 tokens
= psi_plist_init((psi_plist_dtor
) psi_token_free
);
90 #line 91 "src/parser_scan.c"
93 unsigned int yyaccept
= 0;
94 if ((lim
- cur
) < 15) CHECKEOF();;
139 case '\'': goto yy20
;
190 case '\\': goto yy77
;
208 case '}': goto yy100
;
209 case '~': goto yy102
;
215 #line 256 "src/parser_scan.re"
216 { CHECKEOF(); NEWTOKEN(-2); goto error
; }
217 #line 218 "src/parser_scan.c"
220 if (lim
<= cur
) CHECKEOF();;
229 #line 255 "src/parser_scan.re"
230 { NEWTOKEN(PSI_T_WHITESPACE
); goto start
; }
231 #line 232 "src/parser_scan.c"
234 #line 254 "src/parser_scan.re"
235 { NEWTOKEN(PSI_T_EOL
); NEWLINE(); goto start
; }
236 #line 237 "src/parser_scan.c"
240 case '=': goto yy104
;
244 #line 157 "src/parser_scan.re"
245 { NEWTOKEN(PSI_T_NOT
); goto start
; }
246 #line 247 "src/parser_scan.c"
249 #line 130 "src/parser_scan.re"
250 { escaped
= false; tok
+= 1; goto string
; }
251 #line 252 "src/parser_scan.c"
255 case '#': goto yy106
;
259 #line 140 "src/parser_scan.re"
260 { NEWTOKEN(PSI_T_HASH
); goto start
; }
261 #line 262 "src/parser_scan.c"
334 #line 158 "src/parser_scan.re"
335 { NEWTOKEN(PSI_T_MODULO
); goto start
; }
336 #line 337 "src/parser_scan.c"
340 case '&': goto yy111
;
344 #line 159 "src/parser_scan.re"
345 { NEWTOKEN(PSI_T_AMPERSAND
); goto start
; }
346 #line 347 "src/parser_scan.c"
349 #line 129 "src/parser_scan.re"
350 { escaped
= false; tok
+= 1; goto character
; }
351 #line 352 "src/parser_scan.c"
354 #line 141 "src/parser_scan.re"
355 { NEWTOKEN(PSI_T_LPAREN
); goto start
; }
356 #line 357 "src/parser_scan.c"
359 #line 142 "src/parser_scan.re"
360 { NEWTOKEN(PSI_T_RPAREN
); goto start
; }
361 #line 362 "src/parser_scan.c"
364 #line 155 "src/parser_scan.re"
365 { NEWTOKEN(PSI_T_ASTERISK
); goto start
; }
366 #line 367 "src/parser_scan.c"
369 #line 160 "src/parser_scan.re"
370 { NEWTOKEN(PSI_T_PLUS
); goto start
; }
371 #line 372 "src/parser_scan.c"
374 #line 144 "src/parser_scan.re"
375 { NEWTOKEN(PSI_T_COMMA
); goto start
; }
376 #line 377 "src/parser_scan.c"
379 #line 161 "src/parser_scan.re"
380 { NEWTOKEN(PSI_T_MINUS
); goto start
; }
381 #line 382 "src/parser_scan.c"
384 yych
= *(mrk
= ++cur
);
386 case '.': goto yy113
;
396 case '9': goto yy115
;
400 #line 172 "src/parser_scan.re"
401 { NEWTOKEN(PSI_T_PERIOD
); goto start
; }
402 #line 403 "src/parser_scan.c"
406 case '*': goto yy118
;
407 case '/': goto yy120
;
411 #line 162 "src/parser_scan.re"
412 { NEWTOKEN(PSI_T_SLASH
); goto start
; }
413 #line 414 "src/parser_scan.c"
416 yych
= *(mrk
= ++cur
);
418 case '.': goto yy122
;
420 case 'e': goto yy126
;
422 case 'x': goto yy131
;
426 #line 116 "src/parser_scan.re"
427 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
; goto start
; }
428 #line 429 "src/parser_scan.c"
432 if ((lim
- cur
) < 3) CHECKEOF();;
435 case '.': goto yy122
;
447 case 'e': goto yy126
;
449 case 'l': goto yy127
;
451 case 'u': goto yy129
;
456 #line 145 "src/parser_scan.re"
457 { NEWTOKEN(PSI_T_COLON
); goto start
; }
458 #line 459 "src/parser_scan.c"
461 #line 143 "src/parser_scan.re"
462 { NEWTOKEN(PSI_T_EOS
); goto start
; }
463 #line 464 "src/parser_scan.c"
466 yych
= *(mrk
= ++cur
);
533 case 'z': goto yy132
;
534 case '<': goto yy134
;
535 case '=': goto yy136
;
539 #line 170 "src/parser_scan.re"
540 { NEWTOKEN(PSI_T_LCHEVR
); goto start
; }
541 #line 542 "src/parser_scan.c"
545 case '=': goto yy138
;
549 #line 154 "src/parser_scan.re"
550 { NEWTOKEN(PSI_T_EQUALS
); goto start
; }
551 #line 552 "src/parser_scan.c"
555 case '=': goto yy140
;
556 case '>': goto yy142
;
560 #line 171 "src/parser_scan.re"
561 { NEWTOKEN(PSI_T_RCHEVR
); goto start
; }
562 #line 563 "src/parser_scan.c"
565 #line 174 "src/parser_scan.re"
566 { NEWTOKEN(PSI_T_IIF
); goto start
; }
567 #line 568 "src/parser_scan.c"
570 yych
= *(mrk
= ++cur
);
573 case 'r': goto yy144
;
575 case 's': goto yy145
;
579 #line 249 "src/parser_scan.re"
580 { NEWTOKEN(PSI_T_NAME
); goto start
; }
581 #line 582 "src/parser_scan.c"
584 yych
= *(mrk
= ++cur
);
587 case 'o': goto yy148
;
592 yych
= *(mrk
= ++cur
);
595 case 'a': goto yy149
;
597 case 'o': goto yy150
;
602 yych
= *(mrk
= ++cur
);
605 case 'e': goto yy151
;
610 yych
= *(mrk
= ++cur
);
613 case 'l': goto yy152
;
615 case 'n': goto yy153
;
617 case 'r': goto yy154
;
622 yych
= *(mrk
= ++cur
);
625 case 'a': goto yy155
;
627 case 'l': goto yy156
;
629 case 'r': goto yy157
;
631 case 'u': goto yy158
;
637 if (lim
<= cur
) CHECKEOF();;
704 case 0x7F: goto yy55
;
705 case '\\': goto yy147
;
710 yych
= *(mrk
= ++cur
);
713 case 'f': goto yy159
;
715 case 'n': goto yy161
;
720 yych
= *(mrk
= ++cur
);
723 case '\'': goto yy162
;
725 case 'e': goto yy164
;
727 case 'i': goto yy165
;
732 yych
= *(mrk
= ++cur
);
735 case 'i': goto yy166
;
740 yych
= *(mrk
= ++cur
);
743 case 'u': goto yy167
;
748 yych
= *(mrk
= ++cur
);
751 case 'b': goto yy168
;
756 yych
= *(mrk
= ++cur
);
759 case 'a': goto yy169
;
761 case 'o': goto yy170
;
763 case 'r': goto yy171
;
768 yych
= *(mrk
= ++cur
);
771 case 'e': goto yy172
;
776 yych
= *(mrk
= ++cur
);
779 case 'e': goto yy173
;
781 case 't': goto yy174
;
786 yych
= *(mrk
= ++cur
);
789 case 'e': goto yy175
;
791 case 'o': goto yy176
;
793 case 'r': goto yy177
;
798 yych
= *(mrk
= ++cur
);
801 case '\'': goto yy178
;
803 case 'n': goto yy180
;
808 yych
= *(mrk
= ++cur
);
811 case 'a': goto yy181
;
816 yych
= *(mrk
= ++cur
);
819 case 'v': goto yy182
;
824 #line 148 "src/parser_scan.re"
825 { NEWTOKEN(PSI_T_LBRACKET
); goto start
; }
826 #line 827 "src/parser_scan.c"
904 case 0x7F: goto yy78
;
908 #line 163 "src/parser_scan.re"
909 { NEWTOKEN(PSI_T_BSLASH
); goto start
; }
910 #line 911 "src/parser_scan.c"
913 #line 149 "src/parser_scan.re"
914 { NEWTOKEN(PSI_T_RBRACKET
); goto start
; }
915 #line 916 "src/parser_scan.c"
918 #line 165 "src/parser_scan.re"
919 { NEWTOKEN(PSI_T_CARET
); goto start
; }
920 #line 921 "src/parser_scan.c"
923 yych
= *(mrk
= ++cur
);
925 case '_': goto yy186
;
930 yych
= *(mrk
= ++cur
);
932 case 'O': goto yy148
;
933 case 'o': goto yy187
;
938 yych
= *(mrk
= ++cur
);
941 case 'a': goto yy149
;
942 case 'O': goto yy150
;
943 case 'h': goto yy188
;
944 case 'o': goto yy189
;
949 yych
= *(mrk
= ++cur
);
952 case 'e': goto yy151
;
953 case 'o': goto yy190
;
958 yych
= *(mrk
= ++cur
);
961 case 'l': goto yy152
;
962 case 'N': goto yy153
;
964 case 'r': goto yy154
;
965 case 'n': goto yy191
;
970 yych
= *(mrk
= ++cur
);
973 case 'a': goto yy155
;
974 case 'L': goto yy156
;
976 case 'r': goto yy157
;
978 case 'u': goto yy158
;
979 case 'l': goto yy192
;
984 yych
= *(mrk
= ++cur
);
987 case 'f': goto yy159
;
988 case 'N': goto yy161
;
989 case 'n': goto yy193
;
994 yych
= *(mrk
= ++cur
);
997 case 'e': goto yy164
;
998 case 'I': goto yy165
;
999 case 'i': goto yy194
;
1000 case 'o': goto yy195
;
1005 yych
= *(mrk
= ++cur
);
1008 case 'a': goto yy169
;
1010 case 'o': goto yy170
;
1011 case 'R': goto yy171
;
1012 case 'r': goto yy196
;
1017 yych
= *(mrk
= ++cur
);
1020 case 'e': goto yy173
;
1021 case 'T': goto yy174
;
1022 case 'h': goto yy197
;
1023 case 'i': goto yy198
;
1024 case 't': goto yy199
;
1029 yych
= *(mrk
= ++cur
);
1032 case 'e': goto yy175
;
1034 case 'o': goto yy176
;
1036 case 'r': goto yy177
;
1037 case 'y': goto yy200
;
1042 yych
= *(mrk
= ++cur
);
1045 case '\'': goto yy201
;
1046 case '8': goto yy203
;
1047 case 'N': goto yy180
;
1048 case 'n': goto yy204
;
1053 yych
= *(mrk
= ++cur
);
1055 case 'o': goto yy205
;
1060 #line 146 "src/parser_scan.re"
1061 { NEWTOKEN(PSI_T_LBRACE
); goto start
; }
1062 #line 1063 "src/parser_scan.c"
1066 case '|': goto yy206
;
1070 #line 164 "src/parser_scan.re"
1071 { NEWTOKEN(PSI_T_PIPE
); goto start
; }
1072 #line 1073 "src/parser_scan.c"
1075 #line 147 "src/parser_scan.re"
1076 { NEWTOKEN(PSI_T_RBRACE
); goto start
; }
1077 #line 1078 "src/parser_scan.c"
1080 #line 156 "src/parser_scan.re"
1081 { NEWTOKEN(PSI_T_TILDE
); goto start
; }
1082 #line 1083 "src/parser_scan.c"
1085 #line 150 "src/parser_scan.re"
1086 { NEWTOKEN(PSI_T_CMP_NE
); goto start
; }
1087 #line 1088 "src/parser_scan.c"
1090 #line 139 "src/parser_scan.re"
1091 { NEWTOKEN(PSI_T_CPP_PASTE
); goto start
; }
1092 #line 1093 "src/parser_scan.c"
1095 if (lim
<= cur
) CHECKEOF();;
1162 case 0x7F: goto yy110
;
1163 default: goto yy108
;
1166 #line 251 "src/parser_scan.re"
1167 { NEWTOKEN(PSI_T_DOLLAR_NAME
); goto start
; }
1168 #line 1169 "src/parser_scan.c"
1171 #line 152 "src/parser_scan.re"
1172 { NEWTOKEN(PSI_T_AND
); goto start
; }
1173 #line 1174 "src/parser_scan.c"
1177 case '.': goto yy208
;
1178 default: goto yy114
;
1193 case 10: goto yy244
;
1194 case 11: goto yy253
;
1195 case 12: goto yy274
;
1196 case 13: goto yy306
;
1197 case 14: goto yy308
;
1198 case 15: goto yy314
;
1199 case 16: goto yy322
;
1200 case 17: goto yy334
;
1201 case 18: goto yy342
;
1202 case 19: goto yy346
;
1203 case 20: goto yy353
;
1204 case 21: goto yy355
;
1205 case 22: goto yy359
;
1206 case 23: goto yy363
;
1207 case 24: goto yy365
;
1208 case 25: goto yy375
;
1209 case 26: goto yy378
;
1210 case 27: goto yy385
;
1211 case 28: goto yy388
;
1212 case 29: goto yy390
;
1213 case 30: goto yy392
;
1214 case 31: goto yy396
;
1215 case 32: goto yy401
;
1216 case 33: goto yy419
;
1217 case 34: goto yy422
;
1218 case 35: goto yy427
;
1219 case 36: goto yy430
;
1220 case 37: goto yy434
;
1221 case 38: goto yy440
;
1222 case 39: goto yy444
;
1223 case 40: goto yy449
;
1224 case 41: goto yy451
;
1225 case 42: goto yy455
;
1226 case 43: goto yy458
;
1227 case 44: goto yy460
;
1228 case 45: goto yy462
;
1229 case 46: goto yy467
;
1230 case 47: goto yy469
;
1231 case 48: goto yy471
;
1232 case 49: goto yy473
;
1233 case 50: goto yy475
;
1234 case 51: goto yy480
;
1235 case 52: goto yy489
;
1236 case 53: goto yy491
;
1237 case 54: goto yy493
;
1238 case 55: goto yy495
;
1239 case 56: goto yy497
;
1240 case 57: goto yy499
;
1241 case 58: goto yy504
;
1242 case 59: goto yy508
;
1243 case 60: goto yy512
;
1244 case 61: goto yy514
;
1245 case 62: goto yy519
;
1246 case 63: goto yy524
;
1247 case 64: goto yy532
;
1248 case 65: goto yy536
;
1249 case 66: goto yy538
;
1250 case 67: goto yy540
;
1251 case 68: goto yy542
;
1252 case 69: goto yy547
;
1253 case 70: goto yy549
;
1254 case 71: goto yy558
;
1255 case 72: goto yy560
;
1256 case 73: goto yy565
;
1257 case 74: goto yy567
;
1258 case 75: goto yy575
;
1259 case 76: goto yy579
;
1260 case 77: goto yy583
;
1261 case 78: goto yy587
;
1262 case 79: goto yy589
;
1263 default: goto yy594
;
1268 if ((lim
- cur
) < 2) CHECKEOF();;
1280 case '9': goto yy115
;
1282 case 'd': goto yy210
;
1284 case 'f': goto yy211
;
1286 case 'l': goto yy213
;
1287 default: goto yy117
;
1290 #line 122 "src/parser_scan.re"
1291 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
; goto start
; }
1292 #line 1293 "src/parser_scan.c"
1295 #line 136 "src/parser_scan.re"
1297 #line 1298 "src/parser_scan.c"
1300 #line 137 "src/parser_scan.re"
1301 { goto comment_sl
; }
1302 #line 1303 "src/parser_scan.c"
1306 if ((lim
- cur
) < 3) CHECKEOF();;
1318 case '9': goto yy122
;
1320 case 'd': goto yy210
;
1322 case 'e': goto yy126
;
1324 case 'f': goto yy211
;
1326 case 'l': goto yy213
;
1327 default: goto yy117
;
1331 if ((lim
- cur
) < 3) CHECKEOF();;
1342 case '7': goto yy124
;
1344 case 'l': goto yy127
;
1346 case 'u': goto yy129
;
1353 case '-': goto yy215
;
1363 case '9': goto yy115
;
1364 default: goto yy114
;
1368 yych
= *(mrk
= ++cur
);
1371 case 'l': goto yy216
;
1373 case 'u': goto yy217
;
1374 default: goto yy128
;
1378 #line 118 "src/parser_scan.re"
1379 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
| PSI_NUMBER_L
; cur
+= 1; goto start
; }
1380 #line 1381 "src/parser_scan.c"
1385 case 'l': goto yy219
;
1386 default: goto yy130
;
1390 #line 117 "src/parser_scan.re"
1391 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
| PSI_NUMBER_U
; cur
+= 1; goto start
; }
1392 #line 1393 "src/parser_scan.c"
1417 case 'f': goto yy220
;
1418 default: goto yy114
;
1422 if (lim
<= cur
) CHECKEOF();;
1490 case 'z': goto yy132
;
1491 case '>': goto yy222
;
1492 default: goto yy114
;
1496 #line 166 "src/parser_scan.re"
1497 { NEWTOKEN(PSI_T_LSHIFT
); goto start
; }
1498 #line 1499 "src/parser_scan.c"
1501 #line 168 "src/parser_scan.re"
1502 { NEWTOKEN(PSI_T_CMP_LE
); goto start
; }
1503 #line 1504 "src/parser_scan.c"
1506 #line 151 "src/parser_scan.re"
1507 { NEWTOKEN(PSI_T_CMP_EQ
); goto start
; }
1508 #line 1509 "src/parser_scan.c"
1511 #line 169 "src/parser_scan.re"
1512 { NEWTOKEN(PSI_T_CMP_GE
); goto start
; }
1513 #line 1514 "src/parser_scan.c"
1516 #line 167 "src/parser_scan.re"
1517 { NEWTOKEN(PSI_T_RSHIFT
); goto start
; }
1518 #line 1519 "src/parser_scan.c"
1521 yych
= *(mrk
= ++cur
);
1524 case 'r': goto yy224
;
1529 yych
= *(mrk
= ++cur
);
1594 case 0x7F: goto yy146
;
1595 case '\\': goto yy147
;
1599 #line 229 "src/parser_scan.re"
1600 { NEWTOKEN(PSI_T_AS
); goto start
; }
1601 #line 1602 "src/parser_scan.c"
1604 if (lim
<= cur
) CHECKEOF();;
1681 case 0x7F: goto yy114
;
1682 default: goto yy183
;
1686 yych
= *(mrk
= ++cur
);
1689 case 'o': goto yy225
;
1694 yych
= *(mrk
= ++cur
);
1697 case 'l': goto yy226
;
1702 yych
= *(mrk
= ++cur
);
1705 case 'u': goto yy227
;
1710 yych
= *(mrk
= ++cur
);
1713 case 'f': goto yy228
;
1718 yych
= *(mrk
= ++cur
);
1721 case 'i': goto yy229
;
1723 case 's': goto yy230
;
1728 yych
= *(mrk
= ++cur
);
1731 case 'd': goto yy231
;
1736 yych
= *(mrk
= ++cur
);
1739 case 'r': goto yy232
;
1744 yych
= *(mrk
= ++cur
);
1747 case 'l': goto yy233
;
1752 yych
= *(mrk
= ++cur
);
1755 case 'o': goto yy234
;
1760 yych
= *(mrk
= ++cur
);
1763 case 'e': goto yy235
;
1768 yych
= *(mrk
= ++cur
);
1771 case 'n': goto yy236
;
1776 yych
= *(mrk
= ++cur
);
1841 case 0x7F: goto yy160
;
1843 case 'd': goto yy237
;
1845 case 'n': goto yy238
;
1846 case '\\': goto yy147
;
1850 #line 199 "src/parser_scan.re"
1851 { NEWTOKEN(PSI_T_IF
); goto start
; }
1852 #line 1853 "src/parser_scan.c"
1855 yych
= *(mrk
= ++cur
);
1858 case 'c': goto yy239
;
1860 case 't': goto yy240
;
1866 #line 134 "src/parser_scan.re"
1867 { char_width
= sizeof(wchar_t); }
1868 #line 1869 "src/parser_scan.c"
1871 yych
= *(mrk
= ++cur
);
1874 case 't': goto yy241
;
1879 yych
= *(mrk
= ++cur
);
1882 case 'b': goto yy243
;
1887 yych
= *(mrk
= ++cur
);
1890 case 'x': goto yy245
;
1895 yych
= *(mrk
= ++cur
);
1898 case 'l': goto yy246
;
1903 yych
= *(mrk
= ++cur
);
1906 case 'j': goto yy247
;
1911 yych
= *(mrk
= ++cur
);
1914 case 't': goto yy248
;
1919 yych
= *(mrk
= ++cur
);
1922 case 's': goto yy249
;
1927 yych
= *(mrk
= ++cur
);
1930 case 'e': goto yy250
;
1935 yych
= *(mrk
= ++cur
);
1938 case 't': goto yy251
;
1943 yych
= *(mrk
= ++cur
);
1946 case 't': goto yy252
;
1951 yych
= *(mrk
= ++cur
);
1954 case 'a': goto yy254
;
1956 case 'r': goto yy255
;
1961 yych
= *(mrk
= ++cur
);
1964 case 'm': goto yy256
;
1969 yych
= *(mrk
= ++cur
);
1971 case '_': goto yy257
;
1976 yych
= *(mrk
= ++cur
);
1979 case 'u': goto yy258
;
1985 #line 133 "src/parser_scan.re"
1987 #line 1988 "src/parser_scan.c"
1990 yych
= *(mrk
= ++cur
);
1993 case 'd': goto yy259
;
1998 yych
= *(mrk
= ++cur
);
2001 case 'r': goto yy260
;
2006 yych
= *(mrk
= ++cur
);
2009 case 'a': goto yy261
;
2015 if (lim
<= cur
) CHECKEOF();;
2081 case 0x7F: goto yy185
;
2082 case '\\': goto yy147
;
2083 default: goto yy183
;
2086 #line 250 "src/parser_scan.re"
2087 { NEWTOKEN(PSI_T_NSNAME
); goto start
; }
2088 #line 2089 "src/parser_scan.c"
2091 yych
= *(mrk
= ++cur
);
2093 case 'a': goto yy262
;
2094 case 'e': goto yy263
;
2095 case 'i': goto yy264
;
2096 case 'r': goto yy265
;
2101 yych
= *(mrk
= ++cur
);
2103 case 'O': goto yy225
;
2104 case 'o': goto yy266
;
2109 yych
= *(mrk
= ++cur
);
2111 case 'a': goto yy267
;
2116 yych
= *(mrk
= ++cur
);
2119 case 'u': goto yy227
;
2120 case 'n': goto yy268
;
2125 yych
= *(mrk
= ++cur
);
2127 case 'u': goto yy269
;
2132 yych
= *(mrk
= ++cur
);
2135 case 'd': goto yy231
;
2136 case 'u': goto yy270
;
2141 yych
= *(mrk
= ++cur
);
2143 case 'O': goto yy234
;
2144 case 'o': goto yy271
;
2149 yych
= *(mrk
= ++cur
);
2152 case 'c': goto yy239
;
2153 case 'T': goto yy240
;
2154 case 'l': goto yy272
;
2155 case 't': goto yy273
;
2160 yych
= *(mrk
= ++cur
);
2163 case 'b': goto yy243
;
2164 case 'n': goto yy275
;
2169 yych
= *(mrk
= ++cur
);
2171 case 'n': goto yy276
;
2176 yych
= *(mrk
= ++cur
);
2179 case 'e': goto yy250
;
2180 case 'a': goto yy277
;
2185 yych
= *(mrk
= ++cur
);
2187 case 'o': goto yy278
;
2192 yych
= *(mrk
= ++cur
);
2194 case 'g': goto yy279
;
2195 case 'z': goto yy280
;
2200 yych
= *(mrk
= ++cur
);
2203 case 'a': goto yy254
;
2204 case 'R': goto yy255
;
2205 case 'r': goto yy281
;
2210 yych
= *(mrk
= ++cur
);
2212 case 'p': goto yy282
;
2218 #line 132 "src/parser_scan.re"
2220 #line 2221 "src/parser_scan.c"
2223 yych
= *(mrk
= ++cur
);
2225 case '"': goto yy283
;
2230 yych
= *(mrk
= ++cur
);
2233 case 'd': goto yy259
;
2234 case 'i': goto yy285
;
2235 case 's': goto yy286
;
2240 yych
= *(mrk
= ++cur
);
2242 case 'i': goto yy287
;
2243 case 'l': goto yy288
;
2248 #line 153 "src/parser_scan.re"
2249 { NEWTOKEN(PSI_T_OR
); goto start
; }
2250 #line 2251 "src/parser_scan.c"
2253 #line 173 "src/parser_scan.re"
2254 { NEWTOKEN(PSI_T_ELLIPSIS
); goto start
; }
2255 #line 2256 "src/parser_scan.c"
2260 case 'd': goto yy289
;
2262 case 'f': goto yy291
;
2264 case 'l': goto yy293
;
2265 default: goto yy114
;
2270 #line 123 "src/parser_scan.re"
2271 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_F
; cur
+= 1; goto start
; }
2272 #line 2273 "src/parser_scan.c"
2276 #line 124 "src/parser_scan.re"
2277 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_L
; cur
+= 1; goto start
; }
2278 #line 2279 "src/parser_scan.c"
2291 case '9': goto yy115
;
2292 default: goto yy114
;
2298 case 'u': goto yy295
;
2299 default: goto yy114
;
2305 #line 119 "src/parser_scan.re"
2306 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
| PSI_NUMBER_UL
; cur
+= 2; goto start
; }
2307 #line 2308 "src/parser_scan.c"
2312 case 'l': goto yy295
;
2313 default: goto yy218
;
2318 if ((lim
- cur
) < 3) CHECKEOF();;
2321 case '.': goto yy297
;
2343 case 'f': goto yy220
;
2345 case 'l': goto yy127
;
2347 case 'p': goto yy126
;
2349 case 'u': goto yy129
;
2354 #line 252 "src/parser_scan.re"
2355 { tok
+= 1; cur
-= 1; NEWTOKEN(PSI_T_CPP_HEADER
); cur
+= 1; goto start
; }
2356 #line 2357 "src/parser_scan.c"
2359 yych
= *(mrk
= ++cur
);
2362 case 'a': goto yy299
;
2364 case 'v': goto yy300
;
2369 yych
= *(mrk
= ++cur
);
2372 case 'l': goto yy301
;
2377 yych
= *(mrk
= ++cur
);
2380 case 'l': goto yy302
;
2385 yych
= *(mrk
= ++cur
);
2388 case 'n': goto yy303
;
2393 yych
= *(mrk
= ++cur
);
2396 case 'i': goto yy304
;
2401 yych
= *(mrk
= ++cur
);
2404 case 'f': goto yy305
;
2409 yych
= *(mrk
= ++cur
);
2412 case 'e': goto yy307
;
2417 yych
= *(mrk
= ++cur
);
2420 case 'i': goto yy309
;
2425 yych
= *(mrk
= ++cur
);
2428 case 'o': goto yy310
;
2433 yych
= *(mrk
= ++cur
);
2436 case 's': goto yy311
;
2441 yych
= *(mrk
= ++cur
);
2444 case 'a': goto yy312
;
2449 yych
= *(mrk
= ++cur
);
2452 case 'e': goto yy313
;
2457 yych
= *(mrk
= ++cur
);
2460 case 'c': goto yy315
;
2465 yych
= *(mrk
= ++cur
);
2468 case 'e': goto yy316
;
2473 yych
= *(mrk
= ++cur
);
2476 case 'd': goto yy317
;
2481 yych
= *(mrk
= ++cur
);
2484 case 'l': goto yy318
;
2489 yych
= *(mrk
= ++cur
);
2492 case 'v': goto yy319
;
2497 yych
= *(mrk
= ++cur
);
2562 case 0x7F: goto yy242
;
2563 case '\\': goto yy147
;
2567 #line 224 "src/parser_scan.re"
2568 { NEWTOKEN(PSI_T_LET
); goto start
; }
2569 #line 2570 "src/parser_scan.c"
2572 yych
= *(mrk
= ++cur
);
2637 case 0x7F: goto yy244
;
2638 case '\\': goto yy147
;
2642 #line 223 "src/parser_scan.re"
2643 { NEWTOKEN(PSI_T_LIB
); goto start
; }
2644 #line 2645 "src/parser_scan.c"
2647 yych
= *(mrk
= ++cur
);
2650 case 'e': goto yy320
;
2655 yych
= *(mrk
= ++cur
);
2658 case 'l': goto yy321
;
2663 yych
= *(mrk
= ++cur
);
2666 case 'e': goto yy323
;
2668 case 'v': goto yy324
;
2673 yych
= *(mrk
= ++cur
);
2676 case 'h': goto yy325
;
2681 yych
= *(mrk
= ++cur
);
2684 case 't': goto yy326
;
2689 yych
= *(mrk
= ++cur
);
2691 case '_': goto yy327
;
2696 yych
= *(mrk
= ++cur
);
2699 case 'u': goto yy328
;
2704 yych
= *(mrk
= ++cur
);
2769 case 0x7F: goto yy253
;
2770 case '\\': goto yy147
;
2774 #line 225 "src/parser_scan.re"
2775 { NEWTOKEN(PSI_T_SET
); goto start
; }
2776 #line 2777 "src/parser_scan.c"
2779 yych
= *(mrk
= ++cur
);
2782 case 't': goto yy329
;
2787 yych
= *(mrk
= ++cur
);
2790 case 'i': goto yy330
;
2792 case 'l': goto yy331
;
2794 case 'v': goto yy332
;
2799 yych
= *(mrk
= ++cur
);
2802 case 'p': goto yy333
;
2807 yych
= *(mrk
= ++cur
);
2810 case 'a': goto yy335
;
2812 case 'b': goto yy336
;
2814 case 'f': goto yy337
;
2816 case 'i': goto yy338
;
2818 case 'o': goto yy339
;
2820 case 's': goto yy340
;
2825 yych
= *(mrk
= ++cur
);
2828 case 'e': goto yy341
;
2833 yych
= *(mrk
= ++cur
);
2836 case 'e': goto yy343
;
2841 yych
= *(mrk
= ++cur
);
2844 case 'n': goto yy344
;
2849 yych
= *(mrk
= ++cur
);
2852 case 'l': goto yy345
;
2857 yych
= *(mrk
= ++cur
);
2859 case 's': goto yy347
;
2860 case 't': goto yy348
;
2865 yych
= *(mrk
= ++cur
);
2867 case 'x': goto yy349
;
2872 yych
= *(mrk
= ++cur
);
2874 case 'n': goto yy350
;
2879 yych
= *(mrk
= ++cur
);
2881 case 'e': goto yy351
;
2886 yych
= *(mrk
= ++cur
);
2888 case 'L': goto yy301
;
2889 case 'l': goto yy352
;
2894 yych
= *(mrk
= ++cur
);
2896 case 'r': goto yy354
;
2901 yych
= *(mrk
= ++cur
);
2903 case 's': goto yy356
;
2908 yych
= *(mrk
= ++cur
);
2910 case 'b': goto yy357
;
2915 yych
= *(mrk
= ++cur
);
2917 case 'm': goto yy358
;
2922 yych
= *(mrk
= ++cur
);
2924 case 'A': goto yy312
;
2925 case 'a': goto yy360
;
2930 yych
= *(mrk
= ++cur
);
2932 case 'i': goto yy361
;
2937 yych
= *(mrk
= ++cur
);
3002 case 0x7F: goto yy274
;
3004 case 'v': goto yy319
;
3005 case '\\': goto yy147
;
3009 #line 193 "src/parser_scan.re"
3010 { NEWTOKEN(PSI_T_INT
); goto start
; }
3011 #line 3012 "src/parser_scan.c"
3014 yych
= *(mrk
= ++cur
);
3016 case 'e': goto yy362
;
3021 yych
= *(mrk
= ++cur
);
3023 case 'g': goto yy364
;
3028 yych
= *(mrk
= ++cur
);
3030 case 'g': goto yy366
;
3035 yych
= *(mrk
= ++cur
);
3037 case 'r': goto yy367
;
3042 yych
= *(mrk
= ++cur
);
3044 case 'n': goto yy368
;
3049 yych
= *(mrk
= ++cur
);
3051 case 'e': goto yy369
;
3056 yych
= *(mrk
= ++cur
);
3059 case 'i': goto yy330
;
3061 case 'l': goto yy331
;
3063 case 'v': goto yy332
;
3064 case 'u': goto yy370
;
3069 yych
= *(mrk
= ++cur
);
3071 case 'e': goto yy371
;
3077 #line 131 "src/parser_scan.re"
3079 #line 3080 "src/parser_scan.c"
3082 yych
= *(mrk
= ++cur
);
3084 case 'o': goto yy372
;
3089 yych
= *(mrk
= ++cur
);
3091 case 'i': goto yy373
;
3096 yych
= *(mrk
= ++cur
);
3098 case 'd': goto yy374
;
3103 yych
= *(mrk
= ++cur
);
3105 case 'a': goto yy376
;
3111 #line 126 "src/parser_scan.re"
3112 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_DD
; cur
+= 2; goto start
; }
3113 #line 3114 "src/parser_scan.c"
3117 #line 125 "src/parser_scan.re"
3118 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_DF
; cur
+= 2; goto start
; }
3119 #line 3120 "src/parser_scan.c"
3123 #line 127 "src/parser_scan.re"
3124 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_DL
; cur
+= 2; goto start
; }
3125 #line 3126 "src/parser_scan.c"
3129 #line 120 "src/parser_scan.re"
3130 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
| PSI_NUMBER_ULL
; cur
+= 3; goto start
; }
3131 #line 3132 "src/parser_scan.c"
3134 if ((lim
- cur
) < 3) CHECKEOF();;
3158 case 'f': goto yy297
;
3160 case 'p': goto yy126
;
3161 default: goto yy114
;
3165 yych
= *(mrk
= ++cur
);
3168 case 'y': goto yy377
;
3173 yych
= *(mrk
= ++cur
);
3176 case 'a': goto yy379
;
3181 yych
= *(mrk
= ++cur
);
3184 case 'v': goto yy380
;
3189 yych
= *(mrk
= ++cur
);
3192 case 'a': goto yy381
;
3194 case 'b': goto yy382
;
3196 case 'o': goto yy383
;
3201 yych
= *(mrk
= ++cur
);
3204 case 't': goto yy384
;
3209 yych
= *(mrk
= ++cur
);
3212 case 'n': goto yy386
;
3217 yych
= *(mrk
= ++cur
);
3282 case 0x7F: goto yy306
;
3283 case '\\': goto yy147
;
3287 #line 203 "src/parser_scan.re"
3288 { NEWTOKEN(PSI_T_ELIF
); goto start
; }
3289 #line 3290 "src/parser_scan.c"
3292 yych
= *(mrk
= ++cur
);
3357 case 0x7F: goto yy308
;
3358 case '\\': goto yy147
;
3362 #line 202 "src/parser_scan.re"
3363 { NEWTOKEN(PSI_T_ELSE
); goto start
; }
3364 #line 3365 "src/parser_scan.c"
3367 yych
= *(mrk
= ++cur
);
3370 case 'f': goto yy387
;
3375 yych
= *(mrk
= ++cur
);
3378 case 'r': goto yy389
;
3383 yych
= *(mrk
= ++cur
);
3386 case 'e': goto yy391
;
3391 yych
= *(mrk
= ++cur
);
3394 case 't': goto yy393
;
3399 yych
= *(mrk
= ++cur
);
3464 case 0x7F: goto yy314
;
3465 case '\\': goto yy147
;
3469 #line 230 "src/parser_scan.re"
3470 { NEWTOKEN(PSI_T_FREE
); goto start
; }
3471 #line 3472 "src/parser_scan.c"
3474 yych
= *(mrk
= ++cur
);
3477 case 't': goto yy394
;
3482 yych
= *(mrk
= ++cur
);
3485 case 'f': goto yy395
;
3490 yych
= *(mrk
= ++cur
);
3493 case 'e': goto yy397
;
3498 yych
= *(mrk
= ++cur
);
3501 case 'u': goto yy398
;
3506 yych
= *(mrk
= ++cur
);
3509 case 'a': goto yy399
;
3514 yych
= *(mrk
= ++cur
);
3517 case 'd': goto yy400
;
3522 yych
= *(mrk
= ++cur
);
3587 case 0x7F: goto yy322
;
3588 case '\\': goto yy147
;
3592 #line 214 "src/parser_scan.re"
3593 { NEWTOKEN(PSI_T_NULL
); goto start
; }
3594 #line 3595 "src/parser_scan.c"
3597 yych
= *(mrk
= ++cur
);
3600 case 'c': goto yy402
;
3605 yych
= *(mrk
= ++cur
);
3608 case 'a': goto yy403
;
3613 yych
= *(mrk
= ++cur
);
3616 case 'v': goto yy404
;
3621 yych
= *(mrk
= ++cur
);
3623 case '_': goto yy405
;
3628 yych
= *(mrk
= ++cur
);
3631 case 'a': goto yy406
;
3636 yych
= *(mrk
= ++cur
);
3639 case 'r': goto yy407
;
3644 yych
= *(mrk
= ++cur
);
3647 case 'i': goto yy408
;
3652 yych
= *(mrk
= ++cur
);
3655 case 'n': goto yy409
;
3660 yych
= *(mrk
= ++cur
);
3663 case 'e': goto yy410
;
3668 yych
= *(mrk
= ++cur
);
3671 case 'a': goto yy411
;
3676 yych
= *(mrk
= ++cur
);
3741 case 0x7F: goto yy334
;
3742 case '\\': goto yy147
;
3746 #line 231 "src/parser_scan.re"
3747 { NEWTOKEN(PSI_T_TEMP
); goto start
; }
3748 #line 3749 "src/parser_scan.c"
3751 yych
= *(mrk
= ++cur
);
3754 case 'r': goto yy412
;
3759 yych
= *(mrk
= ++cur
);
3762 case 'o': goto yy413
;
3767 yych
= *(mrk
= ++cur
);
3770 case 'l': goto yy414
;
3775 yych
= *(mrk
= ++cur
);
3778 case 'n': goto yy415
;
3783 yych
= *(mrk
= ++cur
);
3786 case 'b': goto yy416
;
3791 yych
= *(mrk
= ++cur
);
3794 case 't': goto yy417
;
3799 yych
= *(mrk
= ++cur
);
3864 case 0x7F: goto yy342
;
3865 case '\\': goto yy147
;
3869 #line 212 "src/parser_scan.re"
3870 { NEWTOKEN(PSI_T_TRUE
); goto start
; }
3871 #line 3872 "src/parser_scan.c"
3874 yych
= *(mrk
= ++cur
);
3877 case 'f': goto yy418
;
3882 yych
= *(mrk
= ++cur
);
3885 case 'i': goto yy420
;
3890 yych
= *(mrk
= ++cur
);
3955 case 0x7F: goto yy346
;
3956 case '\\': goto yy147
;
3960 #line 240 "src/parser_scan.re"
3961 { NEWTOKEN(PSI_T_ZVAL
); goto start
; }
3962 #line 3963 "src/parser_scan.c"
3965 yych
= *(mrk
= ++cur
);
3967 case 'm': goto yy421
;
3972 yych
= *(mrk
= ++cur
);
3974 case 't': goto yy423
;
3979 yych
= *(mrk
= ++cur
);
3981 case 't': goto yy424
;
3986 yych
= *(mrk
= ++cur
);
3988 case 'l': goto yy272
;
3993 yych
= *(mrk
= ++cur
);
3995 case 's': goto yy425
;
4000 yych
= *(mrk
= ++cur
);
4065 case 0x7F: goto yy353
;
4067 case 'v': goto yy380
;
4068 case '\\': goto yy147
;
4072 #line 190 "src/parser_scan.re"
4073 { NEWTOKEN(PSI_T_BOOL
); goto start
; }
4074 #line 4075 "src/parser_scan.c"
4077 yych
= *(mrk
= ++cur
);
4142 case 0x7F: goto yy355
;
4143 case '\\': goto yy147
;
4147 #line 191 "src/parser_scan.re"
4148 { NEWTOKEN(PSI_T_CHAR
); goto start
; }
4149 #line 4150 "src/parser_scan.c"
4152 yych
= *(mrk
= ++cur
);
4154 case 't': goto yy426
;
4159 yych
= *(mrk
= ++cur
);
4161 case 'l': goto yy428
;
4166 yych
= *(mrk
= ++cur
);
4231 case 0x7F: goto yy359
;
4232 case '\\': goto yy147
;
4236 #line 187 "src/parser_scan.re"
4237 { NEWTOKEN(PSI_T_ENUM
); goto start
; }
4238 #line 4239 "src/parser_scan.c"
4241 yych
= *(mrk
= ++cur
);
4243 case 'T': goto yy393
;
4244 case 't': goto yy429
;
4249 yych
= *(mrk
= ++cur
);
4251 case 'n': goto yy431
;
4256 yych
= *(mrk
= ++cur
);
4321 case 0x7F: goto yy363
;
4322 case '\\': goto yy147
;
4326 #line 183 "src/parser_scan.re"
4327 { NEWTOKEN(PSI_T_LINE
); goto start
; }
4328 #line 4329 "src/parser_scan.c"
4331 yych
= *(mrk
= ++cur
);
4396 case 0x7F: goto yy365
;
4397 case '\\': goto yy147
;
4401 #line 194 "src/parser_scan.re"
4402 { NEWTOKEN(PSI_T_LONG
); goto start
; }
4403 #line 4404 "src/parser_scan.c"
4406 yych
= *(mrk
= ++cur
);
4408 case 'm': goto yy432
;
4413 yych
= *(mrk
= ++cur
);
4415 case 't': goto yy433
;
4420 yych
= *(mrk
= ++cur
);
4422 case 'e': goto yy435
;
4427 yych
= *(mrk
= ++cur
);
4429 case 'o': goto yy436
;
4434 yych
= *(mrk
= ++cur
);
4436 case 'c': goto yy437
;
4441 yych
= *(mrk
= ++cur
);
4443 case 'd': goto yy438
;
4448 yych
= *(mrk
= ++cur
);
4450 case 'n': goto yy439
;
4455 yych
= *(mrk
= ++cur
);
4457 case 'g': goto yy441
;
4462 yych
= *(mrk
= ++cur
);
4527 case 0x7F: goto yy375
;
4528 case '\\': goto yy147
;
4532 #line 189 "src/parser_scan.re"
4533 { NEWTOKEN(PSI_T_VOID
); goto start
; }
4534 #line 4535 "src/parser_scan.c"
4537 yych
= *(mrk
= ++cur
);
4539 case 't': goto yy442
;
4544 yych
= *(mrk
= ++cur
);
4609 case 0x7F: goto yy378
;
4610 case '\\': goto yy147
;
4614 #line 218 "src/parser_scan.re"
4615 { NEWTOKEN(PSI_T_ARRAY
); goto start
; }
4616 #line 4617 "src/parser_scan.c"
4619 yych
= *(mrk
= ++cur
);
4622 case 'l': goto yy443
;
4627 yych
= *(mrk
= ++cur
);
4630 case 'a': goto yy445
;
4635 yych
= *(mrk
= ++cur
);
4638 case 'b': goto yy446
;
4643 yych
= *(mrk
= ++cur
);
4646 case 'a': goto yy447
;
4651 yych
= *(mrk
= ++cur
);
4654 case 'c': goto yy448
;
4659 yych
= *(mrk
= ++cur
);
4724 case 0x7F: goto yy385
;
4725 case '\\': goto yy147
;
4729 #line 241 "src/parser_scan.re"
4730 { NEWTOKEN(PSI_T_COUNT
); goto start
; }
4731 #line 4732 "src/parser_scan.c"
4734 yych
= *(mrk
= ++cur
);
4737 case 'e': goto yy450
;
4742 yych
= *(mrk
= ++cur
);
4807 case 0x7F: goto yy388
;
4808 case '\\': goto yy147
;
4812 #line 204 "src/parser_scan.re"
4813 { NEWTOKEN(PSI_T_ENDIF
); goto start
; }
4814 #line 4815 "src/parser_scan.c"
4817 yych
= *(mrk
= ++cur
);
4882 case 0x7F: goto yy390
;
4883 case '\\': goto yy147
;
4887 #line 209 "src/parser_scan.re"
4888 { NEWTOKEN(PSI_T_ERROR
); goto start
; }
4889 #line 4890 "src/parser_scan.c"
4892 yych
= *(mrk
= ++cur
);
4957 case 0x7F: goto yy392
;
4958 case '\\': goto yy147
;
4962 #line 213 "src/parser_scan.re"
4963 { NEWTOKEN(PSI_T_FALSE
); goto start
; }
4964 #line 4965 "src/parser_scan.c"
4967 yych
= *(mrk
= ++cur
);
4970 case 'v': goto yy452
;
4975 yych
= *(mrk
= ++cur
);
4978 case 'i': goto yy453
;
4983 yych
= *(mrk
= ++cur
);
5048 case 0x7F: goto yy396
;
5049 case '\\': goto yy147
;
5053 #line 200 "src/parser_scan.re"
5054 { NEWTOKEN(PSI_T_IFDEF
); goto start
; }
5055 #line 5056 "src/parser_scan.c"
5058 yych
= *(mrk
= ++cur
);
5061 case 'f': goto yy454
;
5066 yych
= *(mrk
= ++cur
);
5069 case 'd': goto yy456
;
5074 yych
= *(mrk
= ++cur
);
5077 case 'l': goto yy457
;
5082 yych
= *(mrk
= ++cur
);
5147 case 0x7F: goto yy401
;
5148 case '\\': goto yy147
;
5152 #line 215 "src/parser_scan.re"
5153 { NEWTOKEN(PSI_T_MIXED
); goto start
; }
5154 #line 5155 "src/parser_scan.c"
5157 yych
= *(mrk
= ++cur
);
5160 case 't': goto yy459
;
5165 yych
= *(mrk
= ++cur
);
5168 case 'l': goto yy461
;
5173 yych
= *(mrk
= ++cur
);
5176 case 'a': goto yy463
;
5181 yych
= *(mrk
= ++cur
);
5184 case 'a': goto yy464
;
5189 yych
= *(mrk
= ++cur
);
5192 case 's': goto yy465
;
5197 yych
= *(mrk
= ++cur
);
5200 case 'n': goto yy466
;
5205 yych
= *(mrk
= ++cur
);
5208 case 'c': goto yy468
;
5213 yych
= *(mrk
= ++cur
);
5216 case 'g': goto yy470
;
5221 yych
= *(mrk
= ++cur
);
5224 case 'n': goto yy472
;
5229 yych
= *(mrk
= ++cur
);
5232 case 'l': goto yy474
;
5237 yych
= *(mrk
= ++cur
);
5240 case 'r': goto yy476
;
5245 yych
= *(mrk
= ++cur
);
5248 case 'o': goto yy477
;
5253 yych
= *(mrk
= ++cur
);
5256 case 'o': goto yy478
;
5261 yych
= *(mrk
= ++cur
);
5264 case 't': goto yy479
;
5269 yych
= *(mrk
= ++cur
);
5272 case 'j': goto yy481
;
5277 yych
= *(mrk
= ++cur
);
5280 case 'r': goto yy482
;
5285 yych
= *(mrk
= ++cur
);
5350 case 0x7F: goto yy419
;
5351 case '\\': goto yy147
;
5355 #line 207 "src/parser_scan.re"
5356 { NEWTOKEN(PSI_T_UNDEF
); goto start
; }
5357 #line 5358 "src/parser_scan.c"
5360 yych
= *(mrk
= ++cur
);
5363 case 'n': goto yy483
;
5368 yych
= *(mrk
= ++cur
);
5433 case 0x7F: goto yy422
;
5434 case '\\': goto yy147
;
5435 case '_': goto yy484
;
5439 #line 180 "src/parser_scan.re"
5440 { NEWTOKEN(PSI_T_CPP_ASM
); goto start
; }
5441 #line 5442 "src/parser_scan.c"
5444 yych
= *(mrk
= ++cur
);
5446 case 'r': goto yy485
;
5451 yych
= *(mrk
= ++cur
);
5453 case 'e': goto yy486
;
5458 yych
= *(mrk
= ++cur
);
5460 case 't': goto yy487
;
5465 yych
= *(mrk
= ++cur
);
5530 case 0x7F: goto yy427
;
5531 case '\\': goto yy147
;
5535 #line 188 "src/parser_scan.re"
5536 { NEWTOKEN(PSI_T_CONST
); goto start
; }
5537 #line 5538 "src/parser_scan.c"
5540 yych
= *(mrk
= ++cur
);
5542 case 'e': goto yy488
;
5547 yych
= *(mrk
= ++cur
);
5612 case 0x7F: goto yy430
;
5614 case 'v': goto yy452
;
5615 case '\\': goto yy147
;
5619 #line 195 "src/parser_scan.re"
5620 { NEWTOKEN(PSI_T_FLOAT
); goto start
; }
5621 #line 5622 "src/parser_scan.c"
5624 yych
= *(mrk
= ++cur
);
5626 case 'e': goto yy490
;
5631 yych
= *(mrk
= ++cur
);
5633 case 'a': goto yy492
;
5638 yych
= *(mrk
= ++cur
);
5703 case 0x7F: goto yy434
;
5704 case '\\': goto yy147
;
5708 #line 192 "src/parser_scan.re"
5709 { NEWTOKEN(PSI_T_SHORT
); goto start
; }
5710 #line 5711 "src/parser_scan.c"
5713 yych
= *(mrk
= ++cur
);
5715 case 'd': goto yy494
;
5720 yych
= *(mrk
= ++cur
);
5722 case 'f': goto yy496
;
5727 yych
= *(mrk
= ++cur
);
5729 case 't': goto yy498
;
5734 yych
= *(mrk
= ++cur
);
5736 case 'e': goto yy500
;
5741 yych
= *(mrk
= ++cur
);
5806 case 0x7F: goto yy440
;
5807 case '\\': goto yy147
;
5811 #line 186 "src/parser_scan.re"
5812 { NEWTOKEN(PSI_T_UNION
); goto start
; }
5813 #line 5814 "src/parser_scan.c"
5816 yych
= *(mrk
= ++cur
);
5818 case 'n': goto yy501
;
5823 yych
= *(mrk
= ++cur
);
5825 case 'i': goto yy502
;
5830 yych
= *(mrk
= ++cur
);
5895 case 0x7F: goto yy444
;
5896 case '\\': goto yy147
;
5900 #line 238 "src/parser_scan.re"
5901 { NEWTOKEN(PSI_T_ARRVAL
); goto start
; }
5902 #line 5903 "src/parser_scan.c"
5905 yych
= *(mrk
= ++cur
);
5908 case 'l': goto yy503
;
5913 yych
= *(mrk
= ++cur
);
5916 case 'l': goto yy505
;
5921 yych
= *(mrk
= ++cur
);
5924 case 'c': goto yy506
;
5929 yych
= *(mrk
= ++cur
);
5994 case 0x7F: goto yy449
;
5995 case '\\': goto yy147
;
5999 #line 242 "src/parser_scan.re"
6000 { NEWTOKEN(PSI_T_CALLOC
); goto start
; }
6001 #line 6002 "src/parser_scan.c"
6004 yych
= *(mrk
= ++cur
);
6069 case 0x7F: goto yy451
;
6071 case 'd': goto yy507
;
6072 case '\\': goto yy147
;
6076 #line 205 "src/parser_scan.re"
6077 { NEWTOKEN(PSI_T_DEFINE
); goto start
; }
6078 #line 6079 "src/parser_scan.c"
6081 yych
= *(mrk
= ++cur
);
6084 case 'a': goto yy509
;
6089 yych
= *(mrk
= ++cur
);
6092 case 'o': goto yy510
;
6097 yych
= *(mrk
= ++cur
);
6162 case 0x7F: goto yy455
;
6163 case '\\': goto yy147
;
6167 #line 201 "src/parser_scan.re"
6168 { NEWTOKEN(PSI_T_IFNDEF
); goto start
; }
6169 #line 6170 "src/parser_scan.c"
6172 yych
= *(mrk
= ++cur
);
6175 case 'e': goto yy511
;
6180 yych
= *(mrk
= ++cur
);
6245 case 0x7F: goto yy458
;
6246 case '\\': goto yy147
;
6250 #line 235 "src/parser_scan.re"
6251 { NEWTOKEN(PSI_T_INTVAL
); goto start
; }
6252 #line 6253 "src/parser_scan.c"
6255 yych
= *(mrk
= ++cur
);
6320 case 0x7F: goto yy460
;
6321 case '\\': goto yy147
;
6325 #line 219 "src/parser_scan.re"
6326 { NEWTOKEN(PSI_T_OBJECT
); goto start
; }
6327 #line 6328 "src/parser_scan.c"
6330 yych
= *(mrk
= ++cur
);
6395 case 0x7F: goto yy462
;
6396 case '\\': goto yy147
;
6400 #line 239 "src/parser_scan.re"
6401 { NEWTOKEN(PSI_T_OBJVAL
); goto start
; }
6402 #line 6403 "src/parser_scan.c"
6405 yych
= *(mrk
= ++cur
);
6408 case 'l': goto yy513
;
6413 yych
= *(mrk
= ++cur
);
6416 case 's': goto yy515
;
6421 yych
= *(mrk
= ++cur
);
6424 case 's': goto yy516
;
6429 yych
= *(mrk
= ++cur
);
6494 case 0x7F: goto yy467
;
6495 case '\\': goto yy147
;
6499 #line 228 "src/parser_scan.re"
6500 { NEWTOKEN(PSI_T_RETURN
); goto start
; }
6501 #line 6502 "src/parser_scan.c"
6504 yych
= *(mrk
= ++cur
);
6569 case 0x7F: goto yy469
;
6570 case '\\': goto yy147
;
6574 #line 221 "src/parser_scan.re"
6575 { NEWTOKEN(PSI_T_STATIC
); goto start
; }
6576 #line 6577 "src/parser_scan.c"
6579 yych
= *(mrk
= ++cur
);
6644 case 0x7F: goto yy471
;
6645 case '\\': goto yy147
;
6649 #line 217 "src/parser_scan.re"
6650 { NEWTOKEN(PSI_T_STRING
); goto start
; }
6651 #line 6652 "src/parser_scan.c"
6654 yych
= *(mrk
= ++cur
);
6719 case 0x7F: goto yy473
;
6720 case '\\': goto yy147
;
6724 #line 232 "src/parser_scan.re"
6725 { NEWTOKEN(PSI_T_STRLEN
); goto start
; }
6726 #line 6727 "src/parser_scan.c"
6729 yych
= *(mrk
= ++cur
);
6794 case 0x7F: goto yy475
;
6795 case '\\': goto yy147
;
6799 #line 233 "src/parser_scan.re"
6800 { NEWTOKEN(PSI_T_STRVAL
); goto start
; }
6801 #line 6802 "src/parser_scan.c"
6804 yych
= *(mrk
= ++cur
);
6807 case 'a': goto yy517
;
6812 yych
= *(mrk
= ++cur
);
6815 case 'l': goto yy518
;
6820 yych
= *(mrk
= ++cur
);
6823 case 'a': goto yy520
;
6828 yych
= *(mrk
= ++cur
);
6893 case 0x7F: goto yy480
;
6894 case '\\': goto yy147
;
6898 #line 246 "src/parser_scan.re"
6899 { NEWTOKEN(PSI_T_TO_INT
); goto start
; }
6900 #line 6901 "src/parser_scan.c"
6903 yych
= *(mrk
= ++cur
);
6906 case 'e': goto yy521
;
6911 yych
= *(mrk
= ++cur
);
6914 case 'i': goto yy522
;
6919 yych
= *(mrk
= ++cur
);
6922 case 'g': goto yy523
;
6927 yych
= *(mrk
= ++cur
);
6929 case '_': goto yy525
;
6934 yych
= *(mrk
= ++cur
);
6936 case 'i': goto yy526
;
6941 yych
= *(mrk
= ++cur
);
6943 case 'n': goto yy527
;
6948 yych
= *(mrk
= ++cur
);
6950 case 'r': goto yy528
;
6955 yych
= *(mrk
= ++cur
);
7020 case 0x7F: goto yy489
;
7021 case '\\': goto yy147
;
7025 #line 196 "src/parser_scan.re"
7026 { NEWTOKEN(PSI_T_DOUBLE
); goto start
; }
7027 #line 7028 "src/parser_scan.c"
7030 yych
= *(mrk
= ++cur
);
7095 case 0x7F: goto yy491
;
7096 case '\\': goto yy147
;
7100 #line 177 "src/parser_scan.re"
7101 { NEWTOKEN(PSI_T_CPP_INLINE
); goto start
; }
7102 #line 7103 "src/parser_scan.c"
7105 yych
= *(mrk
= ++cur
);
7170 case 0x7F: goto yy493
;
7171 case '\\': goto yy147
;
7172 default: goto yy529
;
7175 #line 175 "src/parser_scan.re"
7176 { NEWTOKEN(PSI_T_PRAGMA
); goto start
; }
7177 #line 7178 "src/parser_scan.c"
7180 yych
= *(mrk
= ++cur
);
7245 case 0x7F: goto yy495
;
7246 case '\\': goto yy147
;
7250 #line 198 "src/parser_scan.re"
7251 { NEWTOKEN(PSI_T_SIGNED
); goto start
; }
7252 #line 7253 "src/parser_scan.c"
7255 yych
= *(mrk
= ++cur
);
7320 case 0x7F: goto yy497
;
7321 case '\\': goto yy147
;
7325 #line 182 "src/parser_scan.re"
7326 { NEWTOKEN(PSI_T_SIZEOF
); goto start
; }
7327 #line 7328 "src/parser_scan.c"
7330 yych
= *(mrk
= ++cur
);
7395 case 0x7F: goto yy499
;
7396 case '\\': goto yy147
;
7400 #line 185 "src/parser_scan.re"
7401 { NEWTOKEN(PSI_T_STRUCT
); goto start
; }
7402 #line 7403 "src/parser_scan.c"
7405 yych
= *(mrk
= ++cur
);
7407 case 'f': goto yy531
;
7412 yych
= *(mrk
= ++cur
);
7414 case 'e': goto yy533
;
7419 yych
= *(mrk
= ++cur
);
7421 case 'l': goto yy534
;
7426 yych
= *(mrk
= ++cur
);
7491 case 0x7F: goto yy504
;
7492 case '\\': goto yy147
;
7496 #line 237 "src/parser_scan.re"
7497 { NEWTOKEN(PSI_T_BOOLVAL
); goto start
; }
7498 #line 7499 "src/parser_scan.c"
7501 yych
= *(mrk
= ++cur
);
7504 case 'e': goto yy535
;
7509 yych
= *(mrk
= ++cur
);
7512 case 'k': goto yy537
;
7517 yych
= *(mrk
= ++cur
);
7582 case 0x7F: goto yy508
;
7583 case '\\': goto yy147
;
7587 #line 206 "src/parser_scan.re"
7588 { NEWTOKEN(PSI_T_DEFINED
); goto start
; }
7589 #line 7590 "src/parser_scan.c"
7592 yych
= *(mrk
= ++cur
);
7595 case 'l': goto yy539
;
7600 yych
= *(mrk
= ++cur
);
7603 case 'n': goto yy541
;
7608 yych
= *(mrk
= ++cur
);
7673 case 0x7F: goto yy512
;
7674 case '\\': goto yy147
;
7675 case '_': goto yy543
;
7679 #line 210 "src/parser_scan.re"
7680 { NEWTOKEN(PSI_T_INCLUDE
); goto start
; }
7681 #line 7682 "src/parser_scan.c"
7684 yych
= *(mrk
= ++cur
);
7749 case 0x7F: goto yy514
;
7750 case '\\': goto yy147
;
7754 #line 234 "src/parser_scan.re"
7755 { NEWTOKEN(PSI_T_PATHVAL
); goto start
; }
7756 #line 7757 "src/parser_scan.c"
7759 yych
= *(mrk
= ++cur
);
7762 case 's': goto yy544
;
7767 yych
= *(mrk
= ++cur
);
7770 case 'e': goto yy545
;
7775 yych
= *(mrk
= ++cur
);
7778 case 'y': goto yy546
;
7783 yych
= *(mrk
= ++cur
);
7848 case 0x7F: goto yy519
;
7849 case '\\': goto yy147
;
7853 #line 248 "src/parser_scan.re"
7854 { NEWTOKEN(PSI_T_TO_BOOL
); goto start
; }
7855 #line 7856 "src/parser_scan.c"
7858 yych
= *(mrk
= ++cur
);
7861 case 't': goto yy548
;
7866 yych
= *(mrk
= ++cur
);
7869 case 'c': goto yy550
;
7874 yych
= *(mrk
= ++cur
);
7877 case 'n': goto yy551
;
7882 yych
= *(mrk
= ++cur
);
7947 case 0x7F: goto yy524
;
7948 case '\\': goto yy147
;
7952 #line 208 "src/parser_scan.re"
7953 { NEWTOKEN(PSI_T_WARNING
); goto start
; }
7954 #line 7955 "src/parser_scan.c"
7957 yych
= *(mrk
= ++cur
);
8022 case 0x7F: goto yy422
;
8023 case '\\': goto yy147
;
8028 yych
= *(mrk
= ++cur
);
8030 case 'b': goto yy552
;
8035 yych
= *(mrk
= ++cur
);
8037 case 's': goto yy553
;
8042 yych
= *(mrk
= ++cur
);
8044 case 'i': goto yy554
;
8050 if (lim
<= cur
) CHECKEOF();;
8116 case 0x7F: goto yy55
;
8117 case '\\': goto yy147
;
8118 case 'o': goto yy555
;
8119 default: goto yy529
;
8123 yych
= *(mrk
= ++cur
);
8188 case 0x7F: goto yy532
;
8189 case '\\': goto yy147
;
8193 #line 184 "src/parser_scan.re"
8194 { NEWTOKEN(PSI_T_TYPEDEF
); goto start
; }
8195 #line 8196 "src/parser_scan.c"
8198 yych
= *(mrk
= ++cur
);
8200 case 'd': goto yy557
;
8205 yych
= *(mrk
= ++cur
);
8207 case 'e': goto yy559
;
8212 yych
= *(mrk
= ++cur
);
8277 case 0x7F: goto yy536
;
8278 case '\\': goto yy147
;
8282 #line 216 "src/parser_scan.re"
8283 { NEWTOKEN(PSI_T_CALLABLE
); goto start
; }
8284 #line 8285 "src/parser_scan.c"
8287 yych
= *(mrk
= ++cur
);
8352 case 0x7F: goto yy538
;
8353 case '\\': goto yy147
;
8357 #line 220 "src/parser_scan.re"
8358 { NEWTOKEN(PSI_T_CALLBACK
); goto start
; }
8359 #line 8360 "src/parser_scan.c"
8362 yych
= *(mrk
= ++cur
);
8427 case 0x7F: goto yy540
;
8428 case '\\': goto yy147
;
8432 #line 236 "src/parser_scan.re"
8433 { NEWTOKEN(PSI_T_FLOATVAL
); goto start
; }
8434 #line 8435 "src/parser_scan.c"
8437 yych
= *(mrk
= ++cur
);
8502 case 0x7F: goto yy542
;
8503 case '\\': goto yy147
;
8507 #line 222 "src/parser_scan.re"
8508 { NEWTOKEN(PSI_T_FUNCTION
); goto start
; }
8509 #line 8510 "src/parser_scan.c"
8512 yych
= *(mrk
= ++cur
);
8515 case 'n': goto yy561
;
8520 yych
= *(mrk
= ++cur
);
8523 case 'e': goto yy562
;
8528 yych
= *(mrk
= ++cur
);
8531 case 'r': goto yy563
;
8536 yych
= *(mrk
= ++cur
);
8601 case 0x7F: goto yy547
;
8602 case '\\': goto yy147
;
8606 #line 244 "src/parser_scan.re"
8607 { NEWTOKEN(PSI_T_TO_ARRAY
); goto start
; }
8608 #line 8609 "src/parser_scan.c"
8611 yych
= *(mrk
= ++cur
);
8676 case 0x7F: goto yy549
;
8677 case '\\': goto yy147
;
8681 #line 247 "src/parser_scan.re"
8682 { NEWTOKEN(PSI_T_TO_FLOAT
); goto start
; }
8683 #line 8684 "src/parser_scan.c"
8686 yych
= *(mrk
= ++cur
);
8689 case 't': goto yy564
;
8694 yych
= *(mrk
= ++cur
);
8697 case 'g': goto yy566
;
8702 yych
= *(mrk
= ++cur
);
8704 case 'u': goto yy568
;
8709 yych
= *(mrk
= ++cur
);
8711 case 'i': goto yy569
;
8716 yych
= *(mrk
= ++cur
);
8718 case 'c': goto yy570
;
8724 if (lim
<= cur
) CHECKEOF();;
8790 case 0x7F: goto yy55
;
8791 case '\\': goto yy147
;
8792 case 'n': goto yy571
;
8793 case 'o': goto yy555
;
8794 default: goto yy529
;
8798 yych
= *(mrk
= ++cur
);
8863 case 0x7F: goto yy558
;
8864 case '\\': goto yy147
;
8868 #line 197 "src/parser_scan.re"
8869 { NEWTOKEN(PSI_T_UNSIGNED
); goto start
; }
8870 #line 8871 "src/parser_scan.c"
8873 yych
= *(mrk
= ++cur
);
8938 case 0x7F: goto yy560
;
8939 case '\\': goto yy147
;
8943 #line 181 "src/parser_scan.re"
8944 { NEWTOKEN(PSI_T_VOLATILE
); goto start
; }
8945 #line 8946 "src/parser_scan.c"
8948 yych
= *(mrk
= ++cur
);
8951 case 'e': goto yy572
;
8956 yych
= *(mrk
= ++cur
);
8959 case 'r': goto yy573
;
8964 yych
= *(mrk
= ++cur
);
8967 case 't': goto yy574
;
8972 yych
= *(mrk
= ++cur
);
9037 case 0x7F: goto yy565
;
9038 case '\\': goto yy147
;
9042 #line 243 "src/parser_scan.re"
9043 { NEWTOKEN(PSI_T_TO_OBJECT
); goto start
; }
9044 #line 9045 "src/parser_scan.c"
9047 yych
= *(mrk
= ++cur
);
9112 case 0x7F: goto yy567
;
9113 case '\\': goto yy147
;
9117 #line 245 "src/parser_scan.re"
9118 { NEWTOKEN(PSI_T_TO_STRING
); goto start
; }
9119 #line 9120 "src/parser_scan.c"
9122 yych
= *(mrk
= ++cur
);
9124 case 't': goto yy576
;
9129 yych
= *(mrk
= ++cur
);
9131 case 'o': goto yy577
;
9136 yych
= *(mrk
= ++cur
);
9138 case 't': goto yy578
;
9144 if (lim
<= cur
) CHECKEOF();;
9210 case 0x7F: goto yy55
;
9211 case '\\': goto yy147
;
9212 case 'c': goto yy580
;
9213 case 'o': goto yy555
;
9214 default: goto yy529
;
9218 yych
= *(mrk
= ++cur
);
9221 case 'x': goto yy581
;
9226 yych
= *(mrk
= ++cur
);
9229 case 't': goto yy582
;
9234 yych
= *(mrk
= ++cur
);
9299 case 0x7F: goto yy575
;
9300 case '\\': goto yy147
;
9304 #line 226 "src/parser_scan.re"
9305 { NEWTOKEN(PSI_T_PRE_ASSERT
); goto start
; }
9306 #line 9307 "src/parser_scan.c"
9309 yych
= *(mrk
= ++cur
);
9311 case 'e': goto yy584
;
9316 yych
= *(mrk
= ++cur
);
9318 case 'n': goto yy585
;
9323 yych
= *(mrk
= ++cur
);
9388 case 0x7F: goto yy579
;
9389 case '\\': goto yy147
;
9393 #line 178 "src/parser_scan.re"
9394 { NEWTOKEN(PSI_T_CPP_RESTRICT
); goto start
; }
9395 #line 9396 "src/parser_scan.c"
9399 if (lim
<= cur
) CHECKEOF();;
9465 case 0x7F: goto yy55
;
9466 case '\\': goto yy147
;
9467 case 'e': goto yy586
;
9468 case 'o': goto yy555
;
9469 default: goto yy529
;
9473 yych
= *(mrk
= ++cur
);
9476 case 't': goto yy588
;
9481 yych
= *(mrk
= ++cur
);
9546 case 0x7F: goto yy583
;
9547 case '\\': goto yy147
;
9551 #line 227 "src/parser_scan.re"
9552 { NEWTOKEN(PSI_T_POST_ASSERT
); goto start
; }
9553 #line 9554 "src/parser_scan.c"
9556 yych
= *(mrk
= ++cur
);
9558 case '_': goto yy590
;
9563 yych
= *(mrk
= ++cur
);
9565 case '_': goto yy591
;
9571 if (lim
<= cur
) CHECKEOF();;
9637 case 0x7F: goto yy587
;
9638 case '\\': goto yy147
;
9639 case 'o': goto yy555
;
9640 default: goto yy529
;
9643 #line 176 "src/parser_scan.re"
9644 { NEWTOKEN(PSI_T_PRAGMA_ONCE
); goto start
; }
9645 #line 9646 "src/parser_scan.c"
9648 yych
= *(mrk
= ++cur
);
9713 case 0x7F: goto yy589
;
9714 case '\\': goto yy147
;
9718 #line 211 "src/parser_scan.re"
9719 { NEWTOKEN(PSI_T_INCLUDE_NEXT
); goto start
; }
9720 #line 9721 "src/parser_scan.c"
9723 yych
= *(mrk
= ++cur
);
9725 case '_': goto yy592
;
9730 yych
= *(mrk
= ++cur
);
9732 case '_': goto yy593
;
9737 yych
= *(mrk
= ++cur
);
9741 case ' ': goto yy595
;
9742 case '(': goto yy597
;
9747 yych
= *(mrk
= ++cur
);
9812 case 0x7F: goto yy594
;
9813 case '\\': goto yy147
;
9817 #line 179 "src/parser_scan.re"
9818 { NEWTOKEN(PSI_T_CPP_EXTENSION
); goto start
; }
9819 #line 9820 "src/parser_scan.c"
9822 if ((lim
- cur
) < 2) CHECKEOF();;
9827 case ' ': goto yy595
;
9828 case '(': goto yy597
;
9829 default: goto yy114
;
9834 case '(': goto yy598
;
9835 default: goto yy114
;
9839 #line 253 "src/parser_scan.re"
9840 { parens
= 2; goto cpp_attribute
; }
9841 #line 9842 "src/parser_scan.c"
9843 #line 259 "src/parser_scan.re"
9848 #line 9849 "src/parser_scan.c"
9851 if (lim
<= cur
) CHECKEOF();;
9855 case '\r': goto yy604
;
9856 case '\'': goto yy606
;
9857 case '\\': goto yy608
;
9858 default: goto yy602
;
9862 #line 277 "src/parser_scan.re"
9863 { escaped
= false; goto character
; }
9864 #line 9865 "src/parser_scan.c"
9867 #line 264 "src/parser_scan.re"
9868 { NEWLINE(); goto character
; }
9869 #line 9870 "src/parser_scan.c"
9872 #line 266 "src/parser_scan.re"
9879 NEWTOKEN(PSI_T_QUOTED_CHAR
);
9881 token
->flags
= char_width
;
9884 #line 9885 "src/parser_scan.c"
9887 #line 265 "src/parser_scan.re"
9888 { escaped
= !escaped
; goto character
; }
9889 #line 9890 "src/parser_scan.c"
9891 #line 279 "src/parser_scan.re"
9896 #line 9897 "src/parser_scan.c"
9899 if (lim
<= cur
) CHECKEOF();;
9903 case '\r': goto yy614
;
9904 case '"': goto yy616
;
9905 case '\\': goto yy618
;
9906 default: goto yy612
;
9910 #line 297 "src/parser_scan.re"
9911 { escaped
= false; goto string
; }
9912 #line 9913 "src/parser_scan.c"
9915 #line 284 "src/parser_scan.re"
9916 { NEWLINE(); goto string
; }
9917 #line 9918 "src/parser_scan.c"
9920 #line 286 "src/parser_scan.re"
9927 NEWTOKEN(PSI_T_QUOTED_STRING
);
9929 token
->flags
= char_width
;
9932 #line 9933 "src/parser_scan.c"
9935 #line 285 "src/parser_scan.re"
9936 { escaped
= !escaped
; goto string
; }
9937 #line 9938 "src/parser_scan.c"
9939 #line 299 "src/parser_scan.re"
9944 #line 9945 "src/parser_scan.c"
9947 if ((lim
- cur
) < 2) CHECKEOF();;
9951 case '\r': goto yy624
;
9952 case '*': goto yy626
;
9953 default: goto yy622
;
9958 #line 306 "src/parser_scan.re"
9960 #line 9961 "src/parser_scan.c"
9963 #line 304 "src/parser_scan.re"
9964 { NEWLINE(); goto comment
; }
9965 #line 9966 "src/parser_scan.c"
9969 case '/': goto yy627
;
9970 default: goto yy623
;
9974 #line 305 "src/parser_scan.re"
9975 { NEWTOKEN(PSI_T_COMMENT
); goto start
; }
9976 #line 9977 "src/parser_scan.c"
9978 #line 308 "src/parser_scan.re"
9983 #line 9984 "src/parser_scan.c"
9986 if (lim
<= cur
) CHECKEOF();;
9990 case '\r': goto yy633
;
9991 default: goto yy631
;
9995 #line 314 "src/parser_scan.re"
9996 { goto comment_sl
; }
9997 #line 9998 "src/parser_scan.c"
10000 #line 313 "src/parser_scan.re"
10001 { NEWTOKEN(PSI_T_COMMENT
); tok
= cur
- 1; NEWTOKEN(PSI_T_EOL
); NEWLINE(); goto start
; }
10002 #line 10003 "src/parser_scan.c"
10004 #line 316 "src/parser_scan.re"
10010 #line 10011 "src/parser_scan.c"
10012 unsigned char yych
;
10013 if (lim
<= cur
) CHECKEOF();;
10017 case '\r': goto yy639
;
10018 case '(': goto yy641
;
10019 case ')': goto yy643
;
10020 default: goto yy637
;
10024 #line 325 "src/parser_scan.re"
10025 { goto cpp_attribute
; }
10026 #line 10027 "src/parser_scan.c"
10029 #line 324 "src/parser_scan.re"
10030 { NEWLINE(); goto cpp_attribute
; }
10031 #line 10032 "src/parser_scan.c"
10034 #line 322 "src/parser_scan.re"
10035 { ++parens
; goto cpp_attribute
; }
10036 #line 10037 "src/parser_scan.c"
10039 #line 323 "src/parser_scan.re"
10040 { if (parens
== 1) { NEWTOKEN(PSI_T_CPP_ATTRIBUTE
); goto start
; } else { --parens
; goto cpp_attribute
; } }
10041 #line 10042 "src/parser_scan.c"
10043 #line 327 "src/parser_scan.re"
10047 P
->error(PSI_DATA(P
), token
, PSI_WARNING
, "PSI syntax error: unexpected input (%d) '%.*s' at col %tu",
10048 token
->type
, token
->text
->len
, token
->text
->val
, tok
- eol
+ 1);
10049 psi_plist_free(tokens
);
10054 PSI_DEBUG_PRINT(P
, "PSI: EOF cur=%p lim=%p\n", cur
, lim
);