1 /* Generated by re2c 1.1.1 on Fri Dec 7 11:06:28 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, I->lines, I->file); \
56 token = psi_token_init(t, tok, cur - tok, tok - eol + 1, I->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
;
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
;
81 tokens
= psi_plist_init((psi_plist_dtor
) psi_token_free
);
91 #line 92 "src/parser_scan.c"
94 unsigned int yyaccept
= 0;
95 if ((lim
- cur
) < 15) CHECKEOF();;
140 case '\'': goto yy20
;
191 case '\\': goto yy77
;
209 case '}': goto yy100
;
210 case '~': goto yy102
;
216 #line 257 "src/parser_scan.re"
217 { CHECKEOF(); NEWTOKEN(-2); goto error
; }
218 #line 219 "src/parser_scan.c"
221 if (lim
<= cur
) CHECKEOF();;
230 #line 256 "src/parser_scan.re"
231 { NEWTOKEN(PSI_T_WHITESPACE
); goto start
; }
232 #line 233 "src/parser_scan.c"
235 #line 255 "src/parser_scan.re"
236 { NEWTOKEN(PSI_T_EOL
); NEWLINE(); goto start
; }
237 #line 238 "src/parser_scan.c"
241 case '=': goto yy104
;
245 #line 158 "src/parser_scan.re"
246 { NEWTOKEN(PSI_T_NOT
); goto start
; }
247 #line 248 "src/parser_scan.c"
250 #line 131 "src/parser_scan.re"
251 { escaped
= false; tok
+= 1; goto string
; }
252 #line 253 "src/parser_scan.c"
256 case '#': goto yy106
;
260 #line 141 "src/parser_scan.re"
261 { NEWTOKEN(PSI_T_HASH
); goto start
; }
262 #line 263 "src/parser_scan.c"
335 #line 159 "src/parser_scan.re"
336 { NEWTOKEN(PSI_T_MODULO
); goto start
; }
337 #line 338 "src/parser_scan.c"
341 case '&': goto yy111
;
345 #line 160 "src/parser_scan.re"
346 { NEWTOKEN(PSI_T_AMPERSAND
); goto start
; }
347 #line 348 "src/parser_scan.c"
350 #line 130 "src/parser_scan.re"
351 { escaped
= false; tok
+= 1; goto character
; }
352 #line 353 "src/parser_scan.c"
355 #line 142 "src/parser_scan.re"
356 { NEWTOKEN(PSI_T_LPAREN
); goto start
; }
357 #line 358 "src/parser_scan.c"
360 #line 143 "src/parser_scan.re"
361 { NEWTOKEN(PSI_T_RPAREN
); goto start
; }
362 #line 363 "src/parser_scan.c"
365 #line 156 "src/parser_scan.re"
366 { NEWTOKEN(PSI_T_ASTERISK
); goto start
; }
367 #line 368 "src/parser_scan.c"
370 #line 161 "src/parser_scan.re"
371 { NEWTOKEN(PSI_T_PLUS
); goto start
; }
372 #line 373 "src/parser_scan.c"
375 #line 145 "src/parser_scan.re"
376 { NEWTOKEN(PSI_T_COMMA
); goto start
; }
377 #line 378 "src/parser_scan.c"
380 #line 162 "src/parser_scan.re"
381 { NEWTOKEN(PSI_T_MINUS
); goto start
; }
382 #line 383 "src/parser_scan.c"
385 yych
= *(mrk
= ++cur
);
387 case '.': goto yy113
;
397 case '9': goto yy115
;
401 #line 173 "src/parser_scan.re"
402 { NEWTOKEN(PSI_T_PERIOD
); goto start
; }
403 #line 404 "src/parser_scan.c"
407 case '*': goto yy118
;
408 case '/': goto yy120
;
412 #line 163 "src/parser_scan.re"
413 { NEWTOKEN(PSI_T_SLASH
); goto start
; }
414 #line 415 "src/parser_scan.c"
417 yych
= *(mrk
= ++cur
);
419 case '.': goto yy122
;
421 case 'e': goto yy126
;
423 case 'x': goto yy131
;
427 #line 117 "src/parser_scan.re"
428 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
; goto start
; }
429 #line 430 "src/parser_scan.c"
433 if ((lim
- cur
) < 3) CHECKEOF();;
436 case '.': goto yy122
;
448 case 'e': goto yy126
;
450 case 'l': goto yy127
;
452 case 'u': goto yy129
;
457 #line 146 "src/parser_scan.re"
458 { NEWTOKEN(PSI_T_COLON
); goto start
; }
459 #line 460 "src/parser_scan.c"
462 #line 144 "src/parser_scan.re"
463 { NEWTOKEN(PSI_T_EOS
); goto start
; }
464 #line 465 "src/parser_scan.c"
467 yych
= *(mrk
= ++cur
);
534 case 'z': goto yy132
;
535 case '<': goto yy134
;
536 case '=': goto yy136
;
540 #line 171 "src/parser_scan.re"
541 { NEWTOKEN(PSI_T_LCHEVR
); goto start
; }
542 #line 543 "src/parser_scan.c"
546 case '=': goto yy138
;
550 #line 155 "src/parser_scan.re"
551 { NEWTOKEN(PSI_T_EQUALS
); goto start
; }
552 #line 553 "src/parser_scan.c"
556 case '=': goto yy140
;
557 case '>': goto yy142
;
561 #line 172 "src/parser_scan.re"
562 { NEWTOKEN(PSI_T_RCHEVR
); goto start
; }
563 #line 564 "src/parser_scan.c"
566 #line 175 "src/parser_scan.re"
567 { NEWTOKEN(PSI_T_IIF
); goto start
; }
568 #line 569 "src/parser_scan.c"
571 yych
= *(mrk
= ++cur
);
574 case 'r': goto yy144
;
576 case 's': goto yy145
;
580 #line 250 "src/parser_scan.re"
581 { NEWTOKEN(PSI_T_NAME
); goto start
; }
582 #line 583 "src/parser_scan.c"
585 yych
= *(mrk
= ++cur
);
588 case 'o': goto yy148
;
593 yych
= *(mrk
= ++cur
);
596 case 'a': goto yy149
;
598 case 'o': goto yy150
;
603 yych
= *(mrk
= ++cur
);
606 case 'e': goto yy151
;
611 yych
= *(mrk
= ++cur
);
614 case 'l': goto yy152
;
616 case 'n': goto yy153
;
618 case 'r': goto yy154
;
623 yych
= *(mrk
= ++cur
);
626 case 'a': goto yy155
;
628 case 'l': goto yy156
;
630 case 'r': goto yy157
;
632 case 'u': goto yy158
;
638 if (lim
<= cur
) CHECKEOF();;
705 case 0x7F: goto yy55
;
706 case '\\': goto yy147
;
711 yych
= *(mrk
= ++cur
);
714 case 'f': goto yy159
;
716 case 'n': goto yy161
;
721 yych
= *(mrk
= ++cur
);
724 case '\'': goto yy162
;
726 case 'e': goto yy164
;
728 case 'i': goto yy165
;
733 yych
= *(mrk
= ++cur
);
736 case 'i': goto yy166
;
741 yych
= *(mrk
= ++cur
);
744 case 'u': goto yy167
;
749 yych
= *(mrk
= ++cur
);
752 case 'b': goto yy168
;
757 yych
= *(mrk
= ++cur
);
760 case 'a': goto yy169
;
762 case 'o': goto yy170
;
764 case 'r': goto yy171
;
769 yych
= *(mrk
= ++cur
);
772 case 'e': goto yy172
;
777 yych
= *(mrk
= ++cur
);
780 case 'e': goto yy173
;
782 case 't': goto yy174
;
787 yych
= *(mrk
= ++cur
);
790 case 'e': goto yy175
;
792 case 'o': goto yy176
;
794 case 'r': goto yy177
;
799 yych
= *(mrk
= ++cur
);
802 case '\'': goto yy178
;
804 case 'n': goto yy180
;
809 yych
= *(mrk
= ++cur
);
812 case 'a': goto yy181
;
817 yych
= *(mrk
= ++cur
);
820 case 'v': goto yy182
;
825 #line 149 "src/parser_scan.re"
826 { NEWTOKEN(PSI_T_LBRACKET
); goto start
; }
827 #line 828 "src/parser_scan.c"
905 case 0x7F: goto yy78
;
909 #line 164 "src/parser_scan.re"
910 { NEWTOKEN(PSI_T_BSLASH
); goto start
; }
911 #line 912 "src/parser_scan.c"
914 #line 150 "src/parser_scan.re"
915 { NEWTOKEN(PSI_T_RBRACKET
); goto start
; }
916 #line 917 "src/parser_scan.c"
919 #line 166 "src/parser_scan.re"
920 { NEWTOKEN(PSI_T_CARET
); goto start
; }
921 #line 922 "src/parser_scan.c"
924 yych
= *(mrk
= ++cur
);
926 case '_': goto yy186
;
931 yych
= *(mrk
= ++cur
);
933 case 'O': goto yy148
;
934 case 'o': goto yy187
;
939 yych
= *(mrk
= ++cur
);
942 case 'a': goto yy149
;
943 case 'O': goto yy150
;
944 case 'h': goto yy188
;
945 case 'o': goto yy189
;
950 yych
= *(mrk
= ++cur
);
953 case 'e': goto yy151
;
954 case 'o': goto yy190
;
959 yych
= *(mrk
= ++cur
);
962 case 'l': goto yy152
;
963 case 'N': goto yy153
;
965 case 'r': goto yy154
;
966 case 'n': goto yy191
;
971 yych
= *(mrk
= ++cur
);
974 case 'a': goto yy155
;
975 case 'L': goto yy156
;
977 case 'r': goto yy157
;
979 case 'u': goto yy158
;
980 case 'l': goto yy192
;
985 yych
= *(mrk
= ++cur
);
988 case 'f': goto yy159
;
989 case 'N': goto yy161
;
990 case 'n': goto yy193
;
995 yych
= *(mrk
= ++cur
);
998 case 'e': goto yy164
;
999 case 'I': goto yy165
;
1000 case 'i': goto yy194
;
1001 case 'o': goto yy195
;
1006 yych
= *(mrk
= ++cur
);
1009 case 'a': goto yy169
;
1011 case 'o': goto yy170
;
1012 case 'R': goto yy171
;
1013 case 'r': goto yy196
;
1018 yych
= *(mrk
= ++cur
);
1021 case 'e': goto yy173
;
1022 case 'T': goto yy174
;
1023 case 'h': goto yy197
;
1024 case 'i': goto yy198
;
1025 case 't': goto yy199
;
1030 yych
= *(mrk
= ++cur
);
1033 case 'e': goto yy175
;
1035 case 'o': goto yy176
;
1037 case 'r': goto yy177
;
1038 case 'y': goto yy200
;
1043 yych
= *(mrk
= ++cur
);
1046 case '\'': goto yy201
;
1047 case '8': goto yy203
;
1048 case 'N': goto yy180
;
1049 case 'n': goto yy204
;
1054 yych
= *(mrk
= ++cur
);
1056 case 'o': goto yy205
;
1061 #line 147 "src/parser_scan.re"
1062 { NEWTOKEN(PSI_T_LBRACE
); goto start
; }
1063 #line 1064 "src/parser_scan.c"
1067 case '|': goto yy206
;
1071 #line 165 "src/parser_scan.re"
1072 { NEWTOKEN(PSI_T_PIPE
); goto start
; }
1073 #line 1074 "src/parser_scan.c"
1076 #line 148 "src/parser_scan.re"
1077 { NEWTOKEN(PSI_T_RBRACE
); goto start
; }
1078 #line 1079 "src/parser_scan.c"
1081 #line 157 "src/parser_scan.re"
1082 { NEWTOKEN(PSI_T_TILDE
); goto start
; }
1083 #line 1084 "src/parser_scan.c"
1086 #line 151 "src/parser_scan.re"
1087 { NEWTOKEN(PSI_T_CMP_NE
); goto start
; }
1088 #line 1089 "src/parser_scan.c"
1091 #line 140 "src/parser_scan.re"
1092 { NEWTOKEN(PSI_T_CPP_PASTE
); goto start
; }
1093 #line 1094 "src/parser_scan.c"
1096 if (lim
<= cur
) CHECKEOF();;
1163 case 0x7F: goto yy110
;
1164 default: goto yy108
;
1167 #line 252 "src/parser_scan.re"
1168 { NEWTOKEN(PSI_T_DOLLAR_NAME
); goto start
; }
1169 #line 1170 "src/parser_scan.c"
1172 #line 153 "src/parser_scan.re"
1173 { NEWTOKEN(PSI_T_AND
); goto start
; }
1174 #line 1175 "src/parser_scan.c"
1178 case '.': goto yy208
;
1179 default: goto yy114
;
1194 case 10: goto yy244
;
1195 case 11: goto yy253
;
1196 case 12: goto yy274
;
1197 case 13: goto yy306
;
1198 case 14: goto yy308
;
1199 case 15: goto yy314
;
1200 case 16: goto yy322
;
1201 case 17: goto yy334
;
1202 case 18: goto yy342
;
1203 case 19: goto yy346
;
1204 case 20: goto yy353
;
1205 case 21: goto yy355
;
1206 case 22: goto yy359
;
1207 case 23: goto yy363
;
1208 case 24: goto yy365
;
1209 case 25: goto yy375
;
1210 case 26: goto yy378
;
1211 case 27: goto yy385
;
1212 case 28: goto yy388
;
1213 case 29: goto yy390
;
1214 case 30: goto yy392
;
1215 case 31: goto yy396
;
1216 case 32: goto yy401
;
1217 case 33: goto yy419
;
1218 case 34: goto yy422
;
1219 case 35: goto yy427
;
1220 case 36: goto yy430
;
1221 case 37: goto yy434
;
1222 case 38: goto yy440
;
1223 case 39: goto yy444
;
1224 case 40: goto yy449
;
1225 case 41: goto yy451
;
1226 case 42: goto yy455
;
1227 case 43: goto yy458
;
1228 case 44: goto yy460
;
1229 case 45: goto yy462
;
1230 case 46: goto yy467
;
1231 case 47: goto yy469
;
1232 case 48: goto yy471
;
1233 case 49: goto yy473
;
1234 case 50: goto yy475
;
1235 case 51: goto yy480
;
1236 case 52: goto yy489
;
1237 case 53: goto yy491
;
1238 case 54: goto yy493
;
1239 case 55: goto yy495
;
1240 case 56: goto yy497
;
1241 case 57: goto yy499
;
1242 case 58: goto yy504
;
1243 case 59: goto yy508
;
1244 case 60: goto yy512
;
1245 case 61: goto yy514
;
1246 case 62: goto yy519
;
1247 case 63: goto yy524
;
1248 case 64: goto yy532
;
1249 case 65: goto yy536
;
1250 case 66: goto yy538
;
1251 case 67: goto yy540
;
1252 case 68: goto yy542
;
1253 case 69: goto yy547
;
1254 case 70: goto yy549
;
1255 case 71: goto yy558
;
1256 case 72: goto yy560
;
1257 case 73: goto yy565
;
1258 case 74: goto yy567
;
1259 case 75: goto yy575
;
1260 case 76: goto yy579
;
1261 case 77: goto yy583
;
1262 case 78: goto yy587
;
1263 case 79: goto yy589
;
1264 default: goto yy594
;
1269 if ((lim
- cur
) < 2) CHECKEOF();;
1281 case '9': goto yy115
;
1283 case 'd': goto yy210
;
1285 case 'f': goto yy211
;
1287 case 'l': goto yy213
;
1288 default: goto yy117
;
1291 #line 123 "src/parser_scan.re"
1292 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
; goto start
; }
1293 #line 1294 "src/parser_scan.c"
1296 #line 137 "src/parser_scan.re"
1298 #line 1299 "src/parser_scan.c"
1301 #line 138 "src/parser_scan.re"
1302 { goto comment_sl
; }
1303 #line 1304 "src/parser_scan.c"
1307 if ((lim
- cur
) < 3) CHECKEOF();;
1319 case '9': goto yy122
;
1321 case 'd': goto yy210
;
1323 case 'e': goto yy126
;
1325 case 'f': goto yy211
;
1327 case 'l': goto yy213
;
1328 default: goto yy117
;
1332 if ((lim
- cur
) < 3) CHECKEOF();;
1343 case '7': goto yy124
;
1345 case 'l': goto yy127
;
1347 case 'u': goto yy129
;
1354 case '-': goto yy215
;
1364 case '9': goto yy115
;
1365 default: goto yy114
;
1369 yych
= *(mrk
= ++cur
);
1372 case 'l': goto yy216
;
1374 case 'u': goto yy217
;
1375 default: goto yy128
;
1379 #line 119 "src/parser_scan.re"
1380 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
| PSI_NUMBER_L
; cur
+= 1; goto start
; }
1381 #line 1382 "src/parser_scan.c"
1386 case 'l': goto yy219
;
1387 default: goto yy130
;
1391 #line 118 "src/parser_scan.re"
1392 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
| PSI_NUMBER_U
; cur
+= 1; goto start
; }
1393 #line 1394 "src/parser_scan.c"
1418 case 'f': goto yy220
;
1419 default: goto yy114
;
1423 if (lim
<= cur
) CHECKEOF();;
1491 case 'z': goto yy132
;
1492 case '>': goto yy222
;
1493 default: goto yy114
;
1497 #line 167 "src/parser_scan.re"
1498 { NEWTOKEN(PSI_T_LSHIFT
); goto start
; }
1499 #line 1500 "src/parser_scan.c"
1502 #line 169 "src/parser_scan.re"
1503 { NEWTOKEN(PSI_T_CMP_LE
); goto start
; }
1504 #line 1505 "src/parser_scan.c"
1507 #line 152 "src/parser_scan.re"
1508 { NEWTOKEN(PSI_T_CMP_EQ
); goto start
; }
1509 #line 1510 "src/parser_scan.c"
1512 #line 170 "src/parser_scan.re"
1513 { NEWTOKEN(PSI_T_CMP_GE
); goto start
; }
1514 #line 1515 "src/parser_scan.c"
1517 #line 168 "src/parser_scan.re"
1518 { NEWTOKEN(PSI_T_RSHIFT
); goto start
; }
1519 #line 1520 "src/parser_scan.c"
1522 yych
= *(mrk
= ++cur
);
1525 case 'r': goto yy224
;
1530 yych
= *(mrk
= ++cur
);
1595 case 0x7F: goto yy146
;
1596 case '\\': goto yy147
;
1600 #line 230 "src/parser_scan.re"
1601 { NEWTOKEN(PSI_T_AS
); goto start
; }
1602 #line 1603 "src/parser_scan.c"
1605 if (lim
<= cur
) CHECKEOF();;
1682 case 0x7F: goto yy114
;
1683 default: goto yy183
;
1687 yych
= *(mrk
= ++cur
);
1690 case 'o': goto yy225
;
1695 yych
= *(mrk
= ++cur
);
1698 case 'l': goto yy226
;
1703 yych
= *(mrk
= ++cur
);
1706 case 'u': goto yy227
;
1711 yych
= *(mrk
= ++cur
);
1714 case 'f': goto yy228
;
1719 yych
= *(mrk
= ++cur
);
1722 case 'i': goto yy229
;
1724 case 's': goto yy230
;
1729 yych
= *(mrk
= ++cur
);
1732 case 'd': goto yy231
;
1737 yych
= *(mrk
= ++cur
);
1740 case 'r': goto yy232
;
1745 yych
= *(mrk
= ++cur
);
1748 case 'l': goto yy233
;
1753 yych
= *(mrk
= ++cur
);
1756 case 'o': goto yy234
;
1761 yych
= *(mrk
= ++cur
);
1764 case 'e': goto yy235
;
1769 yych
= *(mrk
= ++cur
);
1772 case 'n': goto yy236
;
1777 yych
= *(mrk
= ++cur
);
1842 case 0x7F: goto yy160
;
1844 case 'd': goto yy237
;
1846 case 'n': goto yy238
;
1847 case '\\': goto yy147
;
1851 #line 200 "src/parser_scan.re"
1852 { NEWTOKEN(PSI_T_IF
); goto start
; }
1853 #line 1854 "src/parser_scan.c"
1856 yych
= *(mrk
= ++cur
);
1859 case 'c': goto yy239
;
1861 case 't': goto yy240
;
1867 #line 135 "src/parser_scan.re"
1868 { char_width
= sizeof(wchar_t)/8; }
1869 #line 1870 "src/parser_scan.c"
1872 yych
= *(mrk
= ++cur
);
1875 case 't': goto yy241
;
1880 yych
= *(mrk
= ++cur
);
1883 case 'b': goto yy243
;
1888 yych
= *(mrk
= ++cur
);
1891 case 'x': goto yy245
;
1896 yych
= *(mrk
= ++cur
);
1899 case 'l': goto yy246
;
1904 yych
= *(mrk
= ++cur
);
1907 case 'j': goto yy247
;
1912 yych
= *(mrk
= ++cur
);
1915 case 't': goto yy248
;
1920 yych
= *(mrk
= ++cur
);
1923 case 's': goto yy249
;
1928 yych
= *(mrk
= ++cur
);
1931 case 'e': goto yy250
;
1936 yych
= *(mrk
= ++cur
);
1939 case 't': goto yy251
;
1944 yych
= *(mrk
= ++cur
);
1947 case 't': goto yy252
;
1952 yych
= *(mrk
= ++cur
);
1955 case 'a': goto yy254
;
1957 case 'r': goto yy255
;
1962 yych
= *(mrk
= ++cur
);
1965 case 'm': goto yy256
;
1970 yych
= *(mrk
= ++cur
);
1972 case '_': goto yy257
;
1977 yych
= *(mrk
= ++cur
);
1980 case 'u': goto yy258
;
1986 #line 134 "src/parser_scan.re"
1988 #line 1989 "src/parser_scan.c"
1991 yych
= *(mrk
= ++cur
);
1994 case 'd': goto yy259
;
1999 yych
= *(mrk
= ++cur
);
2002 case 'r': goto yy260
;
2007 yych
= *(mrk
= ++cur
);
2010 case 'a': goto yy261
;
2016 if (lim
<= cur
) CHECKEOF();;
2082 case 0x7F: goto yy185
;
2083 case '\\': goto yy147
;
2084 default: goto yy183
;
2087 #line 251 "src/parser_scan.re"
2088 { NEWTOKEN(PSI_T_NSNAME
); goto start
; }
2089 #line 2090 "src/parser_scan.c"
2092 yych
= *(mrk
= ++cur
);
2094 case 'a': goto yy262
;
2095 case 'e': goto yy263
;
2096 case 'i': goto yy264
;
2097 case 'r': goto yy265
;
2102 yych
= *(mrk
= ++cur
);
2104 case 'O': goto yy225
;
2105 case 'o': goto yy266
;
2110 yych
= *(mrk
= ++cur
);
2112 case 'a': goto yy267
;
2117 yych
= *(mrk
= ++cur
);
2120 case 'u': goto yy227
;
2121 case 'n': goto yy268
;
2126 yych
= *(mrk
= ++cur
);
2128 case 'u': goto yy269
;
2133 yych
= *(mrk
= ++cur
);
2136 case 'd': goto yy231
;
2137 case 'u': goto yy270
;
2142 yych
= *(mrk
= ++cur
);
2144 case 'O': goto yy234
;
2145 case 'o': goto yy271
;
2150 yych
= *(mrk
= ++cur
);
2153 case 'c': goto yy239
;
2154 case 'T': goto yy240
;
2155 case 'l': goto yy272
;
2156 case 't': goto yy273
;
2161 yych
= *(mrk
= ++cur
);
2164 case 'b': goto yy243
;
2165 case 'n': goto yy275
;
2170 yych
= *(mrk
= ++cur
);
2172 case 'n': goto yy276
;
2177 yych
= *(mrk
= ++cur
);
2180 case 'e': goto yy250
;
2181 case 'a': goto yy277
;
2186 yych
= *(mrk
= ++cur
);
2188 case 'o': goto yy278
;
2193 yych
= *(mrk
= ++cur
);
2195 case 'g': goto yy279
;
2196 case 'z': goto yy280
;
2201 yych
= *(mrk
= ++cur
);
2204 case 'a': goto yy254
;
2205 case 'R': goto yy255
;
2206 case 'r': goto yy281
;
2211 yych
= *(mrk
= ++cur
);
2213 case 'p': goto yy282
;
2219 #line 133 "src/parser_scan.re"
2221 #line 2222 "src/parser_scan.c"
2224 yych
= *(mrk
= ++cur
);
2226 case '"': goto yy283
;
2231 yych
= *(mrk
= ++cur
);
2234 case 'd': goto yy259
;
2235 case 'i': goto yy285
;
2236 case 's': goto yy286
;
2241 yych
= *(mrk
= ++cur
);
2243 case 'i': goto yy287
;
2244 case 'l': goto yy288
;
2249 #line 154 "src/parser_scan.re"
2250 { NEWTOKEN(PSI_T_OR
); goto start
; }
2251 #line 2252 "src/parser_scan.c"
2254 #line 174 "src/parser_scan.re"
2255 { NEWTOKEN(PSI_T_ELLIPSIS
); goto start
; }
2256 #line 2257 "src/parser_scan.c"
2261 case 'd': goto yy289
;
2263 case 'f': goto yy291
;
2265 case 'l': goto yy293
;
2266 default: goto yy114
;
2271 #line 124 "src/parser_scan.re"
2272 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_F
; cur
+= 1; goto start
; }
2273 #line 2274 "src/parser_scan.c"
2277 #line 125 "src/parser_scan.re"
2278 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_L
; cur
+= 1; goto start
; }
2279 #line 2280 "src/parser_scan.c"
2292 case '9': goto yy115
;
2293 default: goto yy114
;
2299 case 'u': goto yy295
;
2300 default: goto yy114
;
2306 #line 120 "src/parser_scan.re"
2307 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
| PSI_NUMBER_UL
; cur
+= 2; goto start
; }
2308 #line 2309 "src/parser_scan.c"
2313 case 'l': goto yy295
;
2314 default: goto yy218
;
2319 if ((lim
- cur
) < 3) CHECKEOF();;
2322 case '.': goto yy297
;
2344 case 'f': goto yy220
;
2346 case 'l': goto yy127
;
2348 case 'p': goto yy126
;
2350 case 'u': goto yy129
;
2355 #line 253 "src/parser_scan.re"
2356 { tok
+= 1; cur
-= 1; NEWTOKEN(PSI_T_CPP_HEADER
); cur
+= 1; goto start
; }
2357 #line 2358 "src/parser_scan.c"
2360 yych
= *(mrk
= ++cur
);
2363 case 'a': goto yy299
;
2365 case 'v': goto yy300
;
2370 yych
= *(mrk
= ++cur
);
2373 case 'l': goto yy301
;
2378 yych
= *(mrk
= ++cur
);
2381 case 'l': goto yy302
;
2386 yych
= *(mrk
= ++cur
);
2389 case 'n': goto yy303
;
2394 yych
= *(mrk
= ++cur
);
2397 case 'i': goto yy304
;
2402 yych
= *(mrk
= ++cur
);
2405 case 'f': goto yy305
;
2410 yych
= *(mrk
= ++cur
);
2413 case 'e': goto yy307
;
2418 yych
= *(mrk
= ++cur
);
2421 case 'i': goto yy309
;
2426 yych
= *(mrk
= ++cur
);
2429 case 'o': goto yy310
;
2434 yych
= *(mrk
= ++cur
);
2437 case 's': goto yy311
;
2442 yych
= *(mrk
= ++cur
);
2445 case 'a': goto yy312
;
2450 yych
= *(mrk
= ++cur
);
2453 case 'e': goto yy313
;
2458 yych
= *(mrk
= ++cur
);
2461 case 'c': goto yy315
;
2466 yych
= *(mrk
= ++cur
);
2469 case 'e': goto yy316
;
2474 yych
= *(mrk
= ++cur
);
2477 case 'd': goto yy317
;
2482 yych
= *(mrk
= ++cur
);
2485 case 'l': goto yy318
;
2490 yych
= *(mrk
= ++cur
);
2493 case 'v': goto yy319
;
2498 yych
= *(mrk
= ++cur
);
2563 case 0x7F: goto yy242
;
2564 case '\\': goto yy147
;
2568 #line 225 "src/parser_scan.re"
2569 { NEWTOKEN(PSI_T_LET
); goto start
; }
2570 #line 2571 "src/parser_scan.c"
2573 yych
= *(mrk
= ++cur
);
2638 case 0x7F: goto yy244
;
2639 case '\\': goto yy147
;
2643 #line 224 "src/parser_scan.re"
2644 { NEWTOKEN(PSI_T_LIB
); goto start
; }
2645 #line 2646 "src/parser_scan.c"
2648 yych
= *(mrk
= ++cur
);
2651 case 'e': goto yy320
;
2656 yych
= *(mrk
= ++cur
);
2659 case 'l': goto yy321
;
2664 yych
= *(mrk
= ++cur
);
2667 case 'e': goto yy323
;
2669 case 'v': goto yy324
;
2674 yych
= *(mrk
= ++cur
);
2677 case 'h': goto yy325
;
2682 yych
= *(mrk
= ++cur
);
2685 case 't': goto yy326
;
2690 yych
= *(mrk
= ++cur
);
2692 case '_': goto yy327
;
2697 yych
= *(mrk
= ++cur
);
2700 case 'u': goto yy328
;
2705 yych
= *(mrk
= ++cur
);
2770 case 0x7F: goto yy253
;
2771 case '\\': goto yy147
;
2775 #line 226 "src/parser_scan.re"
2776 { NEWTOKEN(PSI_T_SET
); goto start
; }
2777 #line 2778 "src/parser_scan.c"
2780 yych
= *(mrk
= ++cur
);
2783 case 't': goto yy329
;
2788 yych
= *(mrk
= ++cur
);
2791 case 'i': goto yy330
;
2793 case 'l': goto yy331
;
2795 case 'v': goto yy332
;
2800 yych
= *(mrk
= ++cur
);
2803 case 'p': goto yy333
;
2808 yych
= *(mrk
= ++cur
);
2811 case 'a': goto yy335
;
2813 case 'b': goto yy336
;
2815 case 'f': goto yy337
;
2817 case 'i': goto yy338
;
2819 case 'o': goto yy339
;
2821 case 's': goto yy340
;
2826 yych
= *(mrk
= ++cur
);
2829 case 'e': goto yy341
;
2834 yych
= *(mrk
= ++cur
);
2837 case 'e': goto yy343
;
2842 yych
= *(mrk
= ++cur
);
2845 case 'n': goto yy344
;
2850 yych
= *(mrk
= ++cur
);
2853 case 'l': goto yy345
;
2858 yych
= *(mrk
= ++cur
);
2860 case 's': goto yy347
;
2861 case 't': goto yy348
;
2866 yych
= *(mrk
= ++cur
);
2868 case 'x': goto yy349
;
2873 yych
= *(mrk
= ++cur
);
2875 case 'n': goto yy350
;
2880 yych
= *(mrk
= ++cur
);
2882 case 'e': goto yy351
;
2887 yych
= *(mrk
= ++cur
);
2889 case 'L': goto yy301
;
2890 case 'l': goto yy352
;
2895 yych
= *(mrk
= ++cur
);
2897 case 'r': goto yy354
;
2902 yych
= *(mrk
= ++cur
);
2904 case 's': goto yy356
;
2909 yych
= *(mrk
= ++cur
);
2911 case 'b': goto yy357
;
2916 yych
= *(mrk
= ++cur
);
2918 case 'm': goto yy358
;
2923 yych
= *(mrk
= ++cur
);
2925 case 'A': goto yy312
;
2926 case 'a': goto yy360
;
2931 yych
= *(mrk
= ++cur
);
2933 case 'i': goto yy361
;
2938 yych
= *(mrk
= ++cur
);
3003 case 0x7F: goto yy274
;
3005 case 'v': goto yy319
;
3006 case '\\': goto yy147
;
3010 #line 194 "src/parser_scan.re"
3011 { NEWTOKEN(PSI_T_INT
); goto start
; }
3012 #line 3013 "src/parser_scan.c"
3015 yych
= *(mrk
= ++cur
);
3017 case 'e': goto yy362
;
3022 yych
= *(mrk
= ++cur
);
3024 case 'g': goto yy364
;
3029 yych
= *(mrk
= ++cur
);
3031 case 'g': goto yy366
;
3036 yych
= *(mrk
= ++cur
);
3038 case 'r': goto yy367
;
3043 yych
= *(mrk
= ++cur
);
3045 case 'n': goto yy368
;
3050 yych
= *(mrk
= ++cur
);
3052 case 'e': goto yy369
;
3057 yych
= *(mrk
= ++cur
);
3060 case 'i': goto yy330
;
3062 case 'l': goto yy331
;
3064 case 'v': goto yy332
;
3065 case 'u': goto yy370
;
3070 yych
= *(mrk
= ++cur
);
3072 case 'e': goto yy371
;
3078 #line 132 "src/parser_scan.re"
3080 #line 3081 "src/parser_scan.c"
3083 yych
= *(mrk
= ++cur
);
3085 case 'o': goto yy372
;
3090 yych
= *(mrk
= ++cur
);
3092 case 'i': goto yy373
;
3097 yych
= *(mrk
= ++cur
);
3099 case 'd': goto yy374
;
3104 yych
= *(mrk
= ++cur
);
3106 case 'a': goto yy376
;
3112 #line 127 "src/parser_scan.re"
3113 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_DD
; cur
+= 2; goto start
; }
3114 #line 3115 "src/parser_scan.c"
3118 #line 126 "src/parser_scan.re"
3119 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_DF
; cur
+= 2; goto start
; }
3120 #line 3121 "src/parser_scan.c"
3124 #line 128 "src/parser_scan.re"
3125 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_DL
; cur
+= 2; goto start
; }
3126 #line 3127 "src/parser_scan.c"
3130 #line 121 "src/parser_scan.re"
3131 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
| PSI_NUMBER_ULL
; cur
+= 3; goto start
; }
3132 #line 3133 "src/parser_scan.c"
3135 if ((lim
- cur
) < 3) CHECKEOF();;
3159 case 'f': goto yy297
;
3161 case 'p': goto yy126
;
3162 default: goto yy114
;
3166 yych
= *(mrk
= ++cur
);
3169 case 'y': goto yy377
;
3174 yych
= *(mrk
= ++cur
);
3177 case 'a': goto yy379
;
3182 yych
= *(mrk
= ++cur
);
3185 case 'v': goto yy380
;
3190 yych
= *(mrk
= ++cur
);
3193 case 'a': goto yy381
;
3195 case 'b': goto yy382
;
3197 case 'o': goto yy383
;
3202 yych
= *(mrk
= ++cur
);
3205 case 't': goto yy384
;
3210 yych
= *(mrk
= ++cur
);
3213 case 'n': goto yy386
;
3218 yych
= *(mrk
= ++cur
);
3283 case 0x7F: goto yy306
;
3284 case '\\': goto yy147
;
3288 #line 204 "src/parser_scan.re"
3289 { NEWTOKEN(PSI_T_ELIF
); goto start
; }
3290 #line 3291 "src/parser_scan.c"
3293 yych
= *(mrk
= ++cur
);
3358 case 0x7F: goto yy308
;
3359 case '\\': goto yy147
;
3363 #line 203 "src/parser_scan.re"
3364 { NEWTOKEN(PSI_T_ELSE
); goto start
; }
3365 #line 3366 "src/parser_scan.c"
3368 yych
= *(mrk
= ++cur
);
3371 case 'f': goto yy387
;
3376 yych
= *(mrk
= ++cur
);
3379 case 'r': goto yy389
;
3384 yych
= *(mrk
= ++cur
);
3387 case 'e': goto yy391
;
3392 yych
= *(mrk
= ++cur
);
3395 case 't': goto yy393
;
3400 yych
= *(mrk
= ++cur
);
3465 case 0x7F: goto yy314
;
3466 case '\\': goto yy147
;
3470 #line 231 "src/parser_scan.re"
3471 { NEWTOKEN(PSI_T_FREE
); goto start
; }
3472 #line 3473 "src/parser_scan.c"
3475 yych
= *(mrk
= ++cur
);
3478 case 't': goto yy394
;
3483 yych
= *(mrk
= ++cur
);
3486 case 'f': goto yy395
;
3491 yych
= *(mrk
= ++cur
);
3494 case 'e': goto yy397
;
3499 yych
= *(mrk
= ++cur
);
3502 case 'u': goto yy398
;
3507 yych
= *(mrk
= ++cur
);
3510 case 'a': goto yy399
;
3515 yych
= *(mrk
= ++cur
);
3518 case 'd': goto yy400
;
3523 yych
= *(mrk
= ++cur
);
3588 case 0x7F: goto yy322
;
3589 case '\\': goto yy147
;
3593 #line 215 "src/parser_scan.re"
3594 { NEWTOKEN(PSI_T_NULL
); goto start
; }
3595 #line 3596 "src/parser_scan.c"
3598 yych
= *(mrk
= ++cur
);
3601 case 'c': goto yy402
;
3606 yych
= *(mrk
= ++cur
);
3609 case 'a': goto yy403
;
3614 yych
= *(mrk
= ++cur
);
3617 case 'v': goto yy404
;
3622 yych
= *(mrk
= ++cur
);
3624 case '_': goto yy405
;
3629 yych
= *(mrk
= ++cur
);
3632 case 'a': goto yy406
;
3637 yych
= *(mrk
= ++cur
);
3640 case 'r': goto yy407
;
3645 yych
= *(mrk
= ++cur
);
3648 case 'i': goto yy408
;
3653 yych
= *(mrk
= ++cur
);
3656 case 'n': goto yy409
;
3661 yych
= *(mrk
= ++cur
);
3664 case 'e': goto yy410
;
3669 yych
= *(mrk
= ++cur
);
3672 case 'a': goto yy411
;
3677 yych
= *(mrk
= ++cur
);
3742 case 0x7F: goto yy334
;
3743 case '\\': goto yy147
;
3747 #line 232 "src/parser_scan.re"
3748 { NEWTOKEN(PSI_T_TEMP
); goto start
; }
3749 #line 3750 "src/parser_scan.c"
3752 yych
= *(mrk
= ++cur
);
3755 case 'r': goto yy412
;
3760 yych
= *(mrk
= ++cur
);
3763 case 'o': goto yy413
;
3768 yych
= *(mrk
= ++cur
);
3771 case 'l': goto yy414
;
3776 yych
= *(mrk
= ++cur
);
3779 case 'n': goto yy415
;
3784 yych
= *(mrk
= ++cur
);
3787 case 'b': goto yy416
;
3792 yych
= *(mrk
= ++cur
);
3795 case 't': goto yy417
;
3800 yych
= *(mrk
= ++cur
);
3865 case 0x7F: goto yy342
;
3866 case '\\': goto yy147
;
3870 #line 213 "src/parser_scan.re"
3871 { NEWTOKEN(PSI_T_TRUE
); goto start
; }
3872 #line 3873 "src/parser_scan.c"
3875 yych
= *(mrk
= ++cur
);
3878 case 'f': goto yy418
;
3883 yych
= *(mrk
= ++cur
);
3886 case 'i': goto yy420
;
3891 yych
= *(mrk
= ++cur
);
3956 case 0x7F: goto yy346
;
3957 case '\\': goto yy147
;
3961 #line 241 "src/parser_scan.re"
3962 { NEWTOKEN(PSI_T_ZVAL
); goto start
; }
3963 #line 3964 "src/parser_scan.c"
3966 yych
= *(mrk
= ++cur
);
3968 case 'm': goto yy421
;
3973 yych
= *(mrk
= ++cur
);
3975 case 't': goto yy423
;
3980 yych
= *(mrk
= ++cur
);
3982 case 't': goto yy424
;
3987 yych
= *(mrk
= ++cur
);
3989 case 'l': goto yy272
;
3994 yych
= *(mrk
= ++cur
);
3996 case 's': goto yy425
;
4001 yych
= *(mrk
= ++cur
);
4066 case 0x7F: goto yy353
;
4068 case 'v': goto yy380
;
4069 case '\\': goto yy147
;
4073 #line 191 "src/parser_scan.re"
4074 { NEWTOKEN(PSI_T_BOOL
); goto start
; }
4075 #line 4076 "src/parser_scan.c"
4078 yych
= *(mrk
= ++cur
);
4143 case 0x7F: goto yy355
;
4144 case '\\': goto yy147
;
4148 #line 192 "src/parser_scan.re"
4149 { NEWTOKEN(PSI_T_CHAR
); goto start
; }
4150 #line 4151 "src/parser_scan.c"
4153 yych
= *(mrk
= ++cur
);
4155 case 't': goto yy426
;
4160 yych
= *(mrk
= ++cur
);
4162 case 'l': goto yy428
;
4167 yych
= *(mrk
= ++cur
);
4232 case 0x7F: goto yy359
;
4233 case '\\': goto yy147
;
4237 #line 188 "src/parser_scan.re"
4238 { NEWTOKEN(PSI_T_ENUM
); goto start
; }
4239 #line 4240 "src/parser_scan.c"
4242 yych
= *(mrk
= ++cur
);
4244 case 'T': goto yy393
;
4245 case 't': goto yy429
;
4250 yych
= *(mrk
= ++cur
);
4252 case 'n': goto yy431
;
4257 yych
= *(mrk
= ++cur
);
4322 case 0x7F: goto yy363
;
4323 case '\\': goto yy147
;
4327 #line 184 "src/parser_scan.re"
4328 { NEWTOKEN(PSI_T_LINE
); goto start
; }
4329 #line 4330 "src/parser_scan.c"
4332 yych
= *(mrk
= ++cur
);
4397 case 0x7F: goto yy365
;
4398 case '\\': goto yy147
;
4402 #line 195 "src/parser_scan.re"
4403 { NEWTOKEN(PSI_T_LONG
); goto start
; }
4404 #line 4405 "src/parser_scan.c"
4407 yych
= *(mrk
= ++cur
);
4409 case 'm': goto yy432
;
4414 yych
= *(mrk
= ++cur
);
4416 case 't': goto yy433
;
4421 yych
= *(mrk
= ++cur
);
4423 case 'e': goto yy435
;
4428 yych
= *(mrk
= ++cur
);
4430 case 'o': goto yy436
;
4435 yych
= *(mrk
= ++cur
);
4437 case 'c': goto yy437
;
4442 yych
= *(mrk
= ++cur
);
4444 case 'd': goto yy438
;
4449 yych
= *(mrk
= ++cur
);
4451 case 'n': goto yy439
;
4456 yych
= *(mrk
= ++cur
);
4458 case 'g': goto yy441
;
4463 yych
= *(mrk
= ++cur
);
4528 case 0x7F: goto yy375
;
4529 case '\\': goto yy147
;
4533 #line 190 "src/parser_scan.re"
4534 { NEWTOKEN(PSI_T_VOID
); goto start
; }
4535 #line 4536 "src/parser_scan.c"
4538 yych
= *(mrk
= ++cur
);
4540 case 't': goto yy442
;
4545 yych
= *(mrk
= ++cur
);
4610 case 0x7F: goto yy378
;
4611 case '\\': goto yy147
;
4615 #line 219 "src/parser_scan.re"
4616 { NEWTOKEN(PSI_T_ARRAY
); goto start
; }
4617 #line 4618 "src/parser_scan.c"
4620 yych
= *(mrk
= ++cur
);
4623 case 'l': goto yy443
;
4628 yych
= *(mrk
= ++cur
);
4631 case 'a': goto yy445
;
4636 yych
= *(mrk
= ++cur
);
4639 case 'b': goto yy446
;
4644 yych
= *(mrk
= ++cur
);
4647 case 'a': goto yy447
;
4652 yych
= *(mrk
= ++cur
);
4655 case 'c': goto yy448
;
4660 yych
= *(mrk
= ++cur
);
4725 case 0x7F: goto yy385
;
4726 case '\\': goto yy147
;
4730 #line 242 "src/parser_scan.re"
4731 { NEWTOKEN(PSI_T_COUNT
); goto start
; }
4732 #line 4733 "src/parser_scan.c"
4735 yych
= *(mrk
= ++cur
);
4738 case 'e': goto yy450
;
4743 yych
= *(mrk
= ++cur
);
4808 case 0x7F: goto yy388
;
4809 case '\\': goto yy147
;
4813 #line 205 "src/parser_scan.re"
4814 { NEWTOKEN(PSI_T_ENDIF
); goto start
; }
4815 #line 4816 "src/parser_scan.c"
4818 yych
= *(mrk
= ++cur
);
4883 case 0x7F: goto yy390
;
4884 case '\\': goto yy147
;
4888 #line 210 "src/parser_scan.re"
4889 { NEWTOKEN(PSI_T_ERROR
); goto start
; }
4890 #line 4891 "src/parser_scan.c"
4893 yych
= *(mrk
= ++cur
);
4958 case 0x7F: goto yy392
;
4959 case '\\': goto yy147
;
4963 #line 214 "src/parser_scan.re"
4964 { NEWTOKEN(PSI_T_FALSE
); goto start
; }
4965 #line 4966 "src/parser_scan.c"
4968 yych
= *(mrk
= ++cur
);
4971 case 'v': goto yy452
;
4976 yych
= *(mrk
= ++cur
);
4979 case 'i': goto yy453
;
4984 yych
= *(mrk
= ++cur
);
5049 case 0x7F: goto yy396
;
5050 case '\\': goto yy147
;
5054 #line 201 "src/parser_scan.re"
5055 { NEWTOKEN(PSI_T_IFDEF
); goto start
; }
5056 #line 5057 "src/parser_scan.c"
5059 yych
= *(mrk
= ++cur
);
5062 case 'f': goto yy454
;
5067 yych
= *(mrk
= ++cur
);
5070 case 'd': goto yy456
;
5075 yych
= *(mrk
= ++cur
);
5078 case 'l': goto yy457
;
5083 yych
= *(mrk
= ++cur
);
5148 case 0x7F: goto yy401
;
5149 case '\\': goto yy147
;
5153 #line 216 "src/parser_scan.re"
5154 { NEWTOKEN(PSI_T_MIXED
); goto start
; }
5155 #line 5156 "src/parser_scan.c"
5158 yych
= *(mrk
= ++cur
);
5161 case 't': goto yy459
;
5166 yych
= *(mrk
= ++cur
);
5169 case 'l': goto yy461
;
5174 yych
= *(mrk
= ++cur
);
5177 case 'a': goto yy463
;
5182 yych
= *(mrk
= ++cur
);
5185 case 'a': goto yy464
;
5190 yych
= *(mrk
= ++cur
);
5193 case 's': goto yy465
;
5198 yych
= *(mrk
= ++cur
);
5201 case 'n': goto yy466
;
5206 yych
= *(mrk
= ++cur
);
5209 case 'c': goto yy468
;
5214 yych
= *(mrk
= ++cur
);
5217 case 'g': goto yy470
;
5222 yych
= *(mrk
= ++cur
);
5225 case 'n': goto yy472
;
5230 yych
= *(mrk
= ++cur
);
5233 case 'l': goto yy474
;
5238 yych
= *(mrk
= ++cur
);
5241 case 'r': goto yy476
;
5246 yych
= *(mrk
= ++cur
);
5249 case 'o': goto yy477
;
5254 yych
= *(mrk
= ++cur
);
5257 case 'o': goto yy478
;
5262 yych
= *(mrk
= ++cur
);
5265 case 't': goto yy479
;
5270 yych
= *(mrk
= ++cur
);
5273 case 'j': goto yy481
;
5278 yych
= *(mrk
= ++cur
);
5281 case 'r': goto yy482
;
5286 yych
= *(mrk
= ++cur
);
5351 case 0x7F: goto yy419
;
5352 case '\\': goto yy147
;
5356 #line 208 "src/parser_scan.re"
5357 { NEWTOKEN(PSI_T_UNDEF
); goto start
; }
5358 #line 5359 "src/parser_scan.c"
5361 yych
= *(mrk
= ++cur
);
5364 case 'n': goto yy483
;
5369 yych
= *(mrk
= ++cur
);
5434 case 0x7F: goto yy422
;
5435 case '\\': goto yy147
;
5436 case '_': goto yy484
;
5440 #line 181 "src/parser_scan.re"
5441 { NEWTOKEN(PSI_T_CPP_ASM
); goto start
; }
5442 #line 5443 "src/parser_scan.c"
5445 yych
= *(mrk
= ++cur
);
5447 case 'r': goto yy485
;
5452 yych
= *(mrk
= ++cur
);
5454 case 'e': goto yy486
;
5459 yych
= *(mrk
= ++cur
);
5461 case 't': goto yy487
;
5466 yych
= *(mrk
= ++cur
);
5531 case 0x7F: goto yy427
;
5532 case '\\': goto yy147
;
5536 #line 189 "src/parser_scan.re"
5537 { NEWTOKEN(PSI_T_CONST
); goto start
; }
5538 #line 5539 "src/parser_scan.c"
5541 yych
= *(mrk
= ++cur
);
5543 case 'e': goto yy488
;
5548 yych
= *(mrk
= ++cur
);
5613 case 0x7F: goto yy430
;
5615 case 'v': goto yy452
;
5616 case '\\': goto yy147
;
5620 #line 196 "src/parser_scan.re"
5621 { NEWTOKEN(PSI_T_FLOAT
); goto start
; }
5622 #line 5623 "src/parser_scan.c"
5625 yych
= *(mrk
= ++cur
);
5627 case 'e': goto yy490
;
5632 yych
= *(mrk
= ++cur
);
5634 case 'a': goto yy492
;
5639 yych
= *(mrk
= ++cur
);
5704 case 0x7F: goto yy434
;
5705 case '\\': goto yy147
;
5709 #line 193 "src/parser_scan.re"
5710 { NEWTOKEN(PSI_T_SHORT
); goto start
; }
5711 #line 5712 "src/parser_scan.c"
5714 yych
= *(mrk
= ++cur
);
5716 case 'd': goto yy494
;
5721 yych
= *(mrk
= ++cur
);
5723 case 'f': goto yy496
;
5728 yych
= *(mrk
= ++cur
);
5730 case 't': goto yy498
;
5735 yych
= *(mrk
= ++cur
);
5737 case 'e': goto yy500
;
5742 yych
= *(mrk
= ++cur
);
5807 case 0x7F: goto yy440
;
5808 case '\\': goto yy147
;
5812 #line 187 "src/parser_scan.re"
5813 { NEWTOKEN(PSI_T_UNION
); goto start
; }
5814 #line 5815 "src/parser_scan.c"
5817 yych
= *(mrk
= ++cur
);
5819 case 'n': goto yy501
;
5824 yych
= *(mrk
= ++cur
);
5826 case 'i': goto yy502
;
5831 yych
= *(mrk
= ++cur
);
5896 case 0x7F: goto yy444
;
5897 case '\\': goto yy147
;
5901 #line 239 "src/parser_scan.re"
5902 { NEWTOKEN(PSI_T_ARRVAL
); goto start
; }
5903 #line 5904 "src/parser_scan.c"
5906 yych
= *(mrk
= ++cur
);
5909 case 'l': goto yy503
;
5914 yych
= *(mrk
= ++cur
);
5917 case 'l': goto yy505
;
5922 yych
= *(mrk
= ++cur
);
5925 case 'c': goto yy506
;
5930 yych
= *(mrk
= ++cur
);
5995 case 0x7F: goto yy449
;
5996 case '\\': goto yy147
;
6000 #line 243 "src/parser_scan.re"
6001 { NEWTOKEN(PSI_T_CALLOC
); goto start
; }
6002 #line 6003 "src/parser_scan.c"
6005 yych
= *(mrk
= ++cur
);
6070 case 0x7F: goto yy451
;
6072 case 'd': goto yy507
;
6073 case '\\': goto yy147
;
6077 #line 206 "src/parser_scan.re"
6078 { NEWTOKEN(PSI_T_DEFINE
); goto start
; }
6079 #line 6080 "src/parser_scan.c"
6082 yych
= *(mrk
= ++cur
);
6085 case 'a': goto yy509
;
6090 yych
= *(mrk
= ++cur
);
6093 case 'o': goto yy510
;
6098 yych
= *(mrk
= ++cur
);
6163 case 0x7F: goto yy455
;
6164 case '\\': goto yy147
;
6168 #line 202 "src/parser_scan.re"
6169 { NEWTOKEN(PSI_T_IFNDEF
); goto start
; }
6170 #line 6171 "src/parser_scan.c"
6173 yych
= *(mrk
= ++cur
);
6176 case 'e': goto yy511
;
6181 yych
= *(mrk
= ++cur
);
6246 case 0x7F: goto yy458
;
6247 case '\\': goto yy147
;
6251 #line 236 "src/parser_scan.re"
6252 { NEWTOKEN(PSI_T_INTVAL
); goto start
; }
6253 #line 6254 "src/parser_scan.c"
6256 yych
= *(mrk
= ++cur
);
6321 case 0x7F: goto yy460
;
6322 case '\\': goto yy147
;
6326 #line 220 "src/parser_scan.re"
6327 { NEWTOKEN(PSI_T_OBJECT
); goto start
; }
6328 #line 6329 "src/parser_scan.c"
6331 yych
= *(mrk
= ++cur
);
6396 case 0x7F: goto yy462
;
6397 case '\\': goto yy147
;
6401 #line 240 "src/parser_scan.re"
6402 { NEWTOKEN(PSI_T_OBJVAL
); goto start
; }
6403 #line 6404 "src/parser_scan.c"
6406 yych
= *(mrk
= ++cur
);
6409 case 'l': goto yy513
;
6414 yych
= *(mrk
= ++cur
);
6417 case 's': goto yy515
;
6422 yych
= *(mrk
= ++cur
);
6425 case 's': goto yy516
;
6430 yych
= *(mrk
= ++cur
);
6495 case 0x7F: goto yy467
;
6496 case '\\': goto yy147
;
6500 #line 229 "src/parser_scan.re"
6501 { NEWTOKEN(PSI_T_RETURN
); goto start
; }
6502 #line 6503 "src/parser_scan.c"
6505 yych
= *(mrk
= ++cur
);
6570 case 0x7F: goto yy469
;
6571 case '\\': goto yy147
;
6575 #line 222 "src/parser_scan.re"
6576 { NEWTOKEN(PSI_T_STATIC
); goto start
; }
6577 #line 6578 "src/parser_scan.c"
6580 yych
= *(mrk
= ++cur
);
6645 case 0x7F: goto yy471
;
6646 case '\\': goto yy147
;
6650 #line 218 "src/parser_scan.re"
6651 { NEWTOKEN(PSI_T_STRING
); goto start
; }
6652 #line 6653 "src/parser_scan.c"
6655 yych
= *(mrk
= ++cur
);
6720 case 0x7F: goto yy473
;
6721 case '\\': goto yy147
;
6725 #line 233 "src/parser_scan.re"
6726 { NEWTOKEN(PSI_T_STRLEN
); goto start
; }
6727 #line 6728 "src/parser_scan.c"
6730 yych
= *(mrk
= ++cur
);
6795 case 0x7F: goto yy475
;
6796 case '\\': goto yy147
;
6800 #line 234 "src/parser_scan.re"
6801 { NEWTOKEN(PSI_T_STRVAL
); goto start
; }
6802 #line 6803 "src/parser_scan.c"
6805 yych
= *(mrk
= ++cur
);
6808 case 'a': goto yy517
;
6813 yych
= *(mrk
= ++cur
);
6816 case 'l': goto yy518
;
6821 yych
= *(mrk
= ++cur
);
6824 case 'a': goto yy520
;
6829 yych
= *(mrk
= ++cur
);
6894 case 0x7F: goto yy480
;
6895 case '\\': goto yy147
;
6899 #line 247 "src/parser_scan.re"
6900 { NEWTOKEN(PSI_T_TO_INT
); goto start
; }
6901 #line 6902 "src/parser_scan.c"
6904 yych
= *(mrk
= ++cur
);
6907 case 'e': goto yy521
;
6912 yych
= *(mrk
= ++cur
);
6915 case 'i': goto yy522
;
6920 yych
= *(mrk
= ++cur
);
6923 case 'g': goto yy523
;
6928 yych
= *(mrk
= ++cur
);
6930 case '_': goto yy525
;
6935 yych
= *(mrk
= ++cur
);
6937 case 'i': goto yy526
;
6942 yych
= *(mrk
= ++cur
);
6944 case 'n': goto yy527
;
6949 yych
= *(mrk
= ++cur
);
6951 case 'r': goto yy528
;
6956 yych
= *(mrk
= ++cur
);
7021 case 0x7F: goto yy489
;
7022 case '\\': goto yy147
;
7026 #line 197 "src/parser_scan.re"
7027 { NEWTOKEN(PSI_T_DOUBLE
); goto start
; }
7028 #line 7029 "src/parser_scan.c"
7031 yych
= *(mrk
= ++cur
);
7096 case 0x7F: goto yy491
;
7097 case '\\': goto yy147
;
7101 #line 178 "src/parser_scan.re"
7102 { NEWTOKEN(PSI_T_CPP_INLINE
); goto start
; }
7103 #line 7104 "src/parser_scan.c"
7106 yych
= *(mrk
= ++cur
);
7171 case 0x7F: goto yy493
;
7172 case '\\': goto yy147
;
7173 default: goto yy529
;
7176 #line 176 "src/parser_scan.re"
7177 { NEWTOKEN(PSI_T_PRAGMA
); goto start
; }
7178 #line 7179 "src/parser_scan.c"
7181 yych
= *(mrk
= ++cur
);
7246 case 0x7F: goto yy495
;
7247 case '\\': goto yy147
;
7251 #line 199 "src/parser_scan.re"
7252 { NEWTOKEN(PSI_T_SIGNED
); goto start
; }
7253 #line 7254 "src/parser_scan.c"
7256 yych
= *(mrk
= ++cur
);
7321 case 0x7F: goto yy497
;
7322 case '\\': goto yy147
;
7326 #line 183 "src/parser_scan.re"
7327 { NEWTOKEN(PSI_T_SIZEOF
); goto start
; }
7328 #line 7329 "src/parser_scan.c"
7331 yych
= *(mrk
= ++cur
);
7396 case 0x7F: goto yy499
;
7397 case '\\': goto yy147
;
7401 #line 186 "src/parser_scan.re"
7402 { NEWTOKEN(PSI_T_STRUCT
); goto start
; }
7403 #line 7404 "src/parser_scan.c"
7406 yych
= *(mrk
= ++cur
);
7408 case 'f': goto yy531
;
7413 yych
= *(mrk
= ++cur
);
7415 case 'e': goto yy533
;
7420 yych
= *(mrk
= ++cur
);
7422 case 'l': goto yy534
;
7427 yych
= *(mrk
= ++cur
);
7492 case 0x7F: goto yy504
;
7493 case '\\': goto yy147
;
7497 #line 238 "src/parser_scan.re"
7498 { NEWTOKEN(PSI_T_BOOLVAL
); goto start
; }
7499 #line 7500 "src/parser_scan.c"
7502 yych
= *(mrk
= ++cur
);
7505 case 'e': goto yy535
;
7510 yych
= *(mrk
= ++cur
);
7513 case 'k': goto yy537
;
7518 yych
= *(mrk
= ++cur
);
7583 case 0x7F: goto yy508
;
7584 case '\\': goto yy147
;
7588 #line 207 "src/parser_scan.re"
7589 { NEWTOKEN(PSI_T_DEFINED
); goto start
; }
7590 #line 7591 "src/parser_scan.c"
7593 yych
= *(mrk
= ++cur
);
7596 case 'l': goto yy539
;
7601 yych
= *(mrk
= ++cur
);
7604 case 'n': goto yy541
;
7609 yych
= *(mrk
= ++cur
);
7674 case 0x7F: goto yy512
;
7675 case '\\': goto yy147
;
7676 case '_': goto yy543
;
7680 #line 211 "src/parser_scan.re"
7681 { NEWTOKEN(PSI_T_INCLUDE
); goto start
; }
7682 #line 7683 "src/parser_scan.c"
7685 yych
= *(mrk
= ++cur
);
7750 case 0x7F: goto yy514
;
7751 case '\\': goto yy147
;
7755 #line 235 "src/parser_scan.re"
7756 { NEWTOKEN(PSI_T_PATHVAL
); goto start
; }
7757 #line 7758 "src/parser_scan.c"
7760 yych
= *(mrk
= ++cur
);
7763 case 's': goto yy544
;
7768 yych
= *(mrk
= ++cur
);
7771 case 'e': goto yy545
;
7776 yych
= *(mrk
= ++cur
);
7779 case 'y': goto yy546
;
7784 yych
= *(mrk
= ++cur
);
7849 case 0x7F: goto yy519
;
7850 case '\\': goto yy147
;
7854 #line 249 "src/parser_scan.re"
7855 { NEWTOKEN(PSI_T_TO_BOOL
); goto start
; }
7856 #line 7857 "src/parser_scan.c"
7859 yych
= *(mrk
= ++cur
);
7862 case 't': goto yy548
;
7867 yych
= *(mrk
= ++cur
);
7870 case 'c': goto yy550
;
7875 yych
= *(mrk
= ++cur
);
7878 case 'n': goto yy551
;
7883 yych
= *(mrk
= ++cur
);
7948 case 0x7F: goto yy524
;
7949 case '\\': goto yy147
;
7953 #line 209 "src/parser_scan.re"
7954 { NEWTOKEN(PSI_T_WARNING
); goto start
; }
7955 #line 7956 "src/parser_scan.c"
7958 yych
= *(mrk
= ++cur
);
8023 case 0x7F: goto yy422
;
8024 case '\\': goto yy147
;
8029 yych
= *(mrk
= ++cur
);
8031 case 'b': goto yy552
;
8036 yych
= *(mrk
= ++cur
);
8038 case 's': goto yy553
;
8043 yych
= *(mrk
= ++cur
);
8045 case 'i': goto yy554
;
8051 if (lim
<= cur
) CHECKEOF();;
8117 case 0x7F: goto yy55
;
8118 case '\\': goto yy147
;
8119 case 'o': goto yy555
;
8120 default: goto yy529
;
8124 yych
= *(mrk
= ++cur
);
8189 case 0x7F: goto yy532
;
8190 case '\\': goto yy147
;
8194 #line 185 "src/parser_scan.re"
8195 { NEWTOKEN(PSI_T_TYPEDEF
); goto start
; }
8196 #line 8197 "src/parser_scan.c"
8199 yych
= *(mrk
= ++cur
);
8201 case 'd': goto yy557
;
8206 yych
= *(mrk
= ++cur
);
8208 case 'e': goto yy559
;
8213 yych
= *(mrk
= ++cur
);
8278 case 0x7F: goto yy536
;
8279 case '\\': goto yy147
;
8283 #line 217 "src/parser_scan.re"
8284 { NEWTOKEN(PSI_T_CALLABLE
); goto start
; }
8285 #line 8286 "src/parser_scan.c"
8288 yych
= *(mrk
= ++cur
);
8353 case 0x7F: goto yy538
;
8354 case '\\': goto yy147
;
8358 #line 221 "src/parser_scan.re"
8359 { NEWTOKEN(PSI_T_CALLBACK
); goto start
; }
8360 #line 8361 "src/parser_scan.c"
8363 yych
= *(mrk
= ++cur
);
8428 case 0x7F: goto yy540
;
8429 case '\\': goto yy147
;
8433 #line 237 "src/parser_scan.re"
8434 { NEWTOKEN(PSI_T_FLOATVAL
); goto start
; }
8435 #line 8436 "src/parser_scan.c"
8438 yych
= *(mrk
= ++cur
);
8503 case 0x7F: goto yy542
;
8504 case '\\': goto yy147
;
8508 #line 223 "src/parser_scan.re"
8509 { NEWTOKEN(PSI_T_FUNCTION
); goto start
; }
8510 #line 8511 "src/parser_scan.c"
8513 yych
= *(mrk
= ++cur
);
8516 case 'n': goto yy561
;
8521 yych
= *(mrk
= ++cur
);
8524 case 'e': goto yy562
;
8529 yych
= *(mrk
= ++cur
);
8532 case 'r': goto yy563
;
8537 yych
= *(mrk
= ++cur
);
8602 case 0x7F: goto yy547
;
8603 case '\\': goto yy147
;
8607 #line 245 "src/parser_scan.re"
8608 { NEWTOKEN(PSI_T_TO_ARRAY
); goto start
; }
8609 #line 8610 "src/parser_scan.c"
8612 yych
= *(mrk
= ++cur
);
8677 case 0x7F: goto yy549
;
8678 case '\\': goto yy147
;
8682 #line 248 "src/parser_scan.re"
8683 { NEWTOKEN(PSI_T_TO_FLOAT
); goto start
; }
8684 #line 8685 "src/parser_scan.c"
8687 yych
= *(mrk
= ++cur
);
8690 case 't': goto yy564
;
8695 yych
= *(mrk
= ++cur
);
8698 case 'g': goto yy566
;
8703 yych
= *(mrk
= ++cur
);
8705 case 'u': goto yy568
;
8710 yych
= *(mrk
= ++cur
);
8712 case 'i': goto yy569
;
8717 yych
= *(mrk
= ++cur
);
8719 case 'c': goto yy570
;
8725 if (lim
<= cur
) CHECKEOF();;
8791 case 0x7F: goto yy55
;
8792 case '\\': goto yy147
;
8793 case 'n': goto yy571
;
8794 case 'o': goto yy555
;
8795 default: goto yy529
;
8799 yych
= *(mrk
= ++cur
);
8864 case 0x7F: goto yy558
;
8865 case '\\': goto yy147
;
8869 #line 198 "src/parser_scan.re"
8870 { NEWTOKEN(PSI_T_UNSIGNED
); goto start
; }
8871 #line 8872 "src/parser_scan.c"
8874 yych
= *(mrk
= ++cur
);
8939 case 0x7F: goto yy560
;
8940 case '\\': goto yy147
;
8944 #line 182 "src/parser_scan.re"
8945 { NEWTOKEN(PSI_T_VOLATILE
); goto start
; }
8946 #line 8947 "src/parser_scan.c"
8949 yych
= *(mrk
= ++cur
);
8952 case 'e': goto yy572
;
8957 yych
= *(mrk
= ++cur
);
8960 case 'r': goto yy573
;
8965 yych
= *(mrk
= ++cur
);
8968 case 't': goto yy574
;
8973 yych
= *(mrk
= ++cur
);
9038 case 0x7F: goto yy565
;
9039 case '\\': goto yy147
;
9043 #line 244 "src/parser_scan.re"
9044 { NEWTOKEN(PSI_T_TO_OBJECT
); goto start
; }
9045 #line 9046 "src/parser_scan.c"
9048 yych
= *(mrk
= ++cur
);
9113 case 0x7F: goto yy567
;
9114 case '\\': goto yy147
;
9118 #line 246 "src/parser_scan.re"
9119 { NEWTOKEN(PSI_T_TO_STRING
); goto start
; }
9120 #line 9121 "src/parser_scan.c"
9123 yych
= *(mrk
= ++cur
);
9125 case 't': goto yy576
;
9130 yych
= *(mrk
= ++cur
);
9132 case 'o': goto yy577
;
9137 yych
= *(mrk
= ++cur
);
9139 case 't': goto yy578
;
9145 if (lim
<= cur
) CHECKEOF();;
9211 case 0x7F: goto yy55
;
9212 case '\\': goto yy147
;
9213 case 'c': goto yy580
;
9214 case 'o': goto yy555
;
9215 default: goto yy529
;
9219 yych
= *(mrk
= ++cur
);
9222 case 'x': goto yy581
;
9227 yych
= *(mrk
= ++cur
);
9230 case 't': goto yy582
;
9235 yych
= *(mrk
= ++cur
);
9300 case 0x7F: goto yy575
;
9301 case '\\': goto yy147
;
9305 #line 227 "src/parser_scan.re"
9306 { NEWTOKEN(PSI_T_PRE_ASSERT
); goto start
; }
9307 #line 9308 "src/parser_scan.c"
9310 yych
= *(mrk
= ++cur
);
9312 case 'e': goto yy584
;
9317 yych
= *(mrk
= ++cur
);
9319 case 'n': goto yy585
;
9324 yych
= *(mrk
= ++cur
);
9389 case 0x7F: goto yy579
;
9390 case '\\': goto yy147
;
9394 #line 179 "src/parser_scan.re"
9395 { NEWTOKEN(PSI_T_CPP_RESTRICT
); goto start
; }
9396 #line 9397 "src/parser_scan.c"
9400 if (lim
<= cur
) CHECKEOF();;
9466 case 0x7F: goto yy55
;
9467 case '\\': goto yy147
;
9468 case 'e': goto yy586
;
9469 case 'o': goto yy555
;
9470 default: goto yy529
;
9474 yych
= *(mrk
= ++cur
);
9477 case 't': goto yy588
;
9482 yych
= *(mrk
= ++cur
);
9547 case 0x7F: goto yy583
;
9548 case '\\': goto yy147
;
9552 #line 228 "src/parser_scan.re"
9553 { NEWTOKEN(PSI_T_POST_ASSERT
); goto start
; }
9554 #line 9555 "src/parser_scan.c"
9557 yych
= *(mrk
= ++cur
);
9559 case '_': goto yy590
;
9564 yych
= *(mrk
= ++cur
);
9566 case '_': goto yy591
;
9572 if (lim
<= cur
) CHECKEOF();;
9638 case 0x7F: goto yy587
;
9639 case '\\': goto yy147
;
9640 case 'o': goto yy555
;
9641 default: goto yy529
;
9644 #line 177 "src/parser_scan.re"
9645 { NEWTOKEN(PSI_T_PRAGMA_ONCE
); goto start
; }
9646 #line 9647 "src/parser_scan.c"
9649 yych
= *(mrk
= ++cur
);
9714 case 0x7F: goto yy589
;
9715 case '\\': goto yy147
;
9719 #line 212 "src/parser_scan.re"
9720 { NEWTOKEN(PSI_T_INCLUDE_NEXT
); goto start
; }
9721 #line 9722 "src/parser_scan.c"
9724 yych
= *(mrk
= ++cur
);
9726 case '_': goto yy592
;
9731 yych
= *(mrk
= ++cur
);
9733 case '_': goto yy593
;
9738 yych
= *(mrk
= ++cur
);
9742 case ' ': goto yy595
;
9743 case '(': goto yy597
;
9748 yych
= *(mrk
= ++cur
);
9813 case 0x7F: goto yy594
;
9814 case '\\': goto yy147
;
9818 #line 180 "src/parser_scan.re"
9819 { NEWTOKEN(PSI_T_CPP_EXTENSION
); goto start
; }
9820 #line 9821 "src/parser_scan.c"
9823 if ((lim
- cur
) < 2) CHECKEOF();;
9828 case ' ': goto yy595
;
9829 case '(': goto yy597
;
9830 default: goto yy114
;
9835 case '(': goto yy598
;
9836 default: goto yy114
;
9840 #line 254 "src/parser_scan.re"
9841 { parens
= 2; goto cpp_attribute
; }
9842 #line 9843 "src/parser_scan.c"
9844 #line 260 "src/parser_scan.re"
9849 #line 9850 "src/parser_scan.c"
9852 if (lim
<= cur
) CHECKEOF();;
9856 case '\r': goto yy604
;
9857 case '\'': goto yy606
;
9858 case '\\': goto yy608
;
9859 default: goto yy602
;
9863 #line 278 "src/parser_scan.re"
9864 { escaped
= false; goto character
; }
9865 #line 9866 "src/parser_scan.c"
9868 #line 265 "src/parser_scan.re"
9869 { NEWLINE(); goto character
; }
9870 #line 9871 "src/parser_scan.c"
9873 #line 267 "src/parser_scan.re"
9880 NEWTOKEN(PSI_T_QUOTED_CHAR
);
9882 token
->flags
= char_width
;
9885 #line 9886 "src/parser_scan.c"
9888 #line 266 "src/parser_scan.re"
9889 { escaped
= !escaped
; goto character
; }
9890 #line 9891 "src/parser_scan.c"
9892 #line 280 "src/parser_scan.re"
9897 #line 9898 "src/parser_scan.c"
9900 if (lim
<= cur
) CHECKEOF();;
9904 case '\r': goto yy614
;
9905 case '"': goto yy616
;
9906 case '\\': goto yy618
;
9907 default: goto yy612
;
9911 #line 298 "src/parser_scan.re"
9912 { escaped
= false; goto string
; }
9913 #line 9914 "src/parser_scan.c"
9916 #line 285 "src/parser_scan.re"
9917 { NEWLINE(); goto string
; }
9918 #line 9919 "src/parser_scan.c"
9921 #line 287 "src/parser_scan.re"
9928 NEWTOKEN(PSI_T_QUOTED_STRING
);
9930 token
->flags
= char_width
;
9933 #line 9934 "src/parser_scan.c"
9936 #line 286 "src/parser_scan.re"
9937 { escaped
= !escaped
; goto string
; }
9938 #line 9939 "src/parser_scan.c"
9940 #line 300 "src/parser_scan.re"
9945 #line 9946 "src/parser_scan.c"
9948 if ((lim
- cur
) < 2) CHECKEOF();;
9952 case '\r': goto yy624
;
9953 case '*': goto yy626
;
9954 default: goto yy622
;
9959 #line 307 "src/parser_scan.re"
9961 #line 9962 "src/parser_scan.c"
9964 #line 305 "src/parser_scan.re"
9965 { NEWLINE(); goto comment
; }
9966 #line 9967 "src/parser_scan.c"
9970 case '/': goto yy627
;
9971 default: goto yy623
;
9975 #line 306 "src/parser_scan.re"
9976 { NEWTOKEN(PSI_T_COMMENT
); goto start
; }
9977 #line 9978 "src/parser_scan.c"
9979 #line 309 "src/parser_scan.re"
9984 #line 9985 "src/parser_scan.c"
9987 if (lim
<= cur
) CHECKEOF();;
9991 case '\r': goto yy633
;
9992 default: goto yy631
;
9996 #line 315 "src/parser_scan.re"
9997 { goto comment_sl
; }
9998 #line 9999 "src/parser_scan.c"
10001 #line 314 "src/parser_scan.re"
10002 { NEWTOKEN(PSI_T_COMMENT
); tok
= cur
- 1; NEWTOKEN(PSI_T_EOL
); NEWLINE(); goto start
; }
10003 #line 10004 "src/parser_scan.c"
10005 #line 317 "src/parser_scan.re"
10011 #line 10012 "src/parser_scan.c"
10013 unsigned char yych
;
10014 if (lim
<= cur
) CHECKEOF();;
10018 case '\r': goto yy639
;
10019 case '(': goto yy641
;
10020 case ')': goto yy643
;
10021 default: goto yy637
;
10025 #line 326 "src/parser_scan.re"
10026 { goto cpp_attribute
; }
10027 #line 10028 "src/parser_scan.c"
10030 #line 325 "src/parser_scan.re"
10031 { NEWLINE(); goto cpp_attribute
; }
10032 #line 10033 "src/parser_scan.c"
10035 #line 323 "src/parser_scan.re"
10036 { ++parens
; goto cpp_attribute
; }
10037 #line 10038 "src/parser_scan.c"
10040 #line 324 "src/parser_scan.re"
10041 { if (parens
== 1) { NEWTOKEN(PSI_T_CPP_ATTRIBUTE
); goto start
; } else { --parens
; goto cpp_attribute
; } }
10042 #line 10043 "src/parser_scan.c"
10044 #line 328 "src/parser_scan.re"
10048 P
->error(PSI_DATA(P
), token
, PSI_WARNING
, "PSI syntax error: unexpected input (%d) '%.*s' at col %tu",
10049 token
->type
, token
->text
->len
, token
->text
->val
, tok
- eol
+ 1);
10050 psi_plist_free(tokens
);
10055 PSI_DEBUG_PRINT(P
, "PSI: EOF cur=%p lim=%p\n", cur
, lim
);