diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2019-05-13 11:06:14 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-05-13 11:06:14 +0200 |
commit | bec68d59a2ada17768d47c708eda52adc491e615 (patch) | |
tree | 91c62858b112901e96628e4fb25fb7b9f7183c0a | |
parent | 43e6fd1e2b8541504a98c095b621829fee41b6af (diff) | |
parent | b6b15fc65cc7898bc1ea992ec607ddb7f94e8eb8 (diff) | |
download | php-git-bec68d59a2ada17768d47c708eda52adc491e615.tar.gz |
Merge branch 'PHP-7.2' into PHP-7.3
-rw-r--r-- | Zend/tests/bug77993.phpt | 7 | ||||
-rw-r--r-- | Zend/zend_language_scanner.c | 441 | ||||
-rw-r--r-- | Zend/zend_language_scanner.l | 3 |
3 files changed, 230 insertions, 221 deletions
diff --git a/Zend/tests/bug77993.phpt b/Zend/tests/bug77993.phpt new file mode 100644 index 0000000000..c19841811b --- /dev/null +++ b/Zend/tests/bug77993.phpt @@ -0,0 +1,7 @@ +--TEST-- +Bug #77993 (Wrong parse error for invalid hex literal on Windows) +--FILE-- +<?php +0xg10; +--EXPECTF-- +Parse error: syntax error, unexpected 'xg10' (T_STRING) in %s on line %d diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c index 5d6d9cae91..511dea577f 100644 --- a/Zend/zend_language_scanner.c +++ b/Zend/zend_language_scanner.c @@ -1453,7 +1453,7 @@ yy3: ++YYCURSOR; YYDEBUG(4, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2748 "Zend/zend_language_scanner.l" +#line 2749 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { RETURN_TOKEN(END); @@ -1496,7 +1496,7 @@ yy10: ++YYCURSOR; YYDEBUG(11, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2222 "Zend/zend_language_scanner.l" +#line 2223 "Zend/zend_language_scanner.l" { int bprefix = (yytext[0] != '"') ? 1 : 0; @@ -1547,7 +1547,7 @@ yy12: ++YYCURSOR; YYDEBUG(13, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2049 "Zend/zend_language_scanner.l" +#line 2050 "Zend/zend_language_scanner.l" { while (YYCURSOR < YYLIMIT) { switch (*YYCURSOR++) { @@ -1610,7 +1610,7 @@ yy17: ++YYCURSOR; YYDEBUG(18, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2132 "Zend/zend_language_scanner.l" +#line 2133 "Zend/zend_language_scanner.l" { register char *s, *t; char *end; @@ -1828,7 +1828,8 @@ yy27: char *end; if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */ errno = 0; - ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 0)); + /* base must be passed explicitly for correct parse error on Windows */ + ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, yytext[0] == '0' ? 8 : 10)); /* This isn't an assert, we need to ensure 019 isn't valid octal * Because the lexing itself doesn't do that for us */ @@ -1874,7 +1875,7 @@ yy27: ZEND_ASSERT(!errno); RETURN_TOKEN_WITH_VAL(T_LNUMBER); } -#line 1878 "Zend/zend_language_scanner.c" +#line 1879 "Zend/zend_language_scanner.c" yy28: YYDEBUG(28, *YYCURSOR); yyaccept = 1; @@ -1956,11 +1957,11 @@ yy35: yy36: YYDEBUG(36, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2044 "Zend/zend_language_scanner.l" +#line 2045 "Zend/zend_language_scanner.l" { RETURN_TOKEN_WITH_STR(T_STRING, 0); } -#line 1964 "Zend/zend_language_scanner.c" +#line 1965 "Zend/zend_language_scanner.c" yy37: YYDEBUG(37, *YYCURSOR); yyaccept = 2; @@ -2249,7 +2250,7 @@ yy58: { RETURN_TOKEN(T_NS_SEPARATOR); } -#line 2253 "Zend/zend_language_scanner.c" +#line 2254 "Zend/zend_language_scanner.c" yy60: YYDEBUG(60, *YYCURSOR); yych = *++YYCURSOR; @@ -2265,12 +2266,12 @@ yy62: ++YYCURSOR; YYDEBUG(63, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2401 "Zend/zend_language_scanner.l" +#line 2402 "Zend/zend_language_scanner.l" { BEGIN(ST_BACKQUOTE); RETURN_TOKEN('`'); } -#line 2274 "Zend/zend_language_scanner.c" +#line 2275 "Zend/zend_language_scanner.c" yy64: YYDEBUG(64, *YYCURSOR); ++YYCURSOR; @@ -2281,7 +2282,7 @@ yy64: yy_push_state(ST_IN_SCRIPTING); RETURN_TOKEN('{'); } -#line 2285 "Zend/zend_language_scanner.c" +#line 2286 "Zend/zend_language_scanner.c" yy66: YYDEBUG(66, *YYCURSOR); yych = *++YYCURSOR; @@ -2301,7 +2302,7 @@ yy67: } RETURN_TOKEN('}'); } -#line 2305 "Zend/zend_language_scanner.c" +#line 2306 "Zend/zend_language_scanner.c" yy69: YYDEBUG(69, *YYCURSOR); yych = *++YYCURSOR; @@ -2313,7 +2314,7 @@ yy70: { RETURN_TOKEN(T_IS_NOT_EQUAL); } -#line 2317 "Zend/zend_language_scanner.c" +#line 2318 "Zend/zend_language_scanner.c" yy71: YYDEBUG(71, *YYCURSOR); ++YYCURSOR; @@ -2338,11 +2339,11 @@ yy71: yy73: YYDEBUG(73, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2022 "Zend/zend_language_scanner.l" +#line 2023 "Zend/zend_language_scanner.l" { RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); } -#line 2346 "Zend/zend_language_scanner.c" +#line 2347 "Zend/zend_language_scanner.c" yy74: YYDEBUG(74, *YYCURSOR); ++YYCURSOR; @@ -2352,7 +2353,7 @@ yy74: { RETURN_TOKEN(T_MOD_EQUAL); } -#line 2356 "Zend/zend_language_scanner.c" +#line 2357 "Zend/zend_language_scanner.c" yy76: YYDEBUG(76, *YYCURSOR); ++YYCURSOR; @@ -2362,7 +2363,7 @@ yy76: { RETURN_TOKEN(T_BOOLEAN_AND); } -#line 2366 "Zend/zend_language_scanner.c" +#line 2367 "Zend/zend_language_scanner.c" yy78: YYDEBUG(78, *YYCURSOR); ++YYCURSOR; @@ -2372,7 +2373,7 @@ yy78: { RETURN_TOKEN(T_AND_EQUAL); } -#line 2376 "Zend/zend_language_scanner.c" +#line 2377 "Zend/zend_language_scanner.c" yy80: YYDEBUG(80, *YYCURSOR); ++YYCURSOR; @@ -2506,7 +2507,7 @@ yy92: { RETURN_TOKEN(T_POW); } -#line 2510 "Zend/zend_language_scanner.c" +#line 2511 "Zend/zend_language_scanner.c" yy94: YYDEBUG(94, *YYCURSOR); ++YYCURSOR; @@ -2516,7 +2517,7 @@ yy94: { RETURN_TOKEN(T_MUL_EQUAL); } -#line 2520 "Zend/zend_language_scanner.c" +#line 2521 "Zend/zend_language_scanner.c" yy96: YYDEBUG(96, *YYCURSOR); ++YYCURSOR; @@ -2526,7 +2527,7 @@ yy96: { RETURN_TOKEN(T_INC); } -#line 2530 "Zend/zend_language_scanner.c" +#line 2531 "Zend/zend_language_scanner.c" yy98: YYDEBUG(98, *YYCURSOR); ++YYCURSOR; @@ -2536,7 +2537,7 @@ yy98: { RETURN_TOKEN(T_PLUS_EQUAL); } -#line 2540 "Zend/zend_language_scanner.c" +#line 2541 "Zend/zend_language_scanner.c" yy100: YYDEBUG(100, *YYCURSOR); ++YYCURSOR; @@ -2546,7 +2547,7 @@ yy100: { RETURN_TOKEN(T_DEC); } -#line 2550 "Zend/zend_language_scanner.c" +#line 2551 "Zend/zend_language_scanner.c" yy102: YYDEBUG(102, *YYCURSOR); ++YYCURSOR; @@ -2556,7 +2557,7 @@ yy102: { RETURN_TOKEN(T_MINUS_EQUAL); } -#line 2560 "Zend/zend_language_scanner.c" +#line 2561 "Zend/zend_language_scanner.c" yy104: YYDEBUG(104, *YYCURSOR); ++YYCURSOR; @@ -2567,7 +2568,7 @@ yy104: yy_push_state(ST_LOOKING_FOR_PROPERTY); RETURN_TOKEN(T_OBJECT_OPERATOR); } -#line 2571 "Zend/zend_language_scanner.c" +#line 2572 "Zend/zend_language_scanner.c" yy106: YYDEBUG(106, *YYCURSOR); yych = *++YYCURSOR; @@ -2590,7 +2591,7 @@ yy107: yy109: YYDEBUG(109, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1884 "Zend/zend_language_scanner.l" +#line 1885 "Zend/zend_language_scanner.l" { const char *end; @@ -2599,7 +2600,7 @@ yy109: ZEND_ASSERT(end == yytext + yyleng); RETURN_TOKEN_WITH_VAL(T_DNUMBER); } -#line 2603 "Zend/zend_language_scanner.c" +#line 2604 "Zend/zend_language_scanner.c" yy110: YYDEBUG(110, *YYCURSOR); ++YYCURSOR; @@ -2609,7 +2610,7 @@ yy110: { RETURN_TOKEN(T_CONCAT_EQUAL); } -#line 2613 "Zend/zend_language_scanner.c" +#line 2614 "Zend/zend_language_scanner.c" yy112: YYDEBUG(112, *YYCURSOR); yyaccept = 4; @@ -2618,7 +2619,7 @@ yy112: yy113: YYDEBUG(113, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2081 "Zend/zend_language_scanner.l" +#line 2082 "Zend/zend_language_scanner.l" { int doc_com; @@ -2657,7 +2658,7 @@ yy113: } RETURN_TOKEN(T_COMMENT); } -#line 2661 "Zend/zend_language_scanner.c" +#line 2662 "Zend/zend_language_scanner.c" yy114: YYDEBUG(114, *YYCURSOR); ++YYCURSOR; @@ -2667,7 +2668,7 @@ yy114: { RETURN_TOKEN(T_DIV_EQUAL); } -#line 2671 "Zend/zend_language_scanner.c" +#line 2672 "Zend/zend_language_scanner.c" yy116: YYDEBUG(116, *YYCURSOR); yych = *++YYCURSOR; @@ -2703,7 +2704,7 @@ yy119: { RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM); } -#line 2707 "Zend/zend_language_scanner.c" +#line 2708 "Zend/zend_language_scanner.c" yy121: YYDEBUG(121, *YYCURSOR); yyaccept = 5; @@ -2718,7 +2719,7 @@ yy122: { RETURN_TOKEN(T_SL); } -#line 2722 "Zend/zend_language_scanner.c" +#line 2723 "Zend/zend_language_scanner.c" yy123: YYDEBUG(123, *YYCURSOR); yych = *++YYCURSOR; @@ -2729,7 +2730,7 @@ yy123: { RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL); } -#line 2733 "Zend/zend_language_scanner.c" +#line 2734 "Zend/zend_language_scanner.c" yy125: YYDEBUG(125, *YYCURSOR); ++YYCURSOR; @@ -2744,7 +2745,7 @@ yy126: { RETURN_TOKEN(T_IS_EQUAL); } -#line 2748 "Zend/zend_language_scanner.c" +#line 2749 "Zend/zend_language_scanner.c" yy128: YYDEBUG(128, *YYCURSOR); ++YYCURSOR; @@ -2754,7 +2755,7 @@ yy128: { RETURN_TOKEN(T_DOUBLE_ARROW); } -#line 2758 "Zend/zend_language_scanner.c" +#line 2759 "Zend/zend_language_scanner.c" yy130: YYDEBUG(130, *YYCURSOR); ++YYCURSOR; @@ -2764,7 +2765,7 @@ yy130: { RETURN_TOKEN(T_IS_GREATER_OR_EQUAL); } -#line 2768 "Zend/zend_language_scanner.c" +#line 2769 "Zend/zend_language_scanner.c" yy132: YYDEBUG(132, *YYCURSOR); yych = *++YYCURSOR; @@ -2775,7 +2776,7 @@ yy132: { RETURN_TOKEN(T_SR); } -#line 2779 "Zend/zend_language_scanner.c" +#line 2780 "Zend/zend_language_scanner.c" yy134: YYDEBUG(134, *YYCURSOR); yych = *++YYCURSOR; @@ -2784,7 +2785,7 @@ yy134: yy135: YYDEBUG(135, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2120 "Zend/zend_language_scanner.l" +#line 2121 "Zend/zend_language_scanner.l" { BEGIN(INITIAL); if (yytext[yyleng-1] != '>') { @@ -2795,7 +2796,7 @@ yy135: } RETURN_TOKEN(T_CLOSE_TAG); } -#line 2799 "Zend/zend_language_scanner.c" +#line 2800 "Zend/zend_language_scanner.c" yy136: YYDEBUG(136, *YYCURSOR); ++YYCURSOR; @@ -2805,7 +2806,7 @@ yy136: { RETURN_TOKEN(T_COALESCE); } -#line 2809 "Zend/zend_language_scanner.c" +#line 2810 "Zend/zend_language_scanner.c" yy138: YYDEBUG(138, *YYCURSOR); yych = *++YYCURSOR; @@ -2836,7 +2837,7 @@ yy141: { RETURN_TOKEN(T_AS); } -#line 2840 "Zend/zend_language_scanner.c" +#line 2841 "Zend/zend_language_scanner.c" yy143: YYDEBUG(143, *YYCURSOR); yych = *++YYCURSOR; @@ -2926,7 +2927,7 @@ yy150: { RETURN_TOKEN(T_DO); } -#line 2930 "Zend/zend_language_scanner.c" +#line 2931 "Zend/zend_language_scanner.c" yy152: YYDEBUG(152, *YYCURSOR); yych = *++YYCURSOR; @@ -3015,7 +3016,7 @@ yy163: { RETURN_TOKEN(T_IF); } -#line 3019 "Zend/zend_language_scanner.c" +#line 3020 "Zend/zend_language_scanner.c" yy165: YYDEBUG(165, *YYCURSOR); yych = *++YYCURSOR; @@ -3080,7 +3081,7 @@ yy171: { RETURN_TOKEN(T_LOGICAL_OR); } -#line 3084 "Zend/zend_language_scanner.c" +#line 3085 "Zend/zend_language_scanner.c" yy173: YYDEBUG(173, *YYCURSOR); yych = *++YYCURSOR; @@ -3198,7 +3199,7 @@ yy186: { RETURN_TOKEN(T_XOR_EQUAL); } -#line 3202 "Zend/zend_language_scanner.c" +#line 3203 "Zend/zend_language_scanner.c" yy188: YYDEBUG(188, *YYCURSOR); yych = *++YYCURSOR; @@ -3230,7 +3231,7 @@ yy189: { RETURN_TOKEN(T_OR_EQUAL); } -#line 3234 "Zend/zend_language_scanner.c" +#line 3235 "Zend/zend_language_scanner.c" yy191: YYDEBUG(191, *YYCURSOR); ++YYCURSOR; @@ -3240,7 +3241,7 @@ yy191: { RETURN_TOKEN(T_BOOLEAN_OR); } -#line 3244 "Zend/zend_language_scanner.c" +#line 3245 "Zend/zend_language_scanner.c" yy193: YYDEBUG(193, *YYCURSOR); ++YYCURSOR; @@ -3250,7 +3251,7 @@ yy193: { RETURN_TOKEN(T_IS_NOT_IDENTICAL); } -#line 3254 "Zend/zend_language_scanner.c" +#line 3255 "Zend/zend_language_scanner.c" yy195: YYDEBUG(195, *YYCURSOR); yych = *++YYCURSOR; @@ -3320,7 +3321,7 @@ yy205: { RETURN_TOKEN(T_POW_EQUAL); } -#line 3324 "Zend/zend_language_scanner.c" +#line 3325 "Zend/zend_language_scanner.c" yy207: YYDEBUG(207, *YYCURSOR); ++YYCURSOR; @@ -3330,7 +3331,7 @@ yy207: { RETURN_TOKEN(T_ELLIPSIS); } -#line 3334 "Zend/zend_language_scanner.c" +#line 3335 "Zend/zend_language_scanner.c" yy209: YYDEBUG(209, *YYCURSOR); yych = *++YYCURSOR; @@ -3382,7 +3383,7 @@ yy210: RETURN_TOKEN_WITH_VAL(T_DNUMBER); } } -#line 3386 "Zend/zend_language_scanner.c" +#line 3387 "Zend/zend_language_scanner.c" yy213: YYDEBUG(213, *YYCURSOR); yych = *++YYCURSOR; @@ -3408,7 +3409,7 @@ yy216: } YYDEBUG(218, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1831 "Zend/zend_language_scanner.l" +#line 1832 "Zend/zend_language_scanner.l" { char *hex = yytext + 2; /* Skip "0x" */ int len = yyleng - 2; @@ -3436,7 +3437,7 @@ yy216: RETURN_TOKEN_WITH_VAL(T_DNUMBER); } } -#line 3440 "Zend/zend_language_scanner.c" +#line 3441 "Zend/zend_language_scanner.c" yy219: YYDEBUG(219, *YYCURSOR); ++YYCURSOR; @@ -3475,7 +3476,7 @@ yy221: { RETURN_TOKEN(T_SL_EQUAL); } -#line 3479 "Zend/zend_language_scanner.c" +#line 3480 "Zend/zend_language_scanner.c" yy223: YYDEBUG(223, *YYCURSOR); ++YYCURSOR; @@ -3485,7 +3486,7 @@ yy223: { RETURN_TOKEN(T_SPACESHIP); } -#line 3489 "Zend/zend_language_scanner.c" +#line 3490 "Zend/zend_language_scanner.c" yy225: YYDEBUG(225, *YYCURSOR); ++YYCURSOR; @@ -3495,7 +3496,7 @@ yy225: { RETURN_TOKEN(T_IS_IDENTICAL); } -#line 3499 "Zend/zend_language_scanner.c" +#line 3500 "Zend/zend_language_scanner.c" yy227: YYDEBUG(227, *YYCURSOR); ++YYCURSOR; @@ -3505,7 +3506,7 @@ yy227: { RETURN_TOKEN(T_SR_EQUAL); } -#line 3509 "Zend/zend_language_scanner.c" +#line 3510 "Zend/zend_language_scanner.c" yy229: YYDEBUG(229, *YYCURSOR); ++YYCURSOR; @@ -3533,7 +3534,7 @@ yy232: { RETURN_TOKEN(T_LOGICAL_AND); } -#line 3537 "Zend/zend_language_scanner.c" +#line 3538 "Zend/zend_language_scanner.c" yy234: YYDEBUG(234, *YYCURSOR); yych = *++YYCURSOR; @@ -3618,7 +3619,7 @@ yy245: { RETURN_TOKEN(T_EXIT); } -#line 3622 "Zend/zend_language_scanner.c" +#line 3623 "Zend/zend_language_scanner.c" yy247: YYDEBUG(247, *YYCURSOR); yych = *++YYCURSOR; @@ -3704,7 +3705,7 @@ yy256: { RETURN_TOKEN(T_FOR); } -#line 3708 "Zend/zend_language_scanner.c" +#line 3709 "Zend/zend_language_scanner.c" yy257: YYDEBUG(257, *YYCURSOR); yych = *++YYCURSOR; @@ -3777,7 +3778,7 @@ yy267: { RETURN_TOKEN(T_NEW); } -#line 3781 "Zend/zend_language_scanner.c" +#line 3782 "Zend/zend_language_scanner.c" yy269: YYDEBUG(269, *YYCURSOR); yych = *++YYCURSOR; @@ -3854,7 +3855,7 @@ yy278: { RETURN_TOKEN(T_TRY); } -#line 3858 "Zend/zend_language_scanner.c" +#line 3859 "Zend/zend_language_scanner.c" yy280: YYDEBUG(280, *YYCURSOR); yych = *++YYCURSOR; @@ -3873,7 +3874,7 @@ yy281: { RETURN_TOKEN(T_USE); } -#line 3877 "Zend/zend_language_scanner.c" +#line 3878 "Zend/zend_language_scanner.c" yy283: YYDEBUG(283, *YYCURSOR); yych = *++YYCURSOR; @@ -3886,7 +3887,7 @@ yy283: { RETURN_TOKEN(T_VAR); } -#line 3890 "Zend/zend_language_scanner.c" +#line 3891 "Zend/zend_language_scanner.c" yy285: YYDEBUG(285, *YYCURSOR); yych = *++YYCURSOR; @@ -3905,7 +3906,7 @@ yy286: { RETURN_TOKEN(T_LOGICAL_XOR); } -#line 3909 "Zend/zend_language_scanner.c" +#line 3910 "Zend/zend_language_scanner.c" yy288: YYDEBUG(288, *YYCURSOR); yych = *++YYCURSOR; @@ -4123,7 +4124,7 @@ yy317: { RETURN_TOKEN(T_CASE); } -#line 4127 "Zend/zend_language_scanner.c" +#line 4128 "Zend/zend_language_scanner.c" yy319: YYDEBUG(319, *YYCURSOR); yych = *++YYCURSOR; @@ -4178,7 +4179,7 @@ yy326: { RETURN_TOKEN(T_ECHO); } -#line 4182 "Zend/zend_language_scanner.c" +#line 4183 "Zend/zend_language_scanner.c" yy328: YYDEBUG(328, *YYCURSOR); yych = *++YYCURSOR; @@ -4206,7 +4207,7 @@ yy329: { RETURN_TOKEN(T_ELSE); } -#line 4210 "Zend/zend_language_scanner.c" +#line 4211 "Zend/zend_language_scanner.c" yy330: YYDEBUG(330, *YYCURSOR); yych = *++YYCURSOR; @@ -4255,7 +4256,7 @@ yy336: { RETURN_TOKEN(T_EVAL); } -#line 4259 "Zend/zend_language_scanner.c" +#line 4260 "Zend/zend_language_scanner.c" yy338: YYDEBUG(338, *YYCURSOR); yych = *++YYCURSOR; @@ -4268,7 +4269,7 @@ yy338: { RETURN_TOKEN(T_EXIT); } -#line 4272 "Zend/zend_language_scanner.c" +#line 4273 "Zend/zend_language_scanner.c" yy340: YYDEBUG(340, *YYCURSOR); yych = *++YYCURSOR; @@ -4311,7 +4312,7 @@ yy345: { RETURN_TOKEN(T_GOTO); } -#line 4315 "Zend/zend_language_scanner.c" +#line 4316 "Zend/zend_language_scanner.c" yy347: YYDEBUG(347, *YYCURSOR); yych = *++YYCURSOR; @@ -4364,7 +4365,7 @@ yy352: { RETURN_TOKEN(T_LIST); } -#line 4368 "Zend/zend_language_scanner.c" +#line 4369 "Zend/zend_language_scanner.c" yy354: YYDEBUG(354, *YYCURSOR); yych = *++YYCURSOR; @@ -4555,7 +4556,7 @@ yy383: { RETURN_TOKEN(T_INT_CAST); } -#line 4559 "Zend/zend_language_scanner.c" +#line 4560 "Zend/zend_language_scanner.c" yy386: YYDEBUG(386, *YYCURSOR); yych = *++YYCURSOR; @@ -4652,7 +4653,7 @@ yy396: yy397: YYDEBUG(397, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2268 "Zend/zend_language_scanner.l" +#line 2269 "Zend/zend_language_scanner.l" { char *s; unsigned char *saved_cursor; @@ -4784,7 +4785,7 @@ yy397: RETURN_TOKEN(T_START_HEREDOC); } -#line 4788 "Zend/zend_language_scanner.c" +#line 4789 "Zend/zend_language_scanner.c" yy398: YYDEBUG(398, *YYCURSOR); yych = *++YYCURSOR; @@ -4808,7 +4809,7 @@ yy400: { RETURN_TOKEN(T_ARRAY); } -#line 4812 "Zend/zend_language_scanner.c" +#line 4813 "Zend/zend_language_scanner.c" yy402: YYDEBUG(402, *YYCURSOR); yych = *++YYCURSOR; @@ -4821,7 +4822,7 @@ yy402: { RETURN_TOKEN(T_BREAK); } -#line 4825 "Zend/zend_language_scanner.c" +#line 4826 "Zend/zend_language_scanner.c" yy404: YYDEBUG(404, *YYCURSOR); yych = *++YYCURSOR; @@ -4840,7 +4841,7 @@ yy405: { RETURN_TOKEN(T_CATCH); } -#line 4844 "Zend/zend_language_scanner.c" +#line 4845 "Zend/zend_language_scanner.c" yy407: YYDEBUG(407, *YYCURSOR); yych = *++YYCURSOR; @@ -4853,7 +4854,7 @@ yy407: { RETURN_TOKEN(T_CLASS); } -#line 4857 "Zend/zend_language_scanner.c" +#line 4858 "Zend/zend_language_scanner.c" yy409: YYDEBUG(409, *YYCURSOR); yych = *++YYCURSOR; @@ -4866,7 +4867,7 @@ yy409: { RETURN_TOKEN(T_CLONE); } -#line 4870 "Zend/zend_language_scanner.c" +#line 4871 "Zend/zend_language_scanner.c" yy411: YYDEBUG(411, *YYCURSOR); yych = *++YYCURSOR; @@ -4879,7 +4880,7 @@ yy411: { RETURN_TOKEN(T_CONST); } -#line 4883 "Zend/zend_language_scanner.c" +#line 4884 "Zend/zend_language_scanner.c" yy413: YYDEBUG(413, *YYCURSOR); yych = *++YYCURSOR; @@ -4916,7 +4917,7 @@ yy417: { RETURN_TOKEN(T_EMPTY); } -#line 4920 "Zend/zend_language_scanner.c" +#line 4921 "Zend/zend_language_scanner.c" yy419: YYDEBUG(419, *YYCURSOR); yych = *++YYCURSOR; @@ -4941,7 +4942,7 @@ yy421: { RETURN_TOKEN(T_ENDIF); } -#line 4945 "Zend/zend_language_scanner.c" +#line 4946 "Zend/zend_language_scanner.c" yy423: YYDEBUG(423, *YYCURSOR); yych = *++YYCURSOR; @@ -4987,7 +4988,7 @@ yy427: { RETURN_TOKEN(T_FINAL); } -#line 4991 "Zend/zend_language_scanner.c" +#line 4992 "Zend/zend_language_scanner.c" yy428: YYDEBUG(428, *YYCURSOR); yych = *++YYCURSOR; @@ -5048,7 +5049,7 @@ yy436: { RETURN_TOKEN(T_ISSET); } -#line 5052 "Zend/zend_language_scanner.c" +#line 5053 "Zend/zend_language_scanner.c" yy438: YYDEBUG(438, *YYCURSOR); yych = *++YYCURSOR; @@ -5067,7 +5068,7 @@ yy439: { RETURN_TOKEN(T_PRINT); } -#line 5071 "Zend/zend_language_scanner.c" +#line 5072 "Zend/zend_language_scanner.c" yy441: YYDEBUG(441, *YYCURSOR); yych = *++YYCURSOR; @@ -5122,7 +5123,7 @@ yy448: { RETURN_TOKEN(T_THROW); } -#line 5126 "Zend/zend_language_scanner.c" +#line 5127 "Zend/zend_language_scanner.c" yy450: YYDEBUG(450, *YYCURSOR); yych = *++YYCURSOR; @@ -5135,7 +5136,7 @@ yy450: { RETURN_TOKEN(T_TRAIT); } -#line 5139 "Zend/zend_language_scanner.c" +#line 5140 "Zend/zend_language_scanner.c" yy452: YYDEBUG(452, *YYCURSOR); yych = *++YYCURSOR; @@ -5148,7 +5149,7 @@ yy452: { RETURN_TOKEN(T_UNSET); } -#line 5152 "Zend/zend_language_scanner.c" +#line 5153 "Zend/zend_language_scanner.c" yy454: YYDEBUG(454, *YYCURSOR); yych = *++YYCURSOR; @@ -5161,7 +5162,7 @@ yy454: { RETURN_TOKEN(T_WHILE); } -#line 5165 "Zend/zend_language_scanner.c" +#line 5166 "Zend/zend_language_scanner.c" yy456: YYDEBUG(456, *YYCURSOR); yyaccept = 6; @@ -5183,7 +5184,7 @@ yy457: { RETURN_TOKEN(T_YIELD); } -#line 5187 "Zend/zend_language_scanner.c" +#line 5188 "Zend/zend_language_scanner.c" yy458: YYDEBUG(458, *YYCURSOR); yych = *++YYCURSOR; @@ -5279,7 +5280,7 @@ yy471: { RETURN_TOKEN(T_BOOL_CAST); } -#line 5283 "Zend/zend_language_scanner.c" +#line 5284 "Zend/zend_language_scanner.c" yy474: YYDEBUG(474, *YYCURSOR); yych = *++YYCURSOR; @@ -5313,7 +5314,7 @@ yy478: { RETURN_TOKEN(T_DOUBLE_CAST); } -#line 5317 "Zend/zend_language_scanner.c" +#line 5318 "Zend/zend_language_scanner.c" yy480: YYDEBUG(480, *YYCURSOR); yych = *++YYCURSOR; @@ -5382,7 +5383,7 @@ yy489: { RETURN_TOKEN(T_ELSEIF); } -#line 5386 "Zend/zend_language_scanner.c" +#line 5387 "Zend/zend_language_scanner.c" yy491: YYDEBUG(491, *YYCURSOR); yych = *++YYCURSOR; @@ -5416,7 +5417,7 @@ yy493: { RETURN_TOKEN(T_ENDFOR); } -#line 5420 "Zend/zend_language_scanner.c" +#line 5421 "Zend/zend_language_scanner.c" yy494: YYDEBUG(494, *YYCURSOR); yych = *++YYCURSOR; @@ -5465,7 +5466,7 @@ yy500: { RETURN_TOKEN(T_GLOBAL); } -#line 5469 "Zend/zend_language_scanner.c" +#line 5470 "Zend/zend_language_scanner.c" yy502: YYDEBUG(502, *YYCURSOR); yych = *++YYCURSOR; @@ -5526,7 +5527,7 @@ yy510: { RETURN_TOKEN(T_PUBLIC); } -#line 5530 "Zend/zend_language_scanner.c" +#line 5531 "Zend/zend_language_scanner.c" yy512: YYDEBUG(512, *YYCURSOR); yych = *++YYCURSOR; @@ -5545,7 +5546,7 @@ yy513: { RETURN_TOKEN(T_RETURN); } -#line 5549 "Zend/zend_language_scanner.c" +#line 5550 "Zend/zend_language_scanner.c" yy515: YYDEBUG(515, *YYCURSOR); yych = *++YYCURSOR; @@ -5558,7 +5559,7 @@ yy515: { RETURN_TOKEN(T_STATIC); } -#line 5562 "Zend/zend_language_scanner.c" +#line 5563 "Zend/zend_language_scanner.c" yy517: YYDEBUG(517, *YYCURSOR); yych = *++YYCURSOR; @@ -5571,7 +5572,7 @@ yy517: { RETURN_TOKEN(T_SWITCH); } -#line 5575 "Zend/zend_language_scanner.c" +#line 5576 "Zend/zend_language_scanner.c" yy519: YYDEBUG(519, *YYCURSOR); ++YYCURSOR; @@ -5655,7 +5656,7 @@ yy530: { RETURN_TOKEN(T_ARRAY_CAST); } -#line 5659 "Zend/zend_language_scanner.c" +#line 5660 "Zend/zend_language_scanner.c" yy532: YYDEBUG(532, *YYCURSOR); ++YYCURSOR; @@ -5705,7 +5706,7 @@ yy538: { RETURN_TOKEN(T_UNSET_CAST); } -#line 5709 "Zend/zend_language_scanner.c" +#line 5710 "Zend/zend_language_scanner.c" yy540: YYDEBUG(540, *YYCURSOR); yych = *++YYCURSOR; @@ -5736,7 +5737,7 @@ yy543: { RETURN_TOKEN(T_DECLARE); } -#line 5740 "Zend/zend_language_scanner.c" +#line 5741 "Zend/zend_language_scanner.c" yy545: YYDEBUG(545, *YYCURSOR); yych = *++YYCURSOR; @@ -5749,7 +5750,7 @@ yy545: { RETURN_TOKEN(T_DEFAULT); } -#line 5753 "Zend/zend_language_scanner.c" +#line 5754 "Zend/zend_language_scanner.c" yy547: YYDEBUG(547, *YYCURSOR); yych = *++YYCURSOR; @@ -5786,7 +5787,7 @@ yy551: { RETURN_TOKEN(T_EXTENDS); } -#line 5790 "Zend/zend_language_scanner.c" +#line 5791 "Zend/zend_language_scanner.c" yy553: YYDEBUG(553, *YYCURSOR); yych = *++YYCURSOR; @@ -5799,7 +5800,7 @@ yy553: { RETURN_TOKEN(T_FINALLY); } -#line 5803 "Zend/zend_language_scanner.c" +#line 5804 "Zend/zend_language_scanner.c" yy555: YYDEBUG(555, *YYCURSOR); yych = *++YYCURSOR; @@ -5812,7 +5813,7 @@ yy555: { RETURN_TOKEN(T_FOREACH); } -#line 5816 "Zend/zend_language_scanner.c" +#line 5817 "Zend/zend_language_scanner.c" yy557: YYDEBUG(557, *YYCURSOR); yych = *++YYCURSOR; @@ -5850,7 +5851,7 @@ yy560: { RETURN_TOKEN(T_INCLUDE); } -#line 5854 "Zend/zend_language_scanner.c" +#line 5855 "Zend/zend_language_scanner.c" yy561: YYDEBUG(561, *YYCURSOR); yych = *++YYCURSOR; @@ -5887,7 +5888,7 @@ yy565: { RETURN_TOKEN(T_PRIVATE); } -#line 5891 "Zend/zend_language_scanner.c" +#line 5892 "Zend/zend_language_scanner.c" yy567: YYDEBUG(567, *YYCURSOR); yych = *++YYCURSOR; @@ -5919,7 +5920,7 @@ yy569: { RETURN_TOKEN(T_REQUIRE); } -#line 5923 "Zend/zend_language_scanner.c" +#line 5924 "Zend/zend_language_scanner.c" yy570: YYDEBUG(570, *YYCURSOR); yych = *++YYCURSOR; @@ -5939,11 +5940,11 @@ yy572: } YYDEBUG(573, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1917 "Zend/zend_language_scanner.l" +#line 1918 "Zend/zend_language_scanner.l" { RETURN_TOKEN(T_DIR); } -#line 5947 "Zend/zend_language_scanner.c" +#line 5948 "Zend/zend_language_scanner.c" yy574: YYDEBUG(574, *YYCURSOR); yych = *++YYCURSOR; @@ -5992,7 +5993,7 @@ yy581: { RETURN_TOKEN(T_STRING_CAST); } -#line 5996 "Zend/zend_language_scanner.c" +#line 5997 "Zend/zend_language_scanner.c" yy583: YYDEBUG(583, *YYCURSOR); ++YYCURSOR; @@ -6002,7 +6003,7 @@ yy583: { RETURN_TOKEN(T_OBJECT_CAST); } -#line 6006 "Zend/zend_language_scanner.c" +#line 6007 "Zend/zend_language_scanner.c" yy585: YYDEBUG(585, *YYCURSOR); yych = *++YYCURSOR; @@ -6015,7 +6016,7 @@ yy585: { RETURN_TOKEN(T_ABSTRACT); } -#line 6019 "Zend/zend_language_scanner.c" +#line 6020 "Zend/zend_language_scanner.c" yy587: YYDEBUG(587, *YYCURSOR); yych = *++YYCURSOR; @@ -6028,7 +6029,7 @@ yy587: { RETURN_TOKEN(T_CALLABLE); } -#line 6032 "Zend/zend_language_scanner.c" +#line 6033 "Zend/zend_language_scanner.c" yy589: YYDEBUG(589, *YYCURSOR); yych = *++YYCURSOR; @@ -6041,7 +6042,7 @@ yy589: { RETURN_TOKEN(T_CONTINUE); } -#line 6045 "Zend/zend_language_scanner.c" +#line 6046 "Zend/zend_language_scanner.c" yy591: YYDEBUG(591, *YYCURSOR); yych = *++YYCURSOR; @@ -6072,7 +6073,7 @@ yy594: { RETURN_TOKEN(T_ENDWHILE); } -#line 6076 "Zend/zend_language_scanner.c" +#line 6077 "Zend/zend_language_scanner.c" yy596: YYDEBUG(596, *YYCURSOR); yych = *++YYCURSOR; @@ -6085,7 +6086,7 @@ yy596: { RETURN_TOKEN(T_FUNCTION); } -#line 6089 "Zend/zend_language_scanner.c" +#line 6090 "Zend/zend_language_scanner.c" yy598: YYDEBUG(598, *YYCURSOR); yych = *++YYCURSOR; @@ -6153,11 +6154,11 @@ yy608: } YYDEBUG(609, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1913 "Zend/zend_language_scanner.l" +#line 1914 "Zend/zend_language_scanner.l" { RETURN_TOKEN(T_FILE); } -#line 6161 "Zend/zend_language_scanner.c" +#line 6162 "Zend/zend_language_scanner.c" yy610: YYDEBUG(610, *YYCURSOR); yych = *++YYCURSOR; @@ -6178,11 +6179,11 @@ yy612: } YYDEBUG(613, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1909 "Zend/zend_language_scanner.l" +#line 1910 "Zend/zend_language_scanner.l" { RETURN_TOKEN(T_LINE); } -#line 6186 "Zend/zend_language_scanner.c" +#line 6187 "Zend/zend_language_scanner.c" yy614: YYDEBUG(614, *YYCURSOR); yych = *++YYCURSOR; @@ -6223,7 +6224,7 @@ yy619: { RETURN_TOKEN(T_ENDSWITCH); } -#line 6227 "Zend/zend_language_scanner.c" +#line 6228 "Zend/zend_language_scanner.c" yy621: YYDEBUG(621, *YYCURSOR); yych = *++YYCURSOR; @@ -6254,7 +6255,7 @@ yy624: { RETURN_TOKEN(T_INSTEADOF); } -#line 6258 "Zend/zend_language_scanner.c" +#line 6259 "Zend/zend_language_scanner.c" yy626: YYDEBUG(626, *YYCURSOR); yych = *++YYCURSOR; @@ -6267,7 +6268,7 @@ yy626: { RETURN_TOKEN(T_INTERFACE); } -#line 6271 "Zend/zend_language_scanner.c" +#line 6272 "Zend/zend_language_scanner.c" yy628: YYDEBUG(628, *YYCURSOR); yych = *++YYCURSOR; @@ -6280,7 +6281,7 @@ yy628: { RETURN_TOKEN(T_NAMESPACE); } -#line 6284 "Zend/zend_language_scanner.c" +#line 6285 "Zend/zend_language_scanner.c" yy630: YYDEBUG(630, *YYCURSOR); yych = *++YYCURSOR; @@ -6293,7 +6294,7 @@ yy630: { RETURN_TOKEN(T_PROTECTED); } -#line 6297 "Zend/zend_language_scanner.c" +#line 6298 "Zend/zend_language_scanner.c" yy632: YYDEBUG(632, *YYCURSOR); yych = *++YYCURSOR; @@ -6314,11 +6315,11 @@ yy634: } YYDEBUG(635, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1893 "Zend/zend_language_scanner.l" +#line 1894 "Zend/zend_language_scanner.l" { RETURN_TOKEN(T_CLASS_C); } -#line 6322 "Zend/zend_language_scanner.c" +#line 6323 "Zend/zend_language_scanner.c" yy636: YYDEBUG(636, *YYCURSOR); yych = *++YYCURSOR; @@ -6350,11 +6351,11 @@ yy640: } YYDEBUG(641, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1897 "Zend/zend_language_scanner.l" +#line 1898 "Zend/zend_language_scanner.l" { RETURN_TOKEN(T_TRAIT_C); } -#line 6358 "Zend/zend_language_scanner.c" +#line 6359 "Zend/zend_language_scanner.c" yy642: YYDEBUG(642, *YYCURSOR); yych = *++YYCURSOR; @@ -6367,7 +6368,7 @@ yy642: { RETURN_TOKEN(T_ENDDECLARE); } -#line 6371 "Zend/zend_language_scanner.c" +#line 6372 "Zend/zend_language_scanner.c" yy644: YYDEBUG(644, *YYCURSOR); yych = *++YYCURSOR; @@ -6380,7 +6381,7 @@ yy644: { RETURN_TOKEN(T_ENDFOREACH); } -#line 6384 "Zend/zend_language_scanner.c" +#line 6385 "Zend/zend_language_scanner.c" yy646: YYDEBUG(646, *YYCURSOR); yych = *++YYCURSOR; @@ -6393,7 +6394,7 @@ yy646: { RETURN_TOKEN(T_IMPLEMENTS); } -#line 6397 "Zend/zend_language_scanner.c" +#line 6398 "Zend/zend_language_scanner.c" yy648: YYDEBUG(648, *YYCURSOR); yych = *++YYCURSOR; @@ -6412,7 +6413,7 @@ yy649: { RETURN_TOKEN(T_INSTANCEOF); } -#line 6416 "Zend/zend_language_scanner.c" +#line 6417 "Zend/zend_language_scanner.c" yy651: YYDEBUG(651, *YYCURSOR); yych = *++YYCURSOR; @@ -6460,11 +6461,11 @@ yy655: } YYDEBUG(656, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1905 "Zend/zend_language_scanner.l" +#line 1906 "Zend/zend_language_scanner.l" { RETURN_TOKEN(T_METHOD_C); } -#line 6468 "Zend/zend_language_scanner.c" +#line 6469 "Zend/zend_language_scanner.c" yy657: YYDEBUG(657, *YYCURSOR); yych = *++YYCURSOR; @@ -6494,7 +6495,7 @@ yy660: HANDLE_NEWLINES(yytext, yyleng); RETURN_TOKEN(T_YIELD_FROM); } -#line 6498 "Zend/zend_language_scanner.c" +#line 6499 "Zend/zend_language_scanner.c" yy662: YYDEBUG(662, *YYCURSOR); yych = *++YYCURSOR; @@ -6523,7 +6524,7 @@ yy665: { RETURN_TOKEN(T_INCLUDE_ONCE); } -#line 6527 "Zend/zend_language_scanner.c" +#line 6528 "Zend/zend_language_scanner.c" yy667: YYDEBUG(667, *YYCURSOR); yych = *++YYCURSOR; @@ -6536,7 +6537,7 @@ yy667: { RETURN_TOKEN(T_REQUIRE_ONCE); } -#line 6540 "Zend/zend_language_scanner.c" +#line 6541 "Zend/zend_language_scanner.c" yy669: YYDEBUG(669, *YYCURSOR); yych = *++YYCURSOR; @@ -6545,11 +6546,11 @@ yy669: } YYDEBUG(670, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1901 "Zend/zend_language_scanner.l" +#line 1902 "Zend/zend_language_scanner.l" { RETURN_TOKEN(T_FUNC_C); } -#line 6553 "Zend/zend_language_scanner.c" +#line 6554 "Zend/zend_language_scanner.c" yy671: YYDEBUG(671, *YYCURSOR); yych = *++YYCURSOR; @@ -6575,11 +6576,11 @@ yy674: } YYDEBUG(675, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1921 "Zend/zend_language_scanner.l" +#line 1922 "Zend/zend_language_scanner.l" { RETURN_TOKEN(T_NS_C); } -#line 6583 "Zend/zend_language_scanner.c" +#line 6584 "Zend/zend_language_scanner.c" yy676: YYDEBUG(676, *YYCURSOR); yych = *++YYCURSOR; @@ -6597,7 +6598,7 @@ yy677: { RETURN_TOKEN(T_HALT_COMPILER); } -#line 6601 "Zend/zend_language_scanner.c" +#line 6602 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_LOOKING_FOR_PROPERTY: @@ -6669,7 +6670,7 @@ yy682: yy_pop_state(); goto restart; } -#line 6673 "Zend/zend_language_scanner.c" +#line 6674 "Zend/zend_language_scanner.c" yy683: YYDEBUG(683, *YYCURSOR); ++YYCURSOR; @@ -6685,7 +6686,7 @@ yy683: { goto return_whitespace; } -#line 6689 "Zend/zend_language_scanner.c" +#line 6690 "Zend/zend_language_scanner.c" yy686: YYDEBUG(686, *YYCURSOR); yych = *++YYCURSOR; @@ -6707,7 +6708,7 @@ yy687: yy_pop_state(); RETURN_TOKEN_WITH_STR(T_STRING, 0); } -#line 6711 "Zend/zend_language_scanner.c" +#line 6712 "Zend/zend_language_scanner.c" yy690: YYDEBUG(690, *YYCURSOR); ++YYCURSOR; @@ -6717,7 +6718,7 @@ yy690: { RETURN_TOKEN(T_OBJECT_OPERATOR); } -#line 6721 "Zend/zend_language_scanner.c" +#line 6722 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_BACKQUOTE: @@ -6770,7 +6771,7 @@ yyc_ST_BACKQUOTE: yy695: YYDEBUG(695, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2493 "Zend/zend_language_scanner.l" +#line 2494 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { RETURN_TOKEN(END); @@ -6815,7 +6816,7 @@ yy695: RETURN_TOKEN(T_ERROR); } } -#line 6819 "Zend/zend_language_scanner.c" +#line 6820 "Zend/zend_language_scanner.c" yy696: YYDEBUG(696, *YYCURSOR); yych = *++YYCURSOR; @@ -6839,12 +6840,12 @@ yy697: ++YYCURSOR; YYDEBUG(698, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2433 "Zend/zend_language_scanner.l" +#line 2434 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); RETURN_TOKEN('`'); } -#line 6848 "Zend/zend_language_scanner.c" +#line 6849 "Zend/zend_language_scanner.c" yy699: YYDEBUG(699, *YYCURSOR); yych = *++YYCURSOR; @@ -6865,11 +6866,11 @@ yy700: yy702: YYDEBUG(702, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2022 "Zend/zend_language_scanner.l" +#line 2023 "Zend/zend_language_scanner.l" { RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); } -#line 6873 "Zend/zend_language_scanner.c" +#line 6874 "Zend/zend_language_scanner.c" yy703: YYDEBUG(703, *YYCURSOR); ++YYCURSOR; @@ -6880,19 +6881,19 @@ yy703: yy_push_state(ST_LOOKING_FOR_VARNAME); RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES); } -#line 6884 "Zend/zend_language_scanner.c" +#line 6885 "Zend/zend_language_scanner.c" yy705: YYDEBUG(705, *YYCURSOR); ++YYCURSOR; YYDEBUG(706, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2421 "Zend/zend_language_scanner.l" +#line 2422 "Zend/zend_language_scanner.l" { yy_push_state(ST_IN_SCRIPTING); yyless(1); RETURN_TOKEN(T_CURLY_OPEN); } -#line 6896 "Zend/zend_language_scanner.c" +#line 6897 "Zend/zend_language_scanner.c" yy707: YYDEBUG(707, *YYCURSOR); yych = *++YYCURSOR; @@ -6906,13 +6907,13 @@ yy709: ++YYCURSOR; YYDEBUG(710, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2016 "Zend/zend_language_scanner.l" +#line 2017 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET); RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); } -#line 6916 "Zend/zend_language_scanner.c" +#line 6917 "Zend/zend_language_scanner.c" yy711: YYDEBUG(711, *YYCURSOR); yych = *++YYCURSOR; @@ -6930,13 +6931,13 @@ yy712: ++YYCURSOR; YYDEBUG(713, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2008 "Zend/zend_language_scanner.l" +#line 2009 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY); RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); } -#line 6940 "Zend/zend_language_scanner.c" +#line 6941 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_DOUBLE_QUOTES: @@ -6989,7 +6990,7 @@ yyc_ST_DOUBLE_QUOTES: yy717: YYDEBUG(717, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2439 "Zend/zend_language_scanner.l" +#line 2440 "Zend/zend_language_scanner.l" { if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) { YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1; @@ -7042,18 +7043,18 @@ double_quotes_scan_done: RETURN_TOKEN(T_ERROR); } } -#line 7046 "Zend/zend_language_scanner.c" +#line 7047 "Zend/zend_language_scanner.c" yy718: YYDEBUG(718, *YYCURSOR); ++YYCURSOR; YYDEBUG(719, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2428 "Zend/zend_language_scanner.l" +#line 2429 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); RETURN_TOKEN('"'); } -#line 7057 "Zend/zend_language_scanner.c" +#line 7058 "Zend/zend_language_scanner.c" yy720: YYDEBUG(720, *YYCURSOR); yych = *++YYCURSOR; @@ -7092,11 +7093,11 @@ yy722: yy724: YYDEBUG(724, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2022 "Zend/zend_language_scanner.l" +#line 2023 "Zend/zend_language_scanner.l" { RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); } -#line 7100 "Zend/zend_language_scanner.c" +#line 7101 "Zend/zend_language_scanner.c" yy725: YYDEBUG(725, *YYCURSOR); ++YYCURSOR; @@ -7107,19 +7108,19 @@ yy725: yy_push_state(ST_LOOKING_FOR_VARNAME); RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES); } -#line 7111 "Zend/zend_language_scanner.c" +#line 7112 "Zend/zend_language_scanner.c" yy727: YYDEBUG(727, *YYCURSOR); ++YYCURSOR; YYDEBUG(728, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2421 "Zend/zend_language_scanner.l" +#line 2422 "Zend/zend_language_scanner.l" { yy_push_state(ST_IN_SCRIPTING); yyless(1); RETURN_TOKEN(T_CURLY_OPEN); } -#line 7123 "Zend/zend_language_scanner.c" +#line 7124 "Zend/zend_language_scanner.c" yy729: YYDEBUG(729, *YYCURSOR); yych = *++YYCURSOR; @@ -7133,13 +7134,13 @@ yy731: ++YYCURSOR; YYDEBUG(732, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2016 "Zend/zend_language_scanner.l" +#line 2017 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET); RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); } -#line 7143 "Zend/zend_language_scanner.c" +#line 7144 "Zend/zend_language_scanner.c" yy733: YYDEBUG(733, *YYCURSOR); yych = *++YYCURSOR; @@ -7157,13 +7158,13 @@ yy734: ++YYCURSOR; YYDEBUG(735, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2008 "Zend/zend_language_scanner.l" +#line 2009 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY); RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); } -#line 7167 "Zend/zend_language_scanner.c" +#line 7168 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_HEREDOC: @@ -7212,7 +7213,7 @@ yyc_ST_HEREDOC: yy739: YYDEBUG(739, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2539 "Zend/zend_language_scanner.l" +#line 2540 "Zend/zend_language_scanner.l" { zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack)); int newline = 0, indentation = 0, spacing = 0; @@ -7332,7 +7333,7 @@ heredoc_scan_done: RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE); } -#line 7336 "Zend/zend_language_scanner.c" +#line 7337 "Zend/zend_language_scanner.c" yy740: YYDEBUG(740, *YYCURSOR); yych = *++YYCURSOR; @@ -7371,11 +7372,11 @@ yy742: yy744: YYDEBUG(744, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2022 "Zend/zend_language_scanner.l" +#line 2023 "Zend/zend_language_scanner.l" { RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); } -#line 7379 "Zend/zend_language_scanner.c" +#line 7380 "Zend/zend_language_scanner.c" yy745: YYDEBUG(745, *YYCURSOR); ++YYCURSOR; @@ -7386,19 +7387,19 @@ yy745: yy_push_state(ST_LOOKING_FOR_VARNAME); RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES); } -#line 7390 "Zend/zend_language_scanner.c" +#line 7391 "Zend/zend_language_scanner.c" yy747: YYDEBUG(747, *YYCURSOR); ++YYCURSOR; YYDEBUG(748, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2421 "Zend/zend_language_scanner.l" +#line 2422 "Zend/zend_language_scanner.l" { yy_push_state(ST_IN_SCRIPTING); yyless(1); RETURN_TOKEN(T_CURLY_OPEN); } -#line 7402 "Zend/zend_language_scanner.c" +#line 7403 "Zend/zend_language_scanner.c" yy749: YYDEBUG(749, *YYCURSOR); yych = *++YYCURSOR; @@ -7412,13 +7413,13 @@ yy751: ++YYCURSOR; YYDEBUG(752, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2016 "Zend/zend_language_scanner.l" +#line 2017 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET); RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); } -#line 7422 "Zend/zend_language_scanner.c" +#line 7423 "Zend/zend_language_scanner.c" yy753: YYDEBUG(753, *YYCURSOR); yych = *++YYCURSOR; @@ -7436,13 +7437,13 @@ yy754: ++YYCURSOR; YYDEBUG(755, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2008 "Zend/zend_language_scanner.l" +#line 2009 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY); RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); } -#line 7446 "Zend/zend_language_scanner.c" +#line 7447 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_LOOKING_FOR_VARNAME: @@ -7506,7 +7507,7 @@ yy759: yy_push_state(ST_IN_SCRIPTING); goto restart; } -#line 7510 "Zend/zend_language_scanner.c" +#line 7511 "Zend/zend_language_scanner.c" yy760: YYDEBUG(760, *YYCURSOR); yych = *(YYMARKER = ++YYCURSOR); @@ -7560,7 +7561,7 @@ yy764: yy_push_state(ST_IN_SCRIPTING); RETURN_TOKEN_WITH_STR(T_STRING_VARNAME, 0); } -#line 7564 "Zend/zend_language_scanner.c" +#line 7565 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_VAR_OFFSET: @@ -7649,7 +7650,7 @@ yy768: ++YYCURSOR; YYDEBUG(769, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2748 "Zend/zend_language_scanner.l" +#line 2749 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { RETURN_TOKEN(END); @@ -7658,13 +7659,13 @@ yy768: zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); goto restart; } -#line 7662 "Zend/zend_language_scanner.c" +#line 7663 "Zend/zend_language_scanner.c" yy770: YYDEBUG(770, *YYCURSOR); ++YYCURSOR; YYDEBUG(771, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2036 "Zend/zend_language_scanner.l" +#line 2037 "Zend/zend_language_scanner.l" { /* Invalid rule to return a more explicit parse error with proper line number */ yyless(0); @@ -7672,19 +7673,19 @@ yy770: ZVAL_NULL(zendlval); RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE); } -#line 7676 "Zend/zend_language_scanner.c" +#line 7677 "Zend/zend_language_scanner.c" yy772: YYDEBUG(772, *YYCURSOR); ++YYCURSOR; yy773: YYDEBUG(773, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2031 "Zend/zend_language_scanner.l" +#line 2032 "Zend/zend_language_scanner.l" { /* Only '[' or '-' can be valid, but returning other tokens will allow a more explicit parse error */ RETURN_TOKEN(yytext[0]); } -#line 7688 "Zend/zend_language_scanner.c" +#line 7689 "Zend/zend_language_scanner.c" yy774: YYDEBUG(774, *YYCURSOR); yych = *++YYCURSOR; @@ -7719,7 +7720,7 @@ yy775: yy776: YYDEBUG(776, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1859 "Zend/zend_language_scanner.l" +#line 1860 "Zend/zend_language_scanner.l" { /* Offset could be treated as a long */ if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) { char *end; @@ -7735,7 +7736,7 @@ string: } RETURN_TOKEN_WITH_VAL(T_NUM_STRING); } -#line 7739 "Zend/zend_language_scanner.c" +#line 7740 "Zend/zend_language_scanner.c" yy777: YYDEBUG(777, *YYCURSOR); ++YYCURSOR; @@ -7757,22 +7758,22 @@ yy779: } YYDEBUG(781, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2044 "Zend/zend_language_scanner.l" +#line 2045 "Zend/zend_language_scanner.l" { RETURN_TOKEN_WITH_STR(T_STRING, 0); } -#line 7765 "Zend/zend_language_scanner.c" +#line 7766 "Zend/zend_language_scanner.c" yy782: YYDEBUG(782, *YYCURSOR); ++YYCURSOR; YYDEBUG(783, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2026 "Zend/zend_language_scanner.l" +#line 2027 "Zend/zend_language_scanner.l" { yy_pop_state(); RETURN_TOKEN(']'); } -#line 7776 "Zend/zend_language_scanner.c" +#line 7777 "Zend/zend_language_scanner.c" yy784: YYDEBUG(784, *YYCURSOR); ++YYCURSOR; @@ -7797,11 +7798,11 @@ yy784: yy786: YYDEBUG(786, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2022 "Zend/zend_language_scanner.l" +#line 2023 "Zend/zend_language_scanner.l" { RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); } -#line 7805 "Zend/zend_language_scanner.c" +#line 7806 "Zend/zend_language_scanner.c" yy787: YYDEBUG(787, *YYCURSOR); ++YYCURSOR; @@ -7813,7 +7814,7 @@ yy787: yy789: YYDEBUG(789, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1875 "Zend/zend_language_scanner.l" +#line 1876 "Zend/zend_language_scanner.l" { /* Offset must be treated as a string */ if (yyleng == 1) { ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext))); @@ -7822,7 +7823,7 @@ yy789: } RETURN_TOKEN_WITH_VAL(T_NUM_STRING); } -#line 7826 "Zend/zend_language_scanner.c" +#line 7827 "Zend/zend_language_scanner.c" yy790: YYDEBUG(790, *YYCURSOR); yych = *++YYCURSOR; @@ -7872,7 +7873,7 @@ yyc_INITIAL: yy800: YYDEBUG(800, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1957 "Zend/zend_language_scanner.l" +#line 1958 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { RETURN_TOKEN(END); @@ -7919,7 +7920,7 @@ inline_char_handler: HANDLE_NEWLINES(yytext, yyleng); RETURN_TOKEN_WITH_VAL(T_INLINE_HTML); } -#line 7923 "Zend/zend_language_scanner.c" +#line 7924 "Zend/zend_language_scanner.c" yy801: YYDEBUG(801, *YYCURSOR); yych = *++YYCURSOR; @@ -7935,7 +7936,7 @@ yy801: yy803: YYDEBUG(803, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1945 "Zend/zend_language_scanner.l" +#line 1946 "Zend/zend_language_scanner.l" { if (CG(short_tags)) { BEGIN(ST_IN_SCRIPTING); @@ -7947,13 +7948,13 @@ yy803: goto inline_char_handler; } } -#line 7951 "Zend/zend_language_scanner.c" +#line 7952 "Zend/zend_language_scanner.c" yy804: YYDEBUG(804, *YYCURSOR); ++YYCURSOR; YYDEBUG(805, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1926 "Zend/zend_language_scanner.l" +#line 1927 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); if (PARSER_MODE()) { @@ -7961,7 +7962,7 @@ yy804: } RETURN_TOKEN(T_OPEN_TAG_WITH_ECHO); } -#line 7965 "Zend/zend_language_scanner.c" +#line 7966 "Zend/zend_language_scanner.c" yy806: YYDEBUG(806, *YYCURSOR); yych = *++YYCURSOR; @@ -7992,7 +7993,7 @@ yy810: yy811: YYDEBUG(811, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1935 "Zend/zend_language_scanner.l" +#line 1936 "Zend/zend_language_scanner.l" { HANDLE_NEWLINE(yytext[yyleng-1]); BEGIN(ST_IN_SCRIPTING); @@ -8001,7 +8002,7 @@ yy811: } RETURN_TOKEN(T_OPEN_TAG); } -#line 8005 "Zend/zend_language_scanner.c" +#line 8006 "Zend/zend_language_scanner.c" yy812: YYDEBUG(812, *YYCURSOR); yych = *++YYCURSOR; @@ -8016,7 +8017,7 @@ yyc_ST_END_HEREDOC: ++YYCURSOR; YYDEBUG(816, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2407 "Zend/zend_language_scanner.l" +#line 2408 "Zend/zend_language_scanner.l" { zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack)); @@ -8029,7 +8030,7 @@ yyc_ST_END_HEREDOC: BEGIN(ST_IN_SCRIPTING); RETURN_TOKEN(T_END_HEREDOC); } -#line 8033 "Zend/zend_language_scanner.c" +#line 8034 "Zend/zend_language_scanner.c" /* *********************************** */ yyc_ST_NOWDOC: YYDEBUG(817, *YYCURSOR); @@ -8039,7 +8040,7 @@ yyc_ST_NOWDOC: ++YYCURSOR; YYDEBUG(820, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2660 "Zend/zend_language_scanner.l" +#line 2661 "Zend/zend_language_scanner.l" { zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack)); int newline = 0, indentation = 0, spacing = -1; @@ -8126,9 +8127,9 @@ nowdoc_scan_done: HANDLE_NEWLINES(yytext, yyleng - newline); RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE); } -#line 8130 "Zend/zend_language_scanner.c" +#line 8131 "Zend/zend_language_scanner.c" } -#line 2757 "Zend/zend_language_scanner.l" +#line 2758 "Zend/zend_language_scanner.l" emit_token_with_str: diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index daaf0c5d3c..af4425ed42 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -1781,7 +1781,8 @@ NEWLINE ("\r"|"\n"|"\r\n") char *end; if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */ errno = 0; - ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 0)); + /* base must be passed explicitly for correct parse error on Windows */ + ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, yytext[0] == '0' ? 8 : 10)); /* This isn't an assert, we need to ensure 019 isn't valid octal * Because the lexing itself doesn't do that for us */ |