1 /* Generated by re2c 1.1.1 on Tue Nov 20 15:59:31 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 *******************************************************************************/
28 #include <php_psi_stdinc.h>
36 # define YYMAXFILL 256
39 size_t psi_parser_maxfill(void) {
47 #define NEWTOKEN(t) do { \
48 if (t == PSI_T_COMMENT || t == PSI_T_WHITESPACE) { \
49 token = psi_token_init(t, "", 0, tok - eol + 1, I->lines, I->file); \
51 token = psi_token_init(t, tok, cur - tok, tok - eol + 1, I->lines, I->file); \
53 tokens = psi_plist_add(tokens, &token); \
54 PSI_DEBUG_PRINT(P, "PSI: scanned < "); \
55 PSI_DEBUG_DUMP(P, psi_token_dump, token); \
58 #define CHECKEOF() if (cur >= lim - YYMAXFILL) goto done
60 struct psi_plist
*psi_parser_scan(struct psi_parser
*P
, struct psi_parser_input
*I
)
62 struct psi_plist
*tokens
;
63 struct psi_token
*token
;
64 const char *tok
, *cur
, *lim
, *mrk
, *eol
, *ctxmrk
;
69 PSI_DEBUG_PRINT(P
, "PSI: scanning %s\n", I
->file
->val
);
71 tok
= mrk
= eol
= cur
= I
->buffer
;
72 lim
= I
->buffer
+ I
->length
+ YYMAXFILL
;
74 tokens
= psi_plist_init((psi_plist_dtor
) psi_token_free
);
84 #line 85 "src/parser_scan.c"
87 unsigned int yyaccept
= 0;
88 if ((lim
- cur
) < 15) CHECKEOF();;
133 case '\'': goto yy20
;
184 case '\\': goto yy77
;
202 case '}': goto yy100
;
203 case '~': goto yy102
;
209 #line 250 "src/parser_scan.re"
210 { CHECKEOF(); NEWTOKEN(-2); goto error
; }
211 #line 212 "src/parser_scan.c"
214 if (lim
<= cur
) CHECKEOF();;
223 #line 249 "src/parser_scan.re"
224 { NEWTOKEN(PSI_T_WHITESPACE
); goto start
; }
225 #line 226 "src/parser_scan.c"
228 #line 248 "src/parser_scan.re"
229 { NEWTOKEN(PSI_T_EOL
); NEWLINE(); goto start
; }
230 #line 231 "src/parser_scan.c"
234 case '=': goto yy104
;
238 #line 151 "src/parser_scan.re"
239 { NEWTOKEN(PSI_T_NOT
); goto start
; }
240 #line 241 "src/parser_scan.c"
243 #line 124 "src/parser_scan.re"
244 { escaped
= false; tok
+= 1; goto string
; }
245 #line 246 "src/parser_scan.c"
249 case '#': goto yy106
;
253 #line 134 "src/parser_scan.re"
254 { NEWTOKEN(PSI_T_HASH
); goto start
; }
255 #line 256 "src/parser_scan.c"
328 #line 152 "src/parser_scan.re"
329 { NEWTOKEN(PSI_T_MODULO
); goto start
; }
330 #line 331 "src/parser_scan.c"
334 case '&': goto yy111
;
338 #line 153 "src/parser_scan.re"
339 { NEWTOKEN(PSI_T_AMPERSAND
); goto start
; }
340 #line 341 "src/parser_scan.c"
343 #line 123 "src/parser_scan.re"
344 { escaped
= false; tok
+= 1; goto character
; }
345 #line 346 "src/parser_scan.c"
348 #line 135 "src/parser_scan.re"
349 { NEWTOKEN(PSI_T_LPAREN
); goto start
; }
350 #line 351 "src/parser_scan.c"
353 #line 136 "src/parser_scan.re"
354 { NEWTOKEN(PSI_T_RPAREN
); goto start
; }
355 #line 356 "src/parser_scan.c"
358 #line 149 "src/parser_scan.re"
359 { NEWTOKEN(PSI_T_ASTERISK
); goto start
; }
360 #line 361 "src/parser_scan.c"
363 #line 154 "src/parser_scan.re"
364 { NEWTOKEN(PSI_T_PLUS
); goto start
; }
365 #line 366 "src/parser_scan.c"
368 #line 138 "src/parser_scan.re"
369 { NEWTOKEN(PSI_T_COMMA
); goto start
; }
370 #line 371 "src/parser_scan.c"
373 #line 155 "src/parser_scan.re"
374 { NEWTOKEN(PSI_T_MINUS
); goto start
; }
375 #line 376 "src/parser_scan.c"
378 yych
= *(mrk
= ++cur
);
380 case '.': goto yy113
;
390 case '9': goto yy115
;
394 #line 166 "src/parser_scan.re"
395 { NEWTOKEN(PSI_T_PERIOD
); goto start
; }
396 #line 397 "src/parser_scan.c"
400 case '*': goto yy118
;
401 case '/': goto yy120
;
405 #line 156 "src/parser_scan.re"
406 { NEWTOKEN(PSI_T_SLASH
); goto start
; }
407 #line 408 "src/parser_scan.c"
410 yych
= *(mrk
= ++cur
);
412 case '.': goto yy122
;
414 case 'e': goto yy126
;
416 case 'x': goto yy131
;
420 #line 110 "src/parser_scan.re"
421 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
; goto start
; }
422 #line 423 "src/parser_scan.c"
426 if ((lim
- cur
) < 3) CHECKEOF();;
429 case '.': goto yy122
;
441 case 'e': goto yy126
;
443 case 'l': goto yy127
;
445 case 'u': goto yy129
;
450 #line 139 "src/parser_scan.re"
451 { NEWTOKEN(PSI_T_COLON
); goto start
; }
452 #line 453 "src/parser_scan.c"
455 #line 137 "src/parser_scan.re"
456 { NEWTOKEN(PSI_T_EOS
); goto start
; }
457 #line 458 "src/parser_scan.c"
460 yych
= *(mrk
= ++cur
);
527 case 'z': goto yy132
;
528 case '<': goto yy134
;
529 case '=': goto yy136
;
533 #line 164 "src/parser_scan.re"
534 { NEWTOKEN(PSI_T_LCHEVR
); goto start
; }
535 #line 536 "src/parser_scan.c"
539 case '=': goto yy138
;
543 #line 148 "src/parser_scan.re"
544 { NEWTOKEN(PSI_T_EQUALS
); goto start
; }
545 #line 546 "src/parser_scan.c"
549 case '=': goto yy140
;
550 case '>': goto yy142
;
554 #line 165 "src/parser_scan.re"
555 { NEWTOKEN(PSI_T_RCHEVR
); goto start
; }
556 #line 557 "src/parser_scan.c"
559 #line 168 "src/parser_scan.re"
560 { NEWTOKEN(PSI_T_IIF
); goto start
; }
561 #line 562 "src/parser_scan.c"
564 yych
= *(mrk
= ++cur
);
567 case 'r': goto yy144
;
569 case 's': goto yy145
;
573 #line 243 "src/parser_scan.re"
574 { NEWTOKEN(PSI_T_NAME
); goto start
; }
575 #line 576 "src/parser_scan.c"
578 yych
= *(mrk
= ++cur
);
581 case 'o': goto yy148
;
586 yych
= *(mrk
= ++cur
);
589 case 'a': goto yy149
;
591 case 'o': goto yy150
;
596 yych
= *(mrk
= ++cur
);
599 case 'e': goto yy151
;
604 yych
= *(mrk
= ++cur
);
607 case 'l': goto yy152
;
609 case 'n': goto yy153
;
611 case 'r': goto yy154
;
616 yych
= *(mrk
= ++cur
);
619 case 'a': goto yy155
;
621 case 'l': goto yy156
;
623 case 'r': goto yy157
;
625 case 'u': goto yy158
;
631 if (lim
<= cur
) CHECKEOF();;
698 case 0x7F: goto yy55
;
699 case '\\': goto yy147
;
704 yych
= *(mrk
= ++cur
);
707 case 'f': goto yy159
;
709 case 'n': goto yy161
;
714 yych
= *(mrk
= ++cur
);
717 case '\'': goto yy162
;
719 case 'e': goto yy164
;
721 case 'i': goto yy165
;
726 yych
= *(mrk
= ++cur
);
729 case 'i': goto yy166
;
734 yych
= *(mrk
= ++cur
);
737 case 'u': goto yy167
;
742 yych
= *(mrk
= ++cur
);
745 case 'b': goto yy168
;
750 yych
= *(mrk
= ++cur
);
753 case 'a': goto yy169
;
755 case 'o': goto yy170
;
757 case 'r': goto yy171
;
762 yych
= *(mrk
= ++cur
);
765 case 'e': goto yy172
;
770 yych
= *(mrk
= ++cur
);
773 case 'e': goto yy173
;
775 case 't': goto yy174
;
780 yych
= *(mrk
= ++cur
);
783 case 'e': goto yy175
;
785 case 'o': goto yy176
;
787 case 'r': goto yy177
;
792 yych
= *(mrk
= ++cur
);
795 case '\'': goto yy178
;
797 case 'n': goto yy180
;
802 yych
= *(mrk
= ++cur
);
805 case 'a': goto yy181
;
810 yych
= *(mrk
= ++cur
);
813 case 'v': goto yy182
;
818 #line 142 "src/parser_scan.re"
819 { NEWTOKEN(PSI_T_LBRACKET
); goto start
; }
820 #line 821 "src/parser_scan.c"
898 case 0x7F: goto yy78
;
902 #line 157 "src/parser_scan.re"
903 { NEWTOKEN(PSI_T_BSLASH
); goto start
; }
904 #line 905 "src/parser_scan.c"
907 #line 143 "src/parser_scan.re"
908 { NEWTOKEN(PSI_T_RBRACKET
); goto start
; }
909 #line 910 "src/parser_scan.c"
912 #line 159 "src/parser_scan.re"
913 { NEWTOKEN(PSI_T_CARET
); goto start
; }
914 #line 915 "src/parser_scan.c"
917 yych
= *(mrk
= ++cur
);
919 case '_': goto yy186
;
924 yych
= *(mrk
= ++cur
);
926 case 'O': goto yy148
;
927 case 'o': goto yy187
;
932 yych
= *(mrk
= ++cur
);
935 case 'a': goto yy149
;
936 case 'O': goto yy150
;
937 case 'h': goto yy188
;
938 case 'o': goto yy189
;
943 yych
= *(mrk
= ++cur
);
946 case 'e': goto yy151
;
947 case 'o': goto yy190
;
952 yych
= *(mrk
= ++cur
);
955 case 'l': goto yy152
;
956 case 'N': goto yy153
;
958 case 'r': goto yy154
;
959 case 'n': goto yy191
;
964 yych
= *(mrk
= ++cur
);
967 case 'a': goto yy155
;
968 case 'L': goto yy156
;
970 case 'r': goto yy157
;
972 case 'u': goto yy158
;
973 case 'l': goto yy192
;
978 yych
= *(mrk
= ++cur
);
981 case 'f': goto yy159
;
982 case 'N': goto yy161
;
983 case 'n': goto yy193
;
988 yych
= *(mrk
= ++cur
);
991 case 'e': goto yy164
;
992 case 'I': goto yy165
;
993 case 'i': goto yy194
;
994 case 'o': goto yy195
;
999 yych
= *(mrk
= ++cur
);
1002 case 'a': goto yy169
;
1004 case 'o': goto yy170
;
1005 case 'R': goto yy171
;
1006 case 'r': goto yy196
;
1011 yych
= *(mrk
= ++cur
);
1014 case 'e': goto yy173
;
1015 case 'T': goto yy174
;
1016 case 'h': goto yy197
;
1017 case 'i': goto yy198
;
1018 case 't': goto yy199
;
1023 yych
= *(mrk
= ++cur
);
1026 case 'e': goto yy175
;
1028 case 'o': goto yy176
;
1030 case 'r': goto yy177
;
1031 case 'y': goto yy200
;
1036 yych
= *(mrk
= ++cur
);
1039 case '\'': goto yy201
;
1040 case '8': goto yy203
;
1041 case 'N': goto yy180
;
1042 case 'n': goto yy204
;
1047 yych
= *(mrk
= ++cur
);
1049 case 'o': goto yy205
;
1054 #line 140 "src/parser_scan.re"
1055 { NEWTOKEN(PSI_T_LBRACE
); goto start
; }
1056 #line 1057 "src/parser_scan.c"
1060 case '|': goto yy206
;
1064 #line 158 "src/parser_scan.re"
1065 { NEWTOKEN(PSI_T_PIPE
); goto start
; }
1066 #line 1067 "src/parser_scan.c"
1069 #line 141 "src/parser_scan.re"
1070 { NEWTOKEN(PSI_T_RBRACE
); goto start
; }
1071 #line 1072 "src/parser_scan.c"
1074 #line 150 "src/parser_scan.re"
1075 { NEWTOKEN(PSI_T_TILDE
); goto start
; }
1076 #line 1077 "src/parser_scan.c"
1079 #line 144 "src/parser_scan.re"
1080 { NEWTOKEN(PSI_T_CMP_NE
); goto start
; }
1081 #line 1082 "src/parser_scan.c"
1084 #line 133 "src/parser_scan.re"
1085 { NEWTOKEN(PSI_T_CPP_PASTE
); goto start
; }
1086 #line 1087 "src/parser_scan.c"
1089 if (lim
<= cur
) CHECKEOF();;
1156 case 0x7F: goto yy110
;
1157 default: goto yy108
;
1160 #line 245 "src/parser_scan.re"
1161 { NEWTOKEN(PSI_T_DOLLAR_NAME
); goto start
; }
1162 #line 1163 "src/parser_scan.c"
1165 #line 146 "src/parser_scan.re"
1166 { NEWTOKEN(PSI_T_AND
); goto start
; }
1167 #line 1168 "src/parser_scan.c"
1171 case '.': goto yy208
;
1172 default: goto yy114
;
1187 case 10: goto yy244
;
1188 case 11: goto yy253
;
1189 case 12: goto yy274
;
1190 case 13: goto yy306
;
1191 case 14: goto yy308
;
1192 case 15: goto yy314
;
1193 case 16: goto yy322
;
1194 case 17: goto yy334
;
1195 case 18: goto yy342
;
1196 case 19: goto yy346
;
1197 case 20: goto yy353
;
1198 case 21: goto yy355
;
1199 case 22: goto yy359
;
1200 case 23: goto yy363
;
1201 case 24: goto yy365
;
1202 case 25: goto yy375
;
1203 case 26: goto yy378
;
1204 case 27: goto yy385
;
1205 case 28: goto yy388
;
1206 case 29: goto yy390
;
1207 case 30: goto yy392
;
1208 case 31: goto yy396
;
1209 case 32: goto yy401
;
1210 case 33: goto yy419
;
1211 case 34: goto yy422
;
1212 case 35: goto yy427
;
1213 case 36: goto yy430
;
1214 case 37: goto yy434
;
1215 case 38: goto yy440
;
1216 case 39: goto yy444
;
1217 case 40: goto yy449
;
1218 case 41: goto yy451
;
1219 case 42: goto yy455
;
1220 case 43: goto yy458
;
1221 case 44: goto yy460
;
1222 case 45: goto yy462
;
1223 case 46: goto yy467
;
1224 case 47: goto yy469
;
1225 case 48: goto yy471
;
1226 case 49: goto yy473
;
1227 case 50: goto yy475
;
1228 case 51: goto yy480
;
1229 case 52: goto yy489
;
1230 case 53: goto yy491
;
1231 case 54: goto yy493
;
1232 case 55: goto yy495
;
1233 case 56: goto yy497
;
1234 case 57: goto yy499
;
1235 case 58: goto yy504
;
1236 case 59: goto yy508
;
1237 case 60: goto yy512
;
1238 case 61: goto yy514
;
1239 case 62: goto yy519
;
1240 case 63: goto yy524
;
1241 case 64: goto yy532
;
1242 case 65: goto yy536
;
1243 case 66: goto yy538
;
1244 case 67: goto yy540
;
1245 case 68: goto yy542
;
1246 case 69: goto yy547
;
1247 case 70: goto yy549
;
1248 case 71: goto yy558
;
1249 case 72: goto yy560
;
1250 case 73: goto yy565
;
1251 case 74: goto yy567
;
1252 case 75: goto yy575
;
1253 case 76: goto yy579
;
1254 case 77: goto yy583
;
1255 case 78: goto yy587
;
1256 case 79: goto yy589
;
1257 default: goto yy594
;
1262 if ((lim
- cur
) < 2) CHECKEOF();;
1274 case '9': goto yy115
;
1276 case 'd': goto yy210
;
1278 case 'f': goto yy211
;
1280 case 'l': goto yy213
;
1281 default: goto yy117
;
1284 #line 116 "src/parser_scan.re"
1285 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
; goto start
; }
1286 #line 1287 "src/parser_scan.c"
1289 #line 130 "src/parser_scan.re"
1291 #line 1292 "src/parser_scan.c"
1294 #line 131 "src/parser_scan.re"
1295 { goto comment_sl
; }
1296 #line 1297 "src/parser_scan.c"
1300 if ((lim
- cur
) < 3) CHECKEOF();;
1312 case '9': goto yy122
;
1314 case 'd': goto yy210
;
1316 case 'e': goto yy126
;
1318 case 'f': goto yy211
;
1320 case 'l': goto yy213
;
1321 default: goto yy117
;
1325 if ((lim
- cur
) < 3) CHECKEOF();;
1336 case '7': goto yy124
;
1338 case 'l': goto yy127
;
1340 case 'u': goto yy129
;
1347 case '-': goto yy215
;
1357 case '9': goto yy115
;
1358 default: goto yy114
;
1362 yych
= *(mrk
= ++cur
);
1365 case 'l': goto yy216
;
1367 case 'u': goto yy217
;
1368 default: goto yy128
;
1372 #line 112 "src/parser_scan.re"
1373 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
| PSI_NUMBER_L
; cur
+= 1; goto start
; }
1374 #line 1375 "src/parser_scan.c"
1379 case 'l': goto yy219
;
1380 default: goto yy130
;
1384 #line 111 "src/parser_scan.re"
1385 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
| PSI_NUMBER_U
; cur
+= 1; goto start
; }
1386 #line 1387 "src/parser_scan.c"
1411 case 'f': goto yy220
;
1412 default: goto yy114
;
1416 if (lim
<= cur
) CHECKEOF();;
1484 case 'z': goto yy132
;
1485 case '>': goto yy222
;
1486 default: goto yy114
;
1490 #line 160 "src/parser_scan.re"
1491 { NEWTOKEN(PSI_T_LSHIFT
); goto start
; }
1492 #line 1493 "src/parser_scan.c"
1495 #line 162 "src/parser_scan.re"
1496 { NEWTOKEN(PSI_T_CMP_LE
); goto start
; }
1497 #line 1498 "src/parser_scan.c"
1500 #line 145 "src/parser_scan.re"
1501 { NEWTOKEN(PSI_T_CMP_EQ
); goto start
; }
1502 #line 1503 "src/parser_scan.c"
1505 #line 163 "src/parser_scan.re"
1506 { NEWTOKEN(PSI_T_CMP_GE
); goto start
; }
1507 #line 1508 "src/parser_scan.c"
1510 #line 161 "src/parser_scan.re"
1511 { NEWTOKEN(PSI_T_RSHIFT
); goto start
; }
1512 #line 1513 "src/parser_scan.c"
1515 yych
= *(mrk
= ++cur
);
1518 case 'r': goto yy224
;
1523 yych
= *(mrk
= ++cur
);
1588 case 0x7F: goto yy146
;
1589 case '\\': goto yy147
;
1593 #line 223 "src/parser_scan.re"
1594 { NEWTOKEN(PSI_T_AS
); goto start
; }
1595 #line 1596 "src/parser_scan.c"
1598 if (lim
<= cur
) CHECKEOF();;
1675 case 0x7F: goto yy114
;
1676 default: goto yy183
;
1680 yych
= *(mrk
= ++cur
);
1683 case 'o': goto yy225
;
1688 yych
= *(mrk
= ++cur
);
1691 case 'l': goto yy226
;
1696 yych
= *(mrk
= ++cur
);
1699 case 'u': goto yy227
;
1704 yych
= *(mrk
= ++cur
);
1707 case 'f': goto yy228
;
1712 yych
= *(mrk
= ++cur
);
1715 case 'i': goto yy229
;
1717 case 's': goto yy230
;
1722 yych
= *(mrk
= ++cur
);
1725 case 'd': goto yy231
;
1730 yych
= *(mrk
= ++cur
);
1733 case 'r': goto yy232
;
1738 yych
= *(mrk
= ++cur
);
1741 case 'l': goto yy233
;
1746 yych
= *(mrk
= ++cur
);
1749 case 'o': goto yy234
;
1754 yych
= *(mrk
= ++cur
);
1757 case 'e': goto yy235
;
1762 yych
= *(mrk
= ++cur
);
1765 case 'n': goto yy236
;
1770 yych
= *(mrk
= ++cur
);
1835 case 0x7F: goto yy160
;
1837 case 'd': goto yy237
;
1839 case 'n': goto yy238
;
1840 case '\\': goto yy147
;
1844 #line 193 "src/parser_scan.re"
1845 { NEWTOKEN(PSI_T_IF
); goto start
; }
1846 #line 1847 "src/parser_scan.c"
1849 yych
= *(mrk
= ++cur
);
1852 case 'c': goto yy239
;
1854 case 't': goto yy240
;
1860 #line 128 "src/parser_scan.re"
1861 { char_width
= sizeof(wchar_t)/8; }
1862 #line 1863 "src/parser_scan.c"
1865 yych
= *(mrk
= ++cur
);
1868 case 't': goto yy241
;
1873 yych
= *(mrk
= ++cur
);
1876 case 'b': goto yy243
;
1881 yych
= *(mrk
= ++cur
);
1884 case 'x': goto yy245
;
1889 yych
= *(mrk
= ++cur
);
1892 case 'l': goto yy246
;
1897 yych
= *(mrk
= ++cur
);
1900 case 'j': goto yy247
;
1905 yych
= *(mrk
= ++cur
);
1908 case 't': goto yy248
;
1913 yych
= *(mrk
= ++cur
);
1916 case 's': goto yy249
;
1921 yych
= *(mrk
= ++cur
);
1924 case 'e': goto yy250
;
1929 yych
= *(mrk
= ++cur
);
1932 case 't': goto yy251
;
1937 yych
= *(mrk
= ++cur
);
1940 case 't': goto yy252
;
1945 yych
= *(mrk
= ++cur
);
1948 case 'a': goto yy254
;
1950 case 'r': goto yy255
;
1955 yych
= *(mrk
= ++cur
);
1958 case 'm': goto yy256
;
1963 yych
= *(mrk
= ++cur
);
1965 case '_': goto yy257
;
1970 yych
= *(mrk
= ++cur
);
1973 case 'u': goto yy258
;
1979 #line 127 "src/parser_scan.re"
1981 #line 1982 "src/parser_scan.c"
1984 yych
= *(mrk
= ++cur
);
1987 case 'd': goto yy259
;
1992 yych
= *(mrk
= ++cur
);
1995 case 'r': goto yy260
;
2000 yych
= *(mrk
= ++cur
);
2003 case 'a': goto yy261
;
2009 if (lim
<= cur
) CHECKEOF();;
2075 case 0x7F: goto yy185
;
2076 case '\\': goto yy147
;
2077 default: goto yy183
;
2080 #line 244 "src/parser_scan.re"
2081 { NEWTOKEN(PSI_T_NSNAME
); goto start
; }
2082 #line 2083 "src/parser_scan.c"
2085 yych
= *(mrk
= ++cur
);
2087 case 'a': goto yy262
;
2088 case 'e': goto yy263
;
2089 case 'i': goto yy264
;
2090 case 'r': goto yy265
;
2095 yych
= *(mrk
= ++cur
);
2097 case 'O': goto yy225
;
2098 case 'o': goto yy266
;
2103 yych
= *(mrk
= ++cur
);
2105 case 'a': goto yy267
;
2110 yych
= *(mrk
= ++cur
);
2113 case 'u': goto yy227
;
2114 case 'n': goto yy268
;
2119 yych
= *(mrk
= ++cur
);
2121 case 'u': goto yy269
;
2126 yych
= *(mrk
= ++cur
);
2129 case 'd': goto yy231
;
2130 case 'u': goto yy270
;
2135 yych
= *(mrk
= ++cur
);
2137 case 'O': goto yy234
;
2138 case 'o': goto yy271
;
2143 yych
= *(mrk
= ++cur
);
2146 case 'c': goto yy239
;
2147 case 'T': goto yy240
;
2148 case 'l': goto yy272
;
2149 case 't': goto yy273
;
2154 yych
= *(mrk
= ++cur
);
2157 case 'b': goto yy243
;
2158 case 'n': goto yy275
;
2163 yych
= *(mrk
= ++cur
);
2165 case 'n': goto yy276
;
2170 yych
= *(mrk
= ++cur
);
2173 case 'e': goto yy250
;
2174 case 'a': goto yy277
;
2179 yych
= *(mrk
= ++cur
);
2181 case 'o': goto yy278
;
2186 yych
= *(mrk
= ++cur
);
2188 case 'g': goto yy279
;
2189 case 'z': goto yy280
;
2194 yych
= *(mrk
= ++cur
);
2197 case 'a': goto yy254
;
2198 case 'R': goto yy255
;
2199 case 'r': goto yy281
;
2204 yych
= *(mrk
= ++cur
);
2206 case 'p': goto yy282
;
2212 #line 126 "src/parser_scan.re"
2214 #line 2215 "src/parser_scan.c"
2217 yych
= *(mrk
= ++cur
);
2219 case '"': goto yy283
;
2224 yych
= *(mrk
= ++cur
);
2227 case 'd': goto yy259
;
2228 case 'i': goto yy285
;
2229 case 's': goto yy286
;
2234 yych
= *(mrk
= ++cur
);
2236 case 'i': goto yy287
;
2237 case 'l': goto yy288
;
2242 #line 147 "src/parser_scan.re"
2243 { NEWTOKEN(PSI_T_OR
); goto start
; }
2244 #line 2245 "src/parser_scan.c"
2247 #line 167 "src/parser_scan.re"
2248 { NEWTOKEN(PSI_T_ELLIPSIS
); goto start
; }
2249 #line 2250 "src/parser_scan.c"
2254 case 'd': goto yy289
;
2256 case 'f': goto yy291
;
2258 case 'l': goto yy293
;
2259 default: goto yy114
;
2264 #line 117 "src/parser_scan.re"
2265 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_F
; cur
+= 1; goto start
; }
2266 #line 2267 "src/parser_scan.c"
2270 #line 118 "src/parser_scan.re"
2271 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_L
; cur
+= 1; goto start
; }
2272 #line 2273 "src/parser_scan.c"
2285 case '9': goto yy115
;
2286 default: goto yy114
;
2292 case 'u': goto yy295
;
2293 default: goto yy114
;
2299 #line 113 "src/parser_scan.re"
2300 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
| PSI_NUMBER_UL
; cur
+= 2; goto start
; }
2301 #line 2302 "src/parser_scan.c"
2306 case 'l': goto yy295
;
2307 default: goto yy218
;
2312 if ((lim
- cur
) < 3) CHECKEOF();;
2315 case '.': goto yy297
;
2337 case 'f': goto yy220
;
2339 case 'l': goto yy127
;
2341 case 'p': goto yy126
;
2343 case 'u': goto yy129
;
2348 #line 246 "src/parser_scan.re"
2349 { tok
+= 1; cur
-= 1; NEWTOKEN(PSI_T_CPP_HEADER
); cur
+= 1; goto start
; }
2350 #line 2351 "src/parser_scan.c"
2353 yych
= *(mrk
= ++cur
);
2356 case 'a': goto yy299
;
2358 case 'v': goto yy300
;
2363 yych
= *(mrk
= ++cur
);
2366 case 'l': goto yy301
;
2371 yych
= *(mrk
= ++cur
);
2374 case 'l': goto yy302
;
2379 yych
= *(mrk
= ++cur
);
2382 case 'n': goto yy303
;
2387 yych
= *(mrk
= ++cur
);
2390 case 'i': goto yy304
;
2395 yych
= *(mrk
= ++cur
);
2398 case 'f': goto yy305
;
2403 yych
= *(mrk
= ++cur
);
2406 case 'e': goto yy307
;
2411 yych
= *(mrk
= ++cur
);
2414 case 'i': goto yy309
;
2419 yych
= *(mrk
= ++cur
);
2422 case 'o': goto yy310
;
2427 yych
= *(mrk
= ++cur
);
2430 case 's': goto yy311
;
2435 yych
= *(mrk
= ++cur
);
2438 case 'a': goto yy312
;
2443 yych
= *(mrk
= ++cur
);
2446 case 'e': goto yy313
;
2451 yych
= *(mrk
= ++cur
);
2454 case 'c': goto yy315
;
2459 yych
= *(mrk
= ++cur
);
2462 case 'e': goto yy316
;
2467 yych
= *(mrk
= ++cur
);
2470 case 'd': goto yy317
;
2475 yych
= *(mrk
= ++cur
);
2478 case 'l': goto yy318
;
2483 yych
= *(mrk
= ++cur
);
2486 case 'v': goto yy319
;
2491 yych
= *(mrk
= ++cur
);
2556 case 0x7F: goto yy242
;
2557 case '\\': goto yy147
;
2561 #line 218 "src/parser_scan.re"
2562 { NEWTOKEN(PSI_T_LET
); goto start
; }
2563 #line 2564 "src/parser_scan.c"
2566 yych
= *(mrk
= ++cur
);
2631 case 0x7F: goto yy244
;
2632 case '\\': goto yy147
;
2636 #line 217 "src/parser_scan.re"
2637 { NEWTOKEN(PSI_T_LIB
); goto start
; }
2638 #line 2639 "src/parser_scan.c"
2641 yych
= *(mrk
= ++cur
);
2644 case 'e': goto yy320
;
2649 yych
= *(mrk
= ++cur
);
2652 case 'l': goto yy321
;
2657 yych
= *(mrk
= ++cur
);
2660 case 'e': goto yy323
;
2662 case 'v': goto yy324
;
2667 yych
= *(mrk
= ++cur
);
2670 case 'h': goto yy325
;
2675 yych
= *(mrk
= ++cur
);
2678 case 't': goto yy326
;
2683 yych
= *(mrk
= ++cur
);
2685 case '_': goto yy327
;
2690 yych
= *(mrk
= ++cur
);
2693 case 'u': goto yy328
;
2698 yych
= *(mrk
= ++cur
);
2763 case 0x7F: goto yy253
;
2764 case '\\': goto yy147
;
2768 #line 219 "src/parser_scan.re"
2769 { NEWTOKEN(PSI_T_SET
); goto start
; }
2770 #line 2771 "src/parser_scan.c"
2773 yych
= *(mrk
= ++cur
);
2776 case 't': goto yy329
;
2781 yych
= *(mrk
= ++cur
);
2784 case 'i': goto yy330
;
2786 case 'l': goto yy331
;
2788 case 'v': goto yy332
;
2793 yych
= *(mrk
= ++cur
);
2796 case 'p': goto yy333
;
2801 yych
= *(mrk
= ++cur
);
2804 case 'a': goto yy335
;
2806 case 'b': goto yy336
;
2808 case 'f': goto yy337
;
2810 case 'i': goto yy338
;
2812 case 'o': goto yy339
;
2814 case 's': goto yy340
;
2819 yych
= *(mrk
= ++cur
);
2822 case 'e': goto yy341
;
2827 yych
= *(mrk
= ++cur
);
2830 case 'e': goto yy343
;
2835 yych
= *(mrk
= ++cur
);
2838 case 'n': goto yy344
;
2843 yych
= *(mrk
= ++cur
);
2846 case 'l': goto yy345
;
2851 yych
= *(mrk
= ++cur
);
2853 case 's': goto yy347
;
2854 case 't': goto yy348
;
2859 yych
= *(mrk
= ++cur
);
2861 case 'x': goto yy349
;
2866 yych
= *(mrk
= ++cur
);
2868 case 'n': goto yy350
;
2873 yych
= *(mrk
= ++cur
);
2875 case 'e': goto yy351
;
2880 yych
= *(mrk
= ++cur
);
2882 case 'L': goto yy301
;
2883 case 'l': goto yy352
;
2888 yych
= *(mrk
= ++cur
);
2890 case 'r': goto yy354
;
2895 yych
= *(mrk
= ++cur
);
2897 case 's': goto yy356
;
2902 yych
= *(mrk
= ++cur
);
2904 case 'b': goto yy357
;
2909 yych
= *(mrk
= ++cur
);
2911 case 'm': goto yy358
;
2916 yych
= *(mrk
= ++cur
);
2918 case 'A': goto yy312
;
2919 case 'a': goto yy360
;
2924 yych
= *(mrk
= ++cur
);
2926 case 'i': goto yy361
;
2931 yych
= *(mrk
= ++cur
);
2996 case 0x7F: goto yy274
;
2998 case 'v': goto yy319
;
2999 case '\\': goto yy147
;
3003 #line 187 "src/parser_scan.re"
3004 { NEWTOKEN(PSI_T_INT
); goto start
; }
3005 #line 3006 "src/parser_scan.c"
3008 yych
= *(mrk
= ++cur
);
3010 case 'e': goto yy362
;
3015 yych
= *(mrk
= ++cur
);
3017 case 'g': goto yy364
;
3022 yych
= *(mrk
= ++cur
);
3024 case 'g': goto yy366
;
3029 yych
= *(mrk
= ++cur
);
3031 case 'r': goto yy367
;
3036 yych
= *(mrk
= ++cur
);
3038 case 'n': goto yy368
;
3043 yych
= *(mrk
= ++cur
);
3045 case 'e': goto yy369
;
3050 yych
= *(mrk
= ++cur
);
3053 case 'i': goto yy330
;
3055 case 'l': goto yy331
;
3057 case 'v': goto yy332
;
3058 case 'u': goto yy370
;
3063 yych
= *(mrk
= ++cur
);
3065 case 'e': goto yy371
;
3071 #line 125 "src/parser_scan.re"
3073 #line 3074 "src/parser_scan.c"
3076 yych
= *(mrk
= ++cur
);
3078 case 'o': goto yy372
;
3083 yych
= *(mrk
= ++cur
);
3085 case 'i': goto yy373
;
3090 yych
= *(mrk
= ++cur
);
3092 case 'd': goto yy374
;
3097 yych
= *(mrk
= ++cur
);
3099 case 'a': goto yy376
;
3105 #line 120 "src/parser_scan.re"
3106 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_DD
; cur
+= 2; goto start
; }
3107 #line 3108 "src/parser_scan.c"
3111 #line 119 "src/parser_scan.re"
3112 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_DF
; cur
+= 2; goto start
; }
3113 #line 3114 "src/parser_scan.c"
3117 #line 121 "src/parser_scan.re"
3118 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_DL
; cur
+= 2; goto start
; }
3119 #line 3120 "src/parser_scan.c"
3123 #line 114 "src/parser_scan.re"
3124 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
| PSI_NUMBER_ULL
; cur
+= 3; goto start
; }
3125 #line 3126 "src/parser_scan.c"
3128 if ((lim
- cur
) < 3) CHECKEOF();;
3152 case 'f': goto yy297
;
3154 case 'p': goto yy126
;
3155 default: goto yy114
;
3159 yych
= *(mrk
= ++cur
);
3162 case 'y': goto yy377
;
3167 yych
= *(mrk
= ++cur
);
3170 case 'a': goto yy379
;
3175 yych
= *(mrk
= ++cur
);
3178 case 'v': goto yy380
;
3183 yych
= *(mrk
= ++cur
);
3186 case 'a': goto yy381
;
3188 case 'b': goto yy382
;
3190 case 'o': goto yy383
;
3195 yych
= *(mrk
= ++cur
);
3198 case 't': goto yy384
;
3203 yych
= *(mrk
= ++cur
);
3206 case 'n': goto yy386
;
3211 yych
= *(mrk
= ++cur
);
3276 case 0x7F: goto yy306
;
3277 case '\\': goto yy147
;
3281 #line 197 "src/parser_scan.re"
3282 { NEWTOKEN(PSI_T_ELIF
); goto start
; }
3283 #line 3284 "src/parser_scan.c"
3286 yych
= *(mrk
= ++cur
);
3351 case 0x7F: goto yy308
;
3352 case '\\': goto yy147
;
3356 #line 196 "src/parser_scan.re"
3357 { NEWTOKEN(PSI_T_ELSE
); goto start
; }
3358 #line 3359 "src/parser_scan.c"
3361 yych
= *(mrk
= ++cur
);
3364 case 'f': goto yy387
;
3369 yych
= *(mrk
= ++cur
);
3372 case 'r': goto yy389
;
3377 yych
= *(mrk
= ++cur
);
3380 case 'e': goto yy391
;
3385 yych
= *(mrk
= ++cur
);
3388 case 't': goto yy393
;
3393 yych
= *(mrk
= ++cur
);
3458 case 0x7F: goto yy314
;
3459 case '\\': goto yy147
;
3463 #line 224 "src/parser_scan.re"
3464 { NEWTOKEN(PSI_T_FREE
); goto start
; }
3465 #line 3466 "src/parser_scan.c"
3468 yych
= *(mrk
= ++cur
);
3471 case 't': goto yy394
;
3476 yych
= *(mrk
= ++cur
);
3479 case 'f': goto yy395
;
3484 yych
= *(mrk
= ++cur
);
3487 case 'e': goto yy397
;
3492 yych
= *(mrk
= ++cur
);
3495 case 'u': goto yy398
;
3500 yych
= *(mrk
= ++cur
);
3503 case 'a': goto yy399
;
3508 yych
= *(mrk
= ++cur
);
3511 case 'd': goto yy400
;
3516 yych
= *(mrk
= ++cur
);
3581 case 0x7F: goto yy322
;
3582 case '\\': goto yy147
;
3586 #line 208 "src/parser_scan.re"
3587 { NEWTOKEN(PSI_T_NULL
); goto start
; }
3588 #line 3589 "src/parser_scan.c"
3591 yych
= *(mrk
= ++cur
);
3594 case 'c': goto yy402
;
3599 yych
= *(mrk
= ++cur
);
3602 case 'a': goto yy403
;
3607 yych
= *(mrk
= ++cur
);
3610 case 'v': goto yy404
;
3615 yych
= *(mrk
= ++cur
);
3617 case '_': goto yy405
;
3622 yych
= *(mrk
= ++cur
);
3625 case 'a': goto yy406
;
3630 yych
= *(mrk
= ++cur
);
3633 case 'r': goto yy407
;
3638 yych
= *(mrk
= ++cur
);
3641 case 'i': goto yy408
;
3646 yych
= *(mrk
= ++cur
);
3649 case 'n': goto yy409
;
3654 yych
= *(mrk
= ++cur
);
3657 case 'e': goto yy410
;
3662 yych
= *(mrk
= ++cur
);
3665 case 'a': goto yy411
;
3670 yych
= *(mrk
= ++cur
);
3735 case 0x7F: goto yy334
;
3736 case '\\': goto yy147
;
3740 #line 225 "src/parser_scan.re"
3741 { NEWTOKEN(PSI_T_TEMP
); goto start
; }
3742 #line 3743 "src/parser_scan.c"
3745 yych
= *(mrk
= ++cur
);
3748 case 'r': goto yy412
;
3753 yych
= *(mrk
= ++cur
);
3756 case 'o': goto yy413
;
3761 yych
= *(mrk
= ++cur
);
3764 case 'l': goto yy414
;
3769 yych
= *(mrk
= ++cur
);
3772 case 'n': goto yy415
;
3777 yych
= *(mrk
= ++cur
);
3780 case 'b': goto yy416
;
3785 yych
= *(mrk
= ++cur
);
3788 case 't': goto yy417
;
3793 yych
= *(mrk
= ++cur
);
3858 case 0x7F: goto yy342
;
3859 case '\\': goto yy147
;
3863 #line 206 "src/parser_scan.re"
3864 { NEWTOKEN(PSI_T_TRUE
); goto start
; }
3865 #line 3866 "src/parser_scan.c"
3868 yych
= *(mrk
= ++cur
);
3871 case 'f': goto yy418
;
3876 yych
= *(mrk
= ++cur
);
3879 case 'i': goto yy420
;
3884 yych
= *(mrk
= ++cur
);
3949 case 0x7F: goto yy346
;
3950 case '\\': goto yy147
;
3954 #line 234 "src/parser_scan.re"
3955 { NEWTOKEN(PSI_T_ZVAL
); goto start
; }
3956 #line 3957 "src/parser_scan.c"
3959 yych
= *(mrk
= ++cur
);
3961 case 'm': goto yy421
;
3966 yych
= *(mrk
= ++cur
);
3968 case 't': goto yy423
;
3973 yych
= *(mrk
= ++cur
);
3975 case 't': goto yy424
;
3980 yych
= *(mrk
= ++cur
);
3982 case 'l': goto yy272
;
3987 yych
= *(mrk
= ++cur
);
3989 case 's': goto yy425
;
3994 yych
= *(mrk
= ++cur
);
4059 case 0x7F: goto yy353
;
4061 case 'v': goto yy380
;
4062 case '\\': goto yy147
;
4066 #line 184 "src/parser_scan.re"
4067 { NEWTOKEN(PSI_T_BOOL
); goto start
; }
4068 #line 4069 "src/parser_scan.c"
4071 yych
= *(mrk
= ++cur
);
4136 case 0x7F: goto yy355
;
4137 case '\\': goto yy147
;
4141 #line 185 "src/parser_scan.re"
4142 { NEWTOKEN(PSI_T_CHAR
); goto start
; }
4143 #line 4144 "src/parser_scan.c"
4146 yych
= *(mrk
= ++cur
);
4148 case 't': goto yy426
;
4153 yych
= *(mrk
= ++cur
);
4155 case 'l': goto yy428
;
4160 yych
= *(mrk
= ++cur
);
4225 case 0x7F: goto yy359
;
4226 case '\\': goto yy147
;
4230 #line 181 "src/parser_scan.re"
4231 { NEWTOKEN(PSI_T_ENUM
); goto start
; }
4232 #line 4233 "src/parser_scan.c"
4235 yych
= *(mrk
= ++cur
);
4237 case 'T': goto yy393
;
4238 case 't': goto yy429
;
4243 yych
= *(mrk
= ++cur
);
4245 case 'n': goto yy431
;
4250 yych
= *(mrk
= ++cur
);
4315 case 0x7F: goto yy363
;
4316 case '\\': goto yy147
;
4320 #line 177 "src/parser_scan.re"
4321 { NEWTOKEN(PSI_T_LINE
); goto start
; }
4322 #line 4323 "src/parser_scan.c"
4325 yych
= *(mrk
= ++cur
);
4390 case 0x7F: goto yy365
;
4391 case '\\': goto yy147
;
4395 #line 188 "src/parser_scan.re"
4396 { NEWTOKEN(PSI_T_LONG
); goto start
; }
4397 #line 4398 "src/parser_scan.c"
4400 yych
= *(mrk
= ++cur
);
4402 case 'm': goto yy432
;
4407 yych
= *(mrk
= ++cur
);
4409 case 't': goto yy433
;
4414 yych
= *(mrk
= ++cur
);
4416 case 'e': goto yy435
;
4421 yych
= *(mrk
= ++cur
);
4423 case 'o': goto yy436
;
4428 yych
= *(mrk
= ++cur
);
4430 case 'c': goto yy437
;
4435 yych
= *(mrk
= ++cur
);
4437 case 'd': goto yy438
;
4442 yych
= *(mrk
= ++cur
);
4444 case 'n': goto yy439
;
4449 yych
= *(mrk
= ++cur
);
4451 case 'g': goto yy441
;
4456 yych
= *(mrk
= ++cur
);
4521 case 0x7F: goto yy375
;
4522 case '\\': goto yy147
;
4526 #line 183 "src/parser_scan.re"
4527 { NEWTOKEN(PSI_T_VOID
); goto start
; }
4528 #line 4529 "src/parser_scan.c"
4531 yych
= *(mrk
= ++cur
);
4533 case 't': goto yy442
;
4538 yych
= *(mrk
= ++cur
);
4603 case 0x7F: goto yy378
;
4604 case '\\': goto yy147
;
4608 #line 212 "src/parser_scan.re"
4609 { NEWTOKEN(PSI_T_ARRAY
); goto start
; }
4610 #line 4611 "src/parser_scan.c"
4613 yych
= *(mrk
= ++cur
);
4616 case 'l': goto yy443
;
4621 yych
= *(mrk
= ++cur
);
4624 case 'a': goto yy445
;
4629 yych
= *(mrk
= ++cur
);
4632 case 'b': goto yy446
;
4637 yych
= *(mrk
= ++cur
);
4640 case 'a': goto yy447
;
4645 yych
= *(mrk
= ++cur
);
4648 case 'c': goto yy448
;
4653 yych
= *(mrk
= ++cur
);
4718 case 0x7F: goto yy385
;
4719 case '\\': goto yy147
;
4723 #line 235 "src/parser_scan.re"
4724 { NEWTOKEN(PSI_T_COUNT
); goto start
; }
4725 #line 4726 "src/parser_scan.c"
4728 yych
= *(mrk
= ++cur
);
4731 case 'e': goto yy450
;
4736 yych
= *(mrk
= ++cur
);
4801 case 0x7F: goto yy388
;
4802 case '\\': goto yy147
;
4806 #line 198 "src/parser_scan.re"
4807 { NEWTOKEN(PSI_T_ENDIF
); goto start
; }
4808 #line 4809 "src/parser_scan.c"
4811 yych
= *(mrk
= ++cur
);
4876 case 0x7F: goto yy390
;
4877 case '\\': goto yy147
;
4881 #line 203 "src/parser_scan.re"
4882 { NEWTOKEN(PSI_T_ERROR
); goto start
; }
4883 #line 4884 "src/parser_scan.c"
4886 yych
= *(mrk
= ++cur
);
4951 case 0x7F: goto yy392
;
4952 case '\\': goto yy147
;
4956 #line 207 "src/parser_scan.re"
4957 { NEWTOKEN(PSI_T_FALSE
); goto start
; }
4958 #line 4959 "src/parser_scan.c"
4961 yych
= *(mrk
= ++cur
);
4964 case 'v': goto yy452
;
4969 yych
= *(mrk
= ++cur
);
4972 case 'i': goto yy453
;
4977 yych
= *(mrk
= ++cur
);
5042 case 0x7F: goto yy396
;
5043 case '\\': goto yy147
;
5047 #line 194 "src/parser_scan.re"
5048 { NEWTOKEN(PSI_T_IFDEF
); goto start
; }
5049 #line 5050 "src/parser_scan.c"
5052 yych
= *(mrk
= ++cur
);
5055 case 'f': goto yy454
;
5060 yych
= *(mrk
= ++cur
);
5063 case 'd': goto yy456
;
5068 yych
= *(mrk
= ++cur
);
5071 case 'l': goto yy457
;
5076 yych
= *(mrk
= ++cur
);
5141 case 0x7F: goto yy401
;
5142 case '\\': goto yy147
;
5146 #line 209 "src/parser_scan.re"
5147 { NEWTOKEN(PSI_T_MIXED
); goto start
; }
5148 #line 5149 "src/parser_scan.c"
5151 yych
= *(mrk
= ++cur
);
5154 case 't': goto yy459
;
5159 yych
= *(mrk
= ++cur
);
5162 case 'l': goto yy461
;
5167 yych
= *(mrk
= ++cur
);
5170 case 'a': goto yy463
;
5175 yych
= *(mrk
= ++cur
);
5178 case 'a': goto yy464
;
5183 yych
= *(mrk
= ++cur
);
5186 case 's': goto yy465
;
5191 yych
= *(mrk
= ++cur
);
5194 case 'n': goto yy466
;
5199 yych
= *(mrk
= ++cur
);
5202 case 'c': goto yy468
;
5207 yych
= *(mrk
= ++cur
);
5210 case 'g': goto yy470
;
5215 yych
= *(mrk
= ++cur
);
5218 case 'n': goto yy472
;
5223 yych
= *(mrk
= ++cur
);
5226 case 'l': goto yy474
;
5231 yych
= *(mrk
= ++cur
);
5234 case 'r': goto yy476
;
5239 yych
= *(mrk
= ++cur
);
5242 case 'o': goto yy477
;
5247 yych
= *(mrk
= ++cur
);
5250 case 'o': goto yy478
;
5255 yych
= *(mrk
= ++cur
);
5258 case 't': goto yy479
;
5263 yych
= *(mrk
= ++cur
);
5266 case 'j': goto yy481
;
5271 yych
= *(mrk
= ++cur
);
5274 case 'r': goto yy482
;
5279 yych
= *(mrk
= ++cur
);
5344 case 0x7F: goto yy419
;
5345 case '\\': goto yy147
;
5349 #line 201 "src/parser_scan.re"
5350 { NEWTOKEN(PSI_T_UNDEF
); goto start
; }
5351 #line 5352 "src/parser_scan.c"
5354 yych
= *(mrk
= ++cur
);
5357 case 'n': goto yy483
;
5362 yych
= *(mrk
= ++cur
);
5427 case 0x7F: goto yy422
;
5428 case '\\': goto yy147
;
5429 case '_': goto yy484
;
5433 #line 174 "src/parser_scan.re"
5434 { NEWTOKEN(PSI_T_CPP_ASM
); goto start
; }
5435 #line 5436 "src/parser_scan.c"
5438 yych
= *(mrk
= ++cur
);
5440 case 'r': goto yy485
;
5445 yych
= *(mrk
= ++cur
);
5447 case 'e': goto yy486
;
5452 yych
= *(mrk
= ++cur
);
5454 case 't': goto yy487
;
5459 yych
= *(mrk
= ++cur
);
5524 case 0x7F: goto yy427
;
5525 case '\\': goto yy147
;
5529 #line 182 "src/parser_scan.re"
5530 { NEWTOKEN(PSI_T_CONST
); goto start
; }
5531 #line 5532 "src/parser_scan.c"
5534 yych
= *(mrk
= ++cur
);
5536 case 'e': goto yy488
;
5541 yych
= *(mrk
= ++cur
);
5606 case 0x7F: goto yy430
;
5608 case 'v': goto yy452
;
5609 case '\\': goto yy147
;
5613 #line 189 "src/parser_scan.re"
5614 { NEWTOKEN(PSI_T_FLOAT
); goto start
; }
5615 #line 5616 "src/parser_scan.c"
5618 yych
= *(mrk
= ++cur
);
5620 case 'e': goto yy490
;
5625 yych
= *(mrk
= ++cur
);
5627 case 'a': goto yy492
;
5632 yych
= *(mrk
= ++cur
);
5697 case 0x7F: goto yy434
;
5698 case '\\': goto yy147
;
5702 #line 186 "src/parser_scan.re"
5703 { NEWTOKEN(PSI_T_SHORT
); goto start
; }
5704 #line 5705 "src/parser_scan.c"
5707 yych
= *(mrk
= ++cur
);
5709 case 'd': goto yy494
;
5714 yych
= *(mrk
= ++cur
);
5716 case 'f': goto yy496
;
5721 yych
= *(mrk
= ++cur
);
5723 case 't': goto yy498
;
5728 yych
= *(mrk
= ++cur
);
5730 case 'e': goto yy500
;
5735 yych
= *(mrk
= ++cur
);
5800 case 0x7F: goto yy440
;
5801 case '\\': goto yy147
;
5805 #line 180 "src/parser_scan.re"
5806 { NEWTOKEN(PSI_T_UNION
); goto start
; }
5807 #line 5808 "src/parser_scan.c"
5810 yych
= *(mrk
= ++cur
);
5812 case 'n': goto yy501
;
5817 yych
= *(mrk
= ++cur
);
5819 case 'i': goto yy502
;
5824 yych
= *(mrk
= ++cur
);
5889 case 0x7F: goto yy444
;
5890 case '\\': goto yy147
;
5894 #line 232 "src/parser_scan.re"
5895 { NEWTOKEN(PSI_T_ARRVAL
); goto start
; }
5896 #line 5897 "src/parser_scan.c"
5899 yych
= *(mrk
= ++cur
);
5902 case 'l': goto yy503
;
5907 yych
= *(mrk
= ++cur
);
5910 case 'l': goto yy505
;
5915 yych
= *(mrk
= ++cur
);
5918 case 'c': goto yy506
;
5923 yych
= *(mrk
= ++cur
);
5988 case 0x7F: goto yy449
;
5989 case '\\': goto yy147
;
5993 #line 236 "src/parser_scan.re"
5994 { NEWTOKEN(PSI_T_CALLOC
); goto start
; }
5995 #line 5996 "src/parser_scan.c"
5998 yych
= *(mrk
= ++cur
);
6063 case 0x7F: goto yy451
;
6065 case 'd': goto yy507
;
6066 case '\\': goto yy147
;
6070 #line 199 "src/parser_scan.re"
6071 { NEWTOKEN(PSI_T_DEFINE
); goto start
; }
6072 #line 6073 "src/parser_scan.c"
6075 yych
= *(mrk
= ++cur
);
6078 case 'a': goto yy509
;
6083 yych
= *(mrk
= ++cur
);
6086 case 'o': goto yy510
;
6091 yych
= *(mrk
= ++cur
);
6156 case 0x7F: goto yy455
;
6157 case '\\': goto yy147
;
6161 #line 195 "src/parser_scan.re"
6162 { NEWTOKEN(PSI_T_IFNDEF
); goto start
; }
6163 #line 6164 "src/parser_scan.c"
6166 yych
= *(mrk
= ++cur
);
6169 case 'e': goto yy511
;
6174 yych
= *(mrk
= ++cur
);
6239 case 0x7F: goto yy458
;
6240 case '\\': goto yy147
;
6244 #line 229 "src/parser_scan.re"
6245 { NEWTOKEN(PSI_T_INTVAL
); goto start
; }
6246 #line 6247 "src/parser_scan.c"
6249 yych
= *(mrk
= ++cur
);
6314 case 0x7F: goto yy460
;
6315 case '\\': goto yy147
;
6319 #line 213 "src/parser_scan.re"
6320 { NEWTOKEN(PSI_T_OBJECT
); goto start
; }
6321 #line 6322 "src/parser_scan.c"
6324 yych
= *(mrk
= ++cur
);
6389 case 0x7F: goto yy462
;
6390 case '\\': goto yy147
;
6394 #line 233 "src/parser_scan.re"
6395 { NEWTOKEN(PSI_T_OBJVAL
); goto start
; }
6396 #line 6397 "src/parser_scan.c"
6399 yych
= *(mrk
= ++cur
);
6402 case 'l': goto yy513
;
6407 yych
= *(mrk
= ++cur
);
6410 case 's': goto yy515
;
6415 yych
= *(mrk
= ++cur
);
6418 case 's': goto yy516
;
6423 yych
= *(mrk
= ++cur
);
6488 case 0x7F: goto yy467
;
6489 case '\\': goto yy147
;
6493 #line 222 "src/parser_scan.re"
6494 { NEWTOKEN(PSI_T_RETURN
); goto start
; }
6495 #line 6496 "src/parser_scan.c"
6498 yych
= *(mrk
= ++cur
);
6563 case 0x7F: goto yy469
;
6564 case '\\': goto yy147
;
6568 #line 215 "src/parser_scan.re"
6569 { NEWTOKEN(PSI_T_STATIC
); goto start
; }
6570 #line 6571 "src/parser_scan.c"
6573 yych
= *(mrk
= ++cur
);
6638 case 0x7F: goto yy471
;
6639 case '\\': goto yy147
;
6643 #line 211 "src/parser_scan.re"
6644 { NEWTOKEN(PSI_T_STRING
); goto start
; }
6645 #line 6646 "src/parser_scan.c"
6648 yych
= *(mrk
= ++cur
);
6713 case 0x7F: goto yy473
;
6714 case '\\': goto yy147
;
6718 #line 226 "src/parser_scan.re"
6719 { NEWTOKEN(PSI_T_STRLEN
); goto start
; }
6720 #line 6721 "src/parser_scan.c"
6723 yych
= *(mrk
= ++cur
);
6788 case 0x7F: goto yy475
;
6789 case '\\': goto yy147
;
6793 #line 227 "src/parser_scan.re"
6794 { NEWTOKEN(PSI_T_STRVAL
); goto start
; }
6795 #line 6796 "src/parser_scan.c"
6798 yych
= *(mrk
= ++cur
);
6801 case 'a': goto yy517
;
6806 yych
= *(mrk
= ++cur
);
6809 case 'l': goto yy518
;
6814 yych
= *(mrk
= ++cur
);
6817 case 'a': goto yy520
;
6822 yych
= *(mrk
= ++cur
);
6887 case 0x7F: goto yy480
;
6888 case '\\': goto yy147
;
6892 #line 240 "src/parser_scan.re"
6893 { NEWTOKEN(PSI_T_TO_INT
); goto start
; }
6894 #line 6895 "src/parser_scan.c"
6897 yych
= *(mrk
= ++cur
);
6900 case 'e': goto yy521
;
6905 yych
= *(mrk
= ++cur
);
6908 case 'i': goto yy522
;
6913 yych
= *(mrk
= ++cur
);
6916 case 'g': goto yy523
;
6921 yych
= *(mrk
= ++cur
);
6923 case '_': goto yy525
;
6928 yych
= *(mrk
= ++cur
);
6930 case 'i': goto yy526
;
6935 yych
= *(mrk
= ++cur
);
6937 case 'n': goto yy527
;
6942 yych
= *(mrk
= ++cur
);
6944 case 'r': goto yy528
;
6949 yych
= *(mrk
= ++cur
);
7014 case 0x7F: goto yy489
;
7015 case '\\': goto yy147
;
7019 #line 190 "src/parser_scan.re"
7020 { NEWTOKEN(PSI_T_DOUBLE
); goto start
; }
7021 #line 7022 "src/parser_scan.c"
7024 yych
= *(mrk
= ++cur
);
7089 case 0x7F: goto yy491
;
7090 case '\\': goto yy147
;
7094 #line 171 "src/parser_scan.re"
7095 { NEWTOKEN(PSI_T_CPP_INLINE
); goto start
; }
7096 #line 7097 "src/parser_scan.c"
7099 yych
= *(mrk
= ++cur
);
7164 case 0x7F: goto yy493
;
7165 case '\\': goto yy147
;
7166 default: goto yy529
;
7169 #line 169 "src/parser_scan.re"
7170 { NEWTOKEN(PSI_T_PRAGMA
); goto start
; }
7171 #line 7172 "src/parser_scan.c"
7174 yych
= *(mrk
= ++cur
);
7239 case 0x7F: goto yy495
;
7240 case '\\': goto yy147
;
7244 #line 192 "src/parser_scan.re"
7245 { NEWTOKEN(PSI_T_SIGNED
); goto start
; }
7246 #line 7247 "src/parser_scan.c"
7249 yych
= *(mrk
= ++cur
);
7314 case 0x7F: goto yy497
;
7315 case '\\': goto yy147
;
7319 #line 176 "src/parser_scan.re"
7320 { NEWTOKEN(PSI_T_SIZEOF
); goto start
; }
7321 #line 7322 "src/parser_scan.c"
7324 yych
= *(mrk
= ++cur
);
7389 case 0x7F: goto yy499
;
7390 case '\\': goto yy147
;
7394 #line 179 "src/parser_scan.re"
7395 { NEWTOKEN(PSI_T_STRUCT
); goto start
; }
7396 #line 7397 "src/parser_scan.c"
7399 yych
= *(mrk
= ++cur
);
7401 case 'f': goto yy531
;
7406 yych
= *(mrk
= ++cur
);
7408 case 'e': goto yy533
;
7413 yych
= *(mrk
= ++cur
);
7415 case 'l': goto yy534
;
7420 yych
= *(mrk
= ++cur
);
7485 case 0x7F: goto yy504
;
7486 case '\\': goto yy147
;
7490 #line 231 "src/parser_scan.re"
7491 { NEWTOKEN(PSI_T_BOOLVAL
); goto start
; }
7492 #line 7493 "src/parser_scan.c"
7495 yych
= *(mrk
= ++cur
);
7498 case 'e': goto yy535
;
7503 yych
= *(mrk
= ++cur
);
7506 case 'k': goto yy537
;
7511 yych
= *(mrk
= ++cur
);
7576 case 0x7F: goto yy508
;
7577 case '\\': goto yy147
;
7581 #line 200 "src/parser_scan.re"
7582 { NEWTOKEN(PSI_T_DEFINED
); goto start
; }
7583 #line 7584 "src/parser_scan.c"
7586 yych
= *(mrk
= ++cur
);
7589 case 'l': goto yy539
;
7594 yych
= *(mrk
= ++cur
);
7597 case 'n': goto yy541
;
7602 yych
= *(mrk
= ++cur
);
7667 case 0x7F: goto yy512
;
7668 case '\\': goto yy147
;
7669 case '_': goto yy543
;
7673 #line 204 "src/parser_scan.re"
7674 { NEWTOKEN(PSI_T_INCLUDE
); goto start
; }
7675 #line 7676 "src/parser_scan.c"
7678 yych
= *(mrk
= ++cur
);
7743 case 0x7F: goto yy514
;
7744 case '\\': goto yy147
;
7748 #line 228 "src/parser_scan.re"
7749 { NEWTOKEN(PSI_T_PATHVAL
); goto start
; }
7750 #line 7751 "src/parser_scan.c"
7753 yych
= *(mrk
= ++cur
);
7756 case 's': goto yy544
;
7761 yych
= *(mrk
= ++cur
);
7764 case 'e': goto yy545
;
7769 yych
= *(mrk
= ++cur
);
7772 case 'y': goto yy546
;
7777 yych
= *(mrk
= ++cur
);
7842 case 0x7F: goto yy519
;
7843 case '\\': goto yy147
;
7847 #line 242 "src/parser_scan.re"
7848 { NEWTOKEN(PSI_T_TO_BOOL
); goto start
; }
7849 #line 7850 "src/parser_scan.c"
7852 yych
= *(mrk
= ++cur
);
7855 case 't': goto yy548
;
7860 yych
= *(mrk
= ++cur
);
7863 case 'c': goto yy550
;
7868 yych
= *(mrk
= ++cur
);
7871 case 'n': goto yy551
;
7876 yych
= *(mrk
= ++cur
);
7941 case 0x7F: goto yy524
;
7942 case '\\': goto yy147
;
7946 #line 202 "src/parser_scan.re"
7947 { NEWTOKEN(PSI_T_WARNING
); goto start
; }
7948 #line 7949 "src/parser_scan.c"
7951 yych
= *(mrk
= ++cur
);
8016 case 0x7F: goto yy422
;
8017 case '\\': goto yy147
;
8022 yych
= *(mrk
= ++cur
);
8024 case 'b': goto yy552
;
8029 yych
= *(mrk
= ++cur
);
8031 case 's': goto yy553
;
8036 yych
= *(mrk
= ++cur
);
8038 case 'i': goto yy554
;
8044 if (lim
<= cur
) CHECKEOF();;
8110 case 0x7F: goto yy55
;
8111 case '\\': goto yy147
;
8112 case 'o': goto yy555
;
8113 default: goto yy529
;
8117 yych
= *(mrk
= ++cur
);
8182 case 0x7F: goto yy532
;
8183 case '\\': goto yy147
;
8187 #line 178 "src/parser_scan.re"
8188 { NEWTOKEN(PSI_T_TYPEDEF
); goto start
; }
8189 #line 8190 "src/parser_scan.c"
8192 yych
= *(mrk
= ++cur
);
8194 case 'd': goto yy557
;
8199 yych
= *(mrk
= ++cur
);
8201 case 'e': goto yy559
;
8206 yych
= *(mrk
= ++cur
);
8271 case 0x7F: goto yy536
;
8272 case '\\': goto yy147
;
8276 #line 210 "src/parser_scan.re"
8277 { NEWTOKEN(PSI_T_CALLABLE
); goto start
; }
8278 #line 8279 "src/parser_scan.c"
8281 yych
= *(mrk
= ++cur
);
8346 case 0x7F: goto yy538
;
8347 case '\\': goto yy147
;
8351 #line 214 "src/parser_scan.re"
8352 { NEWTOKEN(PSI_T_CALLBACK
); goto start
; }
8353 #line 8354 "src/parser_scan.c"
8356 yych
= *(mrk
= ++cur
);
8421 case 0x7F: goto yy540
;
8422 case '\\': goto yy147
;
8426 #line 230 "src/parser_scan.re"
8427 { NEWTOKEN(PSI_T_FLOATVAL
); goto start
; }
8428 #line 8429 "src/parser_scan.c"
8431 yych
= *(mrk
= ++cur
);
8496 case 0x7F: goto yy542
;
8497 case '\\': goto yy147
;
8501 #line 216 "src/parser_scan.re"
8502 { NEWTOKEN(PSI_T_FUNCTION
); goto start
; }
8503 #line 8504 "src/parser_scan.c"
8506 yych
= *(mrk
= ++cur
);
8509 case 'n': goto yy561
;
8514 yych
= *(mrk
= ++cur
);
8517 case 'e': goto yy562
;
8522 yych
= *(mrk
= ++cur
);
8525 case 'r': goto yy563
;
8530 yych
= *(mrk
= ++cur
);
8595 case 0x7F: goto yy547
;
8596 case '\\': goto yy147
;
8600 #line 238 "src/parser_scan.re"
8601 { NEWTOKEN(PSI_T_TO_ARRAY
); goto start
; }
8602 #line 8603 "src/parser_scan.c"
8605 yych
= *(mrk
= ++cur
);
8670 case 0x7F: goto yy549
;
8671 case '\\': goto yy147
;
8675 #line 241 "src/parser_scan.re"
8676 { NEWTOKEN(PSI_T_TO_FLOAT
); goto start
; }
8677 #line 8678 "src/parser_scan.c"
8680 yych
= *(mrk
= ++cur
);
8683 case 't': goto yy564
;
8688 yych
= *(mrk
= ++cur
);
8691 case 'g': goto yy566
;
8696 yych
= *(mrk
= ++cur
);
8698 case 'u': goto yy568
;
8703 yych
= *(mrk
= ++cur
);
8705 case 'i': goto yy569
;
8710 yych
= *(mrk
= ++cur
);
8712 case 'c': goto yy570
;
8718 if (lim
<= cur
) CHECKEOF();;
8784 case 0x7F: goto yy55
;
8785 case '\\': goto yy147
;
8786 case 'n': goto yy571
;
8787 case 'o': goto yy555
;
8788 default: goto yy529
;
8792 yych
= *(mrk
= ++cur
);
8857 case 0x7F: goto yy558
;
8858 case '\\': goto yy147
;
8862 #line 191 "src/parser_scan.re"
8863 { NEWTOKEN(PSI_T_UNSIGNED
); goto start
; }
8864 #line 8865 "src/parser_scan.c"
8867 yych
= *(mrk
= ++cur
);
8932 case 0x7F: goto yy560
;
8933 case '\\': goto yy147
;
8937 #line 175 "src/parser_scan.re"
8938 { NEWTOKEN(PSI_T_VOLATILE
); goto start
; }
8939 #line 8940 "src/parser_scan.c"
8942 yych
= *(mrk
= ++cur
);
8945 case 'e': goto yy572
;
8950 yych
= *(mrk
= ++cur
);
8953 case 'r': goto yy573
;
8958 yych
= *(mrk
= ++cur
);
8961 case 't': goto yy574
;
8966 yych
= *(mrk
= ++cur
);
9031 case 0x7F: goto yy565
;
9032 case '\\': goto yy147
;
9036 #line 237 "src/parser_scan.re"
9037 { NEWTOKEN(PSI_T_TO_OBJECT
); goto start
; }
9038 #line 9039 "src/parser_scan.c"
9041 yych
= *(mrk
= ++cur
);
9106 case 0x7F: goto yy567
;
9107 case '\\': goto yy147
;
9111 #line 239 "src/parser_scan.re"
9112 { NEWTOKEN(PSI_T_TO_STRING
); goto start
; }
9113 #line 9114 "src/parser_scan.c"
9116 yych
= *(mrk
= ++cur
);
9118 case 't': goto yy576
;
9123 yych
= *(mrk
= ++cur
);
9125 case 'o': goto yy577
;
9130 yych
= *(mrk
= ++cur
);
9132 case 't': goto yy578
;
9138 if (lim
<= cur
) CHECKEOF();;
9204 case 0x7F: goto yy55
;
9205 case '\\': goto yy147
;
9206 case 'c': goto yy580
;
9207 case 'o': goto yy555
;
9208 default: goto yy529
;
9212 yych
= *(mrk
= ++cur
);
9215 case 'x': goto yy581
;
9220 yych
= *(mrk
= ++cur
);
9223 case 't': goto yy582
;
9228 yych
= *(mrk
= ++cur
);
9293 case 0x7F: goto yy575
;
9294 case '\\': goto yy147
;
9298 #line 220 "src/parser_scan.re"
9299 { NEWTOKEN(PSI_T_PRE_ASSERT
); goto start
; }
9300 #line 9301 "src/parser_scan.c"
9303 yych
= *(mrk
= ++cur
);
9305 case 'e': goto yy584
;
9310 yych
= *(mrk
= ++cur
);
9312 case 'n': goto yy585
;
9317 yych
= *(mrk
= ++cur
);
9382 case 0x7F: goto yy579
;
9383 case '\\': goto yy147
;
9387 #line 172 "src/parser_scan.re"
9388 { NEWTOKEN(PSI_T_CPP_RESTRICT
); goto start
; }
9389 #line 9390 "src/parser_scan.c"
9393 if (lim
<= cur
) CHECKEOF();;
9459 case 0x7F: goto yy55
;
9460 case '\\': goto yy147
;
9461 case 'e': goto yy586
;
9462 case 'o': goto yy555
;
9463 default: goto yy529
;
9467 yych
= *(mrk
= ++cur
);
9470 case 't': goto yy588
;
9475 yych
= *(mrk
= ++cur
);
9540 case 0x7F: goto yy583
;
9541 case '\\': goto yy147
;
9545 #line 221 "src/parser_scan.re"
9546 { NEWTOKEN(PSI_T_POST_ASSERT
); goto start
; }
9547 #line 9548 "src/parser_scan.c"
9550 yych
= *(mrk
= ++cur
);
9552 case '_': goto yy590
;
9557 yych
= *(mrk
= ++cur
);
9559 case '_': goto yy591
;
9565 if (lim
<= cur
) CHECKEOF();;
9631 case 0x7F: goto yy587
;
9632 case '\\': goto yy147
;
9633 case 'o': goto yy555
;
9634 default: goto yy529
;
9637 #line 170 "src/parser_scan.re"
9638 { NEWTOKEN(PSI_T_PRAGMA_ONCE
); goto start
; }
9639 #line 9640 "src/parser_scan.c"
9642 yych
= *(mrk
= ++cur
);
9707 case 0x7F: goto yy589
;
9708 case '\\': goto yy147
;
9712 #line 205 "src/parser_scan.re"
9713 { NEWTOKEN(PSI_T_INCLUDE_NEXT
); goto start
; }
9714 #line 9715 "src/parser_scan.c"
9717 yych
= *(mrk
= ++cur
);
9719 case '_': goto yy592
;
9724 yych
= *(mrk
= ++cur
);
9726 case '_': goto yy593
;
9731 yych
= *(mrk
= ++cur
);
9735 case ' ': goto yy595
;
9736 case '(': goto yy597
;
9741 yych
= *(mrk
= ++cur
);
9806 case 0x7F: goto yy594
;
9807 case '\\': goto yy147
;
9811 #line 173 "src/parser_scan.re"
9812 { NEWTOKEN(PSI_T_CPP_EXTENSION
); goto start
; }
9813 #line 9814 "src/parser_scan.c"
9816 if ((lim
- cur
) < 2) CHECKEOF();;
9821 case ' ': goto yy595
;
9822 case '(': goto yy597
;
9823 default: goto yy114
;
9828 case '(': goto yy598
;
9829 default: goto yy114
;
9833 #line 247 "src/parser_scan.re"
9834 { parens
= 2; goto cpp_attribute
; }
9835 #line 9836 "src/parser_scan.c"
9837 #line 253 "src/parser_scan.re"
9842 #line 9843 "src/parser_scan.c"
9845 if (lim
<= cur
) CHECKEOF();;
9849 case '\r': goto yy604
;
9850 case '\'': goto yy606
;
9851 case '\\': goto yy608
;
9852 default: goto yy602
;
9856 #line 271 "src/parser_scan.re"
9857 { escaped
= false; goto character
; }
9858 #line 9859 "src/parser_scan.c"
9861 #line 258 "src/parser_scan.re"
9862 { NEWLINE(); goto character
; }
9863 #line 9864 "src/parser_scan.c"
9866 #line 260 "src/parser_scan.re"
9873 NEWTOKEN(PSI_T_QUOTED_CHAR
);
9875 token
->flags
= char_width
;
9878 #line 9879 "src/parser_scan.c"
9881 #line 259 "src/parser_scan.re"
9882 { escaped
= !escaped
; goto character
; }
9883 #line 9884 "src/parser_scan.c"
9885 #line 273 "src/parser_scan.re"
9890 #line 9891 "src/parser_scan.c"
9893 if (lim
<= cur
) CHECKEOF();;
9897 case '\r': goto yy614
;
9898 case '"': goto yy616
;
9899 case '\\': goto yy618
;
9900 default: goto yy612
;
9904 #line 291 "src/parser_scan.re"
9905 { escaped
= false; goto string
; }
9906 #line 9907 "src/parser_scan.c"
9909 #line 278 "src/parser_scan.re"
9910 { NEWLINE(); goto string
; }
9911 #line 9912 "src/parser_scan.c"
9914 #line 280 "src/parser_scan.re"
9921 NEWTOKEN(PSI_T_QUOTED_STRING
);
9923 token
->flags
= char_width
;
9926 #line 9927 "src/parser_scan.c"
9929 #line 279 "src/parser_scan.re"
9930 { escaped
= !escaped
; goto string
; }
9931 #line 9932 "src/parser_scan.c"
9933 #line 293 "src/parser_scan.re"
9938 #line 9939 "src/parser_scan.c"
9941 if ((lim
- cur
) < 2) CHECKEOF();;
9945 case '\r': goto yy624
;
9946 case '*': goto yy626
;
9947 default: goto yy622
;
9952 #line 300 "src/parser_scan.re"
9954 #line 9955 "src/parser_scan.c"
9957 #line 298 "src/parser_scan.re"
9958 { NEWLINE(); goto comment
; }
9959 #line 9960 "src/parser_scan.c"
9963 case '/': goto yy627
;
9964 default: goto yy623
;
9968 #line 299 "src/parser_scan.re"
9969 { NEWTOKEN(PSI_T_COMMENT
); goto start
; }
9970 #line 9971 "src/parser_scan.c"
9972 #line 302 "src/parser_scan.re"
9977 #line 9978 "src/parser_scan.c"
9980 if (lim
<= cur
) CHECKEOF();;
9984 case '\r': goto yy633
;
9985 default: goto yy631
;
9989 #line 308 "src/parser_scan.re"
9990 { goto comment_sl
; }
9991 #line 9992 "src/parser_scan.c"
9994 #line 307 "src/parser_scan.re"
9995 { NEWTOKEN(PSI_T_COMMENT
); tok
= cur
- 1; NEWTOKEN(PSI_T_EOL
); NEWLINE(); goto start
; }
9996 #line 9997 "src/parser_scan.c"
9998 #line 310 "src/parser_scan.re"
10004 #line 10005 "src/parser_scan.c"
10006 unsigned char yych
;
10007 if (lim
<= cur
) CHECKEOF();;
10011 case '\r': goto yy639
;
10012 case '(': goto yy641
;
10013 case ')': goto yy643
;
10014 default: goto yy637
;
10018 #line 319 "src/parser_scan.re"
10019 { goto cpp_attribute
; }
10020 #line 10021 "src/parser_scan.c"
10023 #line 318 "src/parser_scan.re"
10024 { NEWLINE(); goto cpp_attribute
; }
10025 #line 10026 "src/parser_scan.c"
10028 #line 316 "src/parser_scan.re"
10029 { ++parens
; goto cpp_attribute
; }
10030 #line 10031 "src/parser_scan.c"
10033 #line 317 "src/parser_scan.re"
10034 { if (parens
== 1) { NEWTOKEN(PSI_T_CPP_ATTRIBUTE
); goto start
; } else { --parens
; goto cpp_attribute
; } }
10035 #line 10036 "src/parser_scan.c"
10037 #line 321 "src/parser_scan.re"
10041 P
->error(PSI_DATA(P
), token
, PSI_WARNING
, "PSI syntax error: unexpected input (%d) '%.*s' at col %tu",
10042 token
->type
, token
->text
->len
, token
->text
->val
, tok
- eol
+ 1);
10043 psi_plist_free(tokens
);
10048 PSI_DEBUG_PRINT(P
, "PSI: EOF cur=%p lim=%p\n", cur
, lim
);