1 /* Generated by re2c 1.1.1 on Thu Dec 13 16:05:05 2018 */
2 #line 1 "src/parser_scan.re"
3 /*******************************************************************************
4 Copyright (c) 2016, Michael Wallner <mike@php.net>.
7 Redistribution and use in source and binary forms, with or without
8 modification, are permitted provided that the following conditions are met:
10 * Redistributions of source code must retain the above copyright notice,
11 this list of conditions and the following disclaimer.
12 * Redistributions in binary form must reproduce the above copyright
13 notice, this list of conditions and the following disclaimer in the
14 documentation and/or other materials provided with the distribution.
16 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
20 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 *******************************************************************************/
31 # include "php_config.h"
41 # define YYMAXFILL 256
44 size_t psi_parser_maxfill(void) {
52 #define NEWTOKEN(t) do { \
53 if (t == PSI_T_COMMENT || t == PSI_T_WHITESPACE) { \
54 token = psi_token_init(t, "", 0, tok - eol + 1, lines, I->file); \
56 token = psi_token_init(t, tok, cur - tok, tok - eol + 1, lines, I->file); \
58 tokens = psi_plist_add(tokens, &token); \
60 PSI_DEBUG_PRINT(P, "PSI: scanned < "); \
61 PSI_DEBUG_DUMP(P, psi_token_dump, token); \
65 #define CHECKEOF() if (cur >= lim - YYMAXFILL) goto done
67 struct psi_plist
*psi_parser_scan(struct psi_parser
*P
, struct psi_parser_input
*I
)
69 struct psi_plist
*tokens
;
70 struct psi_token
*token
;
71 const char *tok
, *cur
, *lim
, *mrk
, *eol
, *ctxmrk
;
72 unsigned char_width
, parens
, lines
= 1;
75 PSI_DEBUG_PRINT(P
, "PSI: scanning %s\n", I
->file
->val
);
77 tok
= mrk
= eol
= cur
= I
->buffer
;
78 lim
= I
->buffer
+ I
->length
+ YYMAXFILL
;
79 tokens
= psi_plist_init((psi_plist_dtor
) psi_token_free
);
89 #line 90 "src/parser_scan.c"
92 unsigned int yyaccept
= 0;
93 if ((lim
- cur
) < 15) CHECKEOF();;
138 case '\'': goto yy20
;
189 case '\\': goto yy77
;
207 case '}': goto yy100
;
208 case '~': goto yy102
;
214 #line 253 "src/parser_scan.re"
215 { CHECKEOF(); NEWTOKEN(-2); goto error
; }
216 #line 217 "src/parser_scan.c"
219 if (lim
<= cur
) CHECKEOF();;
228 #line 252 "src/parser_scan.re"
229 { NEWTOKEN(PSI_T_WHITESPACE
); goto start
; }
230 #line 231 "src/parser_scan.c"
233 #line 251 "src/parser_scan.re"
234 { NEWTOKEN(PSI_T_EOL
); NEWLINE(); goto start
; }
235 #line 236 "src/parser_scan.c"
239 case '=': goto yy104
;
243 #line 156 "src/parser_scan.re"
244 { NEWTOKEN(PSI_T_NOT
); goto start
; }
245 #line 246 "src/parser_scan.c"
248 #line 129 "src/parser_scan.re"
249 { escaped
= false; tok
+= 1; goto string
; }
250 #line 251 "src/parser_scan.c"
254 case '#': goto yy106
;
258 #line 139 "src/parser_scan.re"
259 { NEWTOKEN(PSI_T_HASH
); goto start
; }
260 #line 261 "src/parser_scan.c"
333 #line 157 "src/parser_scan.re"
334 { NEWTOKEN(PSI_T_MODULO
); goto start
; }
335 #line 336 "src/parser_scan.c"
339 case '&': goto yy111
;
343 #line 158 "src/parser_scan.re"
344 { NEWTOKEN(PSI_T_AMPERSAND
); goto start
; }
345 #line 346 "src/parser_scan.c"
348 #line 128 "src/parser_scan.re"
349 { escaped
= false; tok
+= 1; goto character
; }
350 #line 351 "src/parser_scan.c"
353 #line 140 "src/parser_scan.re"
354 { NEWTOKEN(PSI_T_LPAREN
); goto start
; }
355 #line 356 "src/parser_scan.c"
358 #line 141 "src/parser_scan.re"
359 { NEWTOKEN(PSI_T_RPAREN
); goto start
; }
360 #line 361 "src/parser_scan.c"
363 #line 154 "src/parser_scan.re"
364 { NEWTOKEN(PSI_T_ASTERISK
); goto start
; }
365 #line 366 "src/parser_scan.c"
368 #line 159 "src/parser_scan.re"
369 { NEWTOKEN(PSI_T_PLUS
); goto start
; }
370 #line 371 "src/parser_scan.c"
373 #line 143 "src/parser_scan.re"
374 { NEWTOKEN(PSI_T_COMMA
); goto start
; }
375 #line 376 "src/parser_scan.c"
378 #line 160 "src/parser_scan.re"
379 { NEWTOKEN(PSI_T_MINUS
); goto start
; }
380 #line 381 "src/parser_scan.c"
383 yych
= *(mrk
= ++cur
);
385 case '.': goto yy113
;
395 case '9': goto yy115
;
399 #line 171 "src/parser_scan.re"
400 { NEWTOKEN(PSI_T_PERIOD
); goto start
; }
401 #line 402 "src/parser_scan.c"
405 case '*': goto yy118
;
406 case '/': goto yy120
;
410 #line 161 "src/parser_scan.re"
411 { NEWTOKEN(PSI_T_SLASH
); goto start
; }
412 #line 413 "src/parser_scan.c"
415 yych
= *(mrk
= ++cur
);
417 case '.': goto yy122
;
419 case 'e': goto yy126
;
421 case 'x': goto yy131
;
425 #line 115 "src/parser_scan.re"
426 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
; goto start
; }
427 #line 428 "src/parser_scan.c"
431 if ((lim
- cur
) < 3) CHECKEOF();;
434 case '.': goto yy122
;
446 case 'e': goto yy126
;
448 case 'l': goto yy127
;
450 case 'u': goto yy129
;
455 #line 144 "src/parser_scan.re"
456 { NEWTOKEN(PSI_T_COLON
); goto start
; }
457 #line 458 "src/parser_scan.c"
460 #line 142 "src/parser_scan.re"
461 { NEWTOKEN(PSI_T_EOS
); goto start
; }
462 #line 463 "src/parser_scan.c"
465 yych
= *(mrk
= ++cur
);
532 case 'z': goto yy132
;
533 case '<': goto yy134
;
534 case '=': goto yy136
;
538 #line 169 "src/parser_scan.re"
539 { NEWTOKEN(PSI_T_LCHEVR
); goto start
; }
540 #line 541 "src/parser_scan.c"
544 case '=': goto yy138
;
548 #line 153 "src/parser_scan.re"
549 { NEWTOKEN(PSI_T_EQUALS
); goto start
; }
550 #line 551 "src/parser_scan.c"
554 case '=': goto yy140
;
555 case '>': goto yy142
;
559 #line 170 "src/parser_scan.re"
560 { NEWTOKEN(PSI_T_RCHEVR
); goto start
; }
561 #line 562 "src/parser_scan.c"
564 #line 173 "src/parser_scan.re"
565 { NEWTOKEN(PSI_T_IIF
); goto start
; }
566 #line 567 "src/parser_scan.c"
569 yych
= *(mrk
= ++cur
);
572 case 'r': goto yy144
;
574 case 's': goto yy145
;
578 #line 246 "src/parser_scan.re"
579 { NEWTOKEN(PSI_T_NAME
); goto start
; }
580 #line 581 "src/parser_scan.c"
583 yych
= *(mrk
= ++cur
);
586 case 'o': goto yy148
;
591 yych
= *(mrk
= ++cur
);
594 case 'a': goto yy149
;
596 case 'o': goto yy150
;
601 yych
= *(mrk
= ++cur
);
604 case 'e': goto yy151
;
609 yych
= *(mrk
= ++cur
);
612 case 'l': goto yy152
;
614 case 'n': goto yy153
;
616 case 'r': goto yy154
;
621 yych
= *(mrk
= ++cur
);
624 case 'a': goto yy155
;
626 case 'l': goto yy156
;
628 case 'r': goto yy157
;
630 case 'u': goto yy158
;
636 if (lim
<= cur
) CHECKEOF();;
703 case 0x7F: goto yy55
;
704 case '\\': goto yy147
;
709 yych
= *(mrk
= ++cur
);
712 case 'f': goto yy159
;
714 case 'n': goto yy161
;
719 yych
= *(mrk
= ++cur
);
722 case '\'': goto yy162
;
724 case 'e': goto yy164
;
729 yych
= *(mrk
= ++cur
);
732 case 'i': goto yy165
;
737 yych
= *(mrk
= ++cur
);
740 case 'u': goto yy166
;
745 yych
= *(mrk
= ++cur
);
748 case 'b': goto yy167
;
753 yych
= *(mrk
= ++cur
);
756 case 'a': goto yy168
;
758 case 'o': goto yy169
;
760 case 'r': goto yy170
;
765 yych
= *(mrk
= ++cur
);
768 case 'e': goto yy171
;
773 yych
= *(mrk
= ++cur
);
776 case 'e': goto yy172
;
778 case 't': goto yy173
;
783 yych
= *(mrk
= ++cur
);
786 case 'e': goto yy174
;
788 case 'o': goto yy175
;
790 case 'r': goto yy176
;
795 yych
= *(mrk
= ++cur
);
798 case '\'': goto yy177
;
800 case 'n': goto yy179
;
805 yych
= *(mrk
= ++cur
);
808 case 'a': goto yy180
;
813 yych
= *(mrk
= ++cur
);
816 case 'v': goto yy181
;
821 #line 147 "src/parser_scan.re"
822 { NEWTOKEN(PSI_T_LBRACKET
); goto start
; }
823 #line 824 "src/parser_scan.c"
901 case 0x7F: goto yy78
;
905 #line 162 "src/parser_scan.re"
906 { NEWTOKEN(PSI_T_BSLASH
); goto start
; }
907 #line 908 "src/parser_scan.c"
910 #line 148 "src/parser_scan.re"
911 { NEWTOKEN(PSI_T_RBRACKET
); goto start
; }
912 #line 913 "src/parser_scan.c"
915 #line 164 "src/parser_scan.re"
916 { NEWTOKEN(PSI_T_CARET
); goto start
; }
917 #line 918 "src/parser_scan.c"
920 yych
= *(mrk
= ++cur
);
922 case '_': goto yy185
;
927 yych
= *(mrk
= ++cur
);
929 case 'O': goto yy148
;
930 case 'o': goto yy186
;
935 yych
= *(mrk
= ++cur
);
938 case 'a': goto yy149
;
939 case 'O': goto yy150
;
940 case 'h': goto yy187
;
941 case 'o': goto yy188
;
946 yych
= *(mrk
= ++cur
);
949 case 'e': goto yy151
;
950 case 'o': goto yy189
;
955 yych
= *(mrk
= ++cur
);
958 case 'l': goto yy152
;
959 case 'N': goto yy153
;
961 case 'r': goto yy154
;
962 case 'n': goto yy190
;
967 yych
= *(mrk
= ++cur
);
970 case 'a': goto yy155
;
971 case 'L': goto yy156
;
973 case 'r': goto yy157
;
975 case 'u': goto yy158
;
976 case 'l': goto yy191
;
981 yych
= *(mrk
= ++cur
);
984 case 'f': goto yy159
;
985 case 'N': goto yy161
;
986 case 'n': goto yy192
;
991 yych
= *(mrk
= ++cur
);
994 case 'e': goto yy164
;
995 case 'i': goto yy193
;
996 case 'o': goto yy194
;
1001 yych
= *(mrk
= ++cur
);
1004 case 'a': goto yy168
;
1006 case 'o': goto yy169
;
1007 case 'R': goto yy170
;
1008 case 'r': goto yy195
;
1013 yych
= *(mrk
= ++cur
);
1016 case 'e': goto yy172
;
1017 case 'T': goto yy173
;
1018 case 'h': goto yy196
;
1019 case 'i': goto yy197
;
1020 case 't': goto yy198
;
1025 yych
= *(mrk
= ++cur
);
1028 case 'e': goto yy174
;
1030 case 'o': goto yy175
;
1032 case 'r': goto yy176
;
1033 case 'y': goto yy199
;
1038 yych
= *(mrk
= ++cur
);
1041 case '\'': goto yy200
;
1042 case '8': goto yy202
;
1043 case 'N': goto yy179
;
1044 case 'n': goto yy203
;
1049 yych
= *(mrk
= ++cur
);
1051 case 'o': goto yy204
;
1056 #line 145 "src/parser_scan.re"
1057 { NEWTOKEN(PSI_T_LBRACE
); goto start
; }
1058 #line 1059 "src/parser_scan.c"
1062 case '|': goto yy205
;
1066 #line 163 "src/parser_scan.re"
1067 { NEWTOKEN(PSI_T_PIPE
); goto start
; }
1068 #line 1069 "src/parser_scan.c"
1071 #line 146 "src/parser_scan.re"
1072 { NEWTOKEN(PSI_T_RBRACE
); goto start
; }
1073 #line 1074 "src/parser_scan.c"
1076 #line 155 "src/parser_scan.re"
1077 { NEWTOKEN(PSI_T_TILDE
); goto start
; }
1078 #line 1079 "src/parser_scan.c"
1081 #line 149 "src/parser_scan.re"
1082 { NEWTOKEN(PSI_T_CMP_NE
); goto start
; }
1083 #line 1084 "src/parser_scan.c"
1086 #line 138 "src/parser_scan.re"
1087 { NEWTOKEN(PSI_T_CPP_PASTE
); goto start
; }
1088 #line 1089 "src/parser_scan.c"
1091 if (lim
<= cur
) CHECKEOF();;
1158 case 0x7F: goto yy110
;
1159 default: goto yy108
;
1162 #line 248 "src/parser_scan.re"
1163 { NEWTOKEN(PSI_T_DOLLAR_NAME
); goto start
; }
1164 #line 1165 "src/parser_scan.c"
1167 #line 151 "src/parser_scan.re"
1168 { NEWTOKEN(PSI_T_AND
); goto start
; }
1169 #line 1170 "src/parser_scan.c"
1173 case '.': goto yy207
;
1174 default: goto yy114
;
1189 case 10: goto yy250
;
1190 case 11: goto yy271
;
1191 case 12: goto yy303
;
1192 case 13: goto yy305
;
1193 case 14: goto yy311
;
1194 case 15: goto yy319
;
1195 case 16: goto yy331
;
1196 case 17: goto yy339
;
1197 case 18: goto yy343
;
1198 case 19: goto yy350
;
1199 case 20: goto yy352
;
1200 case 21: goto yy356
;
1201 case 22: goto yy360
;
1202 case 23: goto yy362
;
1203 case 24: goto yy372
;
1204 case 25: goto yy375
;
1205 case 26: goto yy382
;
1206 case 27: goto yy385
;
1207 case 28: goto yy387
;
1208 case 29: goto yy389
;
1209 case 30: goto yy393
;
1210 case 31: goto yy398
;
1211 case 32: goto yy416
;
1212 case 33: goto yy419
;
1213 case 34: goto yy424
;
1214 case 35: goto yy427
;
1215 case 36: goto yy431
;
1216 case 37: goto yy437
;
1217 case 38: goto yy441
;
1218 case 39: goto yy446
;
1219 case 40: goto yy448
;
1220 case 41: goto yy452
;
1221 case 42: goto yy455
;
1222 case 43: goto yy457
;
1223 case 44: goto yy459
;
1224 case 45: goto yy464
;
1225 case 46: goto yy466
;
1226 case 47: goto yy468
;
1227 case 48: goto yy470
;
1228 case 49: goto yy472
;
1229 case 50: goto yy477
;
1230 case 51: goto yy486
;
1231 case 52: goto yy488
;
1232 case 53: goto yy490
;
1233 case 54: goto yy492
;
1234 case 55: goto yy494
;
1235 case 56: goto yy496
;
1236 case 57: goto yy501
;
1237 case 58: goto yy505
;
1238 case 59: goto yy509
;
1239 case 60: goto yy511
;
1240 case 61: goto yy516
;
1241 case 62: goto yy521
;
1242 case 63: goto yy527
;
1243 case 64: goto yy531
;
1244 case 65: goto yy533
;
1245 case 66: goto yy535
;
1246 case 67: goto yy537
;
1247 case 68: goto yy542
;
1248 case 69: goto yy544
;
1249 case 70: goto yy551
;
1250 case 71: goto yy553
;
1251 case 72: goto yy558
;
1252 case 73: goto yy560
;
1253 case 74: goto yy567
;
1254 case 75: goto yy571
;
1255 case 76: goto yy574
;
1256 case 77: goto yy578
;
1257 default: goto yy583
;
1262 if ((lim
- cur
) < 2) CHECKEOF();;
1274 case '9': goto yy115
;
1276 case 'd': goto yy209
;
1278 case 'f': goto yy210
;
1280 case 'l': goto yy212
;
1281 default: goto yy117
;
1284 #line 121 "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 135 "src/parser_scan.re"
1291 #line 1292 "src/parser_scan.c"
1294 #line 136 "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 yy209
;
1316 case 'e': goto yy126
;
1318 case 'f': goto yy210
;
1320 case 'l': goto yy212
;
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 yy214
;
1357 case '9': goto yy115
;
1358 default: goto yy114
;
1362 yych
= *(mrk
= ++cur
);
1365 case 'l': goto yy215
;
1367 case 'u': goto yy216
;
1368 default: goto yy128
;
1372 #line 117 "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 yy218
;
1380 default: goto yy130
;
1384 #line 116 "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 yy219
;
1412 default: goto yy114
;
1416 if (lim
<= cur
) CHECKEOF();;
1484 case 'z': goto yy132
;
1485 case '>': goto yy221
;
1486 default: goto yy114
;
1490 #line 165 "src/parser_scan.re"
1491 { NEWTOKEN(PSI_T_LSHIFT
); goto start
; }
1492 #line 1493 "src/parser_scan.c"
1495 #line 167 "src/parser_scan.re"
1496 { NEWTOKEN(PSI_T_CMP_LE
); goto start
; }
1497 #line 1498 "src/parser_scan.c"
1500 #line 150 "src/parser_scan.re"
1501 { NEWTOKEN(PSI_T_CMP_EQ
); goto start
; }
1502 #line 1503 "src/parser_scan.c"
1505 #line 168 "src/parser_scan.re"
1506 { NEWTOKEN(PSI_T_CMP_GE
); goto start
; }
1507 #line 1508 "src/parser_scan.c"
1510 #line 166 "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 yy223
;
1523 yych
= *(mrk
= ++cur
);
1588 case 0x7F: goto yy146
;
1589 case '\\': goto yy147
;
1593 #line 226 "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 yy182
;
1680 yych
= *(mrk
= ++cur
);
1683 case 'o': goto yy224
;
1688 yych
= *(mrk
= ++cur
);
1691 case 'l': goto yy225
;
1696 yych
= *(mrk
= ++cur
);
1699 case 'u': goto yy226
;
1704 yych
= *(mrk
= ++cur
);
1707 case 'f': goto yy227
;
1712 yych
= *(mrk
= ++cur
);
1715 case 'i': goto yy228
;
1717 case 's': goto yy229
;
1722 yych
= *(mrk
= ++cur
);
1725 case 'd': goto yy230
;
1730 yych
= *(mrk
= ++cur
);
1733 case 'r': goto yy231
;
1738 yych
= *(mrk
= ++cur
);
1741 case 'l': goto yy232
;
1746 yych
= *(mrk
= ++cur
);
1749 case 'o': goto yy233
;
1754 yych
= *(mrk
= ++cur
);
1757 case 'e': goto yy234
;
1762 yych
= *(mrk
= ++cur
);
1765 case 'n': goto yy235
;
1770 yych
= *(mrk
= ++cur
);
1835 case 0x7F: goto yy160
;
1837 case 'd': goto yy236
;
1839 case 'n': goto yy237
;
1840 case '\\': goto yy147
;
1844 #line 197 "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 yy238
;
1854 case 't': goto yy239
;
1860 #line 133 "src/parser_scan.re"
1861 { char_width
= sizeof(wchar_t); }
1862 #line 1863 "src/parser_scan.c"
1865 yych
= *(mrk
= ++cur
);
1868 case 't': goto yy240
;
1873 yych
= *(mrk
= ++cur
);
1876 case 'x': goto yy242
;
1881 yych
= *(mrk
= ++cur
);
1884 case 'l': goto yy243
;
1889 yych
= *(mrk
= ++cur
);
1892 case 'j': goto yy244
;
1897 yych
= *(mrk
= ++cur
);
1900 case 't': goto yy245
;
1905 yych
= *(mrk
= ++cur
);
1908 case 's': goto yy246
;
1913 yych
= *(mrk
= ++cur
);
1916 case 'e': goto yy247
;
1921 yych
= *(mrk
= ++cur
);
1924 case 't': goto yy248
;
1929 yych
= *(mrk
= ++cur
);
1932 case 't': goto yy249
;
1937 yych
= *(mrk
= ++cur
);
1940 case 'a': goto yy251
;
1942 case 'r': goto yy252
;
1947 yych
= *(mrk
= ++cur
);
1950 case 'm': goto yy253
;
1955 yych
= *(mrk
= ++cur
);
1957 case '_': goto yy254
;
1962 yych
= *(mrk
= ++cur
);
1965 case 'u': goto yy255
;
1971 #line 132 "src/parser_scan.re"
1973 #line 1974 "src/parser_scan.c"
1976 yych
= *(mrk
= ++cur
);
1979 case 'd': goto yy256
;
1984 yych
= *(mrk
= ++cur
);
1987 case 'r': goto yy257
;
1992 yych
= *(mrk
= ++cur
);
1995 case 'a': goto yy258
;
2001 if (lim
<= cur
) CHECKEOF();;
2067 case 0x7F: goto yy184
;
2068 case '\\': goto yy147
;
2069 default: goto yy182
;
2072 #line 247 "src/parser_scan.re"
2073 { NEWTOKEN(PSI_T_NSNAME
); goto start
; }
2074 #line 2075 "src/parser_scan.c"
2077 yych
= *(mrk
= ++cur
);
2079 case 'a': goto yy259
;
2080 case 'e': goto yy260
;
2081 case 'i': goto yy261
;
2082 case 'r': goto yy262
;
2087 yych
= *(mrk
= ++cur
);
2089 case 'O': goto yy224
;
2090 case 'o': goto yy263
;
2095 yych
= *(mrk
= ++cur
);
2097 case 'a': goto yy264
;
2102 yych
= *(mrk
= ++cur
);
2105 case 'u': goto yy226
;
2106 case 'n': goto yy265
;
2111 yych
= *(mrk
= ++cur
);
2113 case 'u': goto yy266
;
2118 yych
= *(mrk
= ++cur
);
2121 case 'd': goto yy230
;
2122 case 'u': goto yy267
;
2127 yych
= *(mrk
= ++cur
);
2129 case 'O': goto yy233
;
2130 case 'o': goto yy268
;
2135 yych
= *(mrk
= ++cur
);
2138 case 'c': goto yy238
;
2139 case 'T': goto yy239
;
2140 case 'l': goto yy269
;
2141 case 't': goto yy270
;
2146 yych
= *(mrk
= ++cur
);
2148 case 'n': goto yy272
;
2153 yych
= *(mrk
= ++cur
);
2155 case 'n': goto yy273
;
2160 yych
= *(mrk
= ++cur
);
2163 case 'e': goto yy247
;
2164 case 'a': goto yy274
;
2169 yych
= *(mrk
= ++cur
);
2171 case 'o': goto yy275
;
2176 yych
= *(mrk
= ++cur
);
2178 case 'g': goto yy276
;
2179 case 'z': goto yy277
;
2184 yych
= *(mrk
= ++cur
);
2187 case 'a': goto yy251
;
2188 case 'R': goto yy252
;
2189 case 'r': goto yy278
;
2194 yych
= *(mrk
= ++cur
);
2196 case 'p': goto yy279
;
2202 #line 131 "src/parser_scan.re"
2204 #line 2205 "src/parser_scan.c"
2207 yych
= *(mrk
= ++cur
);
2209 case '"': goto yy280
;
2214 yych
= *(mrk
= ++cur
);
2217 case 'd': goto yy256
;
2218 case 'i': goto yy282
;
2219 case 's': goto yy283
;
2224 yych
= *(mrk
= ++cur
);
2226 case 'i': goto yy284
;
2227 case 'l': goto yy285
;
2232 #line 152 "src/parser_scan.re"
2233 { NEWTOKEN(PSI_T_OR
); goto start
; }
2234 #line 2235 "src/parser_scan.c"
2237 #line 172 "src/parser_scan.re"
2238 { NEWTOKEN(PSI_T_ELLIPSIS
); goto start
; }
2239 #line 2240 "src/parser_scan.c"
2244 case 'd': goto yy286
;
2246 case 'f': goto yy288
;
2248 case 'l': goto yy290
;
2249 default: goto yy114
;
2254 #line 122 "src/parser_scan.re"
2255 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_F
; cur
+= 1; goto start
; }
2256 #line 2257 "src/parser_scan.c"
2260 #line 123 "src/parser_scan.re"
2261 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_L
; cur
+= 1; goto start
; }
2262 #line 2263 "src/parser_scan.c"
2275 case '9': goto yy115
;
2276 default: goto yy114
;
2282 case 'u': goto yy292
;
2283 default: goto yy114
;
2289 #line 118 "src/parser_scan.re"
2290 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
| PSI_NUMBER_UL
; cur
+= 2; goto start
; }
2291 #line 2292 "src/parser_scan.c"
2296 case 'l': goto yy292
;
2297 default: goto yy217
;
2302 if ((lim
- cur
) < 3) CHECKEOF();;
2305 case '.': goto yy294
;
2327 case 'f': goto yy219
;
2329 case 'l': goto yy127
;
2331 case 'p': goto yy126
;
2333 case 'u': goto yy129
;
2338 #line 249 "src/parser_scan.re"
2339 { tok
+= 1; cur
-= 1; NEWTOKEN(PSI_T_CPP_HEADER
); cur
+= 1; goto start
; }
2340 #line 2341 "src/parser_scan.c"
2343 yych
= *(mrk
= ++cur
);
2346 case 'a': goto yy296
;
2348 case 'v': goto yy297
;
2353 yych
= *(mrk
= ++cur
);
2356 case 'l': goto yy298
;
2361 yych
= *(mrk
= ++cur
);
2364 case 'l': goto yy299
;
2369 yych
= *(mrk
= ++cur
);
2372 case 'n': goto yy300
;
2377 yych
= *(mrk
= ++cur
);
2380 case 'i': goto yy301
;
2385 yych
= *(mrk
= ++cur
);
2388 case 'f': goto yy302
;
2393 yych
= *(mrk
= ++cur
);
2396 case 'e': goto yy304
;
2401 yych
= *(mrk
= ++cur
);
2404 case 'i': goto yy306
;
2409 yych
= *(mrk
= ++cur
);
2412 case 'o': goto yy307
;
2417 yych
= *(mrk
= ++cur
);
2420 case 's': goto yy308
;
2425 yych
= *(mrk
= ++cur
);
2428 case 'a': goto yy309
;
2433 yych
= *(mrk
= ++cur
);
2436 case 'e': goto yy310
;
2441 yych
= *(mrk
= ++cur
);
2444 case 'c': goto yy312
;
2449 yych
= *(mrk
= ++cur
);
2452 case 'e': goto yy313
;
2457 yych
= *(mrk
= ++cur
);
2460 case 'd': goto yy314
;
2465 yych
= *(mrk
= ++cur
);
2468 case 'l': goto yy315
;
2473 yych
= *(mrk
= ++cur
);
2476 case 'v': goto yy316
;
2481 yych
= *(mrk
= ++cur
);
2546 case 0x7F: goto yy241
;
2547 case '\\': goto yy147
;
2551 #line 221 "src/parser_scan.re"
2552 { NEWTOKEN(PSI_T_LET
); goto start
; }
2553 #line 2554 "src/parser_scan.c"
2556 yych
= *(mrk
= ++cur
);
2559 case 'e': goto yy317
;
2564 yych
= *(mrk
= ++cur
);
2567 case 'l': goto yy318
;
2572 yych
= *(mrk
= ++cur
);
2575 case 'e': goto yy320
;
2577 case 'v': goto yy321
;
2582 yych
= *(mrk
= ++cur
);
2585 case 'h': goto yy322
;
2590 yych
= *(mrk
= ++cur
);
2593 case 't': goto yy323
;
2598 yych
= *(mrk
= ++cur
);
2600 case '_': goto yy324
;
2605 yych
= *(mrk
= ++cur
);
2608 case 'u': goto yy325
;
2613 yych
= *(mrk
= ++cur
);
2678 case 0x7F: goto yy250
;
2679 case '\\': goto yy147
;
2683 #line 222 "src/parser_scan.re"
2684 { NEWTOKEN(PSI_T_SET
); goto start
; }
2685 #line 2686 "src/parser_scan.c"
2688 yych
= *(mrk
= ++cur
);
2691 case 't': goto yy326
;
2696 yych
= *(mrk
= ++cur
);
2699 case 'i': goto yy327
;
2701 case 'l': goto yy328
;
2703 case 'v': goto yy329
;
2708 yych
= *(mrk
= ++cur
);
2711 case 'p': goto yy330
;
2716 yych
= *(mrk
= ++cur
);
2719 case 'a': goto yy332
;
2721 case 'b': goto yy333
;
2723 case 'f': goto yy334
;
2725 case 'i': goto yy335
;
2727 case 'o': goto yy336
;
2729 case 's': goto yy337
;
2734 yych
= *(mrk
= ++cur
);
2737 case 'e': goto yy338
;
2742 yych
= *(mrk
= ++cur
);
2745 case 'e': goto yy340
;
2750 yych
= *(mrk
= ++cur
);
2753 case 'n': goto yy341
;
2758 yych
= *(mrk
= ++cur
);
2761 case 'l': goto yy342
;
2766 yych
= *(mrk
= ++cur
);
2768 case 's': goto yy344
;
2769 case 't': goto yy345
;
2774 yych
= *(mrk
= ++cur
);
2776 case 'x': goto yy346
;
2781 yych
= *(mrk
= ++cur
);
2783 case 'n': goto yy347
;
2788 yych
= *(mrk
= ++cur
);
2790 case 'e': goto yy348
;
2795 yych
= *(mrk
= ++cur
);
2797 case 'L': goto yy298
;
2798 case 'l': goto yy349
;
2803 yych
= *(mrk
= ++cur
);
2805 case 'r': goto yy351
;
2810 yych
= *(mrk
= ++cur
);
2812 case 's': goto yy353
;
2817 yych
= *(mrk
= ++cur
);
2819 case 'b': goto yy354
;
2824 yych
= *(mrk
= ++cur
);
2826 case 'm': goto yy355
;
2831 yych
= *(mrk
= ++cur
);
2833 case 'A': goto yy309
;
2834 case 'a': goto yy357
;
2839 yych
= *(mrk
= ++cur
);
2841 case 'i': goto yy358
;
2846 yych
= *(mrk
= ++cur
);
2911 case 0x7F: goto yy271
;
2913 case 'v': goto yy316
;
2914 case '\\': goto yy147
;
2918 #line 191 "src/parser_scan.re"
2919 { NEWTOKEN(PSI_T_INT
); goto start
; }
2920 #line 2921 "src/parser_scan.c"
2923 yych
= *(mrk
= ++cur
);
2925 case 'e': goto yy359
;
2930 yych
= *(mrk
= ++cur
);
2932 case 'g': goto yy361
;
2937 yych
= *(mrk
= ++cur
);
2939 case 'g': goto yy363
;
2944 yych
= *(mrk
= ++cur
);
2946 case 'r': goto yy364
;
2951 yych
= *(mrk
= ++cur
);
2953 case 'n': goto yy365
;
2958 yych
= *(mrk
= ++cur
);
2960 case 'e': goto yy366
;
2965 yych
= *(mrk
= ++cur
);
2968 case 'i': goto yy327
;
2970 case 'l': goto yy328
;
2972 case 'v': goto yy329
;
2973 case 'u': goto yy367
;
2978 yych
= *(mrk
= ++cur
);
2980 case 'e': goto yy368
;
2986 #line 130 "src/parser_scan.re"
2988 #line 2989 "src/parser_scan.c"
2991 yych
= *(mrk
= ++cur
);
2993 case 'o': goto yy369
;
2998 yych
= *(mrk
= ++cur
);
3000 case 'i': goto yy370
;
3005 yych
= *(mrk
= ++cur
);
3007 case 'd': goto yy371
;
3012 yych
= *(mrk
= ++cur
);
3014 case 'a': goto yy373
;
3020 #line 125 "src/parser_scan.re"
3021 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_DD
; cur
+= 2; goto start
; }
3022 #line 3023 "src/parser_scan.c"
3026 #line 124 "src/parser_scan.re"
3027 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_DF
; cur
+= 2; goto start
; }
3028 #line 3029 "src/parser_scan.c"
3032 #line 126 "src/parser_scan.re"
3033 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_DL
; cur
+= 2; goto start
; }
3034 #line 3035 "src/parser_scan.c"
3038 #line 119 "src/parser_scan.re"
3039 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
| PSI_NUMBER_ULL
; cur
+= 3; goto start
; }
3040 #line 3041 "src/parser_scan.c"
3043 if ((lim
- cur
) < 3) CHECKEOF();;
3067 case 'f': goto yy294
;
3069 case 'p': goto yy126
;
3070 default: goto yy114
;
3074 yych
= *(mrk
= ++cur
);
3077 case 'y': goto yy374
;
3082 yych
= *(mrk
= ++cur
);
3085 case 'a': goto yy376
;
3090 yych
= *(mrk
= ++cur
);
3093 case 'v': goto yy377
;
3098 yych
= *(mrk
= ++cur
);
3101 case 'a': goto yy378
;
3103 case 'b': goto yy379
;
3105 case 'o': goto yy380
;
3110 yych
= *(mrk
= ++cur
);
3113 case 't': goto yy381
;
3118 yych
= *(mrk
= ++cur
);
3121 case 'n': goto yy383
;
3126 yych
= *(mrk
= ++cur
);
3191 case 0x7F: goto yy303
;
3192 case '\\': goto yy147
;
3196 #line 201 "src/parser_scan.re"
3197 { NEWTOKEN(PSI_T_ELIF
); goto start
; }
3198 #line 3199 "src/parser_scan.c"
3201 yych
= *(mrk
= ++cur
);
3266 case 0x7F: goto yy305
;
3267 case '\\': goto yy147
;
3271 #line 200 "src/parser_scan.re"
3272 { NEWTOKEN(PSI_T_ELSE
); goto start
; }
3273 #line 3274 "src/parser_scan.c"
3276 yych
= *(mrk
= ++cur
);
3279 case 'f': goto yy384
;
3284 yych
= *(mrk
= ++cur
);
3287 case 'r': goto yy386
;
3292 yych
= *(mrk
= ++cur
);
3295 case 'e': goto yy388
;
3300 yych
= *(mrk
= ++cur
);
3303 case 't': goto yy390
;
3308 yych
= *(mrk
= ++cur
);
3373 case 0x7F: goto yy311
;
3374 case '\\': goto yy147
;
3378 #line 227 "src/parser_scan.re"
3379 { NEWTOKEN(PSI_T_FREE
); goto start
; }
3380 #line 3381 "src/parser_scan.c"
3383 yych
= *(mrk
= ++cur
);
3386 case 't': goto yy391
;
3391 yych
= *(mrk
= ++cur
);
3394 case 'f': goto yy392
;
3399 yych
= *(mrk
= ++cur
);
3402 case 'e': goto yy394
;
3407 yych
= *(mrk
= ++cur
);
3410 case 'u': goto yy395
;
3415 yych
= *(mrk
= ++cur
);
3418 case 'a': goto yy396
;
3423 yych
= *(mrk
= ++cur
);
3426 case 'd': goto yy397
;
3431 yych
= *(mrk
= ++cur
);
3496 case 0x7F: goto yy319
;
3497 case '\\': goto yy147
;
3501 #line 212 "src/parser_scan.re"
3502 { NEWTOKEN(PSI_T_NULL
); goto start
; }
3503 #line 3504 "src/parser_scan.c"
3506 yych
= *(mrk
= ++cur
);
3509 case 'c': goto yy399
;
3514 yych
= *(mrk
= ++cur
);
3517 case 'a': goto yy400
;
3522 yych
= *(mrk
= ++cur
);
3525 case 'v': goto yy401
;
3530 yych
= *(mrk
= ++cur
);
3532 case '_': goto yy402
;
3537 yych
= *(mrk
= ++cur
);
3540 case 'a': goto yy403
;
3545 yych
= *(mrk
= ++cur
);
3548 case 'r': goto yy404
;
3553 yych
= *(mrk
= ++cur
);
3556 case 'i': goto yy405
;
3561 yych
= *(mrk
= ++cur
);
3564 case 'n': goto yy406
;
3569 yych
= *(mrk
= ++cur
);
3572 case 'e': goto yy407
;
3577 yych
= *(mrk
= ++cur
);
3580 case 'a': goto yy408
;
3585 yych
= *(mrk
= ++cur
);
3650 case 0x7F: goto yy331
;
3651 case '\\': goto yy147
;
3655 #line 228 "src/parser_scan.re"
3656 { NEWTOKEN(PSI_T_TEMP
); goto start
; }
3657 #line 3658 "src/parser_scan.c"
3660 yych
= *(mrk
= ++cur
);
3663 case 'r': goto yy409
;
3668 yych
= *(mrk
= ++cur
);
3671 case 'o': goto yy410
;
3676 yych
= *(mrk
= ++cur
);
3679 case 'l': goto yy411
;
3684 yych
= *(mrk
= ++cur
);
3687 case 'n': goto yy412
;
3692 yych
= *(mrk
= ++cur
);
3695 case 'b': goto yy413
;
3700 yych
= *(mrk
= ++cur
);
3703 case 't': goto yy414
;
3708 yych
= *(mrk
= ++cur
);
3773 case 0x7F: goto yy339
;
3774 case '\\': goto yy147
;
3778 #line 210 "src/parser_scan.re"
3779 { NEWTOKEN(PSI_T_TRUE
); goto start
; }
3780 #line 3781 "src/parser_scan.c"
3783 yych
= *(mrk
= ++cur
);
3786 case 'f': goto yy415
;
3791 yych
= *(mrk
= ++cur
);
3794 case 'i': goto yy417
;
3799 yych
= *(mrk
= ++cur
);
3864 case 0x7F: goto yy343
;
3865 case '\\': goto yy147
;
3869 #line 237 "src/parser_scan.re"
3870 { NEWTOKEN(PSI_T_ZVAL
); goto start
; }
3871 #line 3872 "src/parser_scan.c"
3874 yych
= *(mrk
= ++cur
);
3876 case 'm': goto yy418
;
3881 yych
= *(mrk
= ++cur
);
3883 case 't': goto yy420
;
3888 yych
= *(mrk
= ++cur
);
3890 case 't': goto yy421
;
3895 yych
= *(mrk
= ++cur
);
3897 case 'l': goto yy269
;
3902 yych
= *(mrk
= ++cur
);
3904 case 's': goto yy422
;
3909 yych
= *(mrk
= ++cur
);
3974 case 0x7F: goto yy350
;
3976 case 'v': goto yy377
;
3977 case '\\': goto yy147
;
3981 #line 188 "src/parser_scan.re"
3982 { NEWTOKEN(PSI_T_BOOL
); goto start
; }
3983 #line 3984 "src/parser_scan.c"
3986 yych
= *(mrk
= ++cur
);
4051 case 0x7F: goto yy352
;
4052 case '\\': goto yy147
;
4056 #line 189 "src/parser_scan.re"
4057 { NEWTOKEN(PSI_T_CHAR
); goto start
; }
4058 #line 4059 "src/parser_scan.c"
4061 yych
= *(mrk
= ++cur
);
4063 case 't': goto yy423
;
4068 yych
= *(mrk
= ++cur
);
4070 case 'l': goto yy425
;
4075 yych
= *(mrk
= ++cur
);
4140 case 0x7F: goto yy356
;
4141 case '\\': goto yy147
;
4145 #line 185 "src/parser_scan.re"
4146 { NEWTOKEN(PSI_T_ENUM
); goto start
; }
4147 #line 4148 "src/parser_scan.c"
4150 yych
= *(mrk
= ++cur
);
4152 case 'T': goto yy390
;
4153 case 't': goto yy426
;
4158 yych
= *(mrk
= ++cur
);
4160 case 'n': goto yy428
;
4165 yych
= *(mrk
= ++cur
);
4230 case 0x7F: goto yy360
;
4231 case '\\': goto yy147
;
4235 #line 181 "src/parser_scan.re"
4236 { NEWTOKEN(PSI_T_LINE
); goto start
; }
4237 #line 4238 "src/parser_scan.c"
4240 yych
= *(mrk
= ++cur
);
4305 case 0x7F: goto yy362
;
4306 case '\\': goto yy147
;
4310 #line 192 "src/parser_scan.re"
4311 { NEWTOKEN(PSI_T_LONG
); goto start
; }
4312 #line 4313 "src/parser_scan.c"
4315 yych
= *(mrk
= ++cur
);
4317 case 'm': goto yy429
;
4322 yych
= *(mrk
= ++cur
);
4324 case 't': goto yy430
;
4329 yych
= *(mrk
= ++cur
);
4331 case 'e': goto yy432
;
4336 yych
= *(mrk
= ++cur
);
4338 case 'o': goto yy433
;
4343 yych
= *(mrk
= ++cur
);
4345 case 'c': goto yy434
;
4350 yych
= *(mrk
= ++cur
);
4352 case 'd': goto yy435
;
4357 yych
= *(mrk
= ++cur
);
4359 case 'n': goto yy436
;
4364 yych
= *(mrk
= ++cur
);
4366 case 'g': goto yy438
;
4371 yych
= *(mrk
= ++cur
);
4436 case 0x7F: goto yy372
;
4437 case '\\': goto yy147
;
4441 #line 187 "src/parser_scan.re"
4442 { NEWTOKEN(PSI_T_VOID
); goto start
; }
4443 #line 4444 "src/parser_scan.c"
4446 yych
= *(mrk
= ++cur
);
4448 case 't': goto yy439
;
4453 yych
= *(mrk
= ++cur
);
4518 case 0x7F: goto yy375
;
4519 case '\\': goto yy147
;
4523 #line 216 "src/parser_scan.re"
4524 { NEWTOKEN(PSI_T_ARRAY
); goto start
; }
4525 #line 4526 "src/parser_scan.c"
4528 yych
= *(mrk
= ++cur
);
4531 case 'l': goto yy440
;
4536 yych
= *(mrk
= ++cur
);
4539 case 'a': goto yy442
;
4544 yych
= *(mrk
= ++cur
);
4547 case 'b': goto yy443
;
4552 yych
= *(mrk
= ++cur
);
4555 case 'a': goto yy444
;
4560 yych
= *(mrk
= ++cur
);
4563 case 'c': goto yy445
;
4568 yych
= *(mrk
= ++cur
);
4633 case 0x7F: goto yy382
;
4634 case '\\': goto yy147
;
4638 #line 238 "src/parser_scan.re"
4639 { NEWTOKEN(PSI_T_COUNT
); goto start
; }
4640 #line 4641 "src/parser_scan.c"
4643 yych
= *(mrk
= ++cur
);
4646 case 'e': goto yy447
;
4651 yych
= *(mrk
= ++cur
);
4716 case 0x7F: goto yy385
;
4717 case '\\': goto yy147
;
4721 #line 202 "src/parser_scan.re"
4722 { NEWTOKEN(PSI_T_ENDIF
); goto start
; }
4723 #line 4724 "src/parser_scan.c"
4726 yych
= *(mrk
= ++cur
);
4791 case 0x7F: goto yy387
;
4792 case '\\': goto yy147
;
4796 #line 207 "src/parser_scan.re"
4797 { NEWTOKEN(PSI_T_ERROR
); goto start
; }
4798 #line 4799 "src/parser_scan.c"
4801 yych
= *(mrk
= ++cur
);
4866 case 0x7F: goto yy389
;
4867 case '\\': goto yy147
;
4871 #line 211 "src/parser_scan.re"
4872 { NEWTOKEN(PSI_T_FALSE
); goto start
; }
4873 #line 4874 "src/parser_scan.c"
4876 yych
= *(mrk
= ++cur
);
4879 case 'v': goto yy449
;
4884 yych
= *(mrk
= ++cur
);
4887 case 'i': goto yy450
;
4892 yych
= *(mrk
= ++cur
);
4957 case 0x7F: goto yy393
;
4958 case '\\': goto yy147
;
4962 #line 198 "src/parser_scan.re"
4963 { NEWTOKEN(PSI_T_IFDEF
); goto start
; }
4964 #line 4965 "src/parser_scan.c"
4967 yych
= *(mrk
= ++cur
);
4970 case 'f': goto yy451
;
4975 yych
= *(mrk
= ++cur
);
4978 case 'd': goto yy453
;
4983 yych
= *(mrk
= ++cur
);
4986 case 'l': goto yy454
;
4991 yych
= *(mrk
= ++cur
);
5056 case 0x7F: goto yy398
;
5057 case '\\': goto yy147
;
5061 #line 213 "src/parser_scan.re"
5062 { NEWTOKEN(PSI_T_MIXED
); goto start
; }
5063 #line 5064 "src/parser_scan.c"
5066 yych
= *(mrk
= ++cur
);
5069 case 't': goto yy456
;
5074 yych
= *(mrk
= ++cur
);
5077 case 'l': goto yy458
;
5082 yych
= *(mrk
= ++cur
);
5085 case 'a': goto yy460
;
5090 yych
= *(mrk
= ++cur
);
5093 case 'a': goto yy461
;
5098 yych
= *(mrk
= ++cur
);
5101 case 's': goto yy462
;
5106 yych
= *(mrk
= ++cur
);
5109 case 'n': goto yy463
;
5114 yych
= *(mrk
= ++cur
);
5117 case 'c': goto yy465
;
5122 yych
= *(mrk
= ++cur
);
5125 case 'g': goto yy467
;
5130 yych
= *(mrk
= ++cur
);
5133 case 'n': goto yy469
;
5138 yych
= *(mrk
= ++cur
);
5141 case 'l': goto yy471
;
5146 yych
= *(mrk
= ++cur
);
5149 case 'r': goto yy473
;
5154 yych
= *(mrk
= ++cur
);
5157 case 'o': goto yy474
;
5162 yych
= *(mrk
= ++cur
);
5165 case 'o': goto yy475
;
5170 yych
= *(mrk
= ++cur
);
5173 case 't': goto yy476
;
5178 yych
= *(mrk
= ++cur
);
5181 case 'j': goto yy478
;
5186 yych
= *(mrk
= ++cur
);
5189 case 'r': goto yy479
;
5194 yych
= *(mrk
= ++cur
);
5259 case 0x7F: goto yy416
;
5260 case '\\': goto yy147
;
5264 #line 205 "src/parser_scan.re"
5265 { NEWTOKEN(PSI_T_UNDEF
); goto start
; }
5266 #line 5267 "src/parser_scan.c"
5269 yych
= *(mrk
= ++cur
);
5272 case 'n': goto yy480
;
5277 yych
= *(mrk
= ++cur
);
5342 case 0x7F: goto yy419
;
5343 case '\\': goto yy147
;
5344 case '_': goto yy481
;
5348 #line 178 "src/parser_scan.re"
5349 { NEWTOKEN(PSI_T_CPP_ASM
); goto start
; }
5350 #line 5351 "src/parser_scan.c"
5353 yych
= *(mrk
= ++cur
);
5355 case 'r': goto yy482
;
5360 yych
= *(mrk
= ++cur
);
5362 case 'e': goto yy483
;
5367 yych
= *(mrk
= ++cur
);
5369 case 't': goto yy484
;
5374 yych
= *(mrk
= ++cur
);
5439 case 0x7F: goto yy424
;
5440 case '\\': goto yy147
;
5444 #line 186 "src/parser_scan.re"
5445 { NEWTOKEN(PSI_T_CONST
); goto start
; }
5446 #line 5447 "src/parser_scan.c"
5449 yych
= *(mrk
= ++cur
);
5451 case 'e': goto yy485
;
5456 yych
= *(mrk
= ++cur
);
5521 case 0x7F: goto yy427
;
5523 case 'v': goto yy449
;
5524 case '\\': goto yy147
;
5528 #line 193 "src/parser_scan.re"
5529 { NEWTOKEN(PSI_T_FLOAT
); goto start
; }
5530 #line 5531 "src/parser_scan.c"
5533 yych
= *(mrk
= ++cur
);
5535 case 'e': goto yy487
;
5540 yych
= *(mrk
= ++cur
);
5542 case 'a': goto yy489
;
5547 yych
= *(mrk
= ++cur
);
5612 case 0x7F: goto yy431
;
5613 case '\\': goto yy147
;
5617 #line 190 "src/parser_scan.re"
5618 { NEWTOKEN(PSI_T_SHORT
); goto start
; }
5619 #line 5620 "src/parser_scan.c"
5622 yych
= *(mrk
= ++cur
);
5624 case 'd': goto yy491
;
5629 yych
= *(mrk
= ++cur
);
5631 case 'f': goto yy493
;
5636 yych
= *(mrk
= ++cur
);
5638 case 't': goto yy495
;
5643 yych
= *(mrk
= ++cur
);
5645 case 'e': goto yy497
;
5650 yych
= *(mrk
= ++cur
);
5715 case 0x7F: goto yy437
;
5716 case '\\': goto yy147
;
5720 #line 184 "src/parser_scan.re"
5721 { NEWTOKEN(PSI_T_UNION
); goto start
; }
5722 #line 5723 "src/parser_scan.c"
5725 yych
= *(mrk
= ++cur
);
5727 case 'n': goto yy498
;
5732 yych
= *(mrk
= ++cur
);
5734 case 'i': goto yy499
;
5739 yych
= *(mrk
= ++cur
);
5804 case 0x7F: goto yy441
;
5805 case '\\': goto yy147
;
5809 #line 235 "src/parser_scan.re"
5810 { NEWTOKEN(PSI_T_ARRVAL
); goto start
; }
5811 #line 5812 "src/parser_scan.c"
5814 yych
= *(mrk
= ++cur
);
5817 case 'l': goto yy500
;
5822 yych
= *(mrk
= ++cur
);
5825 case 'l': goto yy502
;
5830 yych
= *(mrk
= ++cur
);
5833 case 'c': goto yy503
;
5838 yych
= *(mrk
= ++cur
);
5903 case 0x7F: goto yy446
;
5904 case '\\': goto yy147
;
5908 #line 239 "src/parser_scan.re"
5909 { NEWTOKEN(PSI_T_CALLOC
); goto start
; }
5910 #line 5911 "src/parser_scan.c"
5913 yych
= *(mrk
= ++cur
);
5978 case 0x7F: goto yy448
;
5980 case 'd': goto yy504
;
5981 case '\\': goto yy147
;
5985 #line 203 "src/parser_scan.re"
5986 { NEWTOKEN(PSI_T_DEFINE
); goto start
; }
5987 #line 5988 "src/parser_scan.c"
5990 yych
= *(mrk
= ++cur
);
5993 case 'a': goto yy506
;
5998 yych
= *(mrk
= ++cur
);
6001 case 'o': goto yy507
;
6006 yych
= *(mrk
= ++cur
);
6071 case 0x7F: goto yy452
;
6072 case '\\': goto yy147
;
6076 #line 199 "src/parser_scan.re"
6077 { NEWTOKEN(PSI_T_IFNDEF
); goto start
; }
6078 #line 6079 "src/parser_scan.c"
6081 yych
= *(mrk
= ++cur
);
6084 case 'e': goto yy508
;
6089 yych
= *(mrk
= ++cur
);
6154 case 0x7F: goto yy455
;
6155 case '\\': goto yy147
;
6159 #line 232 "src/parser_scan.re"
6160 { NEWTOKEN(PSI_T_INTVAL
); goto start
; }
6161 #line 6162 "src/parser_scan.c"
6164 yych
= *(mrk
= ++cur
);
6229 case 0x7F: goto yy457
;
6230 case '\\': goto yy147
;
6234 #line 217 "src/parser_scan.re"
6235 { NEWTOKEN(PSI_T_OBJECT
); goto start
; }
6236 #line 6237 "src/parser_scan.c"
6239 yych
= *(mrk
= ++cur
);
6304 case 0x7F: goto yy459
;
6305 case '\\': goto yy147
;
6309 #line 236 "src/parser_scan.re"
6310 { NEWTOKEN(PSI_T_OBJVAL
); goto start
; }
6311 #line 6312 "src/parser_scan.c"
6314 yych
= *(mrk
= ++cur
);
6317 case 'l': goto yy510
;
6322 yych
= *(mrk
= ++cur
);
6325 case 's': goto yy512
;
6330 yych
= *(mrk
= ++cur
);
6333 case 's': goto yy513
;
6338 yych
= *(mrk
= ++cur
);
6403 case 0x7F: goto yy464
;
6404 case '\\': goto yy147
;
6408 #line 225 "src/parser_scan.re"
6409 { NEWTOKEN(PSI_T_RETURN
); goto start
; }
6410 #line 6411 "src/parser_scan.c"
6413 yych
= *(mrk
= ++cur
);
6478 case 0x7F: goto yy466
;
6479 case '\\': goto yy147
;
6483 #line 219 "src/parser_scan.re"
6484 { NEWTOKEN(PSI_T_STATIC
); goto start
; }
6485 #line 6486 "src/parser_scan.c"
6488 yych
= *(mrk
= ++cur
);
6553 case 0x7F: goto yy468
;
6554 case '\\': goto yy147
;
6558 #line 215 "src/parser_scan.re"
6559 { NEWTOKEN(PSI_T_STRING
); goto start
; }
6560 #line 6561 "src/parser_scan.c"
6563 yych
= *(mrk
= ++cur
);
6628 case 0x7F: goto yy470
;
6629 case '\\': goto yy147
;
6633 #line 229 "src/parser_scan.re"
6634 { NEWTOKEN(PSI_T_STRLEN
); goto start
; }
6635 #line 6636 "src/parser_scan.c"
6638 yych
= *(mrk
= ++cur
);
6703 case 0x7F: goto yy472
;
6704 case '\\': goto yy147
;
6708 #line 230 "src/parser_scan.re"
6709 { NEWTOKEN(PSI_T_STRVAL
); goto start
; }
6710 #line 6711 "src/parser_scan.c"
6713 yych
= *(mrk
= ++cur
);
6716 case 'a': goto yy514
;
6721 yych
= *(mrk
= ++cur
);
6724 case 'l': goto yy515
;
6729 yych
= *(mrk
= ++cur
);
6732 case 'a': goto yy517
;
6737 yych
= *(mrk
= ++cur
);
6802 case 0x7F: goto yy477
;
6803 case '\\': goto yy147
;
6807 #line 243 "src/parser_scan.re"
6808 { NEWTOKEN(PSI_T_TO_INT
); goto start
; }
6809 #line 6810 "src/parser_scan.c"
6812 yych
= *(mrk
= ++cur
);
6815 case 'e': goto yy518
;
6820 yych
= *(mrk
= ++cur
);
6823 case 'i': goto yy519
;
6828 yych
= *(mrk
= ++cur
);
6831 case 'g': goto yy520
;
6836 yych
= *(mrk
= ++cur
);
6838 case '_': goto yy522
;
6843 yych
= *(mrk
= ++cur
);
6845 case 'i': goto yy523
;
6850 yych
= *(mrk
= ++cur
);
6852 case 'n': goto yy524
;
6857 yych
= *(mrk
= ++cur
);
6859 case 'r': goto yy525
;
6864 yych
= *(mrk
= ++cur
);
6929 case 0x7F: goto yy486
;
6930 case '\\': goto yy147
;
6934 #line 194 "src/parser_scan.re"
6935 { NEWTOKEN(PSI_T_DOUBLE
); goto start
; }
6936 #line 6937 "src/parser_scan.c"
6939 yych
= *(mrk
= ++cur
);
7004 case 0x7F: goto yy488
;
7005 case '\\': goto yy147
;
7009 #line 175 "src/parser_scan.re"
7010 { NEWTOKEN(PSI_T_CPP_INLINE
); goto start
; }
7011 #line 7012 "src/parser_scan.c"
7014 yych
= *(mrk
= ++cur
);
7079 case 0x7F: goto yy490
;
7080 case '\\': goto yy147
;
7084 #line 174 "src/parser_scan.re"
7085 { NEWTOKEN(PSI_T_PRAGMA
); goto start
; }
7086 #line 7087 "src/parser_scan.c"
7089 yych
= *(mrk
= ++cur
);
7154 case 0x7F: goto yy492
;
7155 case '\\': goto yy147
;
7159 #line 196 "src/parser_scan.re"
7160 { NEWTOKEN(PSI_T_SIGNED
); goto start
; }
7161 #line 7162 "src/parser_scan.c"
7164 yych
= *(mrk
= ++cur
);
7229 case 0x7F: goto yy494
;
7230 case '\\': goto yy147
;
7234 #line 180 "src/parser_scan.re"
7235 { NEWTOKEN(PSI_T_SIZEOF
); goto start
; }
7236 #line 7237 "src/parser_scan.c"
7239 yych
= *(mrk
= ++cur
);
7304 case 0x7F: goto yy496
;
7305 case '\\': goto yy147
;
7309 #line 183 "src/parser_scan.re"
7310 { NEWTOKEN(PSI_T_STRUCT
); goto start
; }
7311 #line 7312 "src/parser_scan.c"
7314 yych
= *(mrk
= ++cur
);
7316 case 'f': goto yy526
;
7321 yych
= *(mrk
= ++cur
);
7323 case 'e': goto yy528
;
7328 yych
= *(mrk
= ++cur
);
7330 case 'l': goto yy529
;
7335 yych
= *(mrk
= ++cur
);
7400 case 0x7F: goto yy501
;
7401 case '\\': goto yy147
;
7405 #line 234 "src/parser_scan.re"
7406 { NEWTOKEN(PSI_T_BOOLVAL
); goto start
; }
7407 #line 7408 "src/parser_scan.c"
7410 yych
= *(mrk
= ++cur
);
7413 case 'e': goto yy530
;
7418 yych
= *(mrk
= ++cur
);
7421 case 'k': goto yy532
;
7426 yych
= *(mrk
= ++cur
);
7491 case 0x7F: goto yy505
;
7492 case '\\': goto yy147
;
7496 #line 204 "src/parser_scan.re"
7497 { NEWTOKEN(PSI_T_DEFINED
); goto start
; }
7498 #line 7499 "src/parser_scan.c"
7501 yych
= *(mrk
= ++cur
);
7504 case 'l': goto yy534
;
7509 yych
= *(mrk
= ++cur
);
7512 case 'n': goto yy536
;
7517 yych
= *(mrk
= ++cur
);
7582 case 0x7F: goto yy509
;
7583 case '\\': goto yy147
;
7584 case '_': goto yy538
;
7588 #line 208 "src/parser_scan.re"
7589 { NEWTOKEN(PSI_T_INCLUDE
); goto start
; }
7590 #line 7591 "src/parser_scan.c"
7593 yych
= *(mrk
= ++cur
);
7658 case 0x7F: goto yy511
;
7659 case '\\': goto yy147
;
7663 #line 231 "src/parser_scan.re"
7664 { NEWTOKEN(PSI_T_PATHVAL
); goto start
; }
7665 #line 7666 "src/parser_scan.c"
7668 yych
= *(mrk
= ++cur
);
7671 case 's': goto yy539
;
7676 yych
= *(mrk
= ++cur
);
7679 case 'e': goto yy540
;
7684 yych
= *(mrk
= ++cur
);
7687 case 'y': goto yy541
;
7692 yych
= *(mrk
= ++cur
);
7757 case 0x7F: goto yy516
;
7758 case '\\': goto yy147
;
7762 #line 245 "src/parser_scan.re"
7763 { NEWTOKEN(PSI_T_TO_BOOL
); goto start
; }
7764 #line 7765 "src/parser_scan.c"
7767 yych
= *(mrk
= ++cur
);
7770 case 't': goto yy543
;
7775 yych
= *(mrk
= ++cur
);
7778 case 'c': goto yy545
;
7783 yych
= *(mrk
= ++cur
);
7786 case 'n': goto yy546
;
7791 yych
= *(mrk
= ++cur
);
7856 case 0x7F: goto yy521
;
7857 case '\\': goto yy147
;
7861 #line 206 "src/parser_scan.re"
7862 { NEWTOKEN(PSI_T_WARNING
); goto start
; }
7863 #line 7864 "src/parser_scan.c"
7866 yych
= *(mrk
= ++cur
);
7931 case 0x7F: goto yy419
;
7932 case '\\': goto yy147
;
7937 yych
= *(mrk
= ++cur
);
7939 case 'b': goto yy547
;
7944 yych
= *(mrk
= ++cur
);
7946 case 's': goto yy548
;
7951 yych
= *(mrk
= ++cur
);
7953 case 'i': goto yy549
;
7958 yych
= *(mrk
= ++cur
);
8023 case 0x7F: goto yy527
;
8024 case '\\': goto yy147
;
8028 #line 182 "src/parser_scan.re"
8029 { NEWTOKEN(PSI_T_TYPEDEF
); goto start
; }
8030 #line 8031 "src/parser_scan.c"
8033 yych
= *(mrk
= ++cur
);
8035 case 'd': goto yy550
;
8040 yych
= *(mrk
= ++cur
);
8042 case 'e': goto yy552
;
8047 yych
= *(mrk
= ++cur
);
8112 case 0x7F: goto yy531
;
8113 case '\\': goto yy147
;
8117 #line 214 "src/parser_scan.re"
8118 { NEWTOKEN(PSI_T_CALLABLE
); goto start
; }
8119 #line 8120 "src/parser_scan.c"
8122 yych
= *(mrk
= ++cur
);
8187 case 0x7F: goto yy533
;
8188 case '\\': goto yy147
;
8192 #line 218 "src/parser_scan.re"
8193 { NEWTOKEN(PSI_T_CALLBACK
); goto start
; }
8194 #line 8195 "src/parser_scan.c"
8197 yych
= *(mrk
= ++cur
);
8262 case 0x7F: goto yy535
;
8263 case '\\': goto yy147
;
8267 #line 233 "src/parser_scan.re"
8268 { NEWTOKEN(PSI_T_FLOATVAL
); goto start
; }
8269 #line 8270 "src/parser_scan.c"
8272 yych
= *(mrk
= ++cur
);
8337 case 0x7F: goto yy537
;
8338 case '\\': goto yy147
;
8342 #line 220 "src/parser_scan.re"
8343 { NEWTOKEN(PSI_T_FUNCTION
); goto start
; }
8344 #line 8345 "src/parser_scan.c"
8347 yych
= *(mrk
= ++cur
);
8350 case 'n': goto yy554
;
8355 yych
= *(mrk
= ++cur
);
8358 case 'e': goto yy555
;
8363 yych
= *(mrk
= ++cur
);
8366 case 'r': goto yy556
;
8371 yych
= *(mrk
= ++cur
);
8436 case 0x7F: goto yy542
;
8437 case '\\': goto yy147
;
8441 #line 241 "src/parser_scan.re"
8442 { NEWTOKEN(PSI_T_TO_ARRAY
); goto start
; }
8443 #line 8444 "src/parser_scan.c"
8446 yych
= *(mrk
= ++cur
);
8511 case 0x7F: goto yy544
;
8512 case '\\': goto yy147
;
8516 #line 244 "src/parser_scan.re"
8517 { NEWTOKEN(PSI_T_TO_FLOAT
); goto start
; }
8518 #line 8519 "src/parser_scan.c"
8521 yych
= *(mrk
= ++cur
);
8524 case 't': goto yy557
;
8529 yych
= *(mrk
= ++cur
);
8532 case 'g': goto yy559
;
8537 yych
= *(mrk
= ++cur
);
8539 case 'u': goto yy561
;
8544 yych
= *(mrk
= ++cur
);
8546 case 'i': goto yy562
;
8551 yych
= *(mrk
= ++cur
);
8553 case 'c': goto yy563
;
8558 yych
= *(mrk
= ++cur
);
8623 case 0x7F: goto yy551
;
8624 case '\\': goto yy147
;
8628 #line 195 "src/parser_scan.re"
8629 { NEWTOKEN(PSI_T_UNSIGNED
); goto start
; }
8630 #line 8631 "src/parser_scan.c"
8633 yych
= *(mrk
= ++cur
);
8698 case 0x7F: goto yy553
;
8699 case '\\': goto yy147
;
8703 #line 179 "src/parser_scan.re"
8704 { NEWTOKEN(PSI_T_VOLATILE
); goto start
; }
8705 #line 8706 "src/parser_scan.c"
8708 yych
= *(mrk
= ++cur
);
8711 case 'e': goto yy564
;
8716 yych
= *(mrk
= ++cur
);
8719 case 'r': goto yy565
;
8724 yych
= *(mrk
= ++cur
);
8727 case 't': goto yy566
;
8732 yych
= *(mrk
= ++cur
);
8797 case 0x7F: goto yy558
;
8798 case '\\': goto yy147
;
8802 #line 240 "src/parser_scan.re"
8803 { NEWTOKEN(PSI_T_TO_OBJECT
); goto start
; }
8804 #line 8805 "src/parser_scan.c"
8807 yych
= *(mrk
= ++cur
);
8872 case 0x7F: goto yy560
;
8873 case '\\': goto yy147
;
8877 #line 242 "src/parser_scan.re"
8878 { NEWTOKEN(PSI_T_TO_STRING
); goto start
; }
8879 #line 8880 "src/parser_scan.c"
8882 yych
= *(mrk
= ++cur
);
8884 case 't': goto yy568
;
8889 yych
= *(mrk
= ++cur
);
8891 case 'o': goto yy569
;
8896 yych
= *(mrk
= ++cur
);
8898 case 't': goto yy570
;
8903 yych
= *(mrk
= ++cur
);
8906 case 'x': goto yy572
;
8911 yych
= *(mrk
= ++cur
);
8914 case 't': goto yy573
;
8919 yych
= *(mrk
= ++cur
);
8984 case 0x7F: goto yy567
;
8985 case '\\': goto yy147
;
8989 #line 223 "src/parser_scan.re"
8990 { NEWTOKEN(PSI_T_PRE_ASSERT
); goto start
; }
8991 #line 8992 "src/parser_scan.c"
8994 yych
= *(mrk
= ++cur
);
8996 case 'e': goto yy575
;
9001 yych
= *(mrk
= ++cur
);
9003 case 'n': goto yy576
;
9008 yych
= *(mrk
= ++cur
);
9073 case 0x7F: goto yy571
;
9074 case '\\': goto yy147
;
9078 #line 176 "src/parser_scan.re"
9079 { NEWTOKEN(PSI_T_CPP_RESTRICT
); goto start
; }
9080 #line 9081 "src/parser_scan.c"
9083 yych
= *(mrk
= ++cur
);
9086 case 't': goto yy577
;
9091 yych
= *(mrk
= ++cur
);
9156 case 0x7F: goto yy574
;
9157 case '\\': goto yy147
;
9161 #line 224 "src/parser_scan.re"
9162 { NEWTOKEN(PSI_T_POST_ASSERT
); goto start
; }
9163 #line 9164 "src/parser_scan.c"
9166 yych
= *(mrk
= ++cur
);
9168 case '_': goto yy579
;
9173 yych
= *(mrk
= ++cur
);
9175 case '_': goto yy580
;
9180 yych
= *(mrk
= ++cur
);
9245 case 0x7F: goto yy578
;
9246 case '\\': goto yy147
;
9250 #line 209 "src/parser_scan.re"
9251 { NEWTOKEN(PSI_T_INCLUDE_NEXT
); goto start
; }
9252 #line 9253 "src/parser_scan.c"
9255 yych
= *(mrk
= ++cur
);
9257 case '_': goto yy581
;
9262 yych
= *(mrk
= ++cur
);
9264 case '_': goto yy582
;
9269 yych
= *(mrk
= ++cur
);
9273 case ' ': goto yy584
;
9274 case '(': goto yy586
;
9279 yych
= *(mrk
= ++cur
);
9344 case 0x7F: goto yy583
;
9345 case '\\': goto yy147
;
9349 #line 177 "src/parser_scan.re"
9350 { NEWTOKEN(PSI_T_CPP_EXTENSION
); goto start
; }
9351 #line 9352 "src/parser_scan.c"
9354 if ((lim
- cur
) < 2) CHECKEOF();;
9359 case ' ': goto yy584
;
9360 case '(': goto yy586
;
9361 default: goto yy114
;
9366 case '(': goto yy587
;
9367 default: goto yy114
;
9371 #line 250 "src/parser_scan.re"
9372 { parens
= 2; goto cpp_attribute
; }
9373 #line 9374 "src/parser_scan.c"
9375 #line 256 "src/parser_scan.re"
9380 #line 9381 "src/parser_scan.c"
9383 if (lim
<= cur
) CHECKEOF();;
9387 case '\r': goto yy593
;
9388 case '\'': goto yy595
;
9389 case '\\': goto yy597
;
9390 default: goto yy591
;
9394 #line 274 "src/parser_scan.re"
9395 { escaped
= false; goto character
; }
9396 #line 9397 "src/parser_scan.c"
9399 #line 261 "src/parser_scan.re"
9400 { NEWLINE(); goto character
; }
9401 #line 9402 "src/parser_scan.c"
9404 #line 263 "src/parser_scan.re"
9411 NEWTOKEN(PSI_T_QUOTED_CHAR
);
9413 token
->flags
= char_width
;
9416 #line 9417 "src/parser_scan.c"
9419 #line 262 "src/parser_scan.re"
9420 { escaped
= !escaped
; goto character
; }
9421 #line 9422 "src/parser_scan.c"
9423 #line 276 "src/parser_scan.re"
9428 #line 9429 "src/parser_scan.c"
9431 if (lim
<= cur
) CHECKEOF();;
9435 case '\r': goto yy603
;
9436 case '"': goto yy605
;
9437 case '\\': goto yy607
;
9438 default: goto yy601
;
9442 #line 294 "src/parser_scan.re"
9443 { escaped
= false; goto string
; }
9444 #line 9445 "src/parser_scan.c"
9447 #line 281 "src/parser_scan.re"
9448 { NEWLINE(); goto string
; }
9449 #line 9450 "src/parser_scan.c"
9452 #line 283 "src/parser_scan.re"
9459 NEWTOKEN(PSI_T_QUOTED_STRING
);
9461 token
->flags
= char_width
;
9464 #line 9465 "src/parser_scan.c"
9467 #line 282 "src/parser_scan.re"
9468 { escaped
= !escaped
; goto string
; }
9469 #line 9470 "src/parser_scan.c"
9471 #line 296 "src/parser_scan.re"
9476 #line 9477 "src/parser_scan.c"
9479 if ((lim
- cur
) < 2) CHECKEOF();;
9483 case '\r': goto yy613
;
9484 case '*': goto yy615
;
9485 default: goto yy611
;
9490 #line 303 "src/parser_scan.re"
9492 #line 9493 "src/parser_scan.c"
9495 #line 301 "src/parser_scan.re"
9496 { NEWLINE(); goto comment
; }
9497 #line 9498 "src/parser_scan.c"
9501 case '/': goto yy616
;
9502 default: goto yy612
;
9506 #line 302 "src/parser_scan.re"
9507 { NEWTOKEN(PSI_T_COMMENT
); goto start
; }
9508 #line 9509 "src/parser_scan.c"
9510 #line 305 "src/parser_scan.re"
9515 #line 9516 "src/parser_scan.c"
9518 if (lim
<= cur
) CHECKEOF();;
9522 case '\r': goto yy622
;
9523 default: goto yy620
;
9527 #line 311 "src/parser_scan.re"
9528 { goto comment_sl
; }
9529 #line 9530 "src/parser_scan.c"
9532 #line 310 "src/parser_scan.re"
9533 { NEWTOKEN(PSI_T_COMMENT
); tok
= cur
- 1; NEWTOKEN(PSI_T_EOL
); NEWLINE(); goto start
; }
9534 #line 9535 "src/parser_scan.c"
9536 #line 313 "src/parser_scan.re"
9542 #line 9543 "src/parser_scan.c"
9545 if (lim
<= cur
) CHECKEOF();;
9549 case '\r': goto yy628
;
9550 case '(': goto yy630
;
9551 case ')': goto yy632
;
9552 default: goto yy626
;
9556 #line 322 "src/parser_scan.re"
9557 { goto cpp_attribute
; }
9558 #line 9559 "src/parser_scan.c"
9561 #line 321 "src/parser_scan.re"
9562 { NEWLINE(); goto cpp_attribute
; }
9563 #line 9564 "src/parser_scan.c"
9566 #line 319 "src/parser_scan.re"
9567 { ++parens
; goto cpp_attribute
; }
9568 #line 9569 "src/parser_scan.c"
9571 #line 320 "src/parser_scan.re"
9572 { if (parens
== 1) { NEWTOKEN(PSI_T_CPP_ATTRIBUTE
); goto start
; } else { --parens
; goto cpp_attribute
; } }
9573 #line 9574 "src/parser_scan.c"
9575 #line 324 "src/parser_scan.re"
9579 P
->error(PSI_DATA(P
), token
, PSI_WARNING
, "PSI syntax error: unexpected input (%d) '%.*s' at col %tu",
9580 token
->type
, token
->text
->len
, token
->text
->val
, tok
- eol
+ 1);
9581 psi_plist_free(tokens
);
9586 PSI_DEBUG_PRINT(P
, "PSI: EOF cur=%p lim=%p\n", cur
, lim
);