diff options
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | Zend/tests/bug61225.phpt | 9 | ||||
-rw-r--r-- | Zend/zend_language_scanner.c | 378 | ||||
-rw-r--r-- | Zend/zend_language_scanner.l | 6 | ||||
-rw-r--r-- | Zend/zend_language_scanner_defs.h | 2 |
5 files changed, 209 insertions, 189 deletions
@@ -2,6 +2,9 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? 2012, PHP 5.4.1 RC1 +- Core: + . Fixed bug #61225 (Incorect lexing of 0b00*+<NUM>). (Pierrick) + - Standard: . Fixed memory leak in substr_replace. (Pierrick) . make max_file_uploads ini directive settable outside of php.ini (Rasmus) diff --git a/Zend/tests/bug61225.phpt b/Zend/tests/bug61225.phpt new file mode 100644 index 0000000000..33d74bd561 --- /dev/null +++ b/Zend/tests/bug61225.phpt @@ -0,0 +1,9 @@ +--TEST-- +Bug #61225 (Lexing 0b0*+<NUM> incorectly) +--FILE-- +<?php +echo 0b00+1; +echo "\n"; +?> +--EXPECT-- +1 diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c index bfecfb169d..3f6189efee 100644 --- a/Zend/zend_language_scanner.c +++ b/Zend/zend_language_scanner.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Wed Feb 15 17:48:20 2012 */ +/* Generated by re2c 0.13.5 on Thu Mar 1 21:27:30 2012 */ #line 1 "Zend/zend_language_scanner.l" /* +----------------------------------------------------------------------+ @@ -1090,7 +1090,7 @@ yyc_INITIAL: yy3: YYDEBUG(3, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1779 "Zend/zend_language_scanner.l" +#line 1783 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -1168,7 +1168,7 @@ yy5: yy6: YYDEBUG(6, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1767 "Zend/zend_language_scanner.l" +#line 1771 "Zend/zend_language_scanner.l" { if (CG(short_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1187,7 +1187,7 @@ yy7: if ((yych = *YYCURSOR) == '=') goto yy43; YYDEBUG(8, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1744 "Zend/zend_language_scanner.l" +#line 1748 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1385,7 +1385,7 @@ yy35: ++YYCURSOR; YYDEBUG(38, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1704 "Zend/zend_language_scanner.l" +#line 1708 "Zend/zend_language_scanner.l" { YYCTYPE *bracket = (YYCTYPE*)zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1)); @@ -1429,7 +1429,7 @@ yy43: ++YYCURSOR; YYDEBUG(44, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1722 "Zend/zend_language_scanner.l" +#line 1726 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1447,7 +1447,7 @@ yy45: ++YYCURSOR; YYDEBUG(46, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1735 "Zend/zend_language_scanner.l" +#line 1739 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -1482,7 +1482,7 @@ yy50: yy51: YYDEBUG(51, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1757 "Zend/zend_language_scanner.l" +#line 1761 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -1562,7 +1562,7 @@ yyc_ST_BACKQUOTE: yy56: YYDEBUG(56, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2230 "Zend/zend_language_scanner.l" +#line 2234 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -1614,7 +1614,7 @@ yy58: ++YYCURSOR; YYDEBUG(59, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2174 "Zend/zend_language_scanner.l" +#line 2178 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '`'; @@ -1629,7 +1629,7 @@ yy61: ++YYCURSOR; YYDEBUG(62, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2161 "Zend/zend_language_scanner.l" +#line 2165 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); @@ -1652,7 +1652,7 @@ yy63: yy65: YYDEBUG(65, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1861 "Zend/zend_language_scanner.l" +#line 1865 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; @@ -1683,7 +1683,7 @@ yy70: ++YYCURSOR; YYDEBUG(71, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1853 "Zend/zend_language_scanner.l" +#line 1857 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -1709,7 +1709,7 @@ yy73: ++YYCURSOR; YYDEBUG(74, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1843 "Zend/zend_language_scanner.l" +#line 1847 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -1785,7 +1785,7 @@ yy77: yy78: YYDEBUG(78, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2180 "Zend/zend_language_scanner.l" +#line 2184 "Zend/zend_language_scanner.l" { if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) { YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1; @@ -1845,7 +1845,7 @@ yy80: ++YYCURSOR; YYDEBUG(81, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2169 "Zend/zend_language_scanner.l" +#line 2173 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '"'; @@ -1860,7 +1860,7 @@ yy83: ++YYCURSOR; YYDEBUG(84, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2161 "Zend/zend_language_scanner.l" +#line 2165 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); @@ -1883,7 +1883,7 @@ yy85: yy87: YYDEBUG(87, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1861 "Zend/zend_language_scanner.l" +#line 1865 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; @@ -1914,7 +1914,7 @@ yy92: ++YYCURSOR; YYDEBUG(93, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1853 "Zend/zend_language_scanner.l" +#line 1857 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -1940,7 +1940,7 @@ yy95: ++YYCURSOR; YYDEBUG(96, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1843 "Zend/zend_language_scanner.l" +#line 1847 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -1959,7 +1959,7 @@ yyc_ST_END_HEREDOC: ++YYCURSOR; YYDEBUG(100, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2148 "Zend/zend_language_scanner.l" +#line 2152 "Zend/zend_language_scanner.l" { YYCURSOR += CG(heredoc_len) - 1; yyleng = CG(heredoc_len); @@ -2033,7 +2033,7 @@ yy103: yy104: YYDEBUG(104, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2272 "Zend/zend_language_scanner.l" +#line 2276 "Zend/zend_language_scanner.l" { int newline = 0; @@ -2119,7 +2119,7 @@ yy107: ++YYCURSOR; YYDEBUG(108, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2161 "Zend/zend_language_scanner.l" +#line 2165 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); @@ -2142,7 +2142,7 @@ yy109: yy111: YYDEBUG(111, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1861 "Zend/zend_language_scanner.l" +#line 1865 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; @@ -2173,7 +2173,7 @@ yy116: ++YYCURSOR; YYDEBUG(117, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1853 "Zend/zend_language_scanner.l" +#line 1857 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -2199,7 +2199,7 @@ yy119: ++YYCURSOR; YYDEBUG(120, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1843 "Zend/zend_language_scanner.l" +#line 1847 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -2388,7 +2388,7 @@ yy123: yy124: YYDEBUG(124, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1884 "Zend/zend_language_scanner.l" +#line 1888 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); zendlval->type = IS_STRING; @@ -2931,7 +2931,7 @@ yy171: yy172: YYDEBUG(172, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1494 "Zend/zend_language_scanner.l" +#line 1498 "Zend/zend_language_scanner.l" { if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */ zendlval->value.lval = strtol(yytext, NULL, 0); @@ -2980,7 +2980,7 @@ yy175: yy176: YYDEBUG(176, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1891 "Zend/zend_language_scanner.l" +#line 1895 "Zend/zend_language_scanner.l" { while (YYCURSOR < YYLIMIT) { switch (*YYCURSOR++) { @@ -3021,7 +3021,7 @@ yy177: yy178: YYDEBUG(178, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1982 "Zend/zend_language_scanner.l" +#line 1986 "Zend/zend_language_scanner.l" { register char *s, *t; char *end; @@ -3096,7 +3096,7 @@ yy179: yy180: YYDEBUG(180, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2051 "Zend/zend_language_scanner.l" +#line 2055 "Zend/zend_language_scanner.l" { int bprefix = (yytext[0] != '"') ? 1 : 0; @@ -3143,7 +3143,7 @@ yy181: ++YYCURSOR; YYDEBUG(182, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2142 "Zend/zend_language_scanner.l" +#line 2146 "Zend/zend_language_scanner.l" { BEGIN(ST_BACKQUOTE); return '`'; @@ -3154,7 +3154,7 @@ yy183: ++YYCURSOR; YYDEBUG(184, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2400 "Zend/zend_language_scanner.l" +#line 2404 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -3190,7 +3190,7 @@ yy187: yy189: YYDEBUG(189, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1559 "Zend/zend_language_scanner.l" +#line 1563 "Zend/zend_language_scanner.l" { zendlval->value.dval = zend_strtod(yytext, NULL); zendlval->type = IS_DOUBLE; @@ -3300,7 +3300,11 @@ yy199: } if (len < SIZEOF_LONG * 8) { - zendlval->value.lval = strtol(bin, NULL, 2); + if (len == 0) { + zendlval->value.lval = 0; + } else { + zendlval->value.lval = strtol(bin, NULL, 2); + } zendlval->type = IS_LONG; return T_LNUMBER; } else { @@ -3309,7 +3313,7 @@ yy199: return T_DNUMBER; } } -#line 3313 "Zend/zend_language_scanner.c" +#line 3317 "Zend/zend_language_scanner.c" yy202: YYDEBUG(202, *YYCURSOR); ++YYCURSOR; @@ -3321,7 +3325,7 @@ yy202: } YYDEBUG(204, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1515 "Zend/zend_language_scanner.l" +#line 1519 "Zend/zend_language_scanner.l" { char *hex = yytext + 2; /* Skip "0x" */ int len = yyleng - 2; @@ -3346,7 +3350,7 @@ yy202: return T_DNUMBER; } } -#line 3350 "Zend/zend_language_scanner.c" +#line 3354 "Zend/zend_language_scanner.c" yy205: YYDEBUG(205, *YYCURSOR); ++YYCURSOR; @@ -3355,7 +3359,7 @@ yy205: yy206: YYDEBUG(206, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1959 "Zend/zend_language_scanner.l" +#line 1963 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -3363,7 +3367,7 @@ yy206: BEGIN(INITIAL); return T_CLOSE_TAG; /* implicit ';' at php-end tag */ } -#line 3367 "Zend/zend_language_scanner.c" +#line 3371 "Zend/zend_language_scanner.c" yy207: YYDEBUG(207, *YYCURSOR); yych = *++YYCURSOR; @@ -3397,13 +3401,13 @@ yy209: yy211: YYDEBUG(211, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1861 "Zend/zend_language_scanner.l" +#line 1865 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; return T_VARIABLE; } -#line 3407 "Zend/zend_language_scanner.c" +#line 3411 "Zend/zend_language_scanner.c" yy212: YYDEBUG(212, *YYCURSOR); yych = *++YYCURSOR; @@ -3421,7 +3425,7 @@ yy213: { return T_LOGICAL_XOR; } -#line 3425 "Zend/zend_language_scanner.c" +#line 3429 "Zend/zend_language_scanner.c" yy215: YYDEBUG(215, *YYCURSOR); ++YYCURSOR; @@ -3434,7 +3438,7 @@ yy215: { return T_LOGICAL_OR; } -#line 3438 "Zend/zend_language_scanner.c" +#line 3442 "Zend/zend_language_scanner.c" yy217: YYDEBUG(217, *YYCURSOR); ++YYCURSOR; @@ -3444,7 +3448,7 @@ yy217: { return T_XOR_EQUAL; } -#line 3448 "Zend/zend_language_scanner.c" +#line 3452 "Zend/zend_language_scanner.c" yy219: YYDEBUG(219, *YYCURSOR); ++YYCURSOR; @@ -3454,7 +3458,7 @@ yy219: { return T_BOOLEAN_OR; } -#line 3458 "Zend/zend_language_scanner.c" +#line 3462 "Zend/zend_language_scanner.c" yy221: YYDEBUG(221, *YYCURSOR); ++YYCURSOR; @@ -3464,7 +3468,7 @@ yy221: { return T_OR_EQUAL; } -#line 3468 "Zend/zend_language_scanner.c" +#line 3472 "Zend/zend_language_scanner.c" yy223: YYDEBUG(223, *YYCURSOR); ++YYCURSOR; @@ -3474,7 +3478,7 @@ yy223: { return T_BOOLEAN_AND; } -#line 3478 "Zend/zend_language_scanner.c" +#line 3482 "Zend/zend_language_scanner.c" yy225: YYDEBUG(225, *YYCURSOR); ++YYCURSOR; @@ -3484,7 +3488,7 @@ yy225: { return T_AND_EQUAL; } -#line 3488 "Zend/zend_language_scanner.c" +#line 3492 "Zend/zend_language_scanner.c" yy227: YYDEBUG(227, *YYCURSOR); ++YYCURSOR; @@ -3493,7 +3497,7 @@ yy227: yy228: YYDEBUG(228, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1968 "Zend/zend_language_scanner.l" +#line 1972 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { BEGIN(INITIAL); @@ -3506,7 +3510,7 @@ yy228: return yytext[0]; } } -#line 3510 "Zend/zend_language_scanner.c" +#line 3514 "Zend/zend_language_scanner.c" yy229: YYDEBUG(229, *YYCURSOR); ++YYCURSOR; @@ -3516,7 +3520,7 @@ yy229: { return T_MOD_EQUAL; } -#line 3520 "Zend/zend_language_scanner.c" +#line 3524 "Zend/zend_language_scanner.c" yy231: YYDEBUG(231, *YYCURSOR); yych = *++YYCURSOR; @@ -3551,7 +3555,7 @@ yy235: { return T_CONCAT_EQUAL; } -#line 3555 "Zend/zend_language_scanner.c" +#line 3559 "Zend/zend_language_scanner.c" yy237: YYDEBUG(237, *YYCURSOR); yyaccept = 4; @@ -3560,7 +3564,7 @@ yy237: yy238: YYDEBUG(238, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1925 "Zend/zend_language_scanner.l" +#line 1929 "Zend/zend_language_scanner.l" { int doc_com; @@ -3594,7 +3598,7 @@ yy238: return T_COMMENT; } -#line 3598 "Zend/zend_language_scanner.c" +#line 3602 "Zend/zend_language_scanner.c" yy239: YYDEBUG(239, *YYCURSOR); yych = *++YYCURSOR; @@ -3608,7 +3612,7 @@ yy240: { return T_DIV_EQUAL; } -#line 3612 "Zend/zend_language_scanner.c" +#line 3616 "Zend/zend_language_scanner.c" yy242: YYDEBUG(242, *YYCURSOR); yych = *++YYCURSOR; @@ -3635,7 +3639,7 @@ yy245: { return T_MUL_EQUAL; } -#line 3639 "Zend/zend_language_scanner.c" +#line 3643 "Zend/zend_language_scanner.c" yy247: YYDEBUG(247, *YYCURSOR); ++YYCURSOR; @@ -3646,7 +3650,7 @@ yy247: { return T_SR; } -#line 3650 "Zend/zend_language_scanner.c" +#line 3654 "Zend/zend_language_scanner.c" yy249: YYDEBUG(249, *YYCURSOR); ++YYCURSOR; @@ -3656,7 +3660,7 @@ yy249: { return T_IS_GREATER_OR_EQUAL; } -#line 3660 "Zend/zend_language_scanner.c" +#line 3664 "Zend/zend_language_scanner.c" yy251: YYDEBUG(251, *YYCURSOR); ++YYCURSOR; @@ -3666,7 +3670,7 @@ yy251: { return T_SR_EQUAL; } -#line 3670 "Zend/zend_language_scanner.c" +#line 3674 "Zend/zend_language_scanner.c" yy253: YYDEBUG(253, *YYCURSOR); yyaccept = 5; @@ -3681,7 +3685,7 @@ yy254: { return T_SL; } -#line 3685 "Zend/zend_language_scanner.c" +#line 3689 "Zend/zend_language_scanner.c" yy255: YYDEBUG(255, *YYCURSOR); yych = *++YYCURSOR; @@ -3697,7 +3701,7 @@ yy256: { return T_IS_SMALLER_OR_EQUAL; } -#line 3701 "Zend/zend_language_scanner.c" +#line 3705 "Zend/zend_language_scanner.c" yy258: YYDEBUG(258, *YYCURSOR); ++YYCURSOR; @@ -3708,7 +3712,7 @@ yy259: { return T_IS_NOT_EQUAL; } -#line 3712 "Zend/zend_language_scanner.c" +#line 3716 "Zend/zend_language_scanner.c" yy260: YYDEBUG(260, *YYCURSOR); yych = *++YYCURSOR; @@ -3763,7 +3767,7 @@ yy267: { return T_SL_EQUAL; } -#line 3767 "Zend/zend_language_scanner.c" +#line 3771 "Zend/zend_language_scanner.c" yy269: YYDEBUG(269, *YYCURSOR); ++YYCURSOR; @@ -3868,7 +3872,7 @@ yy278: yy279: YYDEBUG(279, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2093 "Zend/zend_language_scanner.l" +#line 2097 "Zend/zend_language_scanner.l" { char *s; int bprefix = (yytext[0] != '<') ? 1 : 0; @@ -3916,7 +3920,7 @@ yy279: return T_START_HEREDOC; } -#line 3920 "Zend/zend_language_scanner.c" +#line 3924 "Zend/zend_language_scanner.c" yy280: YYDEBUG(280, *YYCURSOR); yych = *++YYCURSOR; @@ -3960,7 +3964,7 @@ yy283: { return T_IS_NOT_IDENTICAL; } -#line 3964 "Zend/zend_language_scanner.c" +#line 3968 "Zend/zend_language_scanner.c" yy286: YYDEBUG(286, *YYCURSOR); ++YYCURSOR; @@ -3970,7 +3974,7 @@ yy286: { return T_PLUS_EQUAL; } -#line 3974 "Zend/zend_language_scanner.c" +#line 3978 "Zend/zend_language_scanner.c" yy288: YYDEBUG(288, *YYCURSOR); ++YYCURSOR; @@ -3980,7 +3984,7 @@ yy288: { return T_INC; } -#line 3984 "Zend/zend_language_scanner.c" +#line 3988 "Zend/zend_language_scanner.c" yy290: YYDEBUG(290, *YYCURSOR); yych = *++YYCURSOR; @@ -4003,7 +4007,7 @@ yy292: { return T_LIST; } -#line 4007 "Zend/zend_language_scanner.c" +#line 4011 "Zend/zend_language_scanner.c" yy294: YYDEBUG(294, *YYCURSOR); ++YYCURSOR; @@ -4014,7 +4018,7 @@ yy294: { return T_IS_EQUAL; } -#line 4018 "Zend/zend_language_scanner.c" +#line 4022 "Zend/zend_language_scanner.c" yy296: YYDEBUG(296, *YYCURSOR); ++YYCURSOR; @@ -4024,7 +4028,7 @@ yy296: { return T_DOUBLE_ARROW; } -#line 4028 "Zend/zend_language_scanner.c" +#line 4032 "Zend/zend_language_scanner.c" yy298: YYDEBUG(298, *YYCURSOR); ++YYCURSOR; @@ -4034,7 +4038,7 @@ yy298: { return T_IS_IDENTICAL; } -#line 4038 "Zend/zend_language_scanner.c" +#line 4042 "Zend/zend_language_scanner.c" yy300: YYDEBUG(300, *YYCURSOR); yych = *++YYCURSOR; @@ -4164,7 +4168,7 @@ yy316: } YYDEBUG(319, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1694 "Zend/zend_language_scanner.l" +#line 1698 "Zend/zend_language_scanner.l" { if (CG(current_namespace)) { *zendlval = *CG(current_namespace); @@ -4174,7 +4178,7 @@ yy316: } return T_NS_C; } -#line 4178 "Zend/zend_language_scanner.c" +#line 4182 "Zend/zend_language_scanner.c" yy320: YYDEBUG(320, *YYCURSOR); yych = *++YYCURSOR; @@ -4194,7 +4198,7 @@ yy321: } YYDEBUG(324, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1667 "Zend/zend_language_scanner.l" +#line 1671 "Zend/zend_language_scanner.l" { char *filename = zend_get_compiled_filename(TSRMLS_C); const size_t filename_len = strlen(filename); @@ -4221,7 +4225,7 @@ yy321: zendlval->type = IS_STRING; return T_DIR; } -#line 4225 "Zend/zend_language_scanner.c" +#line 4229 "Zend/zend_language_scanner.c" yy325: YYDEBUG(325, *YYCURSOR); yych = *++YYCURSOR; @@ -4246,13 +4250,13 @@ yy327: } YYDEBUG(330, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1649 "Zend/zend_language_scanner.l" +#line 1653 "Zend/zend_language_scanner.l" { zendlval->value.lval = CG(zend_lineno); zendlval->type = IS_LONG; return T_LINE; } -#line 4256 "Zend/zend_language_scanner.c" +#line 4260 "Zend/zend_language_scanner.c" yy331: YYDEBUG(331, *YYCURSOR); yych = *++YYCURSOR; @@ -4287,7 +4291,7 @@ yy335: } YYDEBUG(338, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1628 "Zend/zend_language_scanner.l" +#line 1632 "Zend/zend_language_scanner.l" { const char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL; const char *func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL; @@ -4308,7 +4312,7 @@ yy335: zendlval->type = IS_STRING; return T_METHOD_C; } -#line 4312 "Zend/zend_language_scanner.c" +#line 4316 "Zend/zend_language_scanner.c" yy339: YYDEBUG(339, *YYCURSOR); yych = *++YYCURSOR; @@ -4359,7 +4363,7 @@ yy346: } YYDEBUG(349, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1612 "Zend/zend_language_scanner.l" +#line 1616 "Zend/zend_language_scanner.l" { const char *func_name = NULL; @@ -4375,7 +4379,7 @@ yy346: zendlval->type = IS_STRING; return T_FUNC_C; } -#line 4379 "Zend/zend_language_scanner.c" +#line 4383 "Zend/zend_language_scanner.c" yy350: YYDEBUG(350, *YYCURSOR); yych = *++YYCURSOR; @@ -4395,7 +4399,7 @@ yy351: } YYDEBUG(354, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1655 "Zend/zend_language_scanner.l" +#line 1659 "Zend/zend_language_scanner.l" { char *filename = zend_get_compiled_filename(TSRMLS_C); @@ -4407,7 +4411,7 @@ yy351: zendlval->type = IS_STRING; return T_FILE; } -#line 4411 "Zend/zend_language_scanner.c" +#line 4415 "Zend/zend_language_scanner.c" yy355: YYDEBUG(355, *YYCURSOR); yych = *++YYCURSOR; @@ -4437,7 +4441,7 @@ yy358: } YYDEBUG(361, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1592 "Zend/zend_language_scanner.l" +#line 1596 "Zend/zend_language_scanner.l" { const char *trait_name = NULL; @@ -4457,7 +4461,7 @@ yy358: return T_TRAIT_C; } -#line 4461 "Zend/zend_language_scanner.c" +#line 4465 "Zend/zend_language_scanner.c" yy362: YYDEBUG(362, *YYCURSOR); yych = *++YYCURSOR; @@ -4487,7 +4491,7 @@ yy365: } YYDEBUG(368, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1565 "Zend/zend_language_scanner.l" +#line 1569 "Zend/zend_language_scanner.l" { const char *class_name = NULL; @@ -4514,7 +4518,7 @@ yy365: } return T_CLASS_C; } -#line 4518 "Zend/zend_language_scanner.c" +#line 4522 "Zend/zend_language_scanner.c" yy369: YYDEBUG(369, *YYCURSOR); yych = *++YYCURSOR; @@ -4580,7 +4584,7 @@ yy380: { return T_HALT_COMPILER; } -#line 4584 "Zend/zend_language_scanner.c" +#line 4588 "Zend/zend_language_scanner.c" yy382: YYDEBUG(382, *YYCURSOR); yych = *++YYCURSOR; @@ -4604,7 +4608,7 @@ yy384: { return T_USE; } -#line 4608 "Zend/zend_language_scanner.c" +#line 4612 "Zend/zend_language_scanner.c" yy386: YYDEBUG(386, *YYCURSOR); yych = *++YYCURSOR; @@ -4627,7 +4631,7 @@ yy388: { return T_UNSET; } -#line 4631 "Zend/zend_language_scanner.c" +#line 4635 "Zend/zend_language_scanner.c" yy390: YYDEBUG(390, *YYCURSOR); ++YYCURSOR; @@ -4803,7 +4807,7 @@ yy405: { return T_INT_CAST; } -#line 4807 "Zend/zend_language_scanner.c" +#line 4811 "Zend/zend_language_scanner.c" yy408: YYDEBUG(408, *YYCURSOR); yych = *++YYCURSOR; @@ -4851,7 +4855,7 @@ yy413: { return T_DOUBLE_CAST; } -#line 4855 "Zend/zend_language_scanner.c" +#line 4859 "Zend/zend_language_scanner.c" yy417: YYDEBUG(417, *YYCURSOR); yych = *++YYCURSOR; @@ -4925,7 +4929,7 @@ yy427: { return T_STRING_CAST; } -#line 4929 "Zend/zend_language_scanner.c" +#line 4933 "Zend/zend_language_scanner.c" yy431: YYDEBUG(431, *YYCURSOR); yych = *++YYCURSOR; @@ -4962,7 +4966,7 @@ yy434: { return T_ARRAY_CAST; } -#line 4966 "Zend/zend_language_scanner.c" +#line 4970 "Zend/zend_language_scanner.c" yy438: YYDEBUG(438, *YYCURSOR); yych = *++YYCURSOR; @@ -5004,7 +5008,7 @@ yy442: { return T_OBJECT_CAST; } -#line 5008 "Zend/zend_language_scanner.c" +#line 5012 "Zend/zend_language_scanner.c" yy446: YYDEBUG(446, *YYCURSOR); yych = *++YYCURSOR; @@ -5049,7 +5053,7 @@ yy451: { return T_BOOL_CAST; } -#line 5053 "Zend/zend_language_scanner.c" +#line 5057 "Zend/zend_language_scanner.c" yy454: YYDEBUG(454, *YYCURSOR); yych = *++YYCURSOR; @@ -5113,7 +5117,7 @@ yy462: { return T_UNSET_CAST; } -#line 5117 "Zend/zend_language_scanner.c" +#line 5121 "Zend/zend_language_scanner.c" yy466: YYDEBUG(466, *YYCURSOR); yych = *++YYCURSOR; @@ -5131,7 +5135,7 @@ yy467: { return T_VAR; } -#line 5135 "Zend/zend_language_scanner.c" +#line 5139 "Zend/zend_language_scanner.c" yy469: YYDEBUG(469, *YYCURSOR); yych = *++YYCURSOR; @@ -5155,7 +5159,7 @@ yy471: { return T_NEW; } -#line 5159 "Zend/zend_language_scanner.c" +#line 5163 "Zend/zend_language_scanner.c" yy473: YYDEBUG(473, *YYCURSOR); yych = *++YYCURSOR; @@ -5198,7 +5202,7 @@ yy479: { return T_NAMESPACE; } -#line 5202 "Zend/zend_language_scanner.c" +#line 5206 "Zend/zend_language_scanner.c" yy481: YYDEBUG(481, *YYCURSOR); ++YYCURSOR; @@ -5208,7 +5212,7 @@ yy481: { return T_PAAMAYIM_NEKUDOTAYIM; } -#line 5212 "Zend/zend_language_scanner.c" +#line 5216 "Zend/zend_language_scanner.c" yy483: YYDEBUG(483, *YYCURSOR); ++YYCURSOR; @@ -5234,7 +5238,7 @@ yy485: { return T_MINUS_EQUAL; } -#line 5238 "Zend/zend_language_scanner.c" +#line 5242 "Zend/zend_language_scanner.c" yy487: YYDEBUG(487, *YYCURSOR); ++YYCURSOR; @@ -5244,7 +5248,7 @@ yy487: { return T_DEC; } -#line 5248 "Zend/zend_language_scanner.c" +#line 5252 "Zend/zend_language_scanner.c" yy489: YYDEBUG(489, *YYCURSOR); ++YYCURSOR; @@ -5255,7 +5259,7 @@ yy489: yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); return T_OBJECT_OPERATOR; } -#line 5259 "Zend/zend_language_scanner.c" +#line 5263 "Zend/zend_language_scanner.c" yy491: YYDEBUG(491, *YYCURSOR); yych = *++YYCURSOR; @@ -5304,7 +5308,7 @@ yy496: { return T_PUBLIC; } -#line 5308 "Zend/zend_language_scanner.c" +#line 5312 "Zend/zend_language_scanner.c" yy498: YYDEBUG(498, *YYCURSOR); yych = *++YYCURSOR; @@ -5363,7 +5367,7 @@ yy505: { return T_PROTECTED; } -#line 5367 "Zend/zend_language_scanner.c" +#line 5371 "Zend/zend_language_scanner.c" yy507: YYDEBUG(507, *YYCURSOR); yych = *++YYCURSOR; @@ -5397,7 +5401,7 @@ yy511: { return T_PRIVATE; } -#line 5401 "Zend/zend_language_scanner.c" +#line 5405 "Zend/zend_language_scanner.c" yy513: YYDEBUG(513, *YYCURSOR); ++YYCURSOR; @@ -5410,7 +5414,7 @@ yy513: { return T_PRINT; } -#line 5414 "Zend/zend_language_scanner.c" +#line 5418 "Zend/zend_language_scanner.c" yy515: YYDEBUG(515, *YYCURSOR); yych = *++YYCURSOR; @@ -5439,7 +5443,7 @@ yy518: { return T_GOTO; } -#line 5443 "Zend/zend_language_scanner.c" +#line 5447 "Zend/zend_language_scanner.c" yy520: YYDEBUG(520, *YYCURSOR); yych = *++YYCURSOR; @@ -5467,7 +5471,7 @@ yy523: { return T_GLOBAL; } -#line 5471 "Zend/zend_language_scanner.c" +#line 5475 "Zend/zend_language_scanner.c" yy525: YYDEBUG(525, *YYCURSOR); yych = *++YYCURSOR; @@ -5508,7 +5512,7 @@ yy531: { return T_BREAK; } -#line 5512 "Zend/zend_language_scanner.c" +#line 5516 "Zend/zend_language_scanner.c" yy533: YYDEBUG(533, *YYCURSOR); yych = *++YYCURSOR; @@ -5552,7 +5556,7 @@ yy539: { return T_SWITCH; } -#line 5556 "Zend/zend_language_scanner.c" +#line 5560 "Zend/zend_language_scanner.c" yy541: YYDEBUG(541, *YYCURSOR); yych = *++YYCURSOR; @@ -5580,7 +5584,7 @@ yy544: { return T_STATIC; } -#line 5584 "Zend/zend_language_scanner.c" +#line 5588 "Zend/zend_language_scanner.c" yy546: YYDEBUG(546, *YYCURSOR); yych = *++YYCURSOR; @@ -5611,7 +5615,7 @@ yy549: { return T_AS; } -#line 5615 "Zend/zend_language_scanner.c" +#line 5619 "Zend/zend_language_scanner.c" yy551: YYDEBUG(551, *YYCURSOR); yych = *++YYCURSOR; @@ -5634,7 +5638,7 @@ yy553: { return T_ARRAY; } -#line 5638 "Zend/zend_language_scanner.c" +#line 5642 "Zend/zend_language_scanner.c" yy555: YYDEBUG(555, *YYCURSOR); ++YYCURSOR; @@ -5647,7 +5651,7 @@ yy555: { return T_LOGICAL_AND; } -#line 5651 "Zend/zend_language_scanner.c" +#line 5655 "Zend/zend_language_scanner.c" yy557: YYDEBUG(557, *YYCURSOR); yych = *++YYCURSOR; @@ -5685,7 +5689,7 @@ yy562: { return T_ABSTRACT; } -#line 5689 "Zend/zend_language_scanner.c" +#line 5693 "Zend/zend_language_scanner.c" yy564: YYDEBUG(564, *YYCURSOR); yych = *++YYCURSOR; @@ -5713,7 +5717,7 @@ yy567: { return T_WHILE; } -#line 5717 "Zend/zend_language_scanner.c" +#line 5721 "Zend/zend_language_scanner.c" yy569: YYDEBUG(569, *YYCURSOR); ++YYCURSOR; @@ -5726,7 +5730,7 @@ yy569: { return T_IF; } -#line 5730 "Zend/zend_language_scanner.c" +#line 5734 "Zend/zend_language_scanner.c" yy571: YYDEBUG(571, *YYCURSOR); yych = *++YYCURSOR; @@ -5782,7 +5786,7 @@ yy576: { return T_ISSET; } -#line 5786 "Zend/zend_language_scanner.c" +#line 5790 "Zend/zend_language_scanner.c" yy578: YYDEBUG(578, *YYCURSOR); yych = *++YYCURSOR; @@ -5840,7 +5844,7 @@ yy585: { return T_INCLUDE; } -#line 5844 "Zend/zend_language_scanner.c" +#line 5848 "Zend/zend_language_scanner.c" yy586: YYDEBUG(586, *YYCURSOR); yych = *++YYCURSOR; @@ -5873,7 +5877,7 @@ yy590: { return T_INCLUDE_ONCE; } -#line 5877 "Zend/zend_language_scanner.c" +#line 5881 "Zend/zend_language_scanner.c" yy592: YYDEBUG(592, *YYCURSOR); yych = *++YYCURSOR; @@ -5911,7 +5915,7 @@ yy597: { return T_INTERFACE; } -#line 5915 "Zend/zend_language_scanner.c" +#line 5919 "Zend/zend_language_scanner.c" yy599: YYDEBUG(599, *YYCURSOR); yych = *++YYCURSOR; @@ -5965,7 +5969,7 @@ yy605: { return T_INSTEADOF; } -#line 5969 "Zend/zend_language_scanner.c" +#line 5973 "Zend/zend_language_scanner.c" yy607: YYDEBUG(607, *YYCURSOR); yych = *++YYCURSOR; @@ -5998,7 +6002,7 @@ yy611: { return T_INSTANCEOF; } -#line 6002 "Zend/zend_language_scanner.c" +#line 6006 "Zend/zend_language_scanner.c" yy613: YYDEBUG(613, *YYCURSOR); yych = *++YYCURSOR; @@ -6046,7 +6050,7 @@ yy620: { return T_IMPLEMENTS; } -#line 6050 "Zend/zend_language_scanner.c" +#line 6054 "Zend/zend_language_scanner.c" yy622: YYDEBUG(622, *YYCURSOR); yych = *++YYCURSOR; @@ -6078,7 +6082,7 @@ yy623: { return T_TRY; } -#line 6082 "Zend/zend_language_scanner.c" +#line 6086 "Zend/zend_language_scanner.c" yy626: YYDEBUG(626, *YYCURSOR); yych = *++YYCURSOR; @@ -6101,7 +6105,7 @@ yy628: { return T_TRAIT; } -#line 6105 "Zend/zend_language_scanner.c" +#line 6109 "Zend/zend_language_scanner.c" yy630: YYDEBUG(630, *YYCURSOR); yych = *++YYCURSOR; @@ -6124,7 +6128,7 @@ yy632: { return T_THROW; } -#line 6128 "Zend/zend_language_scanner.c" +#line 6132 "Zend/zend_language_scanner.c" yy634: YYDEBUG(634, *YYCURSOR); yych = *++YYCURSOR; @@ -6189,7 +6193,7 @@ yy641: { return T_REQUIRE; } -#line 6193 "Zend/zend_language_scanner.c" +#line 6197 "Zend/zend_language_scanner.c" yy642: YYDEBUG(642, *YYCURSOR); yych = *++YYCURSOR; @@ -6222,7 +6226,7 @@ yy646: { return T_REQUIRE_ONCE; } -#line 6226 "Zend/zend_language_scanner.c" +#line 6230 "Zend/zend_language_scanner.c" yy648: YYDEBUG(648, *YYCURSOR); yych = *++YYCURSOR; @@ -6245,7 +6249,7 @@ yy650: { return T_RETURN; } -#line 6249 "Zend/zend_language_scanner.c" +#line 6253 "Zend/zend_language_scanner.c" yy652: YYDEBUG(652, *YYCURSOR); yych = *++YYCURSOR; @@ -6339,7 +6343,7 @@ yy661: { return T_CONTINUE; } -#line 6343 "Zend/zend_language_scanner.c" +#line 6347 "Zend/zend_language_scanner.c" yy663: YYDEBUG(663, *YYCURSOR); ++YYCURSOR; @@ -6352,7 +6356,7 @@ yy663: { return T_CONST; } -#line 6356 "Zend/zend_language_scanner.c" +#line 6360 "Zend/zend_language_scanner.c" yy665: YYDEBUG(665, *YYCURSOR); yych = *++YYCURSOR; @@ -6381,7 +6385,7 @@ yy668: { return T_CLONE; } -#line 6385 "Zend/zend_language_scanner.c" +#line 6389 "Zend/zend_language_scanner.c" yy670: YYDEBUG(670, *YYCURSOR); yych = *++YYCURSOR; @@ -6399,7 +6403,7 @@ yy671: { return T_CLASS; } -#line 6403 "Zend/zend_language_scanner.c" +#line 6407 "Zend/zend_language_scanner.c" yy673: YYDEBUG(673, *YYCURSOR); yych = *++YYCURSOR; @@ -6449,7 +6453,7 @@ yy680: { return T_CALLABLE; } -#line 6453 "Zend/zend_language_scanner.c" +#line 6457 "Zend/zend_language_scanner.c" yy682: YYDEBUG(682, *YYCURSOR); ++YYCURSOR; @@ -6462,7 +6466,7 @@ yy682: { return T_CASE; } -#line 6466 "Zend/zend_language_scanner.c" +#line 6470 "Zend/zend_language_scanner.c" yy684: YYDEBUG(684, *YYCURSOR); yych = *++YYCURSOR; @@ -6480,7 +6484,7 @@ yy685: { return T_CATCH; } -#line 6484 "Zend/zend_language_scanner.c" +#line 6488 "Zend/zend_language_scanner.c" yy687: YYDEBUG(687, *YYCURSOR); yych = *++YYCURSOR; @@ -6535,7 +6539,7 @@ yy695: { return T_FUNCTION; } -#line 6539 "Zend/zend_language_scanner.c" +#line 6543 "Zend/zend_language_scanner.c" yy697: YYDEBUG(697, *YYCURSOR); ++YYCURSOR; @@ -6563,7 +6567,7 @@ yy698: { return T_FOR; } -#line 6567 "Zend/zend_language_scanner.c" +#line 6571 "Zend/zend_language_scanner.c" yy699: YYDEBUG(699, *YYCURSOR); yych = *++YYCURSOR; @@ -6591,7 +6595,7 @@ yy702: { return T_FOREACH; } -#line 6595 "Zend/zend_language_scanner.c" +#line 6599 "Zend/zend_language_scanner.c" yy704: YYDEBUG(704, *YYCURSOR); yych = *++YYCURSOR; @@ -6614,7 +6618,7 @@ yy706: { return T_FINAL; } -#line 6618 "Zend/zend_language_scanner.c" +#line 6622 "Zend/zend_language_scanner.c" yy708: YYDEBUG(708, *YYCURSOR); yych = *++YYCURSOR; @@ -6649,7 +6653,7 @@ yy710: { return T_DO; } -#line 6653 "Zend/zend_language_scanner.c" +#line 6657 "Zend/zend_language_scanner.c" yy712: YYDEBUG(712, *YYCURSOR); ++YYCURSOR; @@ -6662,7 +6666,7 @@ yy712: { return T_EXIT; } -#line 6666 "Zend/zend_language_scanner.c" +#line 6670 "Zend/zend_language_scanner.c" yy714: YYDEBUG(714, *YYCURSOR); yych = *++YYCURSOR; @@ -6701,7 +6705,7 @@ yy719: { return T_DEFAULT; } -#line 6705 "Zend/zend_language_scanner.c" +#line 6709 "Zend/zend_language_scanner.c" yy721: YYDEBUG(721, *YYCURSOR); yych = *++YYCURSOR; @@ -6729,7 +6733,7 @@ yy724: { return T_DECLARE; } -#line 6733 "Zend/zend_language_scanner.c" +#line 6737 "Zend/zend_language_scanner.c" yy726: YYDEBUG(726, *YYCURSOR); yych = *++YYCURSOR; @@ -6813,7 +6817,7 @@ yy737: { return T_EXTENDS; } -#line 6817 "Zend/zend_language_scanner.c" +#line 6821 "Zend/zend_language_scanner.c" yy739: YYDEBUG(739, *YYCURSOR); ++YYCURSOR; @@ -6826,7 +6830,7 @@ yy739: { return T_EXIT; } -#line 6830 "Zend/zend_language_scanner.c" +#line 6834 "Zend/zend_language_scanner.c" yy741: YYDEBUG(741, *YYCURSOR); yych = *++YYCURSOR; @@ -6844,7 +6848,7 @@ yy742: { return T_EVAL; } -#line 6848 "Zend/zend_language_scanner.c" +#line 6852 "Zend/zend_language_scanner.c" yy744: YYDEBUG(744, *YYCURSOR); yych = *++YYCURSOR; @@ -6918,7 +6922,7 @@ yy753: { return T_ENDWHILE; } -#line 6922 "Zend/zend_language_scanner.c" +#line 6926 "Zend/zend_language_scanner.c" yy755: YYDEBUG(755, *YYCURSOR); yych = *++YYCURSOR; @@ -6951,7 +6955,7 @@ yy759: { return T_ENDSWITCH; } -#line 6955 "Zend/zend_language_scanner.c" +#line 6959 "Zend/zend_language_scanner.c" yy761: YYDEBUG(761, *YYCURSOR); ++YYCURSOR; @@ -6964,7 +6968,7 @@ yy761: { return T_ENDIF; } -#line 6968 "Zend/zend_language_scanner.c" +#line 6972 "Zend/zend_language_scanner.c" yy763: YYDEBUG(763, *YYCURSOR); yych = *++YYCURSOR; @@ -6997,7 +7001,7 @@ yy765: { return T_ENDFOR; } -#line 7001 "Zend/zend_language_scanner.c" +#line 7005 "Zend/zend_language_scanner.c" yy766: YYDEBUG(766, *YYCURSOR); yych = *++YYCURSOR; @@ -7025,7 +7029,7 @@ yy769: { return T_ENDFOREACH; } -#line 7029 "Zend/zend_language_scanner.c" +#line 7033 "Zend/zend_language_scanner.c" yy771: YYDEBUG(771, *YYCURSOR); yych = *++YYCURSOR; @@ -7063,7 +7067,7 @@ yy776: { return T_ENDDECLARE; } -#line 7067 "Zend/zend_language_scanner.c" +#line 7071 "Zend/zend_language_scanner.c" yy778: YYDEBUG(778, *YYCURSOR); yych = *++YYCURSOR; @@ -7086,7 +7090,7 @@ yy780: { return T_EMPTY; } -#line 7090 "Zend/zend_language_scanner.c" +#line 7094 "Zend/zend_language_scanner.c" yy782: YYDEBUG(782, *YYCURSOR); yych = *++YYCURSOR; @@ -7119,7 +7123,7 @@ yy784: { return T_ELSE; } -#line 7123 "Zend/zend_language_scanner.c" +#line 7127 "Zend/zend_language_scanner.c" yy785: YYDEBUG(785, *YYCURSOR); yych = *++YYCURSOR; @@ -7137,7 +7141,7 @@ yy786: { return T_ELSEIF; } -#line 7141 "Zend/zend_language_scanner.c" +#line 7145 "Zend/zend_language_scanner.c" yy788: YYDEBUG(788, *YYCURSOR); yych = *++YYCURSOR; @@ -7155,7 +7159,7 @@ yy789: { return T_ECHO; } -#line 7159 "Zend/zend_language_scanner.c" +#line 7163 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_LOOKING_FOR_PROPERTY: @@ -7236,7 +7240,7 @@ yy794: HANDLE_NEWLINES(yytext, yyleng); return T_WHITESPACE; } -#line 7240 "Zend/zend_language_scanner.c" +#line 7244 "Zend/zend_language_scanner.c" yy795: YYDEBUG(795, *YYCURSOR); ++YYCURSOR; @@ -7250,7 +7254,7 @@ yy796: yy_pop_state(TSRMLS_C); goto restart; } -#line 7254 "Zend/zend_language_scanner.c" +#line 7258 "Zend/zend_language_scanner.c" yy797: YYDEBUG(797, *YYCURSOR); ++YYCURSOR; @@ -7266,7 +7270,7 @@ yy798: zendlval->type = IS_STRING; return T_STRING; } -#line 7270 "Zend/zend_language_scanner.c" +#line 7274 "Zend/zend_language_scanner.c" yy799: YYDEBUG(799, *YYCURSOR); yych = *++YYCURSOR; @@ -7291,7 +7295,7 @@ yy802: { return T_OBJECT_OPERATOR; } -#line 7295 "Zend/zend_language_scanner.c" +#line 7299 "Zend/zend_language_scanner.c" yy804: YYDEBUG(804, *YYCURSOR); ++YYCURSOR; @@ -7369,7 +7373,7 @@ yy809: yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); return T_STRING_VARNAME; } -#line 7373 "Zend/zend_language_scanner.c" +#line 7377 "Zend/zend_language_scanner.c" yy810: YYDEBUG(810, *YYCURSOR); ++YYCURSOR; @@ -7382,7 +7386,7 @@ yy810: yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); goto restart; } -#line 7386 "Zend/zend_language_scanner.c" +#line 7390 "Zend/zend_language_scanner.c" yy812: YYDEBUG(812, *YYCURSOR); ++YYCURSOR; @@ -7404,7 +7408,7 @@ yyc_ST_NOWDOC: ++YYCURSOR; YYDEBUG(817, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2344 "Zend/zend_language_scanner.l" +#line 2348 "Zend/zend_language_scanner.l" { int newline = 0; @@ -7459,7 +7463,7 @@ nowdoc_scan_done: HANDLE_NEWLINES(yytext, yyleng - newline); return T_ENCAPSED_AND_WHITESPACE; } -#line 7463 "Zend/zend_language_scanner.c" +#line 7467 "Zend/zend_language_scanner.c" /* *********************************** */ yyc_ST_VAR_OFFSET: { @@ -7566,7 +7570,7 @@ yy820: yy821: YYDEBUG(821, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1540 "Zend/zend_language_scanner.l" +#line 1544 "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)) { zendlval->value.lval = strtol(yytext, NULL, 10); @@ -7578,7 +7582,7 @@ yy821: } return T_NUM_STRING; } -#line 7582 "Zend/zend_language_scanner.c" +#line 7586 "Zend/zend_language_scanner.c" yy822: YYDEBUG(822, *YYCURSOR); yych = *++YYCURSOR; @@ -7598,23 +7602,23 @@ yy823: yy824: YYDEBUG(824, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1872 "Zend/zend_language_scanner.l" +#line 1876 "Zend/zend_language_scanner.l" { /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */ return yytext[0]; } -#line 7607 "Zend/zend_language_scanner.c" +#line 7611 "Zend/zend_language_scanner.c" yy825: YYDEBUG(825, *YYCURSOR); ++YYCURSOR; YYDEBUG(826, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1867 "Zend/zend_language_scanner.l" +#line 1871 "Zend/zend_language_scanner.l" { yy_pop_state(TSRMLS_C); return ']'; } -#line 7618 "Zend/zend_language_scanner.c" +#line 7622 "Zend/zend_language_scanner.c" yy827: YYDEBUG(827, *YYCURSOR); yych = *++YYCURSOR; @@ -7624,14 +7628,14 @@ yy828: ++YYCURSOR; YYDEBUG(829, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1877 "Zend/zend_language_scanner.l" +#line 1881 "Zend/zend_language_scanner.l" { /* Invalid rule to return a more explicit parse error with proper line number */ yyless(0); yy_pop_state(TSRMLS_C); return T_ENCAPSED_AND_WHITESPACE; } -#line 7635 "Zend/zend_language_scanner.c" +#line 7639 "Zend/zend_language_scanner.c" yy830: YYDEBUG(830, *YYCURSOR); ++YYCURSOR; @@ -7640,19 +7644,19 @@ yy830: yy831: YYDEBUG(831, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1884 "Zend/zend_language_scanner.l" +#line 1888 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); zendlval->type = IS_STRING; return T_STRING; } -#line 7650 "Zend/zend_language_scanner.c" +#line 7654 "Zend/zend_language_scanner.c" yy832: YYDEBUG(832, *YYCURSOR); ++YYCURSOR; YYDEBUG(833, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2400 "Zend/zend_language_scanner.l" +#line 2404 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -7661,7 +7665,7 @@ yy832: zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); goto restart; } -#line 7665 "Zend/zend_language_scanner.c" +#line 7669 "Zend/zend_language_scanner.c" yy834: YYDEBUG(834, *YYCURSOR); ++YYCURSOR; @@ -7697,13 +7701,13 @@ yy836: yy838: YYDEBUG(838, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1861 "Zend/zend_language_scanner.l" +#line 1865 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; return T_VARIABLE; } -#line 7707 "Zend/zend_language_scanner.c" +#line 7711 "Zend/zend_language_scanner.c" yy839: YYDEBUG(839, *YYCURSOR); ++YYCURSOR; @@ -7743,14 +7747,14 @@ yy844: yy846: YYDEBUG(846, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1552 "Zend/zend_language_scanner.l" +#line 1556 "Zend/zend_language_scanner.l" { /* Offset must be treated as a string */ zendlval->value.str.val = (char *)estrndup(yytext, yyleng); zendlval->value.str.len = yyleng; zendlval->type = IS_STRING; return T_NUM_STRING; } -#line 7754 "Zend/zend_language_scanner.c" +#line 7758 "Zend/zend_language_scanner.c" yy847: YYDEBUG(847, *YYCURSOR); ++YYCURSOR; @@ -7773,6 +7777,6 @@ yy849: goto yy846; } } -#line 2409 "Zend/zend_language_scanner.l" +#line 2413 "Zend/zend_language_scanner.l" } diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 96168d3516..d530b53430 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -1481,7 +1481,11 @@ NEWLINE ("\r"|"\n"|"\r\n") } if (len < SIZEOF_LONG * 8) { - zendlval->value.lval = strtol(bin, NULL, 2); + if (len == 0) { + zendlval->value.lval = 0; + } else { + zendlval->value.lval = strtol(bin, NULL, 2); + } zendlval->type = IS_LONG; return T_LNUMBER; } else { diff --git a/Zend/zend_language_scanner_defs.h b/Zend/zend_language_scanner_defs.h index d05939b9c9..015a903ded 100644 --- a/Zend/zend_language_scanner_defs.h +++ b/Zend/zend_language_scanner_defs.h @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Wed Feb 15 17:48:20 2012 */ +/* Generated by re2c 0.13.5 on Thu Mar 1 21:27:30 2012 */ #line 3 "Zend/zend_language_scanner_defs.h" enum YYCONDTYPE { |