1 /* Generated by re2c 1.1.1 on Mon Dec 10 13:51:37 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 254 "src/parser_scan.re"
215 { CHECKEOF(); NEWTOKEN(-2); goto error
; }
216 #line 217 "src/parser_scan.c"
219 if (lim
<= cur
) CHECKEOF();;
228 #line 253 "src/parser_scan.re"
229 { NEWTOKEN(PSI_T_WHITESPACE
); goto start
; }
230 #line 231 "src/parser_scan.c"
233 #line 252 "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 247 "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
;
726 case 'i': goto yy165
;
731 yych
= *(mrk
= ++cur
);
734 case 'i': goto yy166
;
739 yych
= *(mrk
= ++cur
);
742 case 'u': goto yy167
;
747 yych
= *(mrk
= ++cur
);
750 case 'b': goto yy168
;
755 yych
= *(mrk
= ++cur
);
758 case 'a': goto yy169
;
760 case 'o': goto yy170
;
762 case 'r': goto yy171
;
767 yych
= *(mrk
= ++cur
);
770 case 'e': goto yy172
;
775 yych
= *(mrk
= ++cur
);
778 case 'e': goto yy173
;
780 case 't': goto yy174
;
785 yych
= *(mrk
= ++cur
);
788 case 'e': goto yy175
;
790 case 'o': goto yy176
;
792 case 'r': goto yy177
;
797 yych
= *(mrk
= ++cur
);
800 case '\'': goto yy178
;
802 case 'n': goto yy180
;
807 yych
= *(mrk
= ++cur
);
810 case 'a': goto yy181
;
815 yych
= *(mrk
= ++cur
);
818 case 'v': goto yy182
;
823 #line 147 "src/parser_scan.re"
824 { NEWTOKEN(PSI_T_LBRACKET
); goto start
; }
825 #line 826 "src/parser_scan.c"
903 case 0x7F: goto yy78
;
907 #line 162 "src/parser_scan.re"
908 { NEWTOKEN(PSI_T_BSLASH
); goto start
; }
909 #line 910 "src/parser_scan.c"
912 #line 148 "src/parser_scan.re"
913 { NEWTOKEN(PSI_T_RBRACKET
); goto start
; }
914 #line 915 "src/parser_scan.c"
917 #line 164 "src/parser_scan.re"
918 { NEWTOKEN(PSI_T_CARET
); goto start
; }
919 #line 920 "src/parser_scan.c"
922 yych
= *(mrk
= ++cur
);
924 case '_': goto yy186
;
929 yych
= *(mrk
= ++cur
);
931 case 'O': goto yy148
;
932 case 'o': goto yy187
;
937 yych
= *(mrk
= ++cur
);
940 case 'a': goto yy149
;
941 case 'O': goto yy150
;
942 case 'h': goto yy188
;
943 case 'o': goto yy189
;
948 yych
= *(mrk
= ++cur
);
951 case 'e': goto yy151
;
952 case 'o': goto yy190
;
957 yych
= *(mrk
= ++cur
);
960 case 'l': goto yy152
;
961 case 'N': goto yy153
;
963 case 'r': goto yy154
;
964 case 'n': goto yy191
;
969 yych
= *(mrk
= ++cur
);
972 case 'a': goto yy155
;
973 case 'L': goto yy156
;
975 case 'r': goto yy157
;
977 case 'u': goto yy158
;
978 case 'l': goto yy192
;
983 yych
= *(mrk
= ++cur
);
986 case 'f': goto yy159
;
987 case 'N': goto yy161
;
988 case 'n': goto yy193
;
993 yych
= *(mrk
= ++cur
);
996 case 'e': goto yy164
;
997 case 'I': goto yy165
;
998 case 'i': goto yy194
;
999 case 'o': goto yy195
;
1004 yych
= *(mrk
= ++cur
);
1007 case 'a': goto yy169
;
1009 case 'o': goto yy170
;
1010 case 'R': goto yy171
;
1011 case 'r': goto yy196
;
1016 yych
= *(mrk
= ++cur
);
1019 case 'e': goto yy173
;
1020 case 'T': goto yy174
;
1021 case 'h': goto yy197
;
1022 case 'i': goto yy198
;
1023 case 't': goto yy199
;
1028 yych
= *(mrk
= ++cur
);
1031 case 'e': goto yy175
;
1033 case 'o': goto yy176
;
1035 case 'r': goto yy177
;
1036 case 'y': goto yy200
;
1041 yych
= *(mrk
= ++cur
);
1044 case '\'': goto yy201
;
1045 case '8': goto yy203
;
1046 case 'N': goto yy180
;
1047 case 'n': goto yy204
;
1052 yych
= *(mrk
= ++cur
);
1054 case 'o': goto yy205
;
1059 #line 145 "src/parser_scan.re"
1060 { NEWTOKEN(PSI_T_LBRACE
); goto start
; }
1061 #line 1062 "src/parser_scan.c"
1065 case '|': goto yy206
;
1069 #line 163 "src/parser_scan.re"
1070 { NEWTOKEN(PSI_T_PIPE
); goto start
; }
1071 #line 1072 "src/parser_scan.c"
1074 #line 146 "src/parser_scan.re"
1075 { NEWTOKEN(PSI_T_RBRACE
); goto start
; }
1076 #line 1077 "src/parser_scan.c"
1079 #line 155 "src/parser_scan.re"
1080 { NEWTOKEN(PSI_T_TILDE
); goto start
; }
1081 #line 1082 "src/parser_scan.c"
1084 #line 149 "src/parser_scan.re"
1085 { NEWTOKEN(PSI_T_CMP_NE
); goto start
; }
1086 #line 1087 "src/parser_scan.c"
1089 #line 138 "src/parser_scan.re"
1090 { NEWTOKEN(PSI_T_CPP_PASTE
); goto start
; }
1091 #line 1092 "src/parser_scan.c"
1094 if (lim
<= cur
) CHECKEOF();;
1161 case 0x7F: goto yy110
;
1162 default: goto yy108
;
1165 #line 249 "src/parser_scan.re"
1166 { NEWTOKEN(PSI_T_DOLLAR_NAME
); goto start
; }
1167 #line 1168 "src/parser_scan.c"
1170 #line 151 "src/parser_scan.re"
1171 { NEWTOKEN(PSI_T_AND
); goto start
; }
1172 #line 1173 "src/parser_scan.c"
1176 case '.': goto yy208
;
1177 default: goto yy114
;
1192 case 10: goto yy244
;
1193 case 11: goto yy253
;
1194 case 12: goto yy274
;
1195 case 13: goto yy306
;
1196 case 14: goto yy308
;
1197 case 15: goto yy314
;
1198 case 16: goto yy322
;
1199 case 17: goto yy334
;
1200 case 18: goto yy342
;
1201 case 19: goto yy346
;
1202 case 20: goto yy353
;
1203 case 21: goto yy355
;
1204 case 22: goto yy359
;
1205 case 23: goto yy363
;
1206 case 24: goto yy365
;
1207 case 25: goto yy375
;
1208 case 26: goto yy378
;
1209 case 27: goto yy385
;
1210 case 28: goto yy388
;
1211 case 29: goto yy390
;
1212 case 30: goto yy392
;
1213 case 31: goto yy396
;
1214 case 32: goto yy401
;
1215 case 33: goto yy419
;
1216 case 34: goto yy422
;
1217 case 35: goto yy427
;
1218 case 36: goto yy430
;
1219 case 37: goto yy434
;
1220 case 38: goto yy440
;
1221 case 39: goto yy444
;
1222 case 40: goto yy449
;
1223 case 41: goto yy451
;
1224 case 42: goto yy455
;
1225 case 43: goto yy458
;
1226 case 44: goto yy460
;
1227 case 45: goto yy462
;
1228 case 46: goto yy467
;
1229 case 47: goto yy469
;
1230 case 48: goto yy471
;
1231 case 49: goto yy473
;
1232 case 50: goto yy475
;
1233 case 51: goto yy480
;
1234 case 52: goto yy489
;
1235 case 53: goto yy491
;
1236 case 54: goto yy493
;
1237 case 55: goto yy495
;
1238 case 56: goto yy497
;
1239 case 57: goto yy499
;
1240 case 58: goto yy504
;
1241 case 59: goto yy508
;
1242 case 60: goto yy512
;
1243 case 61: goto yy514
;
1244 case 62: goto yy519
;
1245 case 63: goto yy524
;
1246 case 64: goto yy530
;
1247 case 65: goto yy534
;
1248 case 66: goto yy536
;
1249 case 67: goto yy538
;
1250 case 68: goto yy540
;
1251 case 69: goto yy545
;
1252 case 70: goto yy547
;
1253 case 71: goto yy554
;
1254 case 72: goto yy556
;
1255 case 73: goto yy561
;
1256 case 74: goto yy563
;
1257 case 75: goto yy570
;
1258 case 76: goto yy574
;
1259 case 77: goto yy577
;
1260 case 78: goto yy581
;
1261 default: goto yy586
;
1266 if ((lim
- cur
) < 2) CHECKEOF();;
1278 case '9': goto yy115
;
1280 case 'd': goto yy210
;
1282 case 'f': goto yy211
;
1284 case 'l': goto yy213
;
1285 default: goto yy117
;
1288 #line 121 "src/parser_scan.re"
1289 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
; goto start
; }
1290 #line 1291 "src/parser_scan.c"
1293 #line 135 "src/parser_scan.re"
1295 #line 1296 "src/parser_scan.c"
1298 #line 136 "src/parser_scan.re"
1299 { goto comment_sl
; }
1300 #line 1301 "src/parser_scan.c"
1304 if ((lim
- cur
) < 3) CHECKEOF();;
1316 case '9': goto yy122
;
1318 case 'd': goto yy210
;
1320 case 'e': goto yy126
;
1322 case 'f': goto yy211
;
1324 case 'l': goto yy213
;
1325 default: goto yy117
;
1329 if ((lim
- cur
) < 3) CHECKEOF();;
1340 case '7': goto yy124
;
1342 case 'l': goto yy127
;
1344 case 'u': goto yy129
;
1351 case '-': goto yy215
;
1361 case '9': goto yy115
;
1362 default: goto yy114
;
1366 yych
= *(mrk
= ++cur
);
1369 case 'l': goto yy216
;
1371 case 'u': goto yy217
;
1372 default: goto yy128
;
1376 #line 117 "src/parser_scan.re"
1377 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
| PSI_NUMBER_L
; cur
+= 1; goto start
; }
1378 #line 1379 "src/parser_scan.c"
1383 case 'l': goto yy219
;
1384 default: goto yy130
;
1388 #line 116 "src/parser_scan.re"
1389 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
| PSI_NUMBER_U
; cur
+= 1; goto start
; }
1390 #line 1391 "src/parser_scan.c"
1415 case 'f': goto yy220
;
1416 default: goto yy114
;
1420 if (lim
<= cur
) CHECKEOF();;
1488 case 'z': goto yy132
;
1489 case '>': goto yy222
;
1490 default: goto yy114
;
1494 #line 165 "src/parser_scan.re"
1495 { NEWTOKEN(PSI_T_LSHIFT
); goto start
; }
1496 #line 1497 "src/parser_scan.c"
1499 #line 167 "src/parser_scan.re"
1500 { NEWTOKEN(PSI_T_CMP_LE
); goto start
; }
1501 #line 1502 "src/parser_scan.c"
1504 #line 150 "src/parser_scan.re"
1505 { NEWTOKEN(PSI_T_CMP_EQ
); goto start
; }
1506 #line 1507 "src/parser_scan.c"
1509 #line 168 "src/parser_scan.re"
1510 { NEWTOKEN(PSI_T_CMP_GE
); goto start
; }
1511 #line 1512 "src/parser_scan.c"
1514 #line 166 "src/parser_scan.re"
1515 { NEWTOKEN(PSI_T_RSHIFT
); goto start
; }
1516 #line 1517 "src/parser_scan.c"
1519 yych
= *(mrk
= ++cur
);
1522 case 'r': goto yy224
;
1527 yych
= *(mrk
= ++cur
);
1592 case 0x7F: goto yy146
;
1593 case '\\': goto yy147
;
1597 #line 227 "src/parser_scan.re"
1598 { NEWTOKEN(PSI_T_AS
); goto start
; }
1599 #line 1600 "src/parser_scan.c"
1602 if (lim
<= cur
) CHECKEOF();;
1679 case 0x7F: goto yy114
;
1680 default: goto yy183
;
1684 yych
= *(mrk
= ++cur
);
1687 case 'o': goto yy225
;
1692 yych
= *(mrk
= ++cur
);
1695 case 'l': goto yy226
;
1700 yych
= *(mrk
= ++cur
);
1703 case 'u': goto yy227
;
1708 yych
= *(mrk
= ++cur
);
1711 case 'f': goto yy228
;
1716 yych
= *(mrk
= ++cur
);
1719 case 'i': goto yy229
;
1721 case 's': goto yy230
;
1726 yych
= *(mrk
= ++cur
);
1729 case 'd': goto yy231
;
1734 yych
= *(mrk
= ++cur
);
1737 case 'r': goto yy232
;
1742 yych
= *(mrk
= ++cur
);
1745 case 'l': goto yy233
;
1750 yych
= *(mrk
= ++cur
);
1753 case 'o': goto yy234
;
1758 yych
= *(mrk
= ++cur
);
1761 case 'e': goto yy235
;
1766 yych
= *(mrk
= ++cur
);
1769 case 'n': goto yy236
;
1774 yych
= *(mrk
= ++cur
);
1839 case 0x7F: goto yy160
;
1841 case 'd': goto yy237
;
1843 case 'n': goto yy238
;
1844 case '\\': goto yy147
;
1848 #line 197 "src/parser_scan.re"
1849 { NEWTOKEN(PSI_T_IF
); goto start
; }
1850 #line 1851 "src/parser_scan.c"
1853 yych
= *(mrk
= ++cur
);
1856 case 'c': goto yy239
;
1858 case 't': goto yy240
;
1864 #line 133 "src/parser_scan.re"
1865 { char_width
= sizeof(wchar_t); }
1866 #line 1867 "src/parser_scan.c"
1869 yych
= *(mrk
= ++cur
);
1872 case 't': goto yy241
;
1877 yych
= *(mrk
= ++cur
);
1880 case 'b': goto yy243
;
1885 yych
= *(mrk
= ++cur
);
1888 case 'x': goto yy245
;
1893 yych
= *(mrk
= ++cur
);
1896 case 'l': goto yy246
;
1901 yych
= *(mrk
= ++cur
);
1904 case 'j': goto yy247
;
1909 yych
= *(mrk
= ++cur
);
1912 case 't': goto yy248
;
1917 yych
= *(mrk
= ++cur
);
1920 case 's': goto yy249
;
1925 yych
= *(mrk
= ++cur
);
1928 case 'e': goto yy250
;
1933 yych
= *(mrk
= ++cur
);
1936 case 't': goto yy251
;
1941 yych
= *(mrk
= ++cur
);
1944 case 't': goto yy252
;
1949 yych
= *(mrk
= ++cur
);
1952 case 'a': goto yy254
;
1954 case 'r': goto yy255
;
1959 yych
= *(mrk
= ++cur
);
1962 case 'm': goto yy256
;
1967 yych
= *(mrk
= ++cur
);
1969 case '_': goto yy257
;
1974 yych
= *(mrk
= ++cur
);
1977 case 'u': goto yy258
;
1983 #line 132 "src/parser_scan.re"
1985 #line 1986 "src/parser_scan.c"
1988 yych
= *(mrk
= ++cur
);
1991 case 'd': goto yy259
;
1996 yych
= *(mrk
= ++cur
);
1999 case 'r': goto yy260
;
2004 yych
= *(mrk
= ++cur
);
2007 case 'a': goto yy261
;
2013 if (lim
<= cur
) CHECKEOF();;
2079 case 0x7F: goto yy185
;
2080 case '\\': goto yy147
;
2081 default: goto yy183
;
2084 #line 248 "src/parser_scan.re"
2085 { NEWTOKEN(PSI_T_NSNAME
); goto start
; }
2086 #line 2087 "src/parser_scan.c"
2089 yych
= *(mrk
= ++cur
);
2091 case 'a': goto yy262
;
2092 case 'e': goto yy263
;
2093 case 'i': goto yy264
;
2094 case 'r': goto yy265
;
2099 yych
= *(mrk
= ++cur
);
2101 case 'O': goto yy225
;
2102 case 'o': goto yy266
;
2107 yych
= *(mrk
= ++cur
);
2109 case 'a': goto yy267
;
2114 yych
= *(mrk
= ++cur
);
2117 case 'u': goto yy227
;
2118 case 'n': goto yy268
;
2123 yych
= *(mrk
= ++cur
);
2125 case 'u': goto yy269
;
2130 yych
= *(mrk
= ++cur
);
2133 case 'd': goto yy231
;
2134 case 'u': goto yy270
;
2139 yych
= *(mrk
= ++cur
);
2141 case 'O': goto yy234
;
2142 case 'o': goto yy271
;
2147 yych
= *(mrk
= ++cur
);
2150 case 'c': goto yy239
;
2151 case 'T': goto yy240
;
2152 case 'l': goto yy272
;
2153 case 't': goto yy273
;
2158 yych
= *(mrk
= ++cur
);
2161 case 'b': goto yy243
;
2162 case 'n': goto yy275
;
2167 yych
= *(mrk
= ++cur
);
2169 case 'n': goto yy276
;
2174 yych
= *(mrk
= ++cur
);
2177 case 'e': goto yy250
;
2178 case 'a': goto yy277
;
2183 yych
= *(mrk
= ++cur
);
2185 case 'o': goto yy278
;
2190 yych
= *(mrk
= ++cur
);
2192 case 'g': goto yy279
;
2193 case 'z': goto yy280
;
2198 yych
= *(mrk
= ++cur
);
2201 case 'a': goto yy254
;
2202 case 'R': goto yy255
;
2203 case 'r': goto yy281
;
2208 yych
= *(mrk
= ++cur
);
2210 case 'p': goto yy282
;
2216 #line 131 "src/parser_scan.re"
2218 #line 2219 "src/parser_scan.c"
2221 yych
= *(mrk
= ++cur
);
2223 case '"': goto yy283
;
2228 yych
= *(mrk
= ++cur
);
2231 case 'd': goto yy259
;
2232 case 'i': goto yy285
;
2233 case 's': goto yy286
;
2238 yych
= *(mrk
= ++cur
);
2240 case 'i': goto yy287
;
2241 case 'l': goto yy288
;
2246 #line 152 "src/parser_scan.re"
2247 { NEWTOKEN(PSI_T_OR
); goto start
; }
2248 #line 2249 "src/parser_scan.c"
2251 #line 172 "src/parser_scan.re"
2252 { NEWTOKEN(PSI_T_ELLIPSIS
); goto start
; }
2253 #line 2254 "src/parser_scan.c"
2258 case 'd': goto yy289
;
2260 case 'f': goto yy291
;
2262 case 'l': goto yy293
;
2263 default: goto yy114
;
2268 #line 122 "src/parser_scan.re"
2269 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_F
; cur
+= 1; goto start
; }
2270 #line 2271 "src/parser_scan.c"
2274 #line 123 "src/parser_scan.re"
2275 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_L
; cur
+= 1; goto start
; }
2276 #line 2277 "src/parser_scan.c"
2289 case '9': goto yy115
;
2290 default: goto yy114
;
2296 case 'u': goto yy295
;
2297 default: goto yy114
;
2303 #line 118 "src/parser_scan.re"
2304 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
| PSI_NUMBER_UL
; cur
+= 2; goto start
; }
2305 #line 2306 "src/parser_scan.c"
2310 case 'l': goto yy295
;
2311 default: goto yy218
;
2316 if ((lim
- cur
) < 3) CHECKEOF();;
2319 case '.': goto yy297
;
2341 case 'f': goto yy220
;
2343 case 'l': goto yy127
;
2345 case 'p': goto yy126
;
2347 case 'u': goto yy129
;
2352 #line 250 "src/parser_scan.re"
2353 { tok
+= 1; cur
-= 1; NEWTOKEN(PSI_T_CPP_HEADER
); cur
+= 1; goto start
; }
2354 #line 2355 "src/parser_scan.c"
2357 yych
= *(mrk
= ++cur
);
2360 case 'a': goto yy299
;
2362 case 'v': goto yy300
;
2367 yych
= *(mrk
= ++cur
);
2370 case 'l': goto yy301
;
2375 yych
= *(mrk
= ++cur
);
2378 case 'l': goto yy302
;
2383 yych
= *(mrk
= ++cur
);
2386 case 'n': goto yy303
;
2391 yych
= *(mrk
= ++cur
);
2394 case 'i': goto yy304
;
2399 yych
= *(mrk
= ++cur
);
2402 case 'f': goto yy305
;
2407 yych
= *(mrk
= ++cur
);
2410 case 'e': goto yy307
;
2415 yych
= *(mrk
= ++cur
);
2418 case 'i': goto yy309
;
2423 yych
= *(mrk
= ++cur
);
2426 case 'o': goto yy310
;
2431 yych
= *(mrk
= ++cur
);
2434 case 's': goto yy311
;
2439 yych
= *(mrk
= ++cur
);
2442 case 'a': goto yy312
;
2447 yych
= *(mrk
= ++cur
);
2450 case 'e': goto yy313
;
2455 yych
= *(mrk
= ++cur
);
2458 case 'c': goto yy315
;
2463 yych
= *(mrk
= ++cur
);
2466 case 'e': goto yy316
;
2471 yych
= *(mrk
= ++cur
);
2474 case 'd': goto yy317
;
2479 yych
= *(mrk
= ++cur
);
2482 case 'l': goto yy318
;
2487 yych
= *(mrk
= ++cur
);
2490 case 'v': goto yy319
;
2495 yych
= *(mrk
= ++cur
);
2560 case 0x7F: goto yy242
;
2561 case '\\': goto yy147
;
2565 #line 222 "src/parser_scan.re"
2566 { NEWTOKEN(PSI_T_LET
); goto start
; }
2567 #line 2568 "src/parser_scan.c"
2570 yych
= *(mrk
= ++cur
);
2635 case 0x7F: goto yy244
;
2636 case '\\': goto yy147
;
2640 #line 221 "src/parser_scan.re"
2641 { NEWTOKEN(PSI_T_LIB
); goto start
; }
2642 #line 2643 "src/parser_scan.c"
2645 yych
= *(mrk
= ++cur
);
2648 case 'e': goto yy320
;
2653 yych
= *(mrk
= ++cur
);
2656 case 'l': goto yy321
;
2661 yych
= *(mrk
= ++cur
);
2664 case 'e': goto yy323
;
2666 case 'v': goto yy324
;
2671 yych
= *(mrk
= ++cur
);
2674 case 'h': goto yy325
;
2679 yych
= *(mrk
= ++cur
);
2682 case 't': goto yy326
;
2687 yych
= *(mrk
= ++cur
);
2689 case '_': goto yy327
;
2694 yych
= *(mrk
= ++cur
);
2697 case 'u': goto yy328
;
2702 yych
= *(mrk
= ++cur
);
2767 case 0x7F: goto yy253
;
2768 case '\\': goto yy147
;
2772 #line 223 "src/parser_scan.re"
2773 { NEWTOKEN(PSI_T_SET
); goto start
; }
2774 #line 2775 "src/parser_scan.c"
2777 yych
= *(mrk
= ++cur
);
2780 case 't': goto yy329
;
2785 yych
= *(mrk
= ++cur
);
2788 case 'i': goto yy330
;
2790 case 'l': goto yy331
;
2792 case 'v': goto yy332
;
2797 yych
= *(mrk
= ++cur
);
2800 case 'p': goto yy333
;
2805 yych
= *(mrk
= ++cur
);
2808 case 'a': goto yy335
;
2810 case 'b': goto yy336
;
2812 case 'f': goto yy337
;
2814 case 'i': goto yy338
;
2816 case 'o': goto yy339
;
2818 case 's': goto yy340
;
2823 yych
= *(mrk
= ++cur
);
2826 case 'e': goto yy341
;
2831 yych
= *(mrk
= ++cur
);
2834 case 'e': goto yy343
;
2839 yych
= *(mrk
= ++cur
);
2842 case 'n': goto yy344
;
2847 yych
= *(mrk
= ++cur
);
2850 case 'l': goto yy345
;
2855 yych
= *(mrk
= ++cur
);
2857 case 's': goto yy347
;
2858 case 't': goto yy348
;
2863 yych
= *(mrk
= ++cur
);
2865 case 'x': goto yy349
;
2870 yych
= *(mrk
= ++cur
);
2872 case 'n': goto yy350
;
2877 yych
= *(mrk
= ++cur
);
2879 case 'e': goto yy351
;
2884 yych
= *(mrk
= ++cur
);
2886 case 'L': goto yy301
;
2887 case 'l': goto yy352
;
2892 yych
= *(mrk
= ++cur
);
2894 case 'r': goto yy354
;
2899 yych
= *(mrk
= ++cur
);
2901 case 's': goto yy356
;
2906 yych
= *(mrk
= ++cur
);
2908 case 'b': goto yy357
;
2913 yych
= *(mrk
= ++cur
);
2915 case 'm': goto yy358
;
2920 yych
= *(mrk
= ++cur
);
2922 case 'A': goto yy312
;
2923 case 'a': goto yy360
;
2928 yych
= *(mrk
= ++cur
);
2930 case 'i': goto yy361
;
2935 yych
= *(mrk
= ++cur
);
3000 case 0x7F: goto yy274
;
3002 case 'v': goto yy319
;
3003 case '\\': goto yy147
;
3007 #line 191 "src/parser_scan.re"
3008 { NEWTOKEN(PSI_T_INT
); goto start
; }
3009 #line 3010 "src/parser_scan.c"
3012 yych
= *(mrk
= ++cur
);
3014 case 'e': goto yy362
;
3019 yych
= *(mrk
= ++cur
);
3021 case 'g': goto yy364
;
3026 yych
= *(mrk
= ++cur
);
3028 case 'g': goto yy366
;
3033 yych
= *(mrk
= ++cur
);
3035 case 'r': goto yy367
;
3040 yych
= *(mrk
= ++cur
);
3042 case 'n': goto yy368
;
3047 yych
= *(mrk
= ++cur
);
3049 case 'e': goto yy369
;
3054 yych
= *(mrk
= ++cur
);
3057 case 'i': goto yy330
;
3059 case 'l': goto yy331
;
3061 case 'v': goto yy332
;
3062 case 'u': goto yy370
;
3067 yych
= *(mrk
= ++cur
);
3069 case 'e': goto yy371
;
3075 #line 130 "src/parser_scan.re"
3077 #line 3078 "src/parser_scan.c"
3080 yych
= *(mrk
= ++cur
);
3082 case 'o': goto yy372
;
3087 yych
= *(mrk
= ++cur
);
3089 case 'i': goto yy373
;
3094 yych
= *(mrk
= ++cur
);
3096 case 'd': goto yy374
;
3101 yych
= *(mrk
= ++cur
);
3103 case 'a': goto yy376
;
3109 #line 125 "src/parser_scan.re"
3110 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_DD
; cur
+= 2; goto start
; }
3111 #line 3112 "src/parser_scan.c"
3115 #line 124 "src/parser_scan.re"
3116 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_DF
; cur
+= 2; goto start
; }
3117 #line 3118 "src/parser_scan.c"
3121 #line 126 "src/parser_scan.re"
3122 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_FLT
| PSI_NUMBER_DL
; cur
+= 2; goto start
; }
3123 #line 3124 "src/parser_scan.c"
3127 #line 119 "src/parser_scan.re"
3128 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
| PSI_NUMBER_ULL
; cur
+= 3; goto start
; }
3129 #line 3130 "src/parser_scan.c"
3132 if ((lim
- cur
) < 3) CHECKEOF();;
3156 case 'f': goto yy297
;
3158 case 'p': goto yy126
;
3159 default: goto yy114
;
3163 yych
= *(mrk
= ++cur
);
3166 case 'y': goto yy377
;
3171 yych
= *(mrk
= ++cur
);
3174 case 'a': goto yy379
;
3179 yych
= *(mrk
= ++cur
);
3182 case 'v': goto yy380
;
3187 yych
= *(mrk
= ++cur
);
3190 case 'a': goto yy381
;
3192 case 'b': goto yy382
;
3194 case 'o': goto yy383
;
3199 yych
= *(mrk
= ++cur
);
3202 case 't': goto yy384
;
3207 yych
= *(mrk
= ++cur
);
3210 case 'n': goto yy386
;
3215 yych
= *(mrk
= ++cur
);
3280 case 0x7F: goto yy306
;
3281 case '\\': goto yy147
;
3285 #line 201 "src/parser_scan.re"
3286 { NEWTOKEN(PSI_T_ELIF
); goto start
; }
3287 #line 3288 "src/parser_scan.c"
3290 yych
= *(mrk
= ++cur
);
3355 case 0x7F: goto yy308
;
3356 case '\\': goto yy147
;
3360 #line 200 "src/parser_scan.re"
3361 { NEWTOKEN(PSI_T_ELSE
); goto start
; }
3362 #line 3363 "src/parser_scan.c"
3365 yych
= *(mrk
= ++cur
);
3368 case 'f': goto yy387
;
3373 yych
= *(mrk
= ++cur
);
3376 case 'r': goto yy389
;
3381 yych
= *(mrk
= ++cur
);
3384 case 'e': goto yy391
;
3389 yych
= *(mrk
= ++cur
);
3392 case 't': goto yy393
;
3397 yych
= *(mrk
= ++cur
);
3462 case 0x7F: goto yy314
;
3463 case '\\': goto yy147
;
3467 #line 228 "src/parser_scan.re"
3468 { NEWTOKEN(PSI_T_FREE
); goto start
; }
3469 #line 3470 "src/parser_scan.c"
3472 yych
= *(mrk
= ++cur
);
3475 case 't': goto yy394
;
3480 yych
= *(mrk
= ++cur
);
3483 case 'f': goto yy395
;
3488 yych
= *(mrk
= ++cur
);
3491 case 'e': goto yy397
;
3496 yych
= *(mrk
= ++cur
);
3499 case 'u': goto yy398
;
3504 yych
= *(mrk
= ++cur
);
3507 case 'a': goto yy399
;
3512 yych
= *(mrk
= ++cur
);
3515 case 'd': goto yy400
;
3520 yych
= *(mrk
= ++cur
);
3585 case 0x7F: goto yy322
;
3586 case '\\': goto yy147
;
3590 #line 212 "src/parser_scan.re"
3591 { NEWTOKEN(PSI_T_NULL
); goto start
; }
3592 #line 3593 "src/parser_scan.c"
3595 yych
= *(mrk
= ++cur
);
3598 case 'c': goto yy402
;
3603 yych
= *(mrk
= ++cur
);
3606 case 'a': goto yy403
;
3611 yych
= *(mrk
= ++cur
);
3614 case 'v': goto yy404
;
3619 yych
= *(mrk
= ++cur
);
3621 case '_': goto yy405
;
3626 yych
= *(mrk
= ++cur
);
3629 case 'a': goto yy406
;
3634 yych
= *(mrk
= ++cur
);
3637 case 'r': goto yy407
;
3642 yych
= *(mrk
= ++cur
);
3645 case 'i': goto yy408
;
3650 yych
= *(mrk
= ++cur
);
3653 case 'n': goto yy409
;
3658 yych
= *(mrk
= ++cur
);
3661 case 'e': goto yy410
;
3666 yych
= *(mrk
= ++cur
);
3669 case 'a': goto yy411
;
3674 yych
= *(mrk
= ++cur
);
3739 case 0x7F: goto yy334
;
3740 case '\\': goto yy147
;
3744 #line 229 "src/parser_scan.re"
3745 { NEWTOKEN(PSI_T_TEMP
); goto start
; }
3746 #line 3747 "src/parser_scan.c"
3749 yych
= *(mrk
= ++cur
);
3752 case 'r': goto yy412
;
3757 yych
= *(mrk
= ++cur
);
3760 case 'o': goto yy413
;
3765 yych
= *(mrk
= ++cur
);
3768 case 'l': goto yy414
;
3773 yych
= *(mrk
= ++cur
);
3776 case 'n': goto yy415
;
3781 yych
= *(mrk
= ++cur
);
3784 case 'b': goto yy416
;
3789 yych
= *(mrk
= ++cur
);
3792 case 't': goto yy417
;
3797 yych
= *(mrk
= ++cur
);
3862 case 0x7F: goto yy342
;
3863 case '\\': goto yy147
;
3867 #line 210 "src/parser_scan.re"
3868 { NEWTOKEN(PSI_T_TRUE
); goto start
; }
3869 #line 3870 "src/parser_scan.c"
3872 yych
= *(mrk
= ++cur
);
3875 case 'f': goto yy418
;
3880 yych
= *(mrk
= ++cur
);
3883 case 'i': goto yy420
;
3888 yych
= *(mrk
= ++cur
);
3953 case 0x7F: goto yy346
;
3954 case '\\': goto yy147
;
3958 #line 238 "src/parser_scan.re"
3959 { NEWTOKEN(PSI_T_ZVAL
); goto start
; }
3960 #line 3961 "src/parser_scan.c"
3963 yych
= *(mrk
= ++cur
);
3965 case 'm': goto yy421
;
3970 yych
= *(mrk
= ++cur
);
3972 case 't': goto yy423
;
3977 yych
= *(mrk
= ++cur
);
3979 case 't': goto yy424
;
3984 yych
= *(mrk
= ++cur
);
3986 case 'l': goto yy272
;
3991 yych
= *(mrk
= ++cur
);
3993 case 's': goto yy425
;
3998 yych
= *(mrk
= ++cur
);
4063 case 0x7F: goto yy353
;
4065 case 'v': goto yy380
;
4066 case '\\': goto yy147
;
4070 #line 188 "src/parser_scan.re"
4071 { NEWTOKEN(PSI_T_BOOL
); goto start
; }
4072 #line 4073 "src/parser_scan.c"
4075 yych
= *(mrk
= ++cur
);
4140 case 0x7F: goto yy355
;
4141 case '\\': goto yy147
;
4145 #line 189 "src/parser_scan.re"
4146 { NEWTOKEN(PSI_T_CHAR
); goto start
; }
4147 #line 4148 "src/parser_scan.c"
4150 yych
= *(mrk
= ++cur
);
4152 case 't': goto yy426
;
4157 yych
= *(mrk
= ++cur
);
4159 case 'l': goto yy428
;
4164 yych
= *(mrk
= ++cur
);
4229 case 0x7F: goto yy359
;
4230 case '\\': goto yy147
;
4234 #line 185 "src/parser_scan.re"
4235 { NEWTOKEN(PSI_T_ENUM
); goto start
; }
4236 #line 4237 "src/parser_scan.c"
4239 yych
= *(mrk
= ++cur
);
4241 case 'T': goto yy393
;
4242 case 't': goto yy429
;
4247 yych
= *(mrk
= ++cur
);
4249 case 'n': goto yy431
;
4254 yych
= *(mrk
= ++cur
);
4319 case 0x7F: goto yy363
;
4320 case '\\': goto yy147
;
4324 #line 181 "src/parser_scan.re"
4325 { NEWTOKEN(PSI_T_LINE
); goto start
; }
4326 #line 4327 "src/parser_scan.c"
4329 yych
= *(mrk
= ++cur
);
4394 case 0x7F: goto yy365
;
4395 case '\\': goto yy147
;
4399 #line 192 "src/parser_scan.re"
4400 { NEWTOKEN(PSI_T_LONG
); goto start
; }
4401 #line 4402 "src/parser_scan.c"
4404 yych
= *(mrk
= ++cur
);
4406 case 'm': goto yy432
;
4411 yych
= *(mrk
= ++cur
);
4413 case 't': goto yy433
;
4418 yych
= *(mrk
= ++cur
);
4420 case 'e': goto yy435
;
4425 yych
= *(mrk
= ++cur
);
4427 case 'o': goto yy436
;
4432 yych
= *(mrk
= ++cur
);
4434 case 'c': goto yy437
;
4439 yych
= *(mrk
= ++cur
);
4441 case 'd': goto yy438
;
4446 yych
= *(mrk
= ++cur
);
4448 case 'n': goto yy439
;
4453 yych
= *(mrk
= ++cur
);
4455 case 'g': goto yy441
;
4460 yych
= *(mrk
= ++cur
);
4525 case 0x7F: goto yy375
;
4526 case '\\': goto yy147
;
4530 #line 187 "src/parser_scan.re"
4531 { NEWTOKEN(PSI_T_VOID
); goto start
; }
4532 #line 4533 "src/parser_scan.c"
4535 yych
= *(mrk
= ++cur
);
4537 case 't': goto yy442
;
4542 yych
= *(mrk
= ++cur
);
4607 case 0x7F: goto yy378
;
4608 case '\\': goto yy147
;
4612 #line 216 "src/parser_scan.re"
4613 { NEWTOKEN(PSI_T_ARRAY
); goto start
; }
4614 #line 4615 "src/parser_scan.c"
4617 yych
= *(mrk
= ++cur
);
4620 case 'l': goto yy443
;
4625 yych
= *(mrk
= ++cur
);
4628 case 'a': goto yy445
;
4633 yych
= *(mrk
= ++cur
);
4636 case 'b': goto yy446
;
4641 yych
= *(mrk
= ++cur
);
4644 case 'a': goto yy447
;
4649 yych
= *(mrk
= ++cur
);
4652 case 'c': goto yy448
;
4657 yych
= *(mrk
= ++cur
);
4722 case 0x7F: goto yy385
;
4723 case '\\': goto yy147
;
4727 #line 239 "src/parser_scan.re"
4728 { NEWTOKEN(PSI_T_COUNT
); goto start
; }
4729 #line 4730 "src/parser_scan.c"
4732 yych
= *(mrk
= ++cur
);
4735 case 'e': goto yy450
;
4740 yych
= *(mrk
= ++cur
);
4805 case 0x7F: goto yy388
;
4806 case '\\': goto yy147
;
4810 #line 202 "src/parser_scan.re"
4811 { NEWTOKEN(PSI_T_ENDIF
); goto start
; }
4812 #line 4813 "src/parser_scan.c"
4815 yych
= *(mrk
= ++cur
);
4880 case 0x7F: goto yy390
;
4881 case '\\': goto yy147
;
4885 #line 207 "src/parser_scan.re"
4886 { NEWTOKEN(PSI_T_ERROR
); goto start
; }
4887 #line 4888 "src/parser_scan.c"
4890 yych
= *(mrk
= ++cur
);
4955 case 0x7F: goto yy392
;
4956 case '\\': goto yy147
;
4960 #line 211 "src/parser_scan.re"
4961 { NEWTOKEN(PSI_T_FALSE
); goto start
; }
4962 #line 4963 "src/parser_scan.c"
4965 yych
= *(mrk
= ++cur
);
4968 case 'v': goto yy452
;
4973 yych
= *(mrk
= ++cur
);
4976 case 'i': goto yy453
;
4981 yych
= *(mrk
= ++cur
);
5046 case 0x7F: goto yy396
;
5047 case '\\': goto yy147
;
5051 #line 198 "src/parser_scan.re"
5052 { NEWTOKEN(PSI_T_IFDEF
); goto start
; }
5053 #line 5054 "src/parser_scan.c"
5056 yych
= *(mrk
= ++cur
);
5059 case 'f': goto yy454
;
5064 yych
= *(mrk
= ++cur
);
5067 case 'd': goto yy456
;
5072 yych
= *(mrk
= ++cur
);
5075 case 'l': goto yy457
;
5080 yych
= *(mrk
= ++cur
);
5145 case 0x7F: goto yy401
;
5146 case '\\': goto yy147
;
5150 #line 213 "src/parser_scan.re"
5151 { NEWTOKEN(PSI_T_MIXED
); goto start
; }
5152 #line 5153 "src/parser_scan.c"
5155 yych
= *(mrk
= ++cur
);
5158 case 't': goto yy459
;
5163 yych
= *(mrk
= ++cur
);
5166 case 'l': goto yy461
;
5171 yych
= *(mrk
= ++cur
);
5174 case 'a': goto yy463
;
5179 yych
= *(mrk
= ++cur
);
5182 case 'a': goto yy464
;
5187 yych
= *(mrk
= ++cur
);
5190 case 's': goto yy465
;
5195 yych
= *(mrk
= ++cur
);
5198 case 'n': goto yy466
;
5203 yych
= *(mrk
= ++cur
);
5206 case 'c': goto yy468
;
5211 yych
= *(mrk
= ++cur
);
5214 case 'g': goto yy470
;
5219 yych
= *(mrk
= ++cur
);
5222 case 'n': goto yy472
;
5227 yych
= *(mrk
= ++cur
);
5230 case 'l': goto yy474
;
5235 yych
= *(mrk
= ++cur
);
5238 case 'r': goto yy476
;
5243 yych
= *(mrk
= ++cur
);
5246 case 'o': goto yy477
;
5251 yych
= *(mrk
= ++cur
);
5254 case 'o': goto yy478
;
5259 yych
= *(mrk
= ++cur
);
5262 case 't': goto yy479
;
5267 yych
= *(mrk
= ++cur
);
5270 case 'j': goto yy481
;
5275 yych
= *(mrk
= ++cur
);
5278 case 'r': goto yy482
;
5283 yych
= *(mrk
= ++cur
);
5348 case 0x7F: goto yy419
;
5349 case '\\': goto yy147
;
5353 #line 205 "src/parser_scan.re"
5354 { NEWTOKEN(PSI_T_UNDEF
); goto start
; }
5355 #line 5356 "src/parser_scan.c"
5358 yych
= *(mrk
= ++cur
);
5361 case 'n': goto yy483
;
5366 yych
= *(mrk
= ++cur
);
5431 case 0x7F: goto yy422
;
5432 case '\\': goto yy147
;
5433 case '_': goto yy484
;
5437 #line 178 "src/parser_scan.re"
5438 { NEWTOKEN(PSI_T_CPP_ASM
); goto start
; }
5439 #line 5440 "src/parser_scan.c"
5442 yych
= *(mrk
= ++cur
);
5444 case 'r': goto yy485
;
5449 yych
= *(mrk
= ++cur
);
5451 case 'e': goto yy486
;
5456 yych
= *(mrk
= ++cur
);
5458 case 't': goto yy487
;
5463 yych
= *(mrk
= ++cur
);
5528 case 0x7F: goto yy427
;
5529 case '\\': goto yy147
;
5533 #line 186 "src/parser_scan.re"
5534 { NEWTOKEN(PSI_T_CONST
); goto start
; }
5535 #line 5536 "src/parser_scan.c"
5538 yych
= *(mrk
= ++cur
);
5540 case 'e': goto yy488
;
5545 yych
= *(mrk
= ++cur
);
5610 case 0x7F: goto yy430
;
5612 case 'v': goto yy452
;
5613 case '\\': goto yy147
;
5617 #line 193 "src/parser_scan.re"
5618 { NEWTOKEN(PSI_T_FLOAT
); goto start
; }
5619 #line 5620 "src/parser_scan.c"
5622 yych
= *(mrk
= ++cur
);
5624 case 'e': goto yy490
;
5629 yych
= *(mrk
= ++cur
);
5631 case 'a': goto yy492
;
5636 yych
= *(mrk
= ++cur
);
5701 case 0x7F: goto yy434
;
5702 case '\\': goto yy147
;
5706 #line 190 "src/parser_scan.re"
5707 { NEWTOKEN(PSI_T_SHORT
); goto start
; }
5708 #line 5709 "src/parser_scan.c"
5711 yych
= *(mrk
= ++cur
);
5713 case 'd': goto yy494
;
5718 yych
= *(mrk
= ++cur
);
5720 case 'f': goto yy496
;
5725 yych
= *(mrk
= ++cur
);
5727 case 't': goto yy498
;
5732 yych
= *(mrk
= ++cur
);
5734 case 'e': goto yy500
;
5739 yych
= *(mrk
= ++cur
);
5804 case 0x7F: goto yy440
;
5805 case '\\': goto yy147
;
5809 #line 184 "src/parser_scan.re"
5810 { NEWTOKEN(PSI_T_UNION
); goto start
; }
5811 #line 5812 "src/parser_scan.c"
5814 yych
= *(mrk
= ++cur
);
5816 case 'n': goto yy501
;
5821 yych
= *(mrk
= ++cur
);
5823 case 'i': goto yy502
;
5828 yych
= *(mrk
= ++cur
);
5893 case 0x7F: goto yy444
;
5894 case '\\': goto yy147
;
5898 #line 236 "src/parser_scan.re"
5899 { NEWTOKEN(PSI_T_ARRVAL
); goto start
; }
5900 #line 5901 "src/parser_scan.c"
5903 yych
= *(mrk
= ++cur
);
5906 case 'l': goto yy503
;
5911 yych
= *(mrk
= ++cur
);
5914 case 'l': goto yy505
;
5919 yych
= *(mrk
= ++cur
);
5922 case 'c': goto yy506
;
5927 yych
= *(mrk
= ++cur
);
5992 case 0x7F: goto yy449
;
5993 case '\\': goto yy147
;
5997 #line 240 "src/parser_scan.re"
5998 { NEWTOKEN(PSI_T_CALLOC
); goto start
; }
5999 #line 6000 "src/parser_scan.c"
6002 yych
= *(mrk
= ++cur
);
6067 case 0x7F: goto yy451
;
6069 case 'd': goto yy507
;
6070 case '\\': goto yy147
;
6074 #line 203 "src/parser_scan.re"
6075 { NEWTOKEN(PSI_T_DEFINE
); goto start
; }
6076 #line 6077 "src/parser_scan.c"
6079 yych
= *(mrk
= ++cur
);
6082 case 'a': goto yy509
;
6087 yych
= *(mrk
= ++cur
);
6090 case 'o': goto yy510
;
6095 yych
= *(mrk
= ++cur
);
6160 case 0x7F: goto yy455
;
6161 case '\\': goto yy147
;
6165 #line 199 "src/parser_scan.re"
6166 { NEWTOKEN(PSI_T_IFNDEF
); goto start
; }
6167 #line 6168 "src/parser_scan.c"
6170 yych
= *(mrk
= ++cur
);
6173 case 'e': goto yy511
;
6178 yych
= *(mrk
= ++cur
);
6243 case 0x7F: goto yy458
;
6244 case '\\': goto yy147
;
6248 #line 233 "src/parser_scan.re"
6249 { NEWTOKEN(PSI_T_INTVAL
); goto start
; }
6250 #line 6251 "src/parser_scan.c"
6253 yych
= *(mrk
= ++cur
);
6318 case 0x7F: goto yy460
;
6319 case '\\': goto yy147
;
6323 #line 217 "src/parser_scan.re"
6324 { NEWTOKEN(PSI_T_OBJECT
); goto start
; }
6325 #line 6326 "src/parser_scan.c"
6328 yych
= *(mrk
= ++cur
);
6393 case 0x7F: goto yy462
;
6394 case '\\': goto yy147
;
6398 #line 237 "src/parser_scan.re"
6399 { NEWTOKEN(PSI_T_OBJVAL
); goto start
; }
6400 #line 6401 "src/parser_scan.c"
6403 yych
= *(mrk
= ++cur
);
6406 case 'l': goto yy513
;
6411 yych
= *(mrk
= ++cur
);
6414 case 's': goto yy515
;
6419 yych
= *(mrk
= ++cur
);
6422 case 's': goto yy516
;
6427 yych
= *(mrk
= ++cur
);
6492 case 0x7F: goto yy467
;
6493 case '\\': goto yy147
;
6497 #line 226 "src/parser_scan.re"
6498 { NEWTOKEN(PSI_T_RETURN
); goto start
; }
6499 #line 6500 "src/parser_scan.c"
6502 yych
= *(mrk
= ++cur
);
6567 case 0x7F: goto yy469
;
6568 case '\\': goto yy147
;
6572 #line 219 "src/parser_scan.re"
6573 { NEWTOKEN(PSI_T_STATIC
); goto start
; }
6574 #line 6575 "src/parser_scan.c"
6577 yych
= *(mrk
= ++cur
);
6642 case 0x7F: goto yy471
;
6643 case '\\': goto yy147
;
6647 #line 215 "src/parser_scan.re"
6648 { NEWTOKEN(PSI_T_STRING
); goto start
; }
6649 #line 6650 "src/parser_scan.c"
6652 yych
= *(mrk
= ++cur
);
6717 case 0x7F: goto yy473
;
6718 case '\\': goto yy147
;
6722 #line 230 "src/parser_scan.re"
6723 { NEWTOKEN(PSI_T_STRLEN
); goto start
; }
6724 #line 6725 "src/parser_scan.c"
6727 yych
= *(mrk
= ++cur
);
6792 case 0x7F: goto yy475
;
6793 case '\\': goto yy147
;
6797 #line 231 "src/parser_scan.re"
6798 { NEWTOKEN(PSI_T_STRVAL
); goto start
; }
6799 #line 6800 "src/parser_scan.c"
6802 yych
= *(mrk
= ++cur
);
6805 case 'a': goto yy517
;
6810 yych
= *(mrk
= ++cur
);
6813 case 'l': goto yy518
;
6818 yych
= *(mrk
= ++cur
);
6821 case 'a': goto yy520
;
6826 yych
= *(mrk
= ++cur
);
6891 case 0x7F: goto yy480
;
6892 case '\\': goto yy147
;
6896 #line 244 "src/parser_scan.re"
6897 { NEWTOKEN(PSI_T_TO_INT
); goto start
; }
6898 #line 6899 "src/parser_scan.c"
6901 yych
= *(mrk
= ++cur
);
6904 case 'e': goto yy521
;
6909 yych
= *(mrk
= ++cur
);
6912 case 'i': goto yy522
;
6917 yych
= *(mrk
= ++cur
);
6920 case 'g': goto yy523
;
6925 yych
= *(mrk
= ++cur
);
6927 case '_': goto yy525
;
6932 yych
= *(mrk
= ++cur
);
6934 case 'i': goto yy526
;
6939 yych
= *(mrk
= ++cur
);
6941 case 'n': goto yy527
;
6946 yych
= *(mrk
= ++cur
);
6948 case 'r': goto yy528
;
6953 yych
= *(mrk
= ++cur
);
7018 case 0x7F: goto yy489
;
7019 case '\\': goto yy147
;
7023 #line 194 "src/parser_scan.re"
7024 { NEWTOKEN(PSI_T_DOUBLE
); goto start
; }
7025 #line 7026 "src/parser_scan.c"
7028 yych
= *(mrk
= ++cur
);
7093 case 0x7F: goto yy491
;
7094 case '\\': goto yy147
;
7098 #line 175 "src/parser_scan.re"
7099 { NEWTOKEN(PSI_T_CPP_INLINE
); goto start
; }
7100 #line 7101 "src/parser_scan.c"
7103 yych
= *(mrk
= ++cur
);
7168 case 0x7F: goto yy493
;
7169 case '\\': goto yy147
;
7173 #line 174 "src/parser_scan.re"
7174 { NEWTOKEN(PSI_T_PRAGMA
); goto start
; }
7175 #line 7176 "src/parser_scan.c"
7178 yych
= *(mrk
= ++cur
);
7243 case 0x7F: goto yy495
;
7244 case '\\': goto yy147
;
7248 #line 196 "src/parser_scan.re"
7249 { NEWTOKEN(PSI_T_SIGNED
); goto start
; }
7250 #line 7251 "src/parser_scan.c"
7253 yych
= *(mrk
= ++cur
);
7318 case 0x7F: goto yy497
;
7319 case '\\': goto yy147
;
7323 #line 180 "src/parser_scan.re"
7324 { NEWTOKEN(PSI_T_SIZEOF
); goto start
; }
7325 #line 7326 "src/parser_scan.c"
7328 yych
= *(mrk
= ++cur
);
7393 case 0x7F: goto yy499
;
7394 case '\\': goto yy147
;
7398 #line 183 "src/parser_scan.re"
7399 { NEWTOKEN(PSI_T_STRUCT
); goto start
; }
7400 #line 7401 "src/parser_scan.c"
7403 yych
= *(mrk
= ++cur
);
7405 case 'f': goto yy529
;
7410 yych
= *(mrk
= ++cur
);
7412 case 'e': goto yy531
;
7417 yych
= *(mrk
= ++cur
);
7419 case 'l': goto yy532
;
7424 yych
= *(mrk
= ++cur
);
7489 case 0x7F: goto yy504
;
7490 case '\\': goto yy147
;
7494 #line 235 "src/parser_scan.re"
7495 { NEWTOKEN(PSI_T_BOOLVAL
); goto start
; }
7496 #line 7497 "src/parser_scan.c"
7499 yych
= *(mrk
= ++cur
);
7502 case 'e': goto yy533
;
7507 yych
= *(mrk
= ++cur
);
7510 case 'k': goto yy535
;
7515 yych
= *(mrk
= ++cur
);
7580 case 0x7F: goto yy508
;
7581 case '\\': goto yy147
;
7585 #line 204 "src/parser_scan.re"
7586 { NEWTOKEN(PSI_T_DEFINED
); goto start
; }
7587 #line 7588 "src/parser_scan.c"
7590 yych
= *(mrk
= ++cur
);
7593 case 'l': goto yy537
;
7598 yych
= *(mrk
= ++cur
);
7601 case 'n': goto yy539
;
7606 yych
= *(mrk
= ++cur
);
7671 case 0x7F: goto yy512
;
7672 case '\\': goto yy147
;
7673 case '_': goto yy541
;
7677 #line 208 "src/parser_scan.re"
7678 { NEWTOKEN(PSI_T_INCLUDE
); goto start
; }
7679 #line 7680 "src/parser_scan.c"
7682 yych
= *(mrk
= ++cur
);
7747 case 0x7F: goto yy514
;
7748 case '\\': goto yy147
;
7752 #line 232 "src/parser_scan.re"
7753 { NEWTOKEN(PSI_T_PATHVAL
); goto start
; }
7754 #line 7755 "src/parser_scan.c"
7757 yych
= *(mrk
= ++cur
);
7760 case 's': goto yy542
;
7765 yych
= *(mrk
= ++cur
);
7768 case 'e': goto yy543
;
7773 yych
= *(mrk
= ++cur
);
7776 case 'y': goto yy544
;
7781 yych
= *(mrk
= ++cur
);
7846 case 0x7F: goto yy519
;
7847 case '\\': goto yy147
;
7851 #line 246 "src/parser_scan.re"
7852 { NEWTOKEN(PSI_T_TO_BOOL
); goto start
; }
7853 #line 7854 "src/parser_scan.c"
7856 yych
= *(mrk
= ++cur
);
7859 case 't': goto yy546
;
7864 yych
= *(mrk
= ++cur
);
7867 case 'c': goto yy548
;
7872 yych
= *(mrk
= ++cur
);
7875 case 'n': goto yy549
;
7880 yych
= *(mrk
= ++cur
);
7945 case 0x7F: goto yy524
;
7946 case '\\': goto yy147
;
7950 #line 206 "src/parser_scan.re"
7951 { NEWTOKEN(PSI_T_WARNING
); goto start
; }
7952 #line 7953 "src/parser_scan.c"
7955 yych
= *(mrk
= ++cur
);
8020 case 0x7F: goto yy422
;
8021 case '\\': goto yy147
;
8026 yych
= *(mrk
= ++cur
);
8028 case 'b': goto yy550
;
8033 yych
= *(mrk
= ++cur
);
8035 case 's': goto yy551
;
8040 yych
= *(mrk
= ++cur
);
8042 case 'i': goto yy552
;
8047 yych
= *(mrk
= ++cur
);
8112 case 0x7F: goto yy530
;
8113 case '\\': goto yy147
;
8117 #line 182 "src/parser_scan.re"
8118 { NEWTOKEN(PSI_T_TYPEDEF
); goto start
; }
8119 #line 8120 "src/parser_scan.c"
8122 yych
= *(mrk
= ++cur
);
8124 case 'd': goto yy553
;
8129 yych
= *(mrk
= ++cur
);
8131 case 'e': goto yy555
;
8136 yych
= *(mrk
= ++cur
);
8201 case 0x7F: goto yy534
;
8202 case '\\': goto yy147
;
8206 #line 214 "src/parser_scan.re"
8207 { NEWTOKEN(PSI_T_CALLABLE
); goto start
; }
8208 #line 8209 "src/parser_scan.c"
8211 yych
= *(mrk
= ++cur
);
8276 case 0x7F: goto yy536
;
8277 case '\\': goto yy147
;
8281 #line 218 "src/parser_scan.re"
8282 { NEWTOKEN(PSI_T_CALLBACK
); goto start
; }
8283 #line 8284 "src/parser_scan.c"
8286 yych
= *(mrk
= ++cur
);
8351 case 0x7F: goto yy538
;
8352 case '\\': goto yy147
;
8356 #line 234 "src/parser_scan.re"
8357 { NEWTOKEN(PSI_T_FLOATVAL
); goto start
; }
8358 #line 8359 "src/parser_scan.c"
8361 yych
= *(mrk
= ++cur
);
8426 case 0x7F: goto yy540
;
8427 case '\\': goto yy147
;
8431 #line 220 "src/parser_scan.re"
8432 { NEWTOKEN(PSI_T_FUNCTION
); goto start
; }
8433 #line 8434 "src/parser_scan.c"
8436 yych
= *(mrk
= ++cur
);
8439 case 'n': goto yy557
;
8444 yych
= *(mrk
= ++cur
);
8447 case 'e': goto yy558
;
8452 yych
= *(mrk
= ++cur
);
8455 case 'r': goto yy559
;
8460 yych
= *(mrk
= ++cur
);
8525 case 0x7F: goto yy545
;
8526 case '\\': goto yy147
;
8530 #line 242 "src/parser_scan.re"
8531 { NEWTOKEN(PSI_T_TO_ARRAY
); goto start
; }
8532 #line 8533 "src/parser_scan.c"
8535 yych
= *(mrk
= ++cur
);
8600 case 0x7F: goto yy547
;
8601 case '\\': goto yy147
;
8605 #line 245 "src/parser_scan.re"
8606 { NEWTOKEN(PSI_T_TO_FLOAT
); goto start
; }
8607 #line 8608 "src/parser_scan.c"
8610 yych
= *(mrk
= ++cur
);
8613 case 't': goto yy560
;
8618 yych
= *(mrk
= ++cur
);
8621 case 'g': goto yy562
;
8626 yych
= *(mrk
= ++cur
);
8628 case 'u': goto yy564
;
8633 yych
= *(mrk
= ++cur
);
8635 case 'i': goto yy565
;
8640 yych
= *(mrk
= ++cur
);
8642 case 'c': goto yy566
;
8647 yych
= *(mrk
= ++cur
);
8712 case 0x7F: goto yy554
;
8713 case '\\': goto yy147
;
8717 #line 195 "src/parser_scan.re"
8718 { NEWTOKEN(PSI_T_UNSIGNED
); goto start
; }
8719 #line 8720 "src/parser_scan.c"
8722 yych
= *(mrk
= ++cur
);
8787 case 0x7F: goto yy556
;
8788 case '\\': goto yy147
;
8792 #line 179 "src/parser_scan.re"
8793 { NEWTOKEN(PSI_T_VOLATILE
); goto start
; }
8794 #line 8795 "src/parser_scan.c"
8797 yych
= *(mrk
= ++cur
);
8800 case 'e': goto yy567
;
8805 yych
= *(mrk
= ++cur
);
8808 case 'r': goto yy568
;
8813 yych
= *(mrk
= ++cur
);
8816 case 't': goto yy569
;
8821 yych
= *(mrk
= ++cur
);
8886 case 0x7F: goto yy561
;
8887 case '\\': goto yy147
;
8891 #line 241 "src/parser_scan.re"
8892 { NEWTOKEN(PSI_T_TO_OBJECT
); goto start
; }
8893 #line 8894 "src/parser_scan.c"
8896 yych
= *(mrk
= ++cur
);
8961 case 0x7F: goto yy563
;
8962 case '\\': goto yy147
;
8966 #line 243 "src/parser_scan.re"
8967 { NEWTOKEN(PSI_T_TO_STRING
); goto start
; }
8968 #line 8969 "src/parser_scan.c"
8971 yych
= *(mrk
= ++cur
);
8973 case 't': goto yy571
;
8978 yych
= *(mrk
= ++cur
);
8980 case 'o': goto yy572
;
8985 yych
= *(mrk
= ++cur
);
8987 case 't': goto yy573
;
8992 yych
= *(mrk
= ++cur
);
8995 case 'x': goto yy575
;
9000 yych
= *(mrk
= ++cur
);
9003 case 't': goto yy576
;
9008 yych
= *(mrk
= ++cur
);
9073 case 0x7F: goto yy570
;
9074 case '\\': goto yy147
;
9078 #line 224 "src/parser_scan.re"
9079 { NEWTOKEN(PSI_T_PRE_ASSERT
); goto start
; }
9080 #line 9081 "src/parser_scan.c"
9083 yych
= *(mrk
= ++cur
);
9085 case 'e': goto yy578
;
9090 yych
= *(mrk
= ++cur
);
9092 case 'n': goto yy579
;
9097 yych
= *(mrk
= ++cur
);
9162 case 0x7F: goto yy574
;
9163 case '\\': goto yy147
;
9167 #line 176 "src/parser_scan.re"
9168 { NEWTOKEN(PSI_T_CPP_RESTRICT
); goto start
; }
9169 #line 9170 "src/parser_scan.c"
9172 yych
= *(mrk
= ++cur
);
9175 case 't': goto yy580
;
9180 yych
= *(mrk
= ++cur
);
9245 case 0x7F: goto yy577
;
9246 case '\\': goto yy147
;
9250 #line 225 "src/parser_scan.re"
9251 { NEWTOKEN(PSI_T_POST_ASSERT
); goto start
; }
9252 #line 9253 "src/parser_scan.c"
9255 yych
= *(mrk
= ++cur
);
9257 case '_': goto yy582
;
9262 yych
= *(mrk
= ++cur
);
9264 case '_': goto yy583
;
9269 yych
= *(mrk
= ++cur
);
9334 case 0x7F: goto yy581
;
9335 case '\\': goto yy147
;
9339 #line 209 "src/parser_scan.re"
9340 { NEWTOKEN(PSI_T_INCLUDE_NEXT
); goto start
; }
9341 #line 9342 "src/parser_scan.c"
9344 yych
= *(mrk
= ++cur
);
9346 case '_': goto yy584
;
9351 yych
= *(mrk
= ++cur
);
9353 case '_': goto yy585
;
9358 yych
= *(mrk
= ++cur
);
9362 case ' ': goto yy587
;
9363 case '(': goto yy589
;
9368 yych
= *(mrk
= ++cur
);
9433 case 0x7F: goto yy586
;
9434 case '\\': goto yy147
;
9438 #line 177 "src/parser_scan.re"
9439 { NEWTOKEN(PSI_T_CPP_EXTENSION
); goto start
; }
9440 #line 9441 "src/parser_scan.c"
9443 if ((lim
- cur
) < 2) CHECKEOF();;
9448 case ' ': goto yy587
;
9449 case '(': goto yy589
;
9450 default: goto yy114
;
9455 case '(': goto yy590
;
9456 default: goto yy114
;
9460 #line 251 "src/parser_scan.re"
9461 { parens
= 2; goto cpp_attribute
; }
9462 #line 9463 "src/parser_scan.c"
9464 #line 257 "src/parser_scan.re"
9469 #line 9470 "src/parser_scan.c"
9472 if (lim
<= cur
) CHECKEOF();;
9476 case '\r': goto yy596
;
9477 case '\'': goto yy598
;
9478 case '\\': goto yy600
;
9479 default: goto yy594
;
9483 #line 275 "src/parser_scan.re"
9484 { escaped
= false; goto character
; }
9485 #line 9486 "src/parser_scan.c"
9488 #line 262 "src/parser_scan.re"
9489 { NEWLINE(); goto character
; }
9490 #line 9491 "src/parser_scan.c"
9493 #line 264 "src/parser_scan.re"
9500 NEWTOKEN(PSI_T_QUOTED_CHAR
);
9502 token
->flags
= char_width
;
9505 #line 9506 "src/parser_scan.c"
9508 #line 263 "src/parser_scan.re"
9509 { escaped
= !escaped
; goto character
; }
9510 #line 9511 "src/parser_scan.c"
9512 #line 277 "src/parser_scan.re"
9517 #line 9518 "src/parser_scan.c"
9520 if (lim
<= cur
) CHECKEOF();;
9524 case '\r': goto yy606
;
9525 case '"': goto yy608
;
9526 case '\\': goto yy610
;
9527 default: goto yy604
;
9531 #line 295 "src/parser_scan.re"
9532 { escaped
= false; goto string
; }
9533 #line 9534 "src/parser_scan.c"
9536 #line 282 "src/parser_scan.re"
9537 { NEWLINE(); goto string
; }
9538 #line 9539 "src/parser_scan.c"
9541 #line 284 "src/parser_scan.re"
9548 NEWTOKEN(PSI_T_QUOTED_STRING
);
9550 token
->flags
= char_width
;
9553 #line 9554 "src/parser_scan.c"
9556 #line 283 "src/parser_scan.re"
9557 { escaped
= !escaped
; goto string
; }
9558 #line 9559 "src/parser_scan.c"
9560 #line 297 "src/parser_scan.re"
9565 #line 9566 "src/parser_scan.c"
9568 if ((lim
- cur
) < 2) CHECKEOF();;
9572 case '\r': goto yy616
;
9573 case '*': goto yy618
;
9574 default: goto yy614
;
9579 #line 304 "src/parser_scan.re"
9581 #line 9582 "src/parser_scan.c"
9584 #line 302 "src/parser_scan.re"
9585 { NEWLINE(); goto comment
; }
9586 #line 9587 "src/parser_scan.c"
9590 case '/': goto yy619
;
9591 default: goto yy615
;
9595 #line 303 "src/parser_scan.re"
9596 { NEWTOKEN(PSI_T_COMMENT
); goto start
; }
9597 #line 9598 "src/parser_scan.c"
9599 #line 306 "src/parser_scan.re"
9604 #line 9605 "src/parser_scan.c"
9607 if (lim
<= cur
) CHECKEOF();;
9611 case '\r': goto yy625
;
9612 default: goto yy623
;
9616 #line 312 "src/parser_scan.re"
9617 { goto comment_sl
; }
9618 #line 9619 "src/parser_scan.c"
9621 #line 311 "src/parser_scan.re"
9622 { NEWTOKEN(PSI_T_COMMENT
); tok
= cur
- 1; NEWTOKEN(PSI_T_EOL
); NEWLINE(); goto start
; }
9623 #line 9624 "src/parser_scan.c"
9625 #line 314 "src/parser_scan.re"
9631 #line 9632 "src/parser_scan.c"
9634 if (lim
<= cur
) CHECKEOF();;
9638 case '\r': goto yy631
;
9639 case '(': goto yy633
;
9640 case ')': goto yy635
;
9641 default: goto yy629
;
9645 #line 323 "src/parser_scan.re"
9646 { goto cpp_attribute
; }
9647 #line 9648 "src/parser_scan.c"
9650 #line 322 "src/parser_scan.re"
9651 { NEWLINE(); goto cpp_attribute
; }
9652 #line 9653 "src/parser_scan.c"
9655 #line 320 "src/parser_scan.re"
9656 { ++parens
; goto cpp_attribute
; }
9657 #line 9658 "src/parser_scan.c"
9660 #line 321 "src/parser_scan.re"
9661 { if (parens
== 1) { NEWTOKEN(PSI_T_CPP_ATTRIBUTE
); goto start
; } else { --parens
; goto cpp_attribute
; } }
9662 #line 9663 "src/parser_scan.c"
9664 #line 325 "src/parser_scan.re"
9668 P
->error(PSI_DATA(P
), token
, PSI_WARNING
, "PSI syntax error: unexpected input (%d) '%.*s' at col %tu",
9669 token
->type
, token
->text
->len
, token
->text
->val
, tok
- eol
+ 1);
9670 psi_plist_free(tokens
);
9675 PSI_DEBUG_PRINT(P
, "PSI: EOF cur=%p lim=%p\n", cur
, lim
);