99d07eb91f9c8652f276eae05e37bb31f2209a67
1 /* Generated by re2c 1.1.1 on Mon Dec 3 17:01: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"
40 # define YYMAXFILL 256
43 size_t psi_parser_maxfill(void) {
51 #define NEWTOKEN(t) do { \
52 if (t == PSI_T_COMMENT || t == PSI_T_WHITESPACE) { \
53 token = psi_token_init(t, "", 0, tok - eol + 1, I->lines, I->file); \
55 token = psi_token_init(t, tok, cur - tok, tok - eol + 1, I->lines, I->file); \
57 tokens = psi_plist_add(tokens, &token); \
58 PSI_DEBUG_PRINT(P, "PSI: scanned < "); \
59 PSI_DEBUG_DUMP(P, psi_token_dump, token); \
62 #define CHECKEOF() if (cur >= lim - YYMAXFILL) goto done
64 struct psi_plist
*psi_parser_scan(struct psi_parser
*P
, struct psi_parser_input
*I
)
66 struct psi_plist
*tokens
;
67 struct psi_token
*token
;
68 const char *tok
, *cur
, *lim
, *mrk
, *eol
, *ctxmrk
;
73 PSI_DEBUG_PRINT(P
, "PSI: scanning %s\n", I
->file
->val
);
75 tok
= mrk
= eol
= cur
= I
->buffer
;
76 lim
= I
->buffer
+ I
->length
+ YYMAXFILL
;
78 tokens
= psi_plist_init((psi_plist_dtor
) psi_token_free
);
88 #line 89 "src/parser_scan.c"
91 unsigned int yyaccept
= 0;
92 if ((lim
- cur
) < 15) CHECKEOF();;
137 case '\'': goto yy20
;
188 case '\\': goto yy77
;
206 case '}': goto yy100
;
207 case '~': goto yy102
;
213 #line 254 "src/parser_scan.re"
214 { CHECKEOF(); NEWTOKEN(-2); goto error
; }
215 #line 216 "src/parser_scan.c"
218 if (lim
<= cur
) CHECKEOF();;
227 #line 253 "src/parser_scan.re"
228 { NEWTOKEN(PSI_T_WHITESPACE
); goto start
; }
229 #line 230 "src/parser_scan.c"
232 #line 252 "src/parser_scan.re"
233 { NEWTOKEN(PSI_T_EOL
); NEWLINE(); goto start
; }
234 #line 235 "src/parser_scan.c"
238 case '=': goto yy104
;
242 #line 155 "src/parser_scan.re"
243 { NEWTOKEN(PSI_T_NOT
); goto start
; }
244 #line 245 "src/parser_scan.c"
247 #line 128 "src/parser_scan.re"
248 { escaped
= false; tok
+= 1; goto string
; }
249 #line 250 "src/parser_scan.c"
253 case '#': goto yy106
;
257 #line 138 "src/parser_scan.re"
258 { NEWTOKEN(PSI_T_HASH
); goto start
; }
259 #line 260 "src/parser_scan.c"
332 #line 156 "src/parser_scan.re"
333 { NEWTOKEN(PSI_T_MODULO
); goto start
; }
334 #line 335 "src/parser_scan.c"
338 case '&': goto yy111
;
342 #line 157 "src/parser_scan.re"
343 { NEWTOKEN(PSI_T_AMPERSAND
); goto start
; }
344 #line 345 "src/parser_scan.c"
347 #line 127 "src/parser_scan.re"
348 { escaped
= false; tok
+= 1; goto character
; }
349 #line 350 "src/parser_scan.c"
352 #line 139 "src/parser_scan.re"
353 { NEWTOKEN(PSI_T_LPAREN
); goto start
; }
354 #line 355 "src/parser_scan.c"
357 #line 140 "src/parser_scan.re"
358 { NEWTOKEN(PSI_T_RPAREN
); goto start
; }
359 #line 360 "src/parser_scan.c"
362 #line 153 "src/parser_scan.re"
363 { NEWTOKEN(PSI_T_ASTERISK
); goto start
; }
364 #line 365 "src/parser_scan.c"
367 #line 158 "src/parser_scan.re"
368 { NEWTOKEN(PSI_T_PLUS
); goto start
; }
369 #line 370 "src/parser_scan.c"
372 #line 142 "src/parser_scan.re"
373 { NEWTOKEN(PSI_T_COMMA
); goto start
; }
374 #line 375 "src/parser_scan.c"
377 #line 159 "src/parser_scan.re"
378 { NEWTOKEN(PSI_T_MINUS
); goto start
; }
379 #line 380 "src/parser_scan.c"
382 yych
= *(mrk
= ++cur
);
384 case '.': goto yy113
;
394 case '9': goto yy115
;
398 #line 170 "src/parser_scan.re"
399 { NEWTOKEN(PSI_T_PERIOD
); goto start
; }
400 #line 401 "src/parser_scan.c"
404 case '*': goto yy118
;
405 case '/': goto yy120
;
409 #line 160 "src/parser_scan.re"
410 { NEWTOKEN(PSI_T_SLASH
); goto start
; }
411 #line 412 "src/parser_scan.c"
414 yych
= *(mrk
= ++cur
);
416 case '.': goto yy122
;
418 case 'e': goto yy126
;
420 case 'x': goto yy131
;
424 #line 114 "src/parser_scan.re"
425 { NEWTOKEN(PSI_T_NUMBER
); token
->flags
= PSI_NUMBER_INT
; goto start
; }
426 #line 427 "src/parser_scan.c"
430 if ((lim
- cur
) < 3) CHECKEOF();;
433 case '.': goto yy122
;
445 case 'e': goto yy126
;
447 case 'l': goto yy127
;
449 case 'u': goto yy129
;
454 #line 143 "src/parser_scan.re"
455 { NEWTOKEN(PSI_T_COLON
); goto start
; }
456 #line 457 "src/parser_scan.c"
459 #line 141 "src/parser_scan.re"
460 { NEWTOKEN(PSI_T_EOS
); goto start
; }
461 #line 462 "src/parser_scan.c"
464 yych
= *(mrk
= ++cur
);
531 case 'z': goto yy132
;
532 case '<': goto yy134
;
533 case '=': goto yy136
;
537 #line 168 "src/parser_scan.re"
538 { NEWTOKEN(PSI_T_LCHEVR
); goto start
; }
539 #line 540 "src/parser_scan.c"
543 case '=': goto yy138
;
547 #line 152 "src/parser_scan.re"
548 { NEWTOKEN(PSI_T_EQUALS
); goto start
; }
549 #line 550 "src/parser_scan.c"
553 case '=': goto yy140
;
554 case '>': goto yy142
;
558 #line 169 "src/parser_scan.re"
559 { NEWTOKEN(PSI_T_RCHEVR
); goto start
; }
560 #line 561 "src/parser_scan.c"
563 #line 172 "src/parser_scan.re"
564 { NEWTOKEN(PSI_T_IIF
); goto start
; }
565 #line 566 "src/parser_scan.c"
568 yych
= *(mrk
= ++cur
);
571 case 'r': goto yy144
;
573 case 's': goto yy145
;
577 #line 247 "src/parser_scan.re"
578 { NEWTOKEN(PSI_T_NAME
); goto start
; }
579 #line 580 "src/parser_scan.c"
582 yych
= *(mrk
= ++cur
);
585 case 'o': goto yy148
;
590 yych
= *(mrk
= ++cur
);
593 case 'a': goto yy149
;
595 case 'o': goto yy150
;
600 yych
= *(mrk
= ++cur
);
603 case 'e': goto yy151
;
608 yych
= *(mrk
= ++cur
);
611 case 'l': goto yy152
;
613 case 'n': goto yy153
;
615 case 'r': goto yy154
;
620 yych
= *(mrk
= ++cur
);
623 case 'a': goto yy155
;
625 case 'l': goto yy156
;
627 case 'r': goto yy157
;
629 case 'u': goto yy158
;
635 if (lim
<= cur
) CHECKEOF();;
702 case 0x7F: goto yy55
;
703 case '\\': goto yy147
;
708 yych
= *(mrk
= ++cur
);
711 case 'f': goto yy159
;
713 case 'n': goto yy161
;
718 yych
= *(mrk
= ++cur
);
721 case '\'': goto yy162
;
723 case 'e': goto yy164
;
725 case 'i': goto yy165
;
730 yych
= *(mrk
= ++cur
);
733 case 'i': goto yy166
;
738 yych
= *(mrk
= ++cur
);
741 case 'u': goto yy167
;
746 yych
= *(mrk
= ++cur
);
749 case 'b': goto yy168
;
754 yych
= *(mrk
= ++cur
);
757 case 'a': goto yy169
;
759 case 'o': goto yy170
;
761 case 'r': goto yy171
;
766 yych
= *(mrk
= ++cur
);
769 case 'e': goto yy172
;
774 yych
= *(mrk
= ++cur
);
777 case 'e': goto yy173
;
779 case 't': goto yy174
;
784 yych
= *(mrk
= ++cur
);
787 case 'e': goto yy175
;
789 case 'o': goto yy176
;
791 case 'r': goto yy177
;
796 yych
= *(mrk
= ++cur
);
799 case '\'': goto yy178
;
801 case 'n': goto yy180
;
806 yych
= *(mrk
= ++cur
);
809 case 'a': goto yy181
;
814 yych
= *(mrk
= ++cur
);
817 case 'v': goto yy182
;
822 #line 146 "src/parser_scan.re"
823 { NEWTOKEN(PSI_T_LBRACKET
); goto start
; }
824 #line 825 "src/parser_scan.c"
902 case 0x7F: goto yy78
;
906 #line 161 "src/parser_scan.re"
907 { NEWTOKEN(PSI_T_BSLASH
); goto start
; }
908 #line 909 "src/parser_scan.c"
911 #line 147 "src/parser_scan.re"
912 { NEWTOKEN(PSI_T_RBRACKET
); goto start
; }
913 #line 914 "src/parser_scan.c"
916 #line 163 "src/parser_scan.re"
917 { NEWTOKEN(PSI_T_CARET
); goto start
; }
918 #line 919 "src/parser_scan.c"
921 yych
= *(mrk
= ++cur
);
923 case '_': goto yy186
;
928 yych
= *(mrk
= ++cur
);
930 case 'O': goto yy148
;
931 case 'o': goto yy187
;
936 yych
= *(mrk
= ++cur
);
939 case 'a': goto yy149
;
940 case 'O': goto yy150
;
941 case 'h': goto yy188
;
942 case 'o': goto yy189
;
947 yych
= *(mrk
= ++cur
);
950 case 'e': goto yy151
;
951 case 'o': goto yy190
;
956 yych
= *(mrk
= ++cur
);
959 case 'l': goto yy152
;
960 case 'N': goto yy153
;
962 case 'r': goto yy154
;
963 case 'n': goto yy191
;
968 yych
= *(mrk
= ++cur
);
971 case 'a': goto yy155
;
972 case 'L': goto yy156
;
974 case 'r': goto yy157
;
976 case 'u': goto yy158
;
977 case 'l': goto yy192
;
982 yych
= *(mrk
= ++cur
);
985 case 'f': goto yy159
;
986 case 'N': goto yy161
;
987 case 'n': goto yy193
;
992 yych
= *(mrk
= ++cur
);
995 case 'e': goto yy164
;
996 case 'I': goto yy165
;
997 case 'i': goto yy194
;
998 case 'o': goto yy195
;
1003 yych
= *(mrk
= ++cur
);
1006 case 'a': goto yy169
;
1008 case 'o': goto yy170
;
1009 case 'R': goto yy171
;
1010 case 'r': goto yy196
;
1015 yych
= *(mrk
= ++cur
);
1018 case 'e': goto yy173
;
1019 case 'T': goto yy174
;
1020 case 'h': goto yy197
;
1021 case 'i': goto yy198
;
1022 case 't': goto yy199
;
1027 yych
= *(mrk
= ++cur
);
1030 case 'e': goto yy175
;
1032 case 'o': goto yy176
;
1034 case 'r': goto yy177
;
1035 case 'y': goto yy200
;
1040 yych
= *(mrk
= ++cur
);
1043 case '\'': goto yy201
;
1044 case '8': goto yy203
;
1045 case 'N': goto yy180
;
1046 case 'n': goto yy204
;
1051 yych
= *(mrk
= ++cur
);
1053 case 'o': goto yy205
;
1058 #line 144 "src/parser_scan.re"
1059 { NEWTOKEN(PSI_T_LBRACE
); goto start
; }
1060 #line 1061 "src/parser_scan.c"
1064 case '|': goto yy206
;
1068 #line 162 "src/parser_scan.re"
1069 { NEWTOKEN(PSI_T_PIPE
); goto start
; }
1070 #line 1071 "src/parser_scan.c"
1073 #line 145 "src/parser_scan.re"
1074 { NEWTOKEN(PSI_T_RBRACE
); goto start
; }
1075 #line 1076 "src/parser_scan.c"
1078 #line 154 "src/parser_scan.re"
1079 { NEWTOKEN(PSI_T_TILDE
); goto start
; }
1080 #line 1081 "src/parser_scan.c"
1083 #line 148 "src/parser_scan.re"
1084 { NEWTOKEN(PSI_T_CMP_NE
); goto start
; }
1085 #line 1086 "src/parser_scan.c"
1088 #line 137 "src/parser_scan.re"
1089 { NEWTOKEN(PSI_T_CPP_PASTE
); goto start
; }
1090 #line 1091 "src/parser_scan.c"
1093 if (lim
<= cur
) CHECKEOF();;
1160 case 0x7F: goto yy110
;
1161 default: goto yy108
;
1164 #line 249 "src/parser_scan.re"
1165 { NEWTOKEN(PSI_T_DOLLAR_NAME
); goto start
; }
1166 #line 1167 "src/parser_scan.c"
1169 #line 150 "src/parser_scan.re"
1170 { NEWTOKEN(PSI_T_AND
); goto start
; }
1171 #line 1172 "src/parser_scan.c"
1175 case '.': goto yy208
;
1176 default: goto yy114
;
1191 case 10: goto yy244
;
1192 case 11: goto yy253
;
1193 case 12: goto yy274
;
1194 case 13: goto yy306
;
1195 case 14: goto yy308
;
1196 case 15: goto yy314
;
1197 case 16: goto yy322
;
1198 case 17: goto yy334
;
1199 case 18: goto yy342
;
1200 case 19: goto yy346
;
1201 case 20: goto yy353
;
1202 case 21: goto yy355
;
1203 case 22: goto yy359
;
1204 case 23: goto yy363
;
1205 case 24: goto yy365
;
1206 case 25: goto yy375
;
1207 case 26: goto yy378
;
1208 case 27: goto yy385
;
1209 case 28: goto yy388
;
1210 case 29: goto yy390
;
1211 case 30: goto yy392
;
1212 case 31: goto yy396
;
1213 case 32: goto yy401
;
1214 case 33: goto yy419
;
1215 case 34: goto yy422
;
1216 case 35: goto yy427
;
1217 case 36: goto yy430
;
1218 case 37: goto yy434
;
1219 case 38: goto yy440
;
1220 case 39: goto yy444
;
1221 case 40: goto yy449
;
1222 case 41: goto yy451
;
1223 case 42: goto yy455
;
1224 case 43: goto yy458
;
1225 case 44: goto yy460
;
1226 case 45: goto yy462
;
1227 case 46: goto yy467
;
1228 case 47: goto yy469
;
1229 case 48: goto yy471
;
1230 case 49: goto yy473
;
1231 case 50: goto yy475
;
1232 case 51: goto yy480
;
1233 case 52: goto yy489
;
1234 case 53: goto yy491
;
1235 case 54: goto yy493
;
1236 case 55: goto yy495
;
1237 case 56: goto yy497
;
1238 case 57: goto yy499
;
1239 case 58: goto yy504
;
1240 case 59: goto yy508
;
1241 case 60: goto yy512
;
1242 case 61: goto yy514
;
1243 case 62: goto yy519
;
1244 case 63: goto yy524
;
1245 case 64: goto yy532
;
1246 case 65: goto yy536
;
1247 case 66: goto yy538
;
1248 case 67: goto yy540
;
1249 case 68: goto yy542
;
1250 case 69: goto yy547
;
1251 case 70: goto yy549
;
1252 case 71: goto yy558
;
1253 case 72: goto yy560
;
1254 case 73: goto yy565
;
1255 case 74: goto yy567
;
1256 case 75: goto yy575
;
1257 case 76: goto yy579
;
1258 case 77: goto yy583
;
1259 case 78: goto yy587
;
1260 case 79: goto yy589
;
1261 default: goto yy594
;
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 120 "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 134 "src/parser_scan.re"
1295 #line 1296 "src/parser_scan.c"
1298 #line 135 "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 116 "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 115 "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 164 "src/parser_scan.re"
1495 { NEWTOKEN(PSI_T_LSHIFT
); goto start
; }
1496 #line 1497 "src/parser_scan.c"
1499 #line 166 "src/parser_scan.re"
1500 { NEWTOKEN(PSI_T_CMP_LE
); goto start
; }
1501 #line 1502 "src/parser_scan.c"
1504 #line 149 "src/parser_scan.re"
1505 { NEWTOKEN(PSI_T_CMP_EQ
); goto start
; }
1506 #line 1507 "src/parser_scan.c"
1509 #line 167 "src/parser_scan.re"
1510 { NEWTOKEN(PSI_T_CMP_GE
); goto start
; }
1511 #line 1512 "src/parser_scan.c"
1514 #line 165 "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 132 "src/parser_scan.re"
1865 { char_width
= sizeof(wchar_t)/8; }
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 131 "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 130 "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 151 "src/parser_scan.re"
2247 { NEWTOKEN(PSI_T_OR
); goto start
; }
2248 #line 2249 "src/parser_scan.c"
2251 #line 171 "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 121 "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 122 "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 117 "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 129 "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 124 "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 123 "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 125 "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 118 "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
;
7170 default: goto yy529
;
7173 #line 173 "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 yy531
;
7410 yych
= *(mrk
= ++cur
);
7412 case 'e': goto yy533
;
7417 yych
= *(mrk
= ++cur
);
7419 case 'l': goto yy534
;
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 yy535
;
7507 yych
= *(mrk
= ++cur
);
7510 case 'k': goto yy537
;
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 yy539
;
7598 yych
= *(mrk
= ++cur
);
7601 case 'n': goto yy541
;
7606 yych
= *(mrk
= ++cur
);
7671 case 0x7F: goto yy512
;
7672 case '\\': goto yy147
;
7673 case '_': goto yy543
;
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 yy544
;
7765 yych
= *(mrk
= ++cur
);
7768 case 'e': goto yy545
;
7773 yych
= *(mrk
= ++cur
);
7776 case 'y': goto yy546
;
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 yy548
;
7864 yych
= *(mrk
= ++cur
);
7867 case 'c': goto yy550
;
7872 yych
= *(mrk
= ++cur
);
7875 case 'n': goto yy551
;
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 yy552
;
8033 yych
= *(mrk
= ++cur
);
8035 case 's': goto yy553
;
8040 yych
= *(mrk
= ++cur
);
8042 case 'i': goto yy554
;
8048 if (lim
<= cur
) CHECKEOF();;
8114 case 0x7F: goto yy55
;
8115 case '\\': goto yy147
;
8116 case 'o': goto yy555
;
8117 default: goto yy529
;
8121 yych
= *(mrk
= ++cur
);
8186 case 0x7F: goto yy532
;
8187 case '\\': goto yy147
;
8191 #line 182 "src/parser_scan.re"
8192 { NEWTOKEN(PSI_T_TYPEDEF
); goto start
; }
8193 #line 8194 "src/parser_scan.c"
8196 yych
= *(mrk
= ++cur
);
8198 case 'd': goto yy557
;
8203 yych
= *(mrk
= ++cur
);
8205 case 'e': goto yy559
;
8210 yych
= *(mrk
= ++cur
);
8275 case 0x7F: goto yy536
;
8276 case '\\': goto yy147
;
8280 #line 214 "src/parser_scan.re"
8281 { NEWTOKEN(PSI_T_CALLABLE
); goto start
; }
8282 #line 8283 "src/parser_scan.c"
8285 yych
= *(mrk
= ++cur
);
8350 case 0x7F: goto yy538
;
8351 case '\\': goto yy147
;
8355 #line 218 "src/parser_scan.re"
8356 { NEWTOKEN(PSI_T_CALLBACK
); goto start
; }
8357 #line 8358 "src/parser_scan.c"
8360 yych
= *(mrk
= ++cur
);
8425 case 0x7F: goto yy540
;
8426 case '\\': goto yy147
;
8430 #line 234 "src/parser_scan.re"
8431 { NEWTOKEN(PSI_T_FLOATVAL
); goto start
; }
8432 #line 8433 "src/parser_scan.c"
8435 yych
= *(mrk
= ++cur
);
8500 case 0x7F: goto yy542
;
8501 case '\\': goto yy147
;
8505 #line 220 "src/parser_scan.re"
8506 { NEWTOKEN(PSI_T_FUNCTION
); goto start
; }
8507 #line 8508 "src/parser_scan.c"
8510 yych
= *(mrk
= ++cur
);
8513 case 'n': goto yy561
;
8518 yych
= *(mrk
= ++cur
);
8521 case 'e': goto yy562
;
8526 yych
= *(mrk
= ++cur
);
8529 case 'r': goto yy563
;
8534 yych
= *(mrk
= ++cur
);
8599 case 0x7F: goto yy547
;
8600 case '\\': goto yy147
;
8604 #line 242 "src/parser_scan.re"
8605 { NEWTOKEN(PSI_T_TO_ARRAY
); goto start
; }
8606 #line 8607 "src/parser_scan.c"
8609 yych
= *(mrk
= ++cur
);
8674 case 0x7F: goto yy549
;
8675 case '\\': goto yy147
;
8679 #line 245 "src/parser_scan.re"
8680 { NEWTOKEN(PSI_T_TO_FLOAT
); goto start
; }
8681 #line 8682 "src/parser_scan.c"
8684 yych
= *(mrk
= ++cur
);
8687 case 't': goto yy564
;
8692 yych
= *(mrk
= ++cur
);
8695 case 'g': goto yy566
;
8700 yych
= *(mrk
= ++cur
);
8702 case 'u': goto yy568
;
8707 yych
= *(mrk
= ++cur
);
8709 case 'i': goto yy569
;
8714 yych
= *(mrk
= ++cur
);
8716 case 'c': goto yy570
;
8722 if (lim
<= cur
) CHECKEOF();;
8788 case 0x7F: goto yy55
;
8789 case '\\': goto yy147
;
8790 case 'n': goto yy571
;
8791 case 'o': goto yy555
;
8792 default: goto yy529
;
8796 yych
= *(mrk
= ++cur
);
8861 case 0x7F: goto yy558
;
8862 case '\\': goto yy147
;
8866 #line 195 "src/parser_scan.re"
8867 { NEWTOKEN(PSI_T_UNSIGNED
); goto start
; }
8868 #line 8869 "src/parser_scan.c"
8871 yych
= *(mrk
= ++cur
);
8936 case 0x7F: goto yy560
;
8937 case '\\': goto yy147
;
8941 #line 179 "src/parser_scan.re"
8942 { NEWTOKEN(PSI_T_VOLATILE
); goto start
; }
8943 #line 8944 "src/parser_scan.c"
8946 yych
= *(mrk
= ++cur
);
8949 case 'e': goto yy572
;
8954 yych
= *(mrk
= ++cur
);
8957 case 'r': goto yy573
;
8962 yych
= *(mrk
= ++cur
);
8965 case 't': goto yy574
;
8970 yych
= *(mrk
= ++cur
);
9035 case 0x7F: goto yy565
;
9036 case '\\': goto yy147
;
9040 #line 241 "src/parser_scan.re"
9041 { NEWTOKEN(PSI_T_TO_OBJECT
); goto start
; }
9042 #line 9043 "src/parser_scan.c"
9045 yych
= *(mrk
= ++cur
);
9110 case 0x7F: goto yy567
;
9111 case '\\': goto yy147
;
9115 #line 243 "src/parser_scan.re"
9116 { NEWTOKEN(PSI_T_TO_STRING
); goto start
; }
9117 #line 9118 "src/parser_scan.c"
9120 yych
= *(mrk
= ++cur
);
9122 case 't': goto yy576
;
9127 yych
= *(mrk
= ++cur
);
9129 case 'o': goto yy577
;
9134 yych
= *(mrk
= ++cur
);
9136 case 't': goto yy578
;
9142 if (lim
<= cur
) CHECKEOF();;
9208 case 0x7F: goto yy55
;
9209 case '\\': goto yy147
;
9210 case 'c': goto yy580
;
9211 case 'o': goto yy555
;
9212 default: goto yy529
;
9216 yych
= *(mrk
= ++cur
);
9219 case 'x': goto yy581
;
9224 yych
= *(mrk
= ++cur
);
9227 case 't': goto yy582
;
9232 yych
= *(mrk
= ++cur
);
9297 case 0x7F: goto yy575
;
9298 case '\\': goto yy147
;
9302 #line 224 "src/parser_scan.re"
9303 { NEWTOKEN(PSI_T_PRE_ASSERT
); goto start
; }
9304 #line 9305 "src/parser_scan.c"
9307 yych
= *(mrk
= ++cur
);
9309 case 'e': goto yy584
;
9314 yych
= *(mrk
= ++cur
);
9316 case 'n': goto yy585
;
9321 yych
= *(mrk
= ++cur
);
9386 case 0x7F: goto yy579
;
9387 case '\\': goto yy147
;
9391 #line 176 "src/parser_scan.re"
9392 { NEWTOKEN(PSI_T_CPP_RESTRICT
); goto start
; }
9393 #line 9394 "src/parser_scan.c"
9397 if (lim
<= cur
) CHECKEOF();;
9463 case 0x7F: goto yy55
;
9464 case '\\': goto yy147
;
9465 case 'e': goto yy586
;
9466 case 'o': goto yy555
;
9467 default: goto yy529
;
9471 yych
= *(mrk
= ++cur
);
9474 case 't': goto yy588
;
9479 yych
= *(mrk
= ++cur
);
9544 case 0x7F: goto yy583
;
9545 case '\\': goto yy147
;
9549 #line 225 "src/parser_scan.re"
9550 { NEWTOKEN(PSI_T_POST_ASSERT
); goto start
; }
9551 #line 9552 "src/parser_scan.c"
9554 yych
= *(mrk
= ++cur
);
9556 case '_': goto yy590
;
9561 yych
= *(mrk
= ++cur
);
9563 case '_': goto yy591
;
9569 if (lim
<= cur
) CHECKEOF();;
9635 case 0x7F: goto yy587
;
9636 case '\\': goto yy147
;
9637 case 'o': goto yy555
;
9638 default: goto yy529
;
9641 #line 174 "src/parser_scan.re"
9642 { NEWTOKEN(PSI_T_PRAGMA_ONCE
); goto start
; }
9643 #line 9644 "src/parser_scan.c"
9646 yych
= *(mrk
= ++cur
);
9711 case 0x7F: goto yy589
;
9712 case '\\': goto yy147
;
9716 #line 209 "src/parser_scan.re"
9717 { NEWTOKEN(PSI_T_INCLUDE_NEXT
); goto start
; }
9718 #line 9719 "src/parser_scan.c"
9721 yych
= *(mrk
= ++cur
);
9723 case '_': goto yy592
;
9728 yych
= *(mrk
= ++cur
);
9730 case '_': goto yy593
;
9735 yych
= *(mrk
= ++cur
);
9739 case ' ': goto yy595
;
9740 case '(': goto yy597
;
9745 yych
= *(mrk
= ++cur
);
9810 case 0x7F: goto yy594
;
9811 case '\\': goto yy147
;
9815 #line 177 "src/parser_scan.re"
9816 { NEWTOKEN(PSI_T_CPP_EXTENSION
); goto start
; }
9817 #line 9818 "src/parser_scan.c"
9820 if ((lim
- cur
) < 2) CHECKEOF();;
9825 case ' ': goto yy595
;
9826 case '(': goto yy597
;
9827 default: goto yy114
;
9832 case '(': goto yy598
;
9833 default: goto yy114
;
9837 #line 251 "src/parser_scan.re"
9838 { parens
= 2; goto cpp_attribute
; }
9839 #line 9840 "src/parser_scan.c"
9841 #line 257 "src/parser_scan.re"
9846 #line 9847 "src/parser_scan.c"
9849 if (lim
<= cur
) CHECKEOF();;
9853 case '\r': goto yy604
;
9854 case '\'': goto yy606
;
9855 case '\\': goto yy608
;
9856 default: goto yy602
;
9860 #line 275 "src/parser_scan.re"
9861 { escaped
= false; goto character
; }
9862 #line 9863 "src/parser_scan.c"
9865 #line 262 "src/parser_scan.re"
9866 { NEWLINE(); goto character
; }
9867 #line 9868 "src/parser_scan.c"
9870 #line 264 "src/parser_scan.re"
9877 NEWTOKEN(PSI_T_QUOTED_CHAR
);
9879 token
->flags
= char_width
;
9882 #line 9883 "src/parser_scan.c"
9885 #line 263 "src/parser_scan.re"
9886 { escaped
= !escaped
; goto character
; }
9887 #line 9888 "src/parser_scan.c"
9889 #line 277 "src/parser_scan.re"
9894 #line 9895 "src/parser_scan.c"
9897 if (lim
<= cur
) CHECKEOF();;
9901 case '\r': goto yy614
;
9902 case '"': goto yy616
;
9903 case '\\': goto yy618
;
9904 default: goto yy612
;
9908 #line 295 "src/parser_scan.re"
9909 { escaped
= false; goto string
; }
9910 #line 9911 "src/parser_scan.c"
9913 #line 282 "src/parser_scan.re"
9914 { NEWLINE(); goto string
; }
9915 #line 9916 "src/parser_scan.c"
9918 #line 284 "src/parser_scan.re"
9925 NEWTOKEN(PSI_T_QUOTED_STRING
);
9927 token
->flags
= char_width
;
9930 #line 9931 "src/parser_scan.c"
9933 #line 283 "src/parser_scan.re"
9934 { escaped
= !escaped
; goto string
; }
9935 #line 9936 "src/parser_scan.c"
9937 #line 297 "src/parser_scan.re"
9942 #line 9943 "src/parser_scan.c"
9945 if ((lim
- cur
) < 2) CHECKEOF();;
9949 case '\r': goto yy624
;
9950 case '*': goto yy626
;
9951 default: goto yy622
;
9956 #line 304 "src/parser_scan.re"
9958 #line 9959 "src/parser_scan.c"
9961 #line 302 "src/parser_scan.re"
9962 { NEWLINE(); goto comment
; }
9963 #line 9964 "src/parser_scan.c"
9967 case '/': goto yy627
;
9968 default: goto yy623
;
9972 #line 303 "src/parser_scan.re"
9973 { NEWTOKEN(PSI_T_COMMENT
); goto start
; }
9974 #line 9975 "src/parser_scan.c"
9976 #line 306 "src/parser_scan.re"
9981 #line 9982 "src/parser_scan.c"
9984 if (lim
<= cur
) CHECKEOF();;
9988 case '\r': goto yy633
;
9989 default: goto yy631
;
9993 #line 312 "src/parser_scan.re"
9994 { goto comment_sl
; }
9995 #line 9996 "src/parser_scan.c"
9998 #line 311 "src/parser_scan.re"
9999 { NEWTOKEN(PSI_T_COMMENT
); tok
= cur
- 1; NEWTOKEN(PSI_T_EOL
); NEWLINE(); goto start
; }
10000 #line 10001 "src/parser_scan.c"
10002 #line 314 "src/parser_scan.re"
10008 #line 10009 "src/parser_scan.c"
10010 unsigned char yych
;
10011 if (lim
<= cur
) CHECKEOF();;
10015 case '\r': goto yy639
;
10016 case '(': goto yy641
;
10017 case ')': goto yy643
;
10018 default: goto yy637
;
10022 #line 323 "src/parser_scan.re"
10023 { goto cpp_attribute
; }
10024 #line 10025 "src/parser_scan.c"
10027 #line 322 "src/parser_scan.re"
10028 { NEWLINE(); goto cpp_attribute
; }
10029 #line 10030 "src/parser_scan.c"
10032 #line 320 "src/parser_scan.re"
10033 { ++parens
; goto cpp_attribute
; }
10034 #line 10035 "src/parser_scan.c"
10037 #line 321 "src/parser_scan.re"
10038 { if (parens
== 1) { NEWTOKEN(PSI_T_CPP_ATTRIBUTE
); goto start
; } else { --parens
; goto cpp_attribute
; } }
10039 #line 10040 "src/parser_scan.c"
10041 #line 325 "src/parser_scan.re"
10045 P
->error(PSI_DATA(P
), token
, PSI_WARNING
, "PSI syntax error: unexpected input (%d) '%.*s' at col %tu",
10046 token
->type
, token
->text
->len
, token
->text
->val
, tok
- eol
+ 1);
10047 psi_plist_free(tokens
);
10052 PSI_DEBUG_PRINT(P
, "PSI: EOF cur=%p lim=%p\n", cur
, lim
);