Modified: php/php-src/branches/PHP_5_3/NEWS =================================================================== --- php/php-src/branches/PHP_5_3/NEWS 2012-02-20 18:18:50 UTC (rev 323393) +++ php/php-src/branches/PHP_5_3/NEWS 2012-02-20 18:28:57 UTC (rev 323394) @@ -3,6 +3,7 @@ ?? ??? 2012, PHP 5.3.11 - Core: . Improved max_input_vars directive to check nested variables (Dmitry). + . Fixed bug #61095 (Incorect lexing of 0x00*+). (Etienne) - Session: . Fixed bug #60860 (session.save_handler=user without defined function core Added: php/php-src/branches/PHP_5_3/Zend/tests/bug61095.phpt =================================================================== --- php/php-src/branches/PHP_5_3/Zend/tests/bug61095.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/Zend/tests/bug61095.phpt 2012-02-20 18:28:57 UTC (rev 323394) @@ -0,0 +1,9 @@ +--TEST-- +Bug #61095 (Lexing 0x00*+ incorectly) +--FILE-- + +--EXPECT-- +2 Modified: php/php-src/branches/PHP_5_3/Zend/zend_language_scanner.c =================================================================== --- php/php-src/branches/PHP_5_3/Zend/zend_language_scanner.c 2012-02-20 18:18:50 UTC (rev 323393) +++ php/php-src/branches/PHP_5_3/Zend/zend_language_scanner.c 2012-02-20 18:28:57 UTC (rev 323394) @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Sun Jan 1 17:48:17 2012 */ +/* Generated by re2c 0.13.5 on Wed Feb 15 17:38:31 2012 */ #line 1 "Zend/zend_language_scanner.l" /* +----------------------------------------------------------------------+ @@ -957,7 +957,7 @@ yy3: YYDEBUG(3, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1586 "Zend/zend_language_scanner.l" +#line 1590 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -1040,7 +1040,7 @@ yy6: YYDEBUG(6, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1574 "Zend/zend_language_scanner.l" +#line 1578 "Zend/zend_language_scanner.l" { if (CG(short_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1059,7 +1059,7 @@ if ((yych = *YYCURSOR) == '=') goto yy43; YYDEBUG(8, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1551 "Zend/zend_language_scanner.l" +#line 1555 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1257,7 +1257,7 @@ ++YYCURSOR; YYDEBUG(38, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1507 "Zend/zend_language_scanner.l" +#line 1511 "Zend/zend_language_scanner.l" { YYCTYPE *bracket = zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1)); @@ -1301,7 +1301,7 @@ ++YYCURSOR; YYDEBUG(44, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1525 "Zend/zend_language_scanner.l" +#line 1529 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1319,7 +1319,7 @@ ++YYCURSOR; YYDEBUG(46, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1538 "Zend/zend_language_scanner.l" +#line 1542 "Zend/zend_language_scanner.l" { if (CG(short_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1358,7 +1358,7 @@ yy51: YYDEBUG(51, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1564 "Zend/zend_language_scanner.l" +#line 1568 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -1438,7 +1438,7 @@ yy56: YYDEBUG(56, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2044 "Zend/zend_language_scanner.l" +#line 2048 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -1490,7 +1490,7 @@ ++YYCURSOR; YYDEBUG(59, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1988 "Zend/zend_language_scanner.l" +#line 1992 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '`'; @@ -1505,7 +1505,7 @@ ++YYCURSOR; YYDEBUG(62, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1975 "Zend/zend_language_scanner.l" +#line 1979 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); @@ -1528,7 +1528,7 @@ yy65: YYDEBUG(65, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1673 "Zend/zend_language_scanner.l" +#line 1677 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; @@ -1559,7 +1559,7 @@ ++YYCURSOR; YYDEBUG(71, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1665 "Zend/zend_language_scanner.l" +#line 1669 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -1585,7 +1585,7 @@ ++YYCURSOR; YYDEBUG(74, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1655 "Zend/zend_language_scanner.l" +#line 1659 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -1661,7 +1661,7 @@ yy78: YYDEBUG(78, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1994 "Zend/zend_language_scanner.l" +#line 1998 "Zend/zend_language_scanner.l" { if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) { YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1; @@ -1721,7 +1721,7 @@ ++YYCURSOR; YYDEBUG(81, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1983 "Zend/zend_language_scanner.l" +#line 1987 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '"'; @@ -1736,7 +1736,7 @@ ++YYCURSOR; YYDEBUG(84, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1975 "Zend/zend_language_scanner.l" +#line 1979 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); @@ -1759,7 +1759,7 @@ yy87: YYDEBUG(87, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1673 "Zend/zend_language_scanner.l" +#line 1677 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; @@ -1790,7 +1790,7 @@ ++YYCURSOR; YYDEBUG(93, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1665 "Zend/zend_language_scanner.l" +#line 1669 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -1816,7 +1816,7 @@ ++YYCURSOR; YYDEBUG(96, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1655 "Zend/zend_language_scanner.l" +#line 1659 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -1835,7 +1835,7 @@ ++YYCURSOR; YYDEBUG(100, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1962 "Zend/zend_language_scanner.l" +#line 1966 "Zend/zend_language_scanner.l" { YYCURSOR += CG(heredoc_len) - 1; yyleng = CG(heredoc_len); @@ -1909,7 +1909,7 @@ yy104: YYDEBUG(104, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2086 "Zend/zend_language_scanner.l" +#line 2090 "Zend/zend_language_scanner.l" { int newline = 0; @@ -1995,7 +1995,7 @@ ++YYCURSOR; YYDEBUG(108, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1975 "Zend/zend_language_scanner.l" +#line 1979 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); @@ -2018,7 +2018,7 @@ yy111: YYDEBUG(111, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1673 "Zend/zend_language_scanner.l" +#line 1677 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; @@ -2049,7 +2049,7 @@ ++YYCURSOR; YYDEBUG(117, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1665 "Zend/zend_language_scanner.l" +#line 1669 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -2075,7 +2075,7 @@ ++YYCURSOR; YYDEBUG(120, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1655 "Zend/zend_language_scanner.l" +#line 1659 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -2264,7 +2264,7 @@ yy124: YYDEBUG(124, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1696 "Zend/zend_language_scanner.l" +#line 1700 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); zendlval->type = IS_STRING; @@ -2851,7 +2851,7 @@ yy176: YYDEBUG(176, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1703 "Zend/zend_language_scanner.l" +#line 1707 "Zend/zend_language_scanner.l" { while (YYCURSOR < YYLIMIT) { switch (*YYCURSOR++) { @@ -2892,7 +2892,7 @@ yy178: YYDEBUG(178, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1794 "Zend/zend_language_scanner.l" +#line 1798 "Zend/zend_language_scanner.l" { register char *s, *t; char *end; @@ -2969,7 +2969,7 @@ yy180: YYDEBUG(180, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1865 "Zend/zend_language_scanner.l" +#line 1869 "Zend/zend_language_scanner.l" { int bprefix = (yytext[0] != '"') ? 1 : 0; @@ -3016,7 +3016,7 @@ ++YYCURSOR; YYDEBUG(182, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1956 "Zend/zend_language_scanner.l" +#line 1960 "Zend/zend_language_scanner.l" { BEGIN(ST_BACKQUOTE); return '`'; @@ -3027,7 +3027,7 @@ ++YYCURSOR; YYDEBUG(184, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2214 "Zend/zend_language_scanner.l" +#line 2218 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -3063,7 +3063,7 @@ yy189: YYDEBUG(189, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1393 "Zend/zend_language_scanner.l" +#line 1397 "Zend/zend_language_scanner.l" { zendlval->value.dval = zend_strtod(yytext, NULL); zendlval->type = IS_DOUBLE; @@ -3166,7 +3166,11 @@ } if (len < SIZEOF_LONG * 2 || (len == SIZEOF_LONG * 2 && *hex <= '7')) { - zendlval->value.lval = strtol(hex, NULL, 16); + if (len == 0) { + zendlval->value.lval = 0; + } else { + zendlval->value.lval = strtol(hex, NULL, 16); + } zendlval->type = IS_LONG; return T_LNUMBER; } else { @@ -3175,7 +3179,7 @@ return T_DNUMBER; } } -#line 3179 "Zend/zend_language_scanner.c" +#line 3183 "Zend/zend_language_scanner.c" yy201: YYDEBUG(201, *YYCURSOR); ++YYCURSOR; @@ -3184,7 +3188,7 @@ yy202: YYDEBUG(202, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1771 "Zend/zend_language_scanner.l" +#line 1775 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -3192,7 +3196,7 @@ BEGIN(INITIAL); return T_CLOSE_TAG; /* implicit ';' at php-end tag */ } -#line 3196 "Zend/zend_language_scanner.c" +#line 3200 "Zend/zend_language_scanner.c" yy203: YYDEBUG(203, *YYCURSOR); yych = *++YYCURSOR; @@ -3226,13 +3230,13 @@ yy207: YYDEBUG(207, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1673 "Zend/zend_language_scanner.l" +#line 1677 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; return T_VARIABLE; } -#line 3236 "Zend/zend_language_scanner.c" +#line 3240 "Zend/zend_language_scanner.c" yy208: YYDEBUG(208, *YYCURSOR); yych = *++YYCURSOR; @@ -3250,7 +3254,7 @@ { return T_LOGICAL_XOR; } -#line 3254 "Zend/zend_language_scanner.c" +#line 3258 "Zend/zend_language_scanner.c" yy211: YYDEBUG(211, *YYCURSOR); ++YYCURSOR; @@ -3263,7 +3267,7 @@ { return T_LOGICAL_OR; } -#line 3267 "Zend/zend_language_scanner.c" +#line 3271 "Zend/zend_language_scanner.c" yy213: YYDEBUG(213, *YYCURSOR); ++YYCURSOR; @@ -3273,7 +3277,7 @@ { return T_XOR_EQUAL; } -#line 3277 "Zend/zend_language_scanner.c" +#line 3281 "Zend/zend_language_scanner.c" yy215: YYDEBUG(215, *YYCURSOR); ++YYCURSOR; @@ -3283,7 +3287,7 @@ { return T_BOOLEAN_OR; } -#line 3287 "Zend/zend_language_scanner.c" +#line 3291 "Zend/zend_language_scanner.c" yy217: YYDEBUG(217, *YYCURSOR); ++YYCURSOR; @@ -3293,7 +3297,7 @@ { return T_OR_EQUAL; } -#line 3297 "Zend/zend_language_scanner.c" +#line 3301 "Zend/zend_language_scanner.c" yy219: YYDEBUG(219, *YYCURSOR); ++YYCURSOR; @@ -3303,7 +3307,7 @@ { return T_BOOLEAN_AND; } -#line 3307 "Zend/zend_language_scanner.c" +#line 3311 "Zend/zend_language_scanner.c" yy221: YYDEBUG(221, *YYCURSOR); ++YYCURSOR; @@ -3313,7 +3317,7 @@ { return T_AND_EQUAL; } -#line 3317 "Zend/zend_language_scanner.c" +#line 3321 "Zend/zend_language_scanner.c" yy223: YYDEBUG(223, *YYCURSOR); ++YYCURSOR; @@ -3322,7 +3326,7 @@ yy224: YYDEBUG(224, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1780 "Zend/zend_language_scanner.l" +#line 1784 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { BEGIN(INITIAL); @@ -3335,7 +3339,7 @@ return yytext[0]; } } -#line 3339 "Zend/zend_language_scanner.c" +#line 3343 "Zend/zend_language_scanner.c" yy225: YYDEBUG(225, *YYCURSOR); ++YYCURSOR; @@ -3345,7 +3349,7 @@ { return T_MOD_EQUAL; } -#line 3349 "Zend/zend_language_scanner.c" +#line 3353 "Zend/zend_language_scanner.c" yy227: YYDEBUG(227, *YYCURSOR); yych = *++YYCURSOR; @@ -3380,7 +3384,7 @@ { return T_CONCAT_EQUAL; } -#line 3384 "Zend/zend_language_scanner.c" +#line 3388 "Zend/zend_language_scanner.c" yy233: YYDEBUG(233, *YYCURSOR); yyaccept = 4; @@ -3389,7 +3393,7 @@ yy234: YYDEBUG(234, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1737 "Zend/zend_language_scanner.l" +#line 1741 "Zend/zend_language_scanner.l" { int doc_com; @@ -3423,7 +3427,7 @@ return T_COMMENT; } -#line 3427 "Zend/zend_language_scanner.c" +#line 3431 "Zend/zend_language_scanner.c" yy235: YYDEBUG(235, *YYCURSOR); yych = *++YYCURSOR; @@ -3437,7 +3441,7 @@ { return T_DIV_EQUAL; } -#line 3441 "Zend/zend_language_scanner.c" +#line 3445 "Zend/zend_language_scanner.c" yy238: YYDEBUG(238, *YYCURSOR); yych = *++YYCURSOR; @@ -3464,7 +3468,7 @@ { return T_MUL_EQUAL; } -#line 3468 "Zend/zend_language_scanner.c" +#line 3472 "Zend/zend_language_scanner.c" yy243: YYDEBUG(243, *YYCURSOR); ++YYCURSOR; @@ -3475,7 +3479,7 @@ { return T_SR; } -#line 3479 "Zend/zend_language_scanner.c" +#line 3483 "Zend/zend_language_scanner.c" yy245: YYDEBUG(245, *YYCURSOR); ++YYCURSOR; @@ -3485,7 +3489,7 @@ { return T_IS_GREATER_OR_EQUAL; } -#line 3489 "Zend/zend_language_scanner.c" +#line 3493 "Zend/zend_language_scanner.c" yy247: YYDEBUG(247, *YYCURSOR); ++YYCURSOR; @@ -3495,7 +3499,7 @@ { return T_SR_EQUAL; } -#line 3499 "Zend/zend_language_scanner.c" +#line 3503 "Zend/zend_language_scanner.c" yy249: YYDEBUG(249, *YYCURSOR); yyaccept = 5; @@ -3510,7 +3514,7 @@ { return T_SL; } -#line 3514 "Zend/zend_language_scanner.c" +#line 3518 "Zend/zend_language_scanner.c" yy251: YYDEBUG(251, *YYCURSOR); yych = *++YYCURSOR; @@ -3526,7 +3530,7 @@ { return T_IS_SMALLER_OR_EQUAL; } -#line 3530 "Zend/zend_language_scanner.c" +#line 3534 "Zend/zend_language_scanner.c" yy254: YYDEBUG(254, *YYCURSOR); ++YYCURSOR; @@ -3537,7 +3541,7 @@ { return T_IS_NOT_EQUAL; } -#line 3541 "Zend/zend_language_scanner.c" +#line 3545 "Zend/zend_language_scanner.c" yy256: YYDEBUG(256, *YYCURSOR); yych = *++YYCURSOR; @@ -3592,7 +3596,7 @@ { return T_SL_EQUAL; } -#line 3596 "Zend/zend_language_scanner.c" +#line 3600 "Zend/zend_language_scanner.c" yy265: YYDEBUG(265, *YYCURSOR); ++YYCURSOR; @@ -3697,7 +3701,7 @@ yy275: YYDEBUG(275, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1907 "Zend/zend_language_scanner.l" +#line 1911 "Zend/zend_language_scanner.l" { char *s; int bprefix = (yytext[0] != '<') ? 1 : 0; @@ -3745,7 +3749,7 @@ return T_START_HEREDOC; } -#line 3749 "Zend/zend_language_scanner.c" +#line 3753 "Zend/zend_language_scanner.c" yy276: YYDEBUG(276, *YYCURSOR); yych = *++YYCURSOR; @@ -3789,7 +3793,7 @@ { return T_IS_NOT_IDENTICAL; } -#line 3793 "Zend/zend_language_scanner.c" +#line 3797 "Zend/zend_language_scanner.c" yy282: YYDEBUG(282, *YYCURSOR); ++YYCURSOR; @@ -3799,7 +3803,7 @@ { return T_PLUS_EQUAL; } -#line 3803 "Zend/zend_language_scanner.c" +#line 3807 "Zend/zend_language_scanner.c" yy284: YYDEBUG(284, *YYCURSOR); ++YYCURSOR; @@ -3809,7 +3813,7 @@ { return T_INC; } -#line 3813 "Zend/zend_language_scanner.c" +#line 3817 "Zend/zend_language_scanner.c" yy286: YYDEBUG(286, *YYCURSOR); yych = *++YYCURSOR; @@ -3832,7 +3836,7 @@ { return T_LIST; } -#line 3836 "Zend/zend_language_scanner.c" +#line 3840 "Zend/zend_language_scanner.c" yy290: YYDEBUG(290, *YYCURSOR); ++YYCURSOR; @@ -3843,7 +3847,7 @@ { return T_IS_EQUAL; } -#line 3847 "Zend/zend_language_scanner.c" +#line 3851 "Zend/zend_language_scanner.c" yy292: YYDEBUG(292, *YYCURSOR); ++YYCURSOR; @@ -3853,7 +3857,7 @@ { return T_DOUBLE_ARROW; } -#line 3857 "Zend/zend_language_scanner.c" +#line 3861 "Zend/zend_language_scanner.c" yy294: YYDEBUG(294, *YYCURSOR); ++YYCURSOR; @@ -3863,7 +3867,7 @@ { return T_IS_IDENTICAL; } -#line 3867 "Zend/zend_language_scanner.c" +#line 3871 "Zend/zend_language_scanner.c" yy296: YYDEBUG(296, *YYCURSOR); yych = *++YYCURSOR; @@ -3985,7 +3989,7 @@ } YYDEBUG(314, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1497 "Zend/zend_language_scanner.l" +#line 1501 "Zend/zend_language_scanner.l" { if (CG(current_namespace)) { *zendlval = *CG(current_namespace); @@ -3995,7 +3999,7 @@ } return T_NS_C; } -#line 3999 "Zend/zend_language_scanner.c" +#line 4003 "Zend/zend_language_scanner.c" yy315: YYDEBUG(315, *YYCURSOR); yych = *++YYCURSOR; @@ -4015,7 +4019,7 @@ } YYDEBUG(319, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1470 "Zend/zend_language_scanner.l" +#line 1474 "Zend/zend_language_scanner.l" { char *filename = zend_get_compiled_filename(TSRMLS_C); const size_t filename_len = strlen(filename); @@ -4042,7 +4046,7 @@ zendlval->type = IS_STRING; return T_DIR; } -#line 4046 "Zend/zend_language_scanner.c" +#line 4050 "Zend/zend_language_scanner.c" yy320: YYDEBUG(320, *YYCURSOR); yych = *++YYCURSOR; @@ -4067,13 +4071,13 @@ } YYDEBUG(325, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1452 "Zend/zend_language_scanner.l" +#line 1456 "Zend/zend_language_scanner.l" { zendlval->value.lval = CG(zend_lineno); zendlval->type = IS_LONG; return T_LINE; } -#line 4077 "Zend/zend_language_scanner.c" +#line 4081 "Zend/zend_language_scanner.c" yy326: YYDEBUG(326, *YYCURSOR); yych = *++YYCURSOR; @@ -4108,7 +4112,7 @@ } YYDEBUG(333, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1431 "Zend/zend_language_scanner.l" +#line 1435 "Zend/zend_language_scanner.l" { char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL; char *func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL; @@ -4129,7 +4133,7 @@ zendlval->type = IS_STRING; return T_METHOD_C; } -#line 4133 "Zend/zend_language_scanner.c" +#line 4137 "Zend/zend_language_scanner.c" yy334: YYDEBUG(334, *YYCURSOR); yych = *++YYCURSOR; @@ -4180,7 +4184,7 @@ } YYDEBUG(344, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1415 "Zend/zend_language_scanner.l" +#line 1419 "Zend/zend_language_scanner.l" { char *func_name = NULL; @@ -4196,7 +4200,7 @@ zendlval->type = IS_STRING; return T_FUNC_C; } -#line 4200 "Zend/zend_language_scanner.c" +#line 4204 "Zend/zend_language_scanner.c" yy345: YYDEBUG(345, *YYCURSOR); yych = *++YYCURSOR; @@ -4216,7 +4220,7 @@ } YYDEBUG(349, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1458 "Zend/zend_language_scanner.l" +#line 1462 "Zend/zend_language_scanner.l" { char *filename = zend_get_compiled_filename(TSRMLS_C); @@ -4228,7 +4232,7 @@ zendlval->type = IS_STRING; return T_FILE; } -#line 4232 "Zend/zend_language_scanner.c" +#line 4236 "Zend/zend_language_scanner.c" yy350: YYDEBUG(350, *YYCURSOR); yych = *++YYCURSOR; @@ -4258,7 +4262,7 @@ } YYDEBUG(356, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1399 "Zend/zend_language_scanner.l" +#line 1403 "Zend/zend_language_scanner.l" { char *class_name = NULL; @@ -4274,7 +4278,7 @@ zendlval->type = IS_STRING; return T_CLASS_C; } -#line 4278 "Zend/zend_language_scanner.c" +#line 4282 "Zend/zend_language_scanner.c" yy357: YYDEBUG(357, *YYCURSOR); yych = *++YYCURSOR; @@ -4340,7 +4344,7 @@ { return T_HALT_COMPILER; } -#line 4344 "Zend/zend_language_scanner.c" +#line 4348 "Zend/zend_language_scanner.c" yy370: YYDEBUG(370, *YYCURSOR); yych = *++YYCURSOR; @@ -4364,7 +4368,7 @@ { return T_USE; } -#line 4368 "Zend/zend_language_scanner.c" +#line 4372 "Zend/zend_language_scanner.c" yy374: YYDEBUG(374, *YYCURSOR); yych = *++YYCURSOR; @@ -4387,7 +4391,7 @@ { return T_UNSET; } -#line 4391 "Zend/zend_language_scanner.c" +#line 4395 "Zend/zend_language_scanner.c" yy378: YYDEBUG(378, *YYCURSOR); ++YYCURSOR; @@ -4563,7 +4567,7 @@ { return T_INT_CAST; } -#line 4567 "Zend/zend_language_scanner.c" +#line 4571 "Zend/zend_language_scanner.c" yy396: YYDEBUG(396, *YYCURSOR); yych = *++YYCURSOR; @@ -4611,7 +4615,7 @@ { return T_DOUBLE_CAST; } -#line 4615 "Zend/zend_language_scanner.c" +#line 4619 "Zend/zend_language_scanner.c" yy405: YYDEBUG(405, *YYCURSOR); yych = *++YYCURSOR; @@ -4685,7 +4689,7 @@ { return T_STRING_CAST; } -#line 4689 "Zend/zend_language_scanner.c" +#line 4693 "Zend/zend_language_scanner.c" yy419: YYDEBUG(419, *YYCURSOR); yych = *++YYCURSOR; @@ -4722,7 +4726,7 @@ { return T_ARRAY_CAST; } -#line 4726 "Zend/zend_language_scanner.c" +#line 4730 "Zend/zend_language_scanner.c" yy426: YYDEBUG(426, *YYCURSOR); yych = *++YYCURSOR; @@ -4764,7 +4768,7 @@ { return T_OBJECT_CAST; } -#line 4768 "Zend/zend_language_scanner.c" +#line 4772 "Zend/zend_language_scanner.c" yy434: YYDEBUG(434, *YYCURSOR); yych = *++YYCURSOR; @@ -4809,7 +4813,7 @@ { return T_BOOL_CAST; } -#line 4813 "Zend/zend_language_scanner.c" +#line 4817 "Zend/zend_language_scanner.c" yy442: YYDEBUG(442, *YYCURSOR); yych = *++YYCURSOR; @@ -4857,7 +4861,7 @@ { return T_STRING_CAST; } -#line 4861 "Zend/zend_language_scanner.c" +#line 4865 "Zend/zend_language_scanner.c" yy451: YYDEBUG(451, *YYCURSOR); yych = *++YYCURSOR; @@ -4894,7 +4898,7 @@ { return T_UNSET_CAST; } -#line 4898 "Zend/zend_language_scanner.c" +#line 4902 "Zend/zend_language_scanner.c" yy458: YYDEBUG(458, *YYCURSOR); yych = *++YYCURSOR; @@ -4912,7 +4916,7 @@ { return T_VAR; } -#line 4916 "Zend/zend_language_scanner.c" +#line 4920 "Zend/zend_language_scanner.c" yy461: YYDEBUG(461, *YYCURSOR); yych = *++YYCURSOR; @@ -4936,7 +4940,7 @@ { return T_NEW; } -#line 4940 "Zend/zend_language_scanner.c" +#line 4944 "Zend/zend_language_scanner.c" yy465: YYDEBUG(465, *YYCURSOR); yych = *++YYCURSOR; @@ -4979,7 +4983,7 @@ { return T_NAMESPACE; } -#line 4983 "Zend/zend_language_scanner.c" +#line 4987 "Zend/zend_language_scanner.c" yy473: YYDEBUG(473, *YYCURSOR); ++YYCURSOR; @@ -4989,7 +4993,7 @@ { return T_PAAMAYIM_NEKUDOTAYIM; } -#line 4993 "Zend/zend_language_scanner.c" +#line 4997 "Zend/zend_language_scanner.c" yy475: YYDEBUG(475, *YYCURSOR); ++YYCURSOR; @@ -5015,7 +5019,7 @@ { return T_MINUS_EQUAL; } -#line 5019 "Zend/zend_language_scanner.c" +#line 5023 "Zend/zend_language_scanner.c" yy479: YYDEBUG(479, *YYCURSOR); ++YYCURSOR; @@ -5025,7 +5029,7 @@ { return T_DEC; } -#line 5029 "Zend/zend_language_scanner.c" +#line 5033 "Zend/zend_language_scanner.c" yy481: YYDEBUG(481, *YYCURSOR); ++YYCURSOR; @@ -5036,7 +5040,7 @@ yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); return T_OBJECT_OPERATOR; } -#line 5040 "Zend/zend_language_scanner.c" +#line 5044 "Zend/zend_language_scanner.c" yy483: YYDEBUG(483, *YYCURSOR); yych = *++YYCURSOR; @@ -5085,7 +5089,7 @@ { return T_PUBLIC; } -#line 5089 "Zend/zend_language_scanner.c" +#line 5093 "Zend/zend_language_scanner.c" yy490: YYDEBUG(490, *YYCURSOR); yych = *++YYCURSOR; @@ -5144,7 +5148,7 @@ { return T_PROTECTED; } -#line 5148 "Zend/zend_language_scanner.c" +#line 5152 "Zend/zend_language_scanner.c" yy499: YYDEBUG(499, *YYCURSOR); yych = *++YYCURSOR; @@ -5178,7 +5182,7 @@ { return T_PRIVATE; } -#line 5182 "Zend/zend_language_scanner.c" +#line 5186 "Zend/zend_language_scanner.c" yy505: YYDEBUG(505, *YYCURSOR); ++YYCURSOR; @@ -5191,7 +5195,7 @@ { return T_PRINT; } -#line 5195 "Zend/zend_language_scanner.c" +#line 5199 "Zend/zend_language_scanner.c" yy507: YYDEBUG(507, *YYCURSOR); yych = *++YYCURSOR; @@ -5220,7 +5224,7 @@ { return T_GOTO; } -#line 5224 "Zend/zend_language_scanner.c" +#line 5228 "Zend/zend_language_scanner.c" yy512: YYDEBUG(512, *YYCURSOR); yych = *++YYCURSOR; @@ -5248,7 +5252,7 @@ { return T_GLOBAL; } -#line 5252 "Zend/zend_language_scanner.c" +#line 5256 "Zend/zend_language_scanner.c" yy517: YYDEBUG(517, *YYCURSOR); yych = *++YYCURSOR; @@ -5289,7 +5293,7 @@ { return T_BREAK; } -#line 5293 "Zend/zend_language_scanner.c" +#line 5297 "Zend/zend_language_scanner.c" yy525: YYDEBUG(525, *YYCURSOR); yych = *++YYCURSOR; @@ -5333,7 +5337,7 @@ { return T_SWITCH; } -#line 5337 "Zend/zend_language_scanner.c" +#line 5341 "Zend/zend_language_scanner.c" yy533: YYDEBUG(533, *YYCURSOR); yych = *++YYCURSOR; @@ -5361,7 +5365,7 @@ { return T_STATIC; } -#line 5365 "Zend/zend_language_scanner.c" +#line 5369 "Zend/zend_language_scanner.c" yy538: YYDEBUG(538, *YYCURSOR); yych = *++YYCURSOR; @@ -5392,7 +5396,7 @@ { return T_AS; } -#line 5396 "Zend/zend_language_scanner.c" +#line 5400 "Zend/zend_language_scanner.c" yy543: YYDEBUG(543, *YYCURSOR); yych = *++YYCURSOR; @@ -5415,7 +5419,7 @@ { return T_ARRAY; } -#line 5419 "Zend/zend_language_scanner.c" +#line 5423 "Zend/zend_language_scanner.c" yy547: YYDEBUG(547, *YYCURSOR); ++YYCURSOR; @@ -5428,7 +5432,7 @@ { return T_LOGICAL_AND; } -#line 5432 "Zend/zend_language_scanner.c" +#line 5436 "Zend/zend_language_scanner.c" yy549: YYDEBUG(549, *YYCURSOR); yych = *++YYCURSOR; @@ -5466,7 +5470,7 @@ { return T_ABSTRACT; } -#line 5470 "Zend/zend_language_scanner.c" +#line 5474 "Zend/zend_language_scanner.c" yy556: YYDEBUG(556, *YYCURSOR); yych = *++YYCURSOR; @@ -5494,7 +5498,7 @@ { return T_WHILE; } -#line 5498 "Zend/zend_language_scanner.c" +#line 5502 "Zend/zend_language_scanner.c" yy561: YYDEBUG(561, *YYCURSOR); ++YYCURSOR; @@ -5507,7 +5511,7 @@ { return T_IF; } -#line 5511 "Zend/zend_language_scanner.c" +#line 5515 "Zend/zend_language_scanner.c" yy563: YYDEBUG(563, *YYCURSOR); yych = *++YYCURSOR; @@ -5563,7 +5567,7 @@ { return T_ISSET; } -#line 5567 "Zend/zend_language_scanner.c" +#line 5571 "Zend/zend_language_scanner.c" yy570: YYDEBUG(570, *YYCURSOR); yych = *++YYCURSOR; @@ -5621,7 +5625,7 @@ { return T_INCLUDE; } -#line 5625 "Zend/zend_language_scanner.c" +#line 5629 "Zend/zend_language_scanner.c" yy578: YYDEBUG(578, *YYCURSOR); yych = *++YYCURSOR; @@ -5654,7 +5658,7 @@ { return T_INCLUDE_ONCE; } -#line 5658 "Zend/zend_language_scanner.c" +#line 5662 "Zend/zend_language_scanner.c" yy584: YYDEBUG(584, *YYCURSOR); yych = *++YYCURSOR; @@ -5692,7 +5696,7 @@ { return T_INTERFACE; } -#line 5696 "Zend/zend_language_scanner.c" +#line 5700 "Zend/zend_language_scanner.c" yy591: YYDEBUG(591, *YYCURSOR); yych = *++YYCURSOR; @@ -5735,7 +5739,7 @@ { return T_INSTANCEOF; } -#line 5739 "Zend/zend_language_scanner.c" +#line 5743 "Zend/zend_language_scanner.c" yy599: YYDEBUG(599, *YYCURSOR); yych = *++YYCURSOR; @@ -5783,7 +5787,7 @@ { return T_IMPLEMENTS; } -#line 5787 "Zend/zend_language_scanner.c" +#line 5791 "Zend/zend_language_scanner.c" yy608: YYDEBUG(608, *YYCURSOR); yych = *++YYCURSOR; @@ -5807,7 +5811,7 @@ { return T_TRY; } -#line 5811 "Zend/zend_language_scanner.c" +#line 5815 "Zend/zend_language_scanner.c" yy612: YYDEBUG(612, *YYCURSOR); yych = *++YYCURSOR; @@ -5830,7 +5834,7 @@ { return T_THROW; } -#line 5834 "Zend/zend_language_scanner.c" +#line 5838 "Zend/zend_language_scanner.c" yy616: YYDEBUG(616, *YYCURSOR); yych = *++YYCURSOR; @@ -5895,7 +5899,7 @@ { return T_REQUIRE; } -#line 5899 "Zend/zend_language_scanner.c" +#line 5903 "Zend/zend_language_scanner.c" yy624: YYDEBUG(624, *YYCURSOR); yych = *++YYCURSOR; @@ -5928,7 +5932,7 @@ { return T_REQUIRE_ONCE; } -#line 5932 "Zend/zend_language_scanner.c" +#line 5936 "Zend/zend_language_scanner.c" yy630: YYDEBUG(630, *YYCURSOR); yych = *++YYCURSOR; @@ -5951,7 +5955,7 @@ { return T_RETURN; } -#line 5955 "Zend/zend_language_scanner.c" +#line 5959 "Zend/zend_language_scanner.c" yy634: YYDEBUG(634, *YYCURSOR); yych = *++YYCURSOR; @@ -6036,7 +6040,7 @@ { return T_CONTINUE; } -#line 6040 "Zend/zend_language_scanner.c" +#line 6044 "Zend/zend_language_scanner.c" yy645: YYDEBUG(645, *YYCURSOR); ++YYCURSOR; @@ -6049,7 +6053,7 @@ { return T_CONST; } -#line 6053 "Zend/zend_language_scanner.c" +#line 6057 "Zend/zend_language_scanner.c" yy647: YYDEBUG(647, *YYCURSOR); yych = *++YYCURSOR; @@ -6078,7 +6082,7 @@ { return T_CLONE; } -#line 6082 "Zend/zend_language_scanner.c" +#line 6086 "Zend/zend_language_scanner.c" yy652: YYDEBUG(652, *YYCURSOR); yych = *++YYCURSOR; @@ -6096,7 +6100,7 @@ { return T_CLASS; } -#line 6100 "Zend/zend_language_scanner.c" +#line 6104 "Zend/zend_language_scanner.c" yy655: YYDEBUG(655, *YYCURSOR); yych = *++YYCURSOR; @@ -6120,7 +6124,7 @@ { return T_CASE; } -#line 6124 "Zend/zend_language_scanner.c" +#line 6128 "Zend/zend_language_scanner.c" yy659: YYDEBUG(659, *YYCURSOR); yych = *++YYCURSOR; @@ -6138,7 +6142,7 @@ { return T_CATCH; } -#line 6142 "Zend/zend_language_scanner.c" +#line 6146 "Zend/zend_language_scanner.c" yy662: YYDEBUG(662, *YYCURSOR); yych = *++YYCURSOR; @@ -6193,7 +6197,7 @@ { return T_FUNCTION; } -#line 6197 "Zend/zend_language_scanner.c" +#line 6201 "Zend/zend_language_scanner.c" yy672: YYDEBUG(672, *YYCURSOR); ++YYCURSOR; @@ -6221,7 +6225,7 @@ { return T_FOR; } -#line 6225 "Zend/zend_language_scanner.c" +#line 6229 "Zend/zend_language_scanner.c" yy674: YYDEBUG(674, *YYCURSOR); yych = *++YYCURSOR; @@ -6249,7 +6253,7 @@ { return T_FOREACH; } -#line 6253 "Zend/zend_language_scanner.c" +#line 6257 "Zend/zend_language_scanner.c" yy679: YYDEBUG(679, *YYCURSOR); yych = *++YYCURSOR; @@ -6272,7 +6276,7 @@ { return T_FINAL; } -#line 6276 "Zend/zend_language_scanner.c" +#line 6280 "Zend/zend_language_scanner.c" yy683: YYDEBUG(683, *YYCURSOR); yych = *++YYCURSOR; @@ -6307,7 +6311,7 @@ { return T_DO; } -#line 6311 "Zend/zend_language_scanner.c" +#line 6315 "Zend/zend_language_scanner.c" yy687: YYDEBUG(687, *YYCURSOR); ++YYCURSOR; @@ -6320,7 +6324,7 @@ { return T_EXIT; } -#line 6324 "Zend/zend_language_scanner.c" +#line 6328 "Zend/zend_language_scanner.c" yy689: YYDEBUG(689, *YYCURSOR); yych = *++YYCURSOR; @@ -6359,7 +6363,7 @@ { return T_DEFAULT; } -#line 6363 "Zend/zend_language_scanner.c" +#line 6367 "Zend/zend_language_scanner.c" yy696: YYDEBUG(696, *YYCURSOR); yych = *++YYCURSOR; @@ -6387,7 +6391,7 @@ { return T_DECLARE; } -#line 6391 "Zend/zend_language_scanner.c" +#line 6395 "Zend/zend_language_scanner.c" yy701: YYDEBUG(701, *YYCURSOR); yych = *++YYCURSOR; @@ -6471,7 +6475,7 @@ { return T_EXTENDS; } -#line 6475 "Zend/zend_language_scanner.c" +#line 6479 "Zend/zend_language_scanner.c" yy714: YYDEBUG(714, *YYCURSOR); ++YYCURSOR; @@ -6484,7 +6488,7 @@ { return T_EXIT; } -#line 6488 "Zend/zend_language_scanner.c" +#line 6492 "Zend/zend_language_scanner.c" yy716: YYDEBUG(716, *YYCURSOR); yych = *++YYCURSOR; @@ -6502,7 +6506,7 @@ { return T_EVAL; } -#line 6506 "Zend/zend_language_scanner.c" +#line 6510 "Zend/zend_language_scanner.c" yy719: YYDEBUG(719, *YYCURSOR); yych = *++YYCURSOR; @@ -6576,7 +6580,7 @@ { return T_ENDWHILE; } -#line 6580 "Zend/zend_language_scanner.c" +#line 6584 "Zend/zend_language_scanner.c" yy730: YYDEBUG(730, *YYCURSOR); yych = *++YYCURSOR; @@ -6609,7 +6613,7 @@ { return T_ENDSWITCH; } -#line 6613 "Zend/zend_language_scanner.c" +#line 6617 "Zend/zend_language_scanner.c" yy736: YYDEBUG(736, *YYCURSOR); ++YYCURSOR; @@ -6622,7 +6626,7 @@ { return T_ENDIF; } -#line 6626 "Zend/zend_language_scanner.c" +#line 6630 "Zend/zend_language_scanner.c" yy738: YYDEBUG(738, *YYCURSOR); yych = *++YYCURSOR; @@ -6655,7 +6659,7 @@ { return T_ENDFOR; } -#line 6659 "Zend/zend_language_scanner.c" +#line 6663 "Zend/zend_language_scanner.c" yy741: YYDEBUG(741, *YYCURSOR); yych = *++YYCURSOR; @@ -6683,7 +6687,7 @@ { return T_ENDFOREACH; } -#line 6687 "Zend/zend_language_scanner.c" +#line 6691 "Zend/zend_language_scanner.c" yy746: YYDEBUG(746, *YYCURSOR); yych = *++YYCURSOR; @@ -6721,7 +6725,7 @@ { return T_ENDDECLARE; } -#line 6725 "Zend/zend_language_scanner.c" +#line 6729 "Zend/zend_language_scanner.c" yy753: YYDEBUG(753, *YYCURSOR); yych = *++YYCURSOR; @@ -6744,7 +6748,7 @@ { return T_EMPTY; } -#line 6748 "Zend/zend_language_scanner.c" +#line 6752 "Zend/zend_language_scanner.c" yy757: YYDEBUG(757, *YYCURSOR); yych = *++YYCURSOR; @@ -6777,7 +6781,7 @@ { return T_ELSE; } -#line 6781 "Zend/zend_language_scanner.c" +#line 6785 "Zend/zend_language_scanner.c" yy760: YYDEBUG(760, *YYCURSOR); yych = *++YYCURSOR; @@ -6795,7 +6799,7 @@ { return T_ELSEIF; } -#line 6799 "Zend/zend_language_scanner.c" +#line 6803 "Zend/zend_language_scanner.c" yy763: YYDEBUG(763, *YYCURSOR); yych = *++YYCURSOR; @@ -6813,7 +6817,7 @@ { return T_ECHO; } -#line 6817 "Zend/zend_language_scanner.c" +#line 6821 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_LOOKING_FOR_PROPERTY: @@ -6894,7 +6898,7 @@ HANDLE_NEWLINES(yytext, yyleng); return T_WHITESPACE; } -#line 6898 "Zend/zend_language_scanner.c" +#line 6902 "Zend/zend_language_scanner.c" yy770: YYDEBUG(770, *YYCURSOR); ++YYCURSOR; @@ -6908,7 +6912,7 @@ yy_pop_state(TSRMLS_C); goto restart; } -#line 6912 "Zend/zend_language_scanner.c" +#line 6916 "Zend/zend_language_scanner.c" yy772: YYDEBUG(772, *YYCURSOR); ++YYCURSOR; @@ -6924,7 +6928,7 @@ zendlval->type = IS_STRING; return T_STRING; } -#line 6928 "Zend/zend_language_scanner.c" +#line 6932 "Zend/zend_language_scanner.c" yy774: YYDEBUG(774, *YYCURSOR); yych = *++YYCURSOR; @@ -6949,7 +6953,7 @@ { return T_OBJECT_OPERATOR; } -#line 6953 "Zend/zend_language_scanner.c" +#line 6957 "Zend/zend_language_scanner.c" yy779: YYDEBUG(779, *YYCURSOR); ++YYCURSOR; @@ -7027,7 +7031,7 @@ yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); return T_STRING_VARNAME; } -#line 7031 "Zend/zend_language_scanner.c" +#line 7035 "Zend/zend_language_scanner.c" yy785: YYDEBUG(785, *YYCURSOR); ++YYCURSOR; @@ -7040,7 +7044,7 @@ yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); goto restart; } -#line 7044 "Zend/zend_language_scanner.c" +#line 7048 "Zend/zend_language_scanner.c" yy787: YYDEBUG(787, *YYCURSOR); ++YYCURSOR; @@ -7062,7 +7066,7 @@ ++YYCURSOR; YYDEBUG(792, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2158 "Zend/zend_language_scanner.l" +#line 2162 "Zend/zend_language_scanner.l" { int newline = 0; @@ -7117,7 +7121,7 @@ HANDLE_NEWLINES(yytext, yyleng - newline); return T_ENCAPSED_AND_WHITESPACE; } -#line 7121 "Zend/zend_language_scanner.c" +#line 7125 "Zend/zend_language_scanner.c" /* *********************************** */ yyc_ST_VAR_OFFSET: { @@ -7217,7 +7221,7 @@ yy796: YYDEBUG(796, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1374 "Zend/zend_language_scanner.l" +#line 1378 "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); @@ -7229,7 +7233,7 @@ } return T_NUM_STRING; } -#line 7233 "Zend/zend_language_scanner.c" +#line 7237 "Zend/zend_language_scanner.c" yy797: YYDEBUG(797, *YYCURSOR); yych = *++YYCURSOR; @@ -7249,23 +7253,23 @@ yy799: YYDEBUG(799, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1684 "Zend/zend_language_scanner.l" +#line 1688 "Zend/zend_language_scanner.l" { /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */ return yytext[0]; } -#line 7258 "Zend/zend_language_scanner.c" +#line 7262 "Zend/zend_language_scanner.c" yy800: YYDEBUG(800, *YYCURSOR); ++YYCURSOR; YYDEBUG(801, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1679 "Zend/zend_language_scanner.l" +#line 1683 "Zend/zend_language_scanner.l" { yy_pop_state(TSRMLS_C); return ']'; } -#line 7269 "Zend/zend_language_scanner.c" +#line 7273 "Zend/zend_language_scanner.c" yy802: YYDEBUG(802, *YYCURSOR); yych = *++YYCURSOR; @@ -7275,14 +7279,14 @@ ++YYCURSOR; YYDEBUG(804, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1689 "Zend/zend_language_scanner.l" +#line 1693 "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 7286 "Zend/zend_language_scanner.c" +#line 7290 "Zend/zend_language_scanner.c" yy805: YYDEBUG(805, *YYCURSOR); ++YYCURSOR; @@ -7291,19 +7295,19 @@ yy806: YYDEBUG(806, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1696 "Zend/zend_language_scanner.l" +#line 1700 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); zendlval->type = IS_STRING; return T_STRING; } -#line 7301 "Zend/zend_language_scanner.c" +#line 7305 "Zend/zend_language_scanner.c" yy807: YYDEBUG(807, *YYCURSOR); ++YYCURSOR; YYDEBUG(808, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2214 "Zend/zend_language_scanner.l" +#line 2218 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -7312,7 +7316,7 @@ zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); goto restart; } -#line 7316 "Zend/zend_language_scanner.c" +#line 7320 "Zend/zend_language_scanner.c" yy809: YYDEBUG(809, *YYCURSOR); ++YYCURSOR; @@ -7348,13 +7352,13 @@ yy813: YYDEBUG(813, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1673 "Zend/zend_language_scanner.l" +#line 1677 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; return T_VARIABLE; } -#line 7358 "Zend/zend_language_scanner.c" +#line 7362 "Zend/zend_language_scanner.c" yy814: YYDEBUG(814, *YYCURSOR); ++YYCURSOR; @@ -7386,14 +7390,14 @@ yy820: YYDEBUG(820, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1386 "Zend/zend_language_scanner.l" +#line 1390 "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 7397 "Zend/zend_language_scanner.c" +#line 7401 "Zend/zend_language_scanner.c" yy821: YYDEBUG(821, *YYCURSOR); ++YYCURSOR; @@ -7406,6 +7410,6 @@ goto yy820; } } -#line 2223 "Zend/zend_language_scanner.l" +#line 2227 "Zend/zend_language_scanner.l" } Modified: php/php-src/branches/PHP_5_3/Zend/zend_language_scanner.l =================================================================== --- php/php-src/branches/PHP_5_3/Zend/zend_language_scanner.l 2012-02-20 18:18:50 UTC (rev 323393) +++ php/php-src/branches/PHP_5_3/Zend/zend_language_scanner.l 2012-02-20 18:28:57 UTC (rev 323394) @@ -1361,7 +1361,11 @@ } if (len < SIZEOF_LONG * 2 || (len == SIZEOF_LONG * 2 && *hex <= '7')) { - zendlval->value.lval = strtol(hex, NULL, 16); + if (len == 0) { + zendlval->value.lval = 0; + } else { + zendlval->value.lval = strtol(hex, NULL, 16); + } zendlval->type = IS_LONG; return T_LNUMBER; } else { Modified: php/php-src/branches/PHP_5_3/Zend/zend_language_scanner_defs.h =================================================================== --- php/php-src/branches/PHP_5_3/Zend/zend_language_scanner_defs.h 2012-02-20 18:18:50 UTC (rev 323393) +++ php/php-src/branches/PHP_5_3/Zend/zend_language_scanner_defs.h 2012-02-20 18:28:57 UTC (rev 323394) @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Mon Jan 3 05:56:03 2011 */ +/* Generated by re2c 0.13.5 on Wed Feb 15 17:38:31 2012 */ #line 3 "Zend/zend_language_scanner_defs.h" enum YYCONDTYPE { Added: php/php-src/branches/PHP_5_4/Zend/tests/bug61095.phpt =================================================================== --- php/php-src/branches/PHP_5_4/Zend/tests/bug61095.phpt (rev 0) +++ php/php-src/branches/PHP_5_4/Zend/tests/bug61095.phpt 2012-02-20 18:28:57 UTC (rev 323394) @@ -0,0 +1,9 @@ +--TEST-- +Bug #61095 (Lexing 0x00*+ incorectly) +--FILE-- + +--EXPECT-- +2 Modified: php/php-src/branches/PHP_5_4/Zend/zend_language_scanner.c =================================================================== --- php/php-src/branches/PHP_5_4/Zend/zend_language_scanner.c 2012-02-20 18:18:50 UTC (rev 323393) +++ php/php-src/branches/PHP_5_4/Zend/zend_language_scanner.c 2012-02-20 18:28:57 UTC (rev 323394) @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Mon Jan 16 14:45:55 2012 */ +/* Generated by re2c 0.13.5 on Wed Feb 15 17:48:20 2012 */ #line 1 "Zend/zend_language_scanner.l" /* +----------------------------------------------------------------------+ @@ -1090,7 +1090,7 @@ yy3: YYDEBUG(3, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1775 "Zend/zend_language_scanner.l" +#line 1779 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -1168,7 +1168,7 @@ yy6: YYDEBUG(6, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1763 "Zend/zend_language_scanner.l" +#line 1767 "Zend/zend_language_scanner.l" { if (CG(short_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1187,7 +1187,7 @@ if ((yych = *YYCURSOR) == '=') goto yy43; YYDEBUG(8, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1740 "Zend/zend_language_scanner.l" +#line 1744 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1385,7 +1385,7 @@ ++YYCURSOR; YYDEBUG(38, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1700 "Zend/zend_language_scanner.l" +#line 1704 "Zend/zend_language_scanner.l" { YYCTYPE *bracket = (YYCTYPE*)zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1)); @@ -1429,7 +1429,7 @@ ++YYCURSOR; YYDEBUG(44, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1718 "Zend/zend_language_scanner.l" +#line 1722 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1447,7 +1447,7 @@ ++YYCURSOR; YYDEBUG(46, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1731 "Zend/zend_language_scanner.l" +#line 1735 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -1482,7 +1482,7 @@ yy51: YYDEBUG(51, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1753 "Zend/zend_language_scanner.l" +#line 1757 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -1562,7 +1562,7 @@ yy56: YYDEBUG(56, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2226 "Zend/zend_language_scanner.l" +#line 2230 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -1614,7 +1614,7 @@ ++YYCURSOR; YYDEBUG(59, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2170 "Zend/zend_language_scanner.l" +#line 2174 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '`'; @@ -1629,7 +1629,7 @@ ++YYCURSOR; YYDEBUG(62, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2157 "Zend/zend_language_scanner.l" +#line 2161 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); @@ -1652,7 +1652,7 @@ yy65: YYDEBUG(65, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1857 "Zend/zend_language_scanner.l" +#line 1861 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; @@ -1683,7 +1683,7 @@ ++YYCURSOR; YYDEBUG(71, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1849 "Zend/zend_language_scanner.l" +#line 1853 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -1709,7 +1709,7 @@ ++YYCURSOR; YYDEBUG(74, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1839 "Zend/zend_language_scanner.l" +#line 1843 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -1785,7 +1785,7 @@ yy78: YYDEBUG(78, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2176 "Zend/zend_language_scanner.l" +#line 2180 "Zend/zend_language_scanner.l" { if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) { YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1; @@ -1845,7 +1845,7 @@ ++YYCURSOR; YYDEBUG(81, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2165 "Zend/zend_language_scanner.l" +#line 2169 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '"'; @@ -1860,7 +1860,7 @@ ++YYCURSOR; YYDEBUG(84, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2157 "Zend/zend_language_scanner.l" +#line 2161 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); @@ -1883,7 +1883,7 @@ yy87: YYDEBUG(87, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1857 "Zend/zend_language_scanner.l" +#line 1861 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; @@ -1914,7 +1914,7 @@ ++YYCURSOR; YYDEBUG(93, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1849 "Zend/zend_language_scanner.l" +#line 1853 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -1940,7 +1940,7 @@ ++YYCURSOR; YYDEBUG(96, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1839 "Zend/zend_language_scanner.l" +#line 1843 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -1959,7 +1959,7 @@ ++YYCURSOR; YYDEBUG(100, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2144 "Zend/zend_language_scanner.l" +#line 2148 "Zend/zend_language_scanner.l" { YYCURSOR += CG(heredoc_len) - 1; yyleng = CG(heredoc_len); @@ -2033,7 +2033,7 @@ yy104: YYDEBUG(104, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2268 "Zend/zend_language_scanner.l" +#line 2272 "Zend/zend_language_scanner.l" { int newline = 0; @@ -2119,7 +2119,7 @@ ++YYCURSOR; YYDEBUG(108, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2157 "Zend/zend_language_scanner.l" +#line 2161 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); @@ -2142,7 +2142,7 @@ yy111: YYDEBUG(111, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1857 "Zend/zend_language_scanner.l" +#line 1861 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; @@ -2173,7 +2173,7 @@ ++YYCURSOR; YYDEBUG(117, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1849 "Zend/zend_language_scanner.l" +#line 1853 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -2199,7 +2199,7 @@ ++YYCURSOR; YYDEBUG(120, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1839 "Zend/zend_language_scanner.l" +#line 1843 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -2388,7 +2388,7 @@ yy124: YYDEBUG(124, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1880 "Zend/zend_language_scanner.l" +#line 1884 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); zendlval->type = IS_STRING; @@ -2980,7 +2980,7 @@ yy176: YYDEBUG(176, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1887 "Zend/zend_language_scanner.l" +#line 1891 "Zend/zend_language_scanner.l" { while (YYCURSOR < YYLIMIT) { switch (*YYCURSOR++) { @@ -3021,7 +3021,7 @@ yy178: YYDEBUG(178, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1978 "Zend/zend_language_scanner.l" +#line 1982 "Zend/zend_language_scanner.l" { register char *s, *t; char *end; @@ -3096,7 +3096,7 @@ yy180: YYDEBUG(180, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2047 "Zend/zend_language_scanner.l" +#line 2051 "Zend/zend_language_scanner.l" { int bprefix = (yytext[0] != '"') ? 1 : 0; @@ -3143,7 +3143,7 @@ ++YYCURSOR; YYDEBUG(182, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2138 "Zend/zend_language_scanner.l" +#line 2142 "Zend/zend_language_scanner.l" { BEGIN(ST_BACKQUOTE); return '`'; @@ -3154,7 +3154,7 @@ ++YYCURSOR; YYDEBUG(184, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2396 "Zend/zend_language_scanner.l" +#line 2400 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -3190,7 +3190,7 @@ yy189: YYDEBUG(189, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1555 "Zend/zend_language_scanner.l" +#line 1559 "Zend/zend_language_scanner.l" { zendlval->value.dval = zend_strtod(yytext, NULL); zendlval->type = IS_DOUBLE; @@ -3333,7 +3333,11 @@ } if (len < SIZEOF_LONG * 2 || (len == SIZEOF_LONG * 2 && *hex <= '7')) { - zendlval->value.lval = strtol(hex, NULL, 16); + if (len == 0) { + zendlval->value.lval = 0; + } else { + zendlval->value.lval = strtol(hex, NULL, 16); + } zendlval->type = IS_LONG; return T_LNUMBER; } else { @@ -3342,7 +3346,7 @@ return T_DNUMBER; } } -#line 3346 "Zend/zend_language_scanner.c" +#line 3350 "Zend/zend_language_scanner.c" yy205: YYDEBUG(205, *YYCURSOR); ++YYCURSOR; @@ -3351,7 +3355,7 @@ yy206: YYDEBUG(206, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1955 "Zend/zend_language_scanner.l" +#line 1959 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -3359,7 +3363,7 @@ BEGIN(INITIAL); return T_CLOSE_TAG; /* implicit ';' at php-end tag */ } -#line 3363 "Zend/zend_language_scanner.c" +#line 3367 "Zend/zend_language_scanner.c" yy207: YYDEBUG(207, *YYCURSOR); yych = *++YYCURSOR; @@ -3393,13 +3397,13 @@ yy211: YYDEBUG(211, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1857 "Zend/zend_language_scanner.l" +#line 1861 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; return T_VARIABLE; } -#line 3403 "Zend/zend_language_scanner.c" +#line 3407 "Zend/zend_language_scanner.c" yy212: YYDEBUG(212, *YYCURSOR); yych = *++YYCURSOR; @@ -3417,7 +3421,7 @@ { return T_LOGICAL_XOR; } -#line 3421 "Zend/zend_language_scanner.c" +#line 3425 "Zend/zend_language_scanner.c" yy215: YYDEBUG(215, *YYCURSOR); ++YYCURSOR; @@ -3430,7 +3434,7 @@ { return T_LOGICAL_OR; } -#line 3434 "Zend/zend_language_scanner.c" +#line 3438 "Zend/zend_language_scanner.c" yy217: YYDEBUG(217, *YYCURSOR); ++YYCURSOR; @@ -3440,7 +3444,7 @@ { return T_XOR_EQUAL; } -#line 3444 "Zend/zend_language_scanner.c" +#line 3448 "Zend/zend_language_scanner.c" yy219: YYDEBUG(219, *YYCURSOR); ++YYCURSOR; @@ -3450,7 +3454,7 @@ { return T_BOOLEAN_OR; } -#line 3454 "Zend/zend_language_scanner.c" +#line 3458 "Zend/zend_language_scanner.c" yy221: YYDEBUG(221, *YYCURSOR); ++YYCURSOR; @@ -3460,7 +3464,7 @@ { return T_OR_EQUAL; } -#line 3464 "Zend/zend_language_scanner.c" +#line 3468 "Zend/zend_language_scanner.c" yy223: YYDEBUG(223, *YYCURSOR); ++YYCURSOR; @@ -3470,7 +3474,7 @@ { return T_BOOLEAN_AND; } -#line 3474 "Zend/zend_language_scanner.c" +#line 3478 "Zend/zend_language_scanner.c" yy225: YYDEBUG(225, *YYCURSOR); ++YYCURSOR; @@ -3480,7 +3484,7 @@ { return T_AND_EQUAL; } -#line 3484 "Zend/zend_language_scanner.c" +#line 3488 "Zend/zend_language_scanner.c" yy227: YYDEBUG(227, *YYCURSOR); ++YYCURSOR; @@ -3489,7 +3493,7 @@ yy228: YYDEBUG(228, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1964 "Zend/zend_language_scanner.l" +#line 1968 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { BEGIN(INITIAL); @@ -3502,7 +3506,7 @@ return yytext[0]; } } -#line 3506 "Zend/zend_language_scanner.c" +#line 3510 "Zend/zend_language_scanner.c" yy229: YYDEBUG(229, *YYCURSOR); ++YYCURSOR; @@ -3512,7 +3516,7 @@ { return T_MOD_EQUAL; } -#line 3516 "Zend/zend_language_scanner.c" +#line 3520 "Zend/zend_language_scanner.c" yy231: YYDEBUG(231, *YYCURSOR); yych = *++YYCURSOR; @@ -3547,7 +3551,7 @@ { return T_CONCAT_EQUAL; } -#line 3551 "Zend/zend_language_scanner.c" +#line 3555 "Zend/zend_language_scanner.c" yy237: YYDEBUG(237, *YYCURSOR); yyaccept = 4; @@ -3556,7 +3560,7 @@ yy238: YYDEBUG(238, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1921 "Zend/zend_language_scanner.l" +#line 1925 "Zend/zend_language_scanner.l" { int doc_com; @@ -3590,7 +3594,7 @@ return T_COMMENT; } -#line 3594 "Zend/zend_language_scanner.c" +#line 3598 "Zend/zend_language_scanner.c" yy239: YYDEBUG(239, *YYCURSOR); yych = *++YYCURSOR; @@ -3604,7 +3608,7 @@ { return T_DIV_EQUAL; } -#line 3608 "Zend/zend_language_scanner.c" +#line 3612 "Zend/zend_language_scanner.c" yy242: YYDEBUG(242, *YYCURSOR); yych = *++YYCURSOR; @@ -3631,7 +3635,7 @@ { return T_MUL_EQUAL; } -#line 3635 "Zend/zend_language_scanner.c" +#line 3639 "Zend/zend_language_scanner.c" yy247: YYDEBUG(247, *YYCURSOR); ++YYCURSOR; @@ -3642,7 +3646,7 @@ { return T_SR; } -#line 3646 "Zend/zend_language_scanner.c" +#line 3650 "Zend/zend_language_scanner.c" yy249: YYDEBUG(249, *YYCURSOR); ++YYCURSOR; @@ -3652,7 +3656,7 @@ { return T_IS_GREATER_OR_EQUAL; } -#line 3656 "Zend/zend_language_scanner.c" +#line 3660 "Zend/zend_language_scanner.c" yy251: YYDEBUG(251, *YYCURSOR); ++YYCURSOR; @@ -3662,7 +3666,7 @@ { return T_SR_EQUAL; } -#line 3666 "Zend/zend_language_scanner.c" +#line 3670 "Zend/zend_language_scanner.c" yy253: YYDEBUG(253, *YYCURSOR); yyaccept = 5; @@ -3677,7 +3681,7 @@ { return T_SL; } -#line 3681 "Zend/zend_language_scanner.c" +#line 3685 "Zend/zend_language_scanner.c" yy255: YYDEBUG(255, *YYCURSOR); yych = *++YYCURSOR; @@ -3693,7 +3697,7 @@ { return T_IS_SMALLER_OR_EQUAL; } -#line 3697 "Zend/zend_language_scanner.c" +#line 3701 "Zend/zend_language_scanner.c" yy258: YYDEBUG(258, *YYCURSOR); ++YYCURSOR; @@ -3704,7 +3708,7 @@ { return T_IS_NOT_EQUAL; } -#line 3708 "Zend/zend_language_scanner.c" +#line 3712 "Zend/zend_language_scanner.c" yy260: YYDEBUG(260, *YYCURSOR); yych = *++YYCURSOR; @@ -3759,7 +3763,7 @@ { return T_SL_EQUAL; } -#line 3763 "Zend/zend_language_scanner.c" +#line 3767 "Zend/zend_language_scanner.c" yy269: YYDEBUG(269, *YYCURSOR); ++YYCURSOR; @@ -3864,7 +3868,7 @@ yy279: YYDEBUG(279, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2089 "Zend/zend_language_scanner.l" +#line 2093 "Zend/zend_language_scanner.l" { char *s; int bprefix = (yytext[0] != '<') ? 1 : 0; @@ -3912,7 +3916,7 @@ return T_START_HEREDOC; } -#line 3916 "Zend/zend_language_scanner.c" +#line 3920 "Zend/zend_language_scanner.c" yy280: YYDEBUG(280, *YYCURSOR); yych = *++YYCURSOR; @@ -3956,7 +3960,7 @@ { return T_IS_NOT_IDENTICAL; } -#line 3960 "Zend/zend_language_scanner.c" +#line 3964 "Zend/zend_language_scanner.c" yy286: YYDEBUG(286, *YYCURSOR); ++YYCURSOR; @@ -3966,7 +3970,7 @@ { return T_PLUS_EQUAL; } -#line 3970 "Zend/zend_language_scanner.c" +#line 3974 "Zend/zend_language_scanner.c" yy288: YYDEBUG(288, *YYCURSOR); ++YYCURSOR; @@ -3976,7 +3980,7 @@ { return T_INC; } -#line 3980 "Zend/zend_language_scanner.c" +#line 3984 "Zend/zend_language_scanner.c" yy290: YYDEBUG(290, *YYCURSOR); yych = *++YYCURSOR; @@ -3999,7 +4003,7 @@ { return T_LIST; } -#line 4003 "Zend/zend_language_scanner.c" +#line 4007 "Zend/zend_language_scanner.c" yy294: YYDEBUG(294, *YYCURSOR); ++YYCURSOR; @@ -4010,7 +4014,7 @@ { return T_IS_EQUAL; } -#line 4014 "Zend/zend_language_scanner.c" +#line 4018 "Zend/zend_language_scanner.c" yy296: YYDEBUG(296, *YYCURSOR); ++YYCURSOR; @@ -4020,7 +4024,7 @@ { return T_DOUBLE_ARROW; } -#line 4024 "Zend/zend_language_scanner.c" +#line 4028 "Zend/zend_language_scanner.c" yy298: YYDEBUG(298, *YYCURSOR); ++YYCURSOR; @@ -4030,7 +4034,7 @@ { return T_IS_IDENTICAL; } -#line 4034 "Zend/zend_language_scanner.c" +#line 4038 "Zend/zend_language_scanner.c" yy300: YYDEBUG(300, *YYCURSOR); yych = *++YYCURSOR; @@ -4160,7 +4164,7 @@ } YYDEBUG(319, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1690 "Zend/zend_language_scanner.l" +#line 1694 "Zend/zend_language_scanner.l" { if (CG(current_namespace)) { *zendlval = *CG(current_namespace); @@ -4170,7 +4174,7 @@ } return T_NS_C; } -#line 4174 "Zend/zend_language_scanner.c" +#line 4178 "Zend/zend_language_scanner.c" yy320: YYDEBUG(320, *YYCURSOR); yych = *++YYCURSOR; @@ -4190,7 +4194,7 @@ } YYDEBUG(324, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1663 "Zend/zend_language_scanner.l" +#line 1667 "Zend/zend_language_scanner.l" { char *filename = zend_get_compiled_filename(TSRMLS_C); const size_t filename_len = strlen(filename); @@ -4217,7 +4221,7 @@ zendlval->type = IS_STRING; return T_DIR; } -#line 4221 "Zend/zend_language_scanner.c" +#line 4225 "Zend/zend_language_scanner.c" yy325: YYDEBUG(325, *YYCURSOR); yych = *++YYCURSOR; @@ -4242,13 +4246,13 @@ } YYDEBUG(330, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1645 "Zend/zend_language_scanner.l" +#line 1649 "Zend/zend_language_scanner.l" { zendlval->value.lval = CG(zend_lineno); zendlval->type = IS_LONG; return T_LINE; } -#line 4252 "Zend/zend_language_scanner.c" +#line 4256 "Zend/zend_language_scanner.c" yy331: YYDEBUG(331, *YYCURSOR); yych = *++YYCURSOR; @@ -4283,7 +4287,7 @@ } YYDEBUG(338, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1624 "Zend/zend_language_scanner.l" +#line 1628 "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; @@ -4304,7 +4308,7 @@ zendlval->type = IS_STRING; return T_METHOD_C; } -#line 4308 "Zend/zend_language_scanner.c" +#line 4312 "Zend/zend_language_scanner.c" yy339: YYDEBUG(339, *YYCURSOR); yych = *++YYCURSOR; @@ -4355,7 +4359,7 @@ } YYDEBUG(349, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1608 "Zend/zend_language_scanner.l" +#line 1612 "Zend/zend_language_scanner.l" { const char *func_name = NULL; @@ -4371,7 +4375,7 @@ zendlval->type = IS_STRING; return T_FUNC_C; } -#line 4375 "Zend/zend_language_scanner.c" +#line 4379 "Zend/zend_language_scanner.c" yy350: YYDEBUG(350, *YYCURSOR); yych = *++YYCURSOR; @@ -4391,7 +4395,7 @@ } YYDEBUG(354, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1651 "Zend/zend_language_scanner.l" +#line 1655 "Zend/zend_language_scanner.l" { char *filename = zend_get_compiled_filename(TSRMLS_C); @@ -4403,7 +4407,7 @@ zendlval->type = IS_STRING; return T_FILE; } -#line 4407 "Zend/zend_language_scanner.c" +#line 4411 "Zend/zend_language_scanner.c" yy355: YYDEBUG(355, *YYCURSOR); yych = *++YYCURSOR; @@ -4433,7 +4437,7 @@ } YYDEBUG(361, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1588 "Zend/zend_language_scanner.l" +#line 1592 "Zend/zend_language_scanner.l" { const char *trait_name = NULL; @@ -4453,7 +4457,7 @@ return T_TRAIT_C; } -#line 4457 "Zend/zend_language_scanner.c" +#line 4461 "Zend/zend_language_scanner.c" yy362: YYDEBUG(362, *YYCURSOR); yych = *++YYCURSOR; @@ -4483,7 +4487,7 @@ } YYDEBUG(368, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1561 "Zend/zend_language_scanner.l" +#line 1565 "Zend/zend_language_scanner.l" { const char *class_name = NULL; @@ -4510,7 +4514,7 @@ } return T_CLASS_C; } -#line 4514 "Zend/zend_language_scanner.c" +#line 4518 "Zend/zend_language_scanner.c" yy369: YYDEBUG(369, *YYCURSOR); yych = *++YYCURSOR; @@ -4576,7 +4580,7 @@ { return T_HALT_COMPILER; } -#line 4580 "Zend/zend_language_scanner.c" +#line 4584 "Zend/zend_language_scanner.c" yy382: YYDEBUG(382, *YYCURSOR); yych = *++YYCURSOR; @@ -4600,7 +4604,7 @@ { return T_USE; } -#line 4604 "Zend/zend_language_scanner.c" +#line 4608 "Zend/zend_language_scanner.c" yy386: YYDEBUG(386, *YYCURSOR); yych = *++YYCURSOR; @@ -4623,7 +4627,7 @@ { return T_UNSET; } -#line 4627 "Zend/zend_language_scanner.c" +#line 4631 "Zend/zend_language_scanner.c" yy390: YYDEBUG(390, *YYCURSOR); ++YYCURSOR; @@ -4799,7 +4803,7 @@ { return T_INT_CAST; } -#line 4803 "Zend/zend_language_scanner.c" +#line 4807 "Zend/zend_language_scanner.c" yy408: YYDEBUG(408, *YYCURSOR); yych = *++YYCURSOR; @@ -4847,7 +4851,7 @@ { return T_DOUBLE_CAST; } -#line 4851 "Zend/zend_language_scanner.c" +#line 4855 "Zend/zend_language_scanner.c" yy417: YYDEBUG(417, *YYCURSOR); yych = *++YYCURSOR; @@ -4921,7 +4925,7 @@ { return T_STRING_CAST; } -#line 4925 "Zend/zend_language_scanner.c" +#line 4929 "Zend/zend_language_scanner.c" yy431: YYDEBUG(431, *YYCURSOR); yych = *++YYCURSOR; @@ -4958,7 +4962,7 @@ { return T_ARRAY_CAST; } -#line 4962 "Zend/zend_language_scanner.c" +#line 4966 "Zend/zend_language_scanner.c" yy438: YYDEBUG(438, *YYCURSOR); yych = *++YYCURSOR; @@ -5000,7 +5004,7 @@ { return T_OBJECT_CAST; } -#line 5004 "Zend/zend_language_scanner.c" +#line 5008 "Zend/zend_language_scanner.c" yy446: YYDEBUG(446, *YYCURSOR); yych = *++YYCURSOR; @@ -5045,7 +5049,7 @@ { return T_BOOL_CAST; } -#line 5049 "Zend/zend_language_scanner.c" +#line 5053 "Zend/zend_language_scanner.c" yy454: YYDEBUG(454, *YYCURSOR); yych = *++YYCURSOR; @@ -5109,7 +5113,7 @@ { return T_UNSET_CAST; } -#line 5113 "Zend/zend_language_scanner.c" +#line 5117 "Zend/zend_language_scanner.c" yy466: YYDEBUG(466, *YYCURSOR); yych = *++YYCURSOR; @@ -5127,7 +5131,7 @@ { return T_VAR; } -#line 5131 "Zend/zend_language_scanner.c" +#line 5135 "Zend/zend_language_scanner.c" yy469: YYDEBUG(469, *YYCURSOR); yych = *++YYCURSOR; @@ -5151,7 +5155,7 @@ { return T_NEW; } -#line 5155 "Zend/zend_language_scanner.c" +#line 5159 "Zend/zend_language_scanner.c" yy473: YYDEBUG(473, *YYCURSOR); yych = *++YYCURSOR; @@ -5194,7 +5198,7 @@ { return T_NAMESPACE; } -#line 5198 "Zend/zend_language_scanner.c" +#line 5202 "Zend/zend_language_scanner.c" yy481: YYDEBUG(481, *YYCURSOR); ++YYCURSOR; @@ -5204,7 +5208,7 @@ { return T_PAAMAYIM_NEKUDOTAYIM; } -#line 5208 "Zend/zend_language_scanner.c" +#line 5212 "Zend/zend_language_scanner.c" yy483: YYDEBUG(483, *YYCURSOR); ++YYCURSOR; @@ -5230,7 +5234,7 @@ { return T_MINUS_EQUAL; } -#line 5234 "Zend/zend_language_scanner.c" +#line 5238 "Zend/zend_language_scanner.c" yy487: YYDEBUG(487, *YYCURSOR); ++YYCURSOR; @@ -5240,7 +5244,7 @@ { return T_DEC; } -#line 5244 "Zend/zend_language_scanner.c" +#line 5248 "Zend/zend_language_scanner.c" yy489: YYDEBUG(489, *YYCURSOR); ++YYCURSOR; @@ -5251,7 +5255,7 @@ yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); return T_OBJECT_OPERATOR; } -#line 5255 "Zend/zend_language_scanner.c" +#line 5259 "Zend/zend_language_scanner.c" yy491: YYDEBUG(491, *YYCURSOR); yych = *++YYCURSOR; @@ -5300,7 +5304,7 @@ { return T_PUBLIC; } -#line 5304 "Zend/zend_language_scanner.c" +#line 5308 "Zend/zend_language_scanner.c" yy498: YYDEBUG(498, *YYCURSOR); yych = *++YYCURSOR; @@ -5359,7 +5363,7 @@ { return T_PROTECTED; } -#line 5363 "Zend/zend_language_scanner.c" +#line 5367 "Zend/zend_language_scanner.c" yy507: YYDEBUG(507, *YYCURSOR); yych = *++YYCURSOR; @@ -5393,7 +5397,7 @@ { return T_PRIVATE; } -#line 5397 "Zend/zend_language_scanner.c" +#line 5401 "Zend/zend_language_scanner.c" yy513: YYDEBUG(513, *YYCURSOR); ++YYCURSOR; @@ -5406,7 +5410,7 @@ { return T_PRINT; } -#line 5410 "Zend/zend_language_scanner.c" +#line 5414 "Zend/zend_language_scanner.c" yy515: YYDEBUG(515, *YYCURSOR); yych = *++YYCURSOR; @@ -5435,7 +5439,7 @@ { return T_GOTO; } -#line 5439 "Zend/zend_language_scanner.c" +#line 5443 "Zend/zend_language_scanner.c" yy520: YYDEBUG(520, *YYCURSOR); yych = *++YYCURSOR; @@ -5463,7 +5467,7 @@ { return T_GLOBAL; } -#line 5467 "Zend/zend_language_scanner.c" +#line 5471 "Zend/zend_language_scanner.c" yy525: YYDEBUG(525, *YYCURSOR); yych = *++YYCURSOR; @@ -5504,7 +5508,7 @@ { return T_BREAK; } -#line 5508 "Zend/zend_language_scanner.c" +#line 5512 "Zend/zend_language_scanner.c" yy533: YYDEBUG(533, *YYCURSOR); yych = *++YYCURSOR; @@ -5548,7 +5552,7 @@ { return T_SWITCH; } -#line 5552 "Zend/zend_language_scanner.c" +#line 5556 "Zend/zend_language_scanner.c" yy541: YYDEBUG(541, *YYCURSOR); yych = *++YYCURSOR; @@ -5576,7 +5580,7 @@ { return T_STATIC; } -#line 5580 "Zend/zend_language_scanner.c" +#line 5584 "Zend/zend_language_scanner.c" yy546: YYDEBUG(546, *YYCURSOR); yych = *++YYCURSOR; @@ -5607,7 +5611,7 @@ { return T_AS; } -#line 5611 "Zend/zend_language_scanner.c" +#line 5615 "Zend/zend_language_scanner.c" yy551: YYDEBUG(551, *YYCURSOR); yych = *++YYCURSOR; @@ -5630,7 +5634,7 @@ { return T_ARRAY; } -#line 5634 "Zend/zend_language_scanner.c" +#line 5638 "Zend/zend_language_scanner.c" yy555: YYDEBUG(555, *YYCURSOR); ++YYCURSOR; @@ -5643,7 +5647,7 @@ { return T_LOGICAL_AND; } -#line 5647 "Zend/zend_language_scanner.c" +#line 5651 "Zend/zend_language_scanner.c" yy557: YYDEBUG(557, *YYCURSOR); yych = *++YYCURSOR; @@ -5681,7 +5685,7 @@ { return T_ABSTRACT; } -#line 5685 "Zend/zend_language_scanner.c" +#line 5689 "Zend/zend_language_scanner.c" yy564: YYDEBUG(564, *YYCURSOR); yych = *++YYCURSOR; @@ -5709,7 +5713,7 @@ { return T_WHILE; } -#line 5713 "Zend/zend_language_scanner.c" +#line 5717 "Zend/zend_language_scanner.c" yy569: YYDEBUG(569, *YYCURSOR); ++YYCURSOR; @@ -5722,7 +5726,7 @@ { return T_IF; } -#line 5726 "Zend/zend_language_scanner.c" +#line 5730 "Zend/zend_language_scanner.c" yy571: YYDEBUG(571, *YYCURSOR); yych = *++YYCURSOR; @@ -5778,7 +5782,7 @@ { return T_ISSET; } -#line 5782 "Zend/zend_language_scanner.c" +#line 5786 "Zend/zend_language_scanner.c" yy578: YYDEBUG(578, *YYCURSOR); yych = *++YYCURSOR; @@ -5836,7 +5840,7 @@ { return T_INCLUDE; } -#line 5840 "Zend/zend_language_scanner.c" +#line 5844 "Zend/zend_language_scanner.c" yy586: YYDEBUG(586, *YYCURSOR); yych = *++YYCURSOR; @@ -5869,7 +5873,7 @@ { return T_INCLUDE_ONCE; } -#line 5873 "Zend/zend_language_scanner.c" +#line 5877 "Zend/zend_language_scanner.c" yy592: YYDEBUG(592, *YYCURSOR); yych = *++YYCURSOR; @@ -5907,7 +5911,7 @@ { return T_INTERFACE; } -#line 5911 "Zend/zend_language_scanner.c" +#line 5915 "Zend/zend_language_scanner.c" yy599: YYDEBUG(599, *YYCURSOR); yych = *++YYCURSOR; @@ -5961,7 +5965,7 @@ { return T_INSTEADOF; } -#line 5965 "Zend/zend_language_scanner.c" +#line 5969 "Zend/zend_language_scanner.c" yy607: YYDEBUG(607, *YYCURSOR); yych = *++YYCURSOR; @@ -5994,7 +5998,7 @@ { return T_INSTANCEOF; } -#line 5998 "Zend/zend_language_scanner.c" +#line 6002 "Zend/zend_language_scanner.c" yy613: YYDEBUG(613, *YYCURSOR); yych = *++YYCURSOR; @@ -6042,7 +6046,7 @@ { return T_IMPLEMENTS; } -#line 6046 "Zend/zend_language_scanner.c" +#line 6050 "Zend/zend_language_scanner.c" yy622: YYDEBUG(622, *YYCURSOR); yych = *++YYCURSOR; @@ -6074,7 +6078,7 @@ { return T_TRY; } -#line 6078 "Zend/zend_language_scanner.c" +#line 6082 "Zend/zend_language_scanner.c" yy626: YYDEBUG(626, *YYCURSOR); yych = *++YYCURSOR; @@ -6097,7 +6101,7 @@ { return T_TRAIT; } -#line 6101 "Zend/zend_language_scanner.c" +#line 6105 "Zend/zend_language_scanner.c" yy630: YYDEBUG(630, *YYCURSOR); yych = *++YYCURSOR; @@ -6120,7 +6124,7 @@ { return T_THROW; } -#line 6124 "Zend/zend_language_scanner.c" +#line 6128 "Zend/zend_language_scanner.c" yy634: YYDEBUG(634, *YYCURSOR); yych = *++YYCURSOR; @@ -6185,7 +6189,7 @@ { return T_REQUIRE; } -#line 6189 "Zend/zend_language_scanner.c" +#line 6193 "Zend/zend_language_scanner.c" yy642: YYDEBUG(642, *YYCURSOR); yych = *++YYCURSOR; @@ -6218,7 +6222,7 @@ { return T_REQUIRE_ONCE; } -#line 6222 "Zend/zend_language_scanner.c" +#line 6226 "Zend/zend_language_scanner.c" yy648: YYDEBUG(648, *YYCURSOR); yych = *++YYCURSOR; @@ -6241,7 +6245,7 @@ { return T_RETURN; } -#line 6245 "Zend/zend_language_scanner.c" +#line 6249 "Zend/zend_language_scanner.c" yy652: YYDEBUG(652, *YYCURSOR); yych = *++YYCURSOR; @@ -6335,7 +6339,7 @@ { return T_CONTINUE; } -#line 6339 "Zend/zend_language_scanner.c" +#line 6343 "Zend/zend_language_scanner.c" yy663: YYDEBUG(663, *YYCURSOR); ++YYCURSOR; @@ -6348,7 +6352,7 @@ { return T_CONST; } -#line 6352 "Zend/zend_language_scanner.c" +#line 6356 "Zend/zend_language_scanner.c" yy665: YYDEBUG(665, *YYCURSOR); yych = *++YYCURSOR; @@ -6377,7 +6381,7 @@ { return T_CLONE; } -#line 6381 "Zend/zend_language_scanner.c" +#line 6385 "Zend/zend_language_scanner.c" yy670: YYDEBUG(670, *YYCURSOR); yych = *++YYCURSOR; @@ -6395,7 +6399,7 @@ { return T_CLASS; } -#line 6399 "Zend/zend_language_scanner.c" +#line 6403 "Zend/zend_language_scanner.c" yy673: YYDEBUG(673, *YYCURSOR); yych = *++YYCURSOR; @@ -6445,7 +6449,7 @@ { return T_CALLABLE; } -#line 6449 "Zend/zend_language_scanner.c" +#line 6453 "Zend/zend_language_scanner.c" yy682: YYDEBUG(682, *YYCURSOR); ++YYCURSOR; @@ -6458,7 +6462,7 @@ { return T_CASE; } -#line 6462 "Zend/zend_language_scanner.c" +#line 6466 "Zend/zend_language_scanner.c" yy684: YYDEBUG(684, *YYCURSOR); yych = *++YYCURSOR; @@ -6476,7 +6480,7 @@ { return T_CATCH; } -#line 6480 "Zend/zend_language_scanner.c" +#line 6484 "Zend/zend_language_scanner.c" yy687: YYDEBUG(687, *YYCURSOR); yych = *++YYCURSOR; @@ -6531,7 +6535,7 @@ { return T_FUNCTION; } -#line 6535 "Zend/zend_language_scanner.c" +#line 6539 "Zend/zend_language_scanner.c" yy697: YYDEBUG(697, *YYCURSOR); ++YYCURSOR; @@ -6559,7 +6563,7 @@ { return T_FOR; } -#line 6563 "Zend/zend_language_scanner.c" +#line 6567 "Zend/zend_language_scanner.c" yy699: YYDEBUG(699, *YYCURSOR); yych = *++YYCURSOR; @@ -6587,7 +6591,7 @@ { return T_FOREACH; } -#line 6591 "Zend/zend_language_scanner.c" +#line 6595 "Zend/zend_language_scanner.c" yy704: YYDEBUG(704, *YYCURSOR); yych = *++YYCURSOR; @@ -6610,7 +6614,7 @@ { return T_FINAL; } -#line 6614 "Zend/zend_language_scanner.c" +#line 6618 "Zend/zend_language_scanner.c" yy708: YYDEBUG(708, *YYCURSOR); yych = *++YYCURSOR; @@ -6645,7 +6649,7 @@ { return T_DO; } -#line 6649 "Zend/zend_language_scanner.c" +#line 6653 "Zend/zend_language_scanner.c" yy712: YYDEBUG(712, *YYCURSOR); ++YYCURSOR; @@ -6658,7 +6662,7 @@ { return T_EXIT; } -#line 6662 "Zend/zend_language_scanner.c" +#line 6666 "Zend/zend_language_scanner.c" yy714: YYDEBUG(714, *YYCURSOR); yych = *++YYCURSOR; @@ -6697,7 +6701,7 @@ { return T_DEFAULT; } -#line 6701 "Zend/zend_language_scanner.c" +#line 6705 "Zend/zend_language_scanner.c" yy721: YYDEBUG(721, *YYCURSOR); yych = *++YYCURSOR; @@ -6725,7 +6729,7 @@ { return T_DECLARE; } -#line 6729 "Zend/zend_language_scanner.c" +#line 6733 "Zend/zend_language_scanner.c" yy726: YYDEBUG(726, *YYCURSOR); yych = *++YYCURSOR; @@ -6809,7 +6813,7 @@ { return T_EXTENDS; } -#line 6813 "Zend/zend_language_scanner.c" +#line 6817 "Zend/zend_language_scanner.c" yy739: YYDEBUG(739, *YYCURSOR); ++YYCURSOR; @@ -6822,7 +6826,7 @@ { return T_EXIT; } -#line 6826 "Zend/zend_language_scanner.c" +#line 6830 "Zend/zend_language_scanner.c" yy741: YYDEBUG(741, *YYCURSOR); yych = *++YYCURSOR; @@ -6840,7 +6844,7 @@ { return T_EVAL; } -#line 6844 "Zend/zend_language_scanner.c" +#line 6848 "Zend/zend_language_scanner.c" yy744: YYDEBUG(744, *YYCURSOR); yych = *++YYCURSOR; @@ -6914,7 +6918,7 @@ { return T_ENDWHILE; } -#line 6918 "Zend/zend_language_scanner.c" +#line 6922 "Zend/zend_language_scanner.c" yy755: YYDEBUG(755, *YYCURSOR); yych = *++YYCURSOR; @@ -6947,7 +6951,7 @@ { return T_ENDSWITCH; } -#line 6951 "Zend/zend_language_scanner.c" +#line 6955 "Zend/zend_language_scanner.c" yy761: YYDEBUG(761, *YYCURSOR); ++YYCURSOR; @@ -6960,7 +6964,7 @@ { return T_ENDIF; } -#line 6964 "Zend/zend_language_scanner.c" +#line 6968 "Zend/zend_language_scanner.c" yy763: YYDEBUG(763, *YYCURSOR); yych = *++YYCURSOR; @@ -6993,7 +6997,7 @@ { return T_ENDFOR; } -#line 6997 "Zend/zend_language_scanner.c" +#line 7001 "Zend/zend_language_scanner.c" yy766: YYDEBUG(766, *YYCURSOR); yych = *++YYCURSOR; @@ -7021,7 +7025,7 @@ { return T_ENDFOREACH; } -#line 7025 "Zend/zend_language_scanner.c" +#line 7029 "Zend/zend_language_scanner.c" yy771: YYDEBUG(771, *YYCURSOR); yych = *++YYCURSOR; @@ -7059,7 +7063,7 @@ { return T_ENDDECLARE; } -#line 7063 "Zend/zend_language_scanner.c" +#line 7067 "Zend/zend_language_scanner.c" yy778: YYDEBUG(778, *YYCURSOR); yych = *++YYCURSOR; @@ -7082,7 +7086,7 @@ { return T_EMPTY; } -#line 7086 "Zend/zend_language_scanner.c" +#line 7090 "Zend/zend_language_scanner.c" yy782: YYDEBUG(782, *YYCURSOR); yych = *++YYCURSOR; @@ -7115,7 +7119,7 @@ { return T_ELSE; } -#line 7119 "Zend/zend_language_scanner.c" +#line 7123 "Zend/zend_language_scanner.c" yy785: YYDEBUG(785, *YYCURSOR); yych = *++YYCURSOR; @@ -7133,7 +7137,7 @@ { return T_ELSEIF; } -#line 7137 "Zend/zend_language_scanner.c" +#line 7141 "Zend/zend_language_scanner.c" yy788: YYDEBUG(788, *YYCURSOR); yych = *++YYCURSOR; @@ -7151,7 +7155,7 @@ { return T_ECHO; } -#line 7155 "Zend/zend_language_scanner.c" +#line 7159 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_LOOKING_FOR_PROPERTY: @@ -7232,7 +7236,7 @@ HANDLE_NEWLINES(yytext, yyleng); return T_WHITESPACE; } -#line 7236 "Zend/zend_language_scanner.c" +#line 7240 "Zend/zend_language_scanner.c" yy795: YYDEBUG(795, *YYCURSOR); ++YYCURSOR; @@ -7246,7 +7250,7 @@ yy_pop_state(TSRMLS_C); goto restart; } -#line 7250 "Zend/zend_language_scanner.c" +#line 7254 "Zend/zend_language_scanner.c" yy797: YYDEBUG(797, *YYCURSOR); ++YYCURSOR; @@ -7262,7 +7266,7 @@ zendlval->type = IS_STRING; return T_STRING; } -#line 7266 "Zend/zend_language_scanner.c" +#line 7270 "Zend/zend_language_scanner.c" yy799: YYDEBUG(799, *YYCURSOR); yych = *++YYCURSOR; @@ -7287,7 +7291,7 @@ { return T_OBJECT_OPERATOR; } -#line 7291 "Zend/zend_language_scanner.c" +#line 7295 "Zend/zend_language_scanner.c" yy804: YYDEBUG(804, *YYCURSOR); ++YYCURSOR; @@ -7365,7 +7369,7 @@ yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); return T_STRING_VARNAME; } -#line 7369 "Zend/zend_language_scanner.c" +#line 7373 "Zend/zend_language_scanner.c" yy810: YYDEBUG(810, *YYCURSOR); ++YYCURSOR; @@ -7378,7 +7382,7 @@ yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); goto restart; } -#line 7382 "Zend/zend_language_scanner.c" +#line 7386 "Zend/zend_language_scanner.c" yy812: YYDEBUG(812, *YYCURSOR); ++YYCURSOR; @@ -7400,7 +7404,7 @@ ++YYCURSOR; YYDEBUG(817, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2340 "Zend/zend_language_scanner.l" +#line 2344 "Zend/zend_language_scanner.l" { int newline = 0; @@ -7455,7 +7459,7 @@ HANDLE_NEWLINES(yytext, yyleng - newline); return T_ENCAPSED_AND_WHITESPACE; } -#line 7459 "Zend/zend_language_scanner.c" +#line 7463 "Zend/zend_language_scanner.c" /* *********************************** */ yyc_ST_VAR_OFFSET: { @@ -7562,7 +7566,7 @@ yy821: YYDEBUG(821, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1536 "Zend/zend_language_scanner.l" +#line 1540 "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); @@ -7574,7 +7578,7 @@ } return T_NUM_STRING; } -#line 7578 "Zend/zend_language_scanner.c" +#line 7582 "Zend/zend_language_scanner.c" yy822: YYDEBUG(822, *YYCURSOR); yych = *++YYCURSOR; @@ -7594,23 +7598,23 @@ yy824: YYDEBUG(824, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1868 "Zend/zend_language_scanner.l" +#line 1872 "Zend/zend_language_scanner.l" { /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */ return yytext[0]; } -#line 7603 "Zend/zend_language_scanner.c" +#line 7607 "Zend/zend_language_scanner.c" yy825: YYDEBUG(825, *YYCURSOR); ++YYCURSOR; YYDEBUG(826, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1863 "Zend/zend_language_scanner.l" +#line 1867 "Zend/zend_language_scanner.l" { yy_pop_state(TSRMLS_C); return ']'; } -#line 7614 "Zend/zend_language_scanner.c" +#line 7618 "Zend/zend_language_scanner.c" yy827: YYDEBUG(827, *YYCURSOR); yych = *++YYCURSOR; @@ -7620,14 +7624,14 @@ ++YYCURSOR; YYDEBUG(829, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1873 "Zend/zend_language_scanner.l" +#line 1877 "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 7631 "Zend/zend_language_scanner.c" +#line 7635 "Zend/zend_language_scanner.c" yy830: YYDEBUG(830, *YYCURSOR); ++YYCURSOR; @@ -7636,19 +7640,19 @@ yy831: YYDEBUG(831, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1880 "Zend/zend_language_scanner.l" +#line 1884 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); zendlval->type = IS_STRING; return T_STRING; } -#line 7646 "Zend/zend_language_scanner.c" +#line 7650 "Zend/zend_language_scanner.c" yy832: YYDEBUG(832, *YYCURSOR); ++YYCURSOR; YYDEBUG(833, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2396 "Zend/zend_language_scanner.l" +#line 2400 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -7657,7 +7661,7 @@ zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); goto restart; } -#line 7661 "Zend/zend_language_scanner.c" +#line 7665 "Zend/zend_language_scanner.c" yy834: YYDEBUG(834, *YYCURSOR); ++YYCURSOR; @@ -7693,13 +7697,13 @@ yy838: YYDEBUG(838, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1857 "Zend/zend_language_scanner.l" +#line 1861 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; return T_VARIABLE; } -#line 7703 "Zend/zend_language_scanner.c" +#line 7707 "Zend/zend_language_scanner.c" yy839: YYDEBUG(839, *YYCURSOR); ++YYCURSOR; @@ -7739,14 +7743,14 @@ yy846: YYDEBUG(846, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1548 "Zend/zend_language_scanner.l" +#line 1552 "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 7750 "Zend/zend_language_scanner.c" +#line 7754 "Zend/zend_language_scanner.c" yy847: YYDEBUG(847, *YYCURSOR); ++YYCURSOR; @@ -7769,6 +7773,6 @@ goto yy846; } } -#line 2405 "Zend/zend_language_scanner.l" +#line 2409 "Zend/zend_language_scanner.l" } Modified: php/php-src/branches/PHP_5_4/Zend/zend_language_scanner.l =================================================================== --- php/php-src/branches/PHP_5_4/Zend/zend_language_scanner.l 2012-02-20 18:18:50 UTC (rev 323393) +++ php/php-src/branches/PHP_5_4/Zend/zend_language_scanner.l 2012-02-20 18:28:57 UTC (rev 323394) @@ -1523,7 +1523,11 @@ } if (len < SIZEOF_LONG * 2 || (len == SIZEOF_LONG * 2 && *hex <= '7')) { - zendlval->value.lval = strtol(hex, NULL, 16); + if (len == 0) { + zendlval->value.lval = 0; + } else { + zendlval->value.lval = strtol(hex, NULL, 16); + } zendlval->type = IS_LONG; return T_LNUMBER; } else { Modified: php/php-src/branches/PHP_5_4/Zend/zend_language_scanner_defs.h =================================================================== --- php/php-src/branches/PHP_5_4/Zend/zend_language_scanner_defs.h 2012-02-20 18:18:50 UTC (rev 323393) +++ php/php-src/branches/PHP_5_4/Zend/zend_language_scanner_defs.h 2012-02-20 18:28:57 UTC (rev 323394) @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Mon Jan 16 14:45:55 2012 */ +/* Generated by re2c 0.13.5 on Wed Feb 15 17:48:20 2012 */ #line 3 "Zend/zend_language_scanner_defs.h" enum YYCONDTYPE { Added: php/php-src/trunk/Zend/tests/bug61095.phpt =================================================================== --- php/php-src/trunk/Zend/tests/bug61095.phpt (rev 0) +++ php/php-src/trunk/Zend/tests/bug61095.phpt 2012-02-20 18:28:57 UTC (rev 323394) @@ -0,0 +1,9 @@ +--TEST-- +Bug #61095 (Lexing 0x00*+ incorectly) +--FILE-- + +--EXPECT-- +2 Modified: php/php-src/trunk/Zend/zend_language_scanner.c =================================================================== --- php/php-src/trunk/Zend/zend_language_scanner.c 2012-02-20 18:18:50 UTC (rev 323393) +++ php/php-src/trunk/Zend/zend_language_scanner.c 2012-02-20 18:28:57 UTC (rev 323394) @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Tue Jan 17 11:54:12 2012 */ +/* Generated by re2c 0.13.5 on Wed Feb 15 17:27:19 2012 */ #line 1 "Zend/zend_language_scanner.l" /* +----------------------------------------------------------------------+ @@ -1090,7 +1090,7 @@ yy3: YYDEBUG(3, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1775 "Zend/zend_language_scanner.l" +#line 1779 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -1168,7 +1168,7 @@ yy6: YYDEBUG(6, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1763 "Zend/zend_language_scanner.l" +#line 1767 "Zend/zend_language_scanner.l" { if (CG(short_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1187,7 +1187,7 @@ if ((yych = *YYCURSOR) == '=') goto yy43; YYDEBUG(8, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1740 "Zend/zend_language_scanner.l" +#line 1744 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1385,7 +1385,7 @@ ++YYCURSOR; YYDEBUG(38, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1700 "Zend/zend_language_scanner.l" +#line 1704 "Zend/zend_language_scanner.l" { YYCTYPE *bracket = (YYCTYPE*)zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1)); @@ -1429,7 +1429,7 @@ ++YYCURSOR; YYDEBUG(44, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1718 "Zend/zend_language_scanner.l" +#line 1722 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1447,7 +1447,7 @@ ++YYCURSOR; YYDEBUG(46, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1731 "Zend/zend_language_scanner.l" +#line 1735 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -1482,7 +1482,7 @@ yy51: YYDEBUG(51, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1753 "Zend/zend_language_scanner.l" +#line 1757 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -1562,7 +1562,7 @@ yy56: YYDEBUG(56, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2226 "Zend/zend_language_scanner.l" +#line 2230 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -1614,7 +1614,7 @@ ++YYCURSOR; YYDEBUG(59, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2170 "Zend/zend_language_scanner.l" +#line 2174 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '`'; @@ -1629,7 +1629,7 @@ ++YYCURSOR; YYDEBUG(62, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2157 "Zend/zend_language_scanner.l" +#line 2161 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); @@ -1652,7 +1652,7 @@ yy65: YYDEBUG(65, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1857 "Zend/zend_language_scanner.l" +#line 1861 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; @@ -1683,7 +1683,7 @@ ++YYCURSOR; YYDEBUG(71, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1849 "Zend/zend_language_scanner.l" +#line 1853 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -1709,7 +1709,7 @@ ++YYCURSOR; YYDEBUG(74, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1839 "Zend/zend_language_scanner.l" +#line 1843 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -1785,7 +1785,7 @@ yy78: YYDEBUG(78, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2176 "Zend/zend_language_scanner.l" +#line 2180 "Zend/zend_language_scanner.l" { if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) { YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1; @@ -1845,7 +1845,7 @@ ++YYCURSOR; YYDEBUG(81, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2165 "Zend/zend_language_scanner.l" +#line 2169 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '"'; @@ -1860,7 +1860,7 @@ ++YYCURSOR; YYDEBUG(84, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2157 "Zend/zend_language_scanner.l" +#line 2161 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); @@ -1883,7 +1883,7 @@ yy87: YYDEBUG(87, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1857 "Zend/zend_language_scanner.l" +#line 1861 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; @@ -1914,7 +1914,7 @@ ++YYCURSOR; YYDEBUG(93, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1849 "Zend/zend_language_scanner.l" +#line 1853 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -1940,7 +1940,7 @@ ++YYCURSOR; YYDEBUG(96, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1839 "Zend/zend_language_scanner.l" +#line 1843 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -1959,7 +1959,7 @@ ++YYCURSOR; YYDEBUG(100, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2144 "Zend/zend_language_scanner.l" +#line 2148 "Zend/zend_language_scanner.l" { YYCURSOR += CG(heredoc_len) - 1; yyleng = CG(heredoc_len); @@ -2033,7 +2033,7 @@ yy104: YYDEBUG(104, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2268 "Zend/zend_language_scanner.l" +#line 2272 "Zend/zend_language_scanner.l" { int newline = 0; @@ -2119,7 +2119,7 @@ ++YYCURSOR; YYDEBUG(108, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2157 "Zend/zend_language_scanner.l" +#line 2161 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); @@ -2142,7 +2142,7 @@ yy111: YYDEBUG(111, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1857 "Zend/zend_language_scanner.l" +#line 1861 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; @@ -2173,7 +2173,7 @@ ++YYCURSOR; YYDEBUG(117, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1849 "Zend/zend_language_scanner.l" +#line 1853 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -2199,7 +2199,7 @@ ++YYCURSOR; YYDEBUG(120, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1839 "Zend/zend_language_scanner.l" +#line 1843 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -2388,7 +2388,7 @@ yy124: YYDEBUG(124, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1880 "Zend/zend_language_scanner.l" +#line 1884 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); zendlval->type = IS_STRING; @@ -2980,7 +2980,7 @@ yy176: YYDEBUG(176, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1887 "Zend/zend_language_scanner.l" +#line 1891 "Zend/zend_language_scanner.l" { while (YYCURSOR < YYLIMIT) { switch (*YYCURSOR++) { @@ -3021,7 +3021,7 @@ yy178: YYDEBUG(178, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1978 "Zend/zend_language_scanner.l" +#line 1982 "Zend/zend_language_scanner.l" { register char *s, *t; char *end; @@ -3096,7 +3096,7 @@ yy180: YYDEBUG(180, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2047 "Zend/zend_language_scanner.l" +#line 2051 "Zend/zend_language_scanner.l" { int bprefix = (yytext[0] != '"') ? 1 : 0; @@ -3143,7 +3143,7 @@ ++YYCURSOR; YYDEBUG(182, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2138 "Zend/zend_language_scanner.l" +#line 2142 "Zend/zend_language_scanner.l" { BEGIN(ST_BACKQUOTE); return '`'; @@ -3154,7 +3154,7 @@ ++YYCURSOR; YYDEBUG(184, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2396 "Zend/zend_language_scanner.l" +#line 2400 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -3190,7 +3190,7 @@ yy189: YYDEBUG(189, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1555 "Zend/zend_language_scanner.l" +#line 1559 "Zend/zend_language_scanner.l" { zendlval->value.dval = zend_strtod(yytext, NULL); zendlval->type = IS_DOUBLE; @@ -3333,7 +3333,11 @@ } if (len < SIZEOF_LONG * 2 || (len == SIZEOF_LONG * 2 && *hex <= '7')) { - zendlval->value.lval = strtol(hex, NULL, 16); + if (len == 0) { + zendlval->value.lval = 0; + } else { + zendlval->value.lval = strtol(hex, NULL, 16); + } zendlval->type = IS_LONG; return T_LNUMBER; } else { @@ -3342,7 +3346,7 @@ return T_DNUMBER; } } -#line 3346 "Zend/zend_language_scanner.c" +#line 3350 "Zend/zend_language_scanner.c" yy205: YYDEBUG(205, *YYCURSOR); ++YYCURSOR; @@ -3351,7 +3355,7 @@ yy206: YYDEBUG(206, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1955 "Zend/zend_language_scanner.l" +#line 1959 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -3359,7 +3363,7 @@ BEGIN(INITIAL); return T_CLOSE_TAG; /* implicit ';' at php-end tag */ } -#line 3363 "Zend/zend_language_scanner.c" +#line 3367 "Zend/zend_language_scanner.c" yy207: YYDEBUG(207, *YYCURSOR); yych = *++YYCURSOR; @@ -3393,13 +3397,13 @@ yy211: YYDEBUG(211, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1857 "Zend/zend_language_scanner.l" +#line 1861 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; return T_VARIABLE; } -#line 3403 "Zend/zend_language_scanner.c" +#line 3407 "Zend/zend_language_scanner.c" yy212: YYDEBUG(212, *YYCURSOR); yych = *++YYCURSOR; @@ -3417,7 +3421,7 @@ { return T_LOGICAL_XOR; } -#line 3421 "Zend/zend_language_scanner.c" +#line 3425 "Zend/zend_language_scanner.c" yy215: YYDEBUG(215, *YYCURSOR); ++YYCURSOR; @@ -3430,7 +3434,7 @@ { return T_LOGICAL_OR; } -#line 3434 "Zend/zend_language_scanner.c" +#line 3438 "Zend/zend_language_scanner.c" yy217: YYDEBUG(217, *YYCURSOR); ++YYCURSOR; @@ -3440,7 +3444,7 @@ { return T_XOR_EQUAL; } -#line 3444 "Zend/zend_language_scanner.c" +#line 3448 "Zend/zend_language_scanner.c" yy219: YYDEBUG(219, *YYCURSOR); ++YYCURSOR; @@ -3450,7 +3454,7 @@ { return T_BOOLEAN_OR; } -#line 3454 "Zend/zend_language_scanner.c" +#line 3458 "Zend/zend_language_scanner.c" yy221: YYDEBUG(221, *YYCURSOR); ++YYCURSOR; @@ -3460,7 +3464,7 @@ { return T_OR_EQUAL; } -#line 3464 "Zend/zend_language_scanner.c" +#line 3468 "Zend/zend_language_scanner.c" yy223: YYDEBUG(223, *YYCURSOR); ++YYCURSOR; @@ -3470,7 +3474,7 @@ { return T_BOOLEAN_AND; } -#line 3474 "Zend/zend_language_scanner.c" +#line 3478 "Zend/zend_language_scanner.c" yy225: YYDEBUG(225, *YYCURSOR); ++YYCURSOR; @@ -3480,7 +3484,7 @@ { return T_AND_EQUAL; } -#line 3484 "Zend/zend_language_scanner.c" +#line 3488 "Zend/zend_language_scanner.c" yy227: YYDEBUG(227, *YYCURSOR); ++YYCURSOR; @@ -3489,7 +3493,7 @@ yy228: YYDEBUG(228, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1964 "Zend/zend_language_scanner.l" +#line 1968 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { BEGIN(INITIAL); @@ -3502,7 +3506,7 @@ return yytext[0]; } } -#line 3506 "Zend/zend_language_scanner.c" +#line 3510 "Zend/zend_language_scanner.c" yy229: YYDEBUG(229, *YYCURSOR); ++YYCURSOR; @@ -3512,7 +3516,7 @@ { return T_MOD_EQUAL; } -#line 3516 "Zend/zend_language_scanner.c" +#line 3520 "Zend/zend_language_scanner.c" yy231: YYDEBUG(231, *YYCURSOR); yych = *++YYCURSOR; @@ -3547,7 +3551,7 @@ { return T_CONCAT_EQUAL; } -#line 3551 "Zend/zend_language_scanner.c" +#line 3555 "Zend/zend_language_scanner.c" yy237: YYDEBUG(237, *YYCURSOR); yyaccept = 4; @@ -3556,7 +3560,7 @@ yy238: YYDEBUG(238, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1921 "Zend/zend_language_scanner.l" +#line 1925 "Zend/zend_language_scanner.l" { int doc_com; @@ -3590,7 +3594,7 @@ return T_COMMENT; } -#line 3594 "Zend/zend_language_scanner.c" +#line 3598 "Zend/zend_language_scanner.c" yy239: YYDEBUG(239, *YYCURSOR); yych = *++YYCURSOR; @@ -3604,7 +3608,7 @@ { return T_DIV_EQUAL; } -#line 3608 "Zend/zend_language_scanner.c" +#line 3612 "Zend/zend_language_scanner.c" yy242: YYDEBUG(242, *YYCURSOR); yych = *++YYCURSOR; @@ -3631,7 +3635,7 @@ { return T_MUL_EQUAL; } -#line 3635 "Zend/zend_language_scanner.c" +#line 3639 "Zend/zend_language_scanner.c" yy247: YYDEBUG(247, *YYCURSOR); ++YYCURSOR; @@ -3642,7 +3646,7 @@ { return T_SR; } -#line 3646 "Zend/zend_language_scanner.c" +#line 3650 "Zend/zend_language_scanner.c" yy249: YYDEBUG(249, *YYCURSOR); ++YYCURSOR; @@ -3652,7 +3656,7 @@ { return T_IS_GREATER_OR_EQUAL; } -#line 3656 "Zend/zend_language_scanner.c" +#line 3660 "Zend/zend_language_scanner.c" yy251: YYDEBUG(251, *YYCURSOR); ++YYCURSOR; @@ -3662,7 +3666,7 @@ { return T_SR_EQUAL; } -#line 3666 "Zend/zend_language_scanner.c" +#line 3670 "Zend/zend_language_scanner.c" yy253: YYDEBUG(253, *YYCURSOR); yyaccept = 5; @@ -3677,7 +3681,7 @@ { return T_SL; } -#line 3681 "Zend/zend_language_scanner.c" +#line 3685 "Zend/zend_language_scanner.c" yy255: YYDEBUG(255, *YYCURSOR); yych = *++YYCURSOR; @@ -3693,7 +3697,7 @@ { return T_IS_SMALLER_OR_EQUAL; } -#line 3697 "Zend/zend_language_scanner.c" +#line 3701 "Zend/zend_language_scanner.c" yy258: YYDEBUG(258, *YYCURSOR); ++YYCURSOR; @@ -3704,7 +3708,7 @@ { return T_IS_NOT_EQUAL; } -#line 3708 "Zend/zend_language_scanner.c" +#line 3712 "Zend/zend_language_scanner.c" yy260: YYDEBUG(260, *YYCURSOR); yych = *++YYCURSOR; @@ -3759,7 +3763,7 @@ { return T_SL_EQUAL; } -#line 3763 "Zend/zend_language_scanner.c" +#line 3767 "Zend/zend_language_scanner.c" yy269: YYDEBUG(269, *YYCURSOR); ++YYCURSOR; @@ -3864,7 +3868,7 @@ yy279: YYDEBUG(279, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2089 "Zend/zend_language_scanner.l" +#line 2093 "Zend/zend_language_scanner.l" { char *s; int bprefix = (yytext[0] != '<') ? 1 : 0; @@ -3912,7 +3916,7 @@ return T_START_HEREDOC; } -#line 3916 "Zend/zend_language_scanner.c" +#line 3920 "Zend/zend_language_scanner.c" yy280: YYDEBUG(280, *YYCURSOR); yych = *++YYCURSOR; @@ -3956,7 +3960,7 @@ { return T_IS_NOT_IDENTICAL; } -#line 3960 "Zend/zend_language_scanner.c" +#line 3964 "Zend/zend_language_scanner.c" yy286: YYDEBUG(286, *YYCURSOR); ++YYCURSOR; @@ -3966,7 +3970,7 @@ { return T_PLUS_EQUAL; } -#line 3970 "Zend/zend_language_scanner.c" +#line 3974 "Zend/zend_language_scanner.c" yy288: YYDEBUG(288, *YYCURSOR); ++YYCURSOR; @@ -3976,7 +3980,7 @@ { return T_INC; } -#line 3980 "Zend/zend_language_scanner.c" +#line 3984 "Zend/zend_language_scanner.c" yy290: YYDEBUG(290, *YYCURSOR); yych = *++YYCURSOR; @@ -3999,7 +4003,7 @@ { return T_LIST; } -#line 4003 "Zend/zend_language_scanner.c" +#line 4007 "Zend/zend_language_scanner.c" yy294: YYDEBUG(294, *YYCURSOR); ++YYCURSOR; @@ -4010,7 +4014,7 @@ { return T_IS_EQUAL; } -#line 4014 "Zend/zend_language_scanner.c" +#line 4018 "Zend/zend_language_scanner.c" yy296: YYDEBUG(296, *YYCURSOR); ++YYCURSOR; @@ -4020,7 +4024,7 @@ { return T_DOUBLE_ARROW; } -#line 4024 "Zend/zend_language_scanner.c" +#line 4028 "Zend/zend_language_scanner.c" yy298: YYDEBUG(298, *YYCURSOR); ++YYCURSOR; @@ -4030,7 +4034,7 @@ { return T_IS_IDENTICAL; } -#line 4034 "Zend/zend_language_scanner.c" +#line 4038 "Zend/zend_language_scanner.c" yy300: YYDEBUG(300, *YYCURSOR); yych = *++YYCURSOR; @@ -4160,7 +4164,7 @@ } YYDEBUG(319, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1690 "Zend/zend_language_scanner.l" +#line 1694 "Zend/zend_language_scanner.l" { if (CG(current_namespace)) { *zendlval = *CG(current_namespace); @@ -4170,7 +4174,7 @@ } return T_NS_C; } -#line 4174 "Zend/zend_language_scanner.c" +#line 4178 "Zend/zend_language_scanner.c" yy320: YYDEBUG(320, *YYCURSOR); yych = *++YYCURSOR; @@ -4190,7 +4194,7 @@ } YYDEBUG(324, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1663 "Zend/zend_language_scanner.l" +#line 1667 "Zend/zend_language_scanner.l" { char *filename = zend_get_compiled_filename(TSRMLS_C); const size_t filename_len = strlen(filename); @@ -4217,7 +4221,7 @@ zendlval->type = IS_STRING; return T_DIR; } -#line 4221 "Zend/zend_language_scanner.c" +#line 4225 "Zend/zend_language_scanner.c" yy325: YYDEBUG(325, *YYCURSOR); yych = *++YYCURSOR; @@ -4242,13 +4246,13 @@ } YYDEBUG(330, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1645 "Zend/zend_language_scanner.l" +#line 1649 "Zend/zend_language_scanner.l" { zendlval->value.lval = CG(zend_lineno); zendlval->type = IS_LONG; return T_LINE; } -#line 4252 "Zend/zend_language_scanner.c" +#line 4256 "Zend/zend_language_scanner.c" yy331: YYDEBUG(331, *YYCURSOR); yych = *++YYCURSOR; @@ -4283,7 +4287,7 @@ } YYDEBUG(338, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1624 "Zend/zend_language_scanner.l" +#line 1628 "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; @@ -4304,7 +4308,7 @@ zendlval->type = IS_STRING; return T_METHOD_C; } -#line 4308 "Zend/zend_language_scanner.c" +#line 4312 "Zend/zend_language_scanner.c" yy339: YYDEBUG(339, *YYCURSOR); yych = *++YYCURSOR; @@ -4355,7 +4359,7 @@ } YYDEBUG(349, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1608 "Zend/zend_language_scanner.l" +#line 1612 "Zend/zend_language_scanner.l" { const char *func_name = NULL; @@ -4371,7 +4375,7 @@ zendlval->type = IS_STRING; return T_FUNC_C; } -#line 4375 "Zend/zend_language_scanner.c" +#line 4379 "Zend/zend_language_scanner.c" yy350: YYDEBUG(350, *YYCURSOR); yych = *++YYCURSOR; @@ -4391,7 +4395,7 @@ } YYDEBUG(354, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1651 "Zend/zend_language_scanner.l" +#line 1655 "Zend/zend_language_scanner.l" { char *filename = zend_get_compiled_filename(TSRMLS_C); @@ -4403,7 +4407,7 @@ zendlval->type = IS_STRING; return T_FILE; } -#line 4407 "Zend/zend_language_scanner.c" +#line 4411 "Zend/zend_language_scanner.c" yy355: YYDEBUG(355, *YYCURSOR); yych = *++YYCURSOR; @@ -4433,7 +4437,7 @@ } YYDEBUG(361, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1588 "Zend/zend_language_scanner.l" +#line 1592 "Zend/zend_language_scanner.l" { const char *trait_name = NULL; @@ -4453,7 +4457,7 @@ return T_TRAIT_C; } -#line 4457 "Zend/zend_language_scanner.c" +#line 4461 "Zend/zend_language_scanner.c" yy362: YYDEBUG(362, *YYCURSOR); yych = *++YYCURSOR; @@ -4483,7 +4487,7 @@ } YYDEBUG(368, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1561 "Zend/zend_language_scanner.l" +#line 1565 "Zend/zend_language_scanner.l" { const char *class_name = NULL; @@ -4510,7 +4514,7 @@ } return T_CLASS_C; } -#line 4514 "Zend/zend_language_scanner.c" +#line 4518 "Zend/zend_language_scanner.c" yy369: YYDEBUG(369, *YYCURSOR); yych = *++YYCURSOR; @@ -4576,7 +4580,7 @@ { return T_HALT_COMPILER; } -#line 4580 "Zend/zend_language_scanner.c" +#line 4584 "Zend/zend_language_scanner.c" yy382: YYDEBUG(382, *YYCURSOR); yych = *++YYCURSOR; @@ -4600,7 +4604,7 @@ { return T_USE; } -#line 4604 "Zend/zend_language_scanner.c" +#line 4608 "Zend/zend_language_scanner.c" yy386: YYDEBUG(386, *YYCURSOR); yych = *++YYCURSOR; @@ -4623,7 +4627,7 @@ { return T_UNSET; } -#line 4627 "Zend/zend_language_scanner.c" +#line 4631 "Zend/zend_language_scanner.c" yy390: YYDEBUG(390, *YYCURSOR); ++YYCURSOR; @@ -4799,7 +4803,7 @@ { return T_INT_CAST; } -#line 4803 "Zend/zend_language_scanner.c" +#line 4807 "Zend/zend_language_scanner.c" yy408: YYDEBUG(408, *YYCURSOR); yych = *++YYCURSOR; @@ -4847,7 +4851,7 @@ { return T_DOUBLE_CAST; } -#line 4851 "Zend/zend_language_scanner.c" +#line 4855 "Zend/zend_language_scanner.c" yy417: YYDEBUG(417, *YYCURSOR); yych = *++YYCURSOR; @@ -4921,7 +4925,7 @@ { return T_STRING_CAST; } -#line 4925 "Zend/zend_language_scanner.c" +#line 4929 "Zend/zend_language_scanner.c" yy431: YYDEBUG(431, *YYCURSOR); yych = *++YYCURSOR; @@ -4958,7 +4962,7 @@ { return T_ARRAY_CAST; } -#line 4962 "Zend/zend_language_scanner.c" +#line 4966 "Zend/zend_language_scanner.c" yy438: YYDEBUG(438, *YYCURSOR); yych = *++YYCURSOR; @@ -5000,7 +5004,7 @@ { return T_OBJECT_CAST; } -#line 5004 "Zend/zend_language_scanner.c" +#line 5008 "Zend/zend_language_scanner.c" yy446: YYDEBUG(446, *YYCURSOR); yych = *++YYCURSOR; @@ -5045,7 +5049,7 @@ { return T_BOOL_CAST; } -#line 5049 "Zend/zend_language_scanner.c" +#line 5053 "Zend/zend_language_scanner.c" yy454: YYDEBUG(454, *YYCURSOR); yych = *++YYCURSOR; @@ -5109,7 +5113,7 @@ { return T_UNSET_CAST; } -#line 5113 "Zend/zend_language_scanner.c" +#line 5117 "Zend/zend_language_scanner.c" yy466: YYDEBUG(466, *YYCURSOR); yych = *++YYCURSOR; @@ -5127,7 +5131,7 @@ { return T_VAR; } -#line 5131 "Zend/zend_language_scanner.c" +#line 5135 "Zend/zend_language_scanner.c" yy469: YYDEBUG(469, *YYCURSOR); yych = *++YYCURSOR; @@ -5151,7 +5155,7 @@ { return T_NEW; } -#line 5155 "Zend/zend_language_scanner.c" +#line 5159 "Zend/zend_language_scanner.c" yy473: YYDEBUG(473, *YYCURSOR); yych = *++YYCURSOR; @@ -5194,7 +5198,7 @@ { return T_NAMESPACE; } -#line 5198 "Zend/zend_language_scanner.c" +#line 5202 "Zend/zend_language_scanner.c" yy481: YYDEBUG(481, *YYCURSOR); ++YYCURSOR; @@ -5204,7 +5208,7 @@ { return T_PAAMAYIM_NEKUDOTAYIM; } -#line 5208 "Zend/zend_language_scanner.c" +#line 5212 "Zend/zend_language_scanner.c" yy483: YYDEBUG(483, *YYCURSOR); ++YYCURSOR; @@ -5230,7 +5234,7 @@ { return T_MINUS_EQUAL; } -#line 5234 "Zend/zend_language_scanner.c" +#line 5238 "Zend/zend_language_scanner.c" yy487: YYDEBUG(487, *YYCURSOR); ++YYCURSOR; @@ -5240,7 +5244,7 @@ { return T_DEC; } -#line 5244 "Zend/zend_language_scanner.c" +#line 5248 "Zend/zend_language_scanner.c" yy489: YYDEBUG(489, *YYCURSOR); ++YYCURSOR; @@ -5251,7 +5255,7 @@ yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); return T_OBJECT_OPERATOR; } -#line 5255 "Zend/zend_language_scanner.c" +#line 5259 "Zend/zend_language_scanner.c" yy491: YYDEBUG(491, *YYCURSOR); yych = *++YYCURSOR; @@ -5300,7 +5304,7 @@ { return T_PUBLIC; } -#line 5304 "Zend/zend_language_scanner.c" +#line 5308 "Zend/zend_language_scanner.c" yy498: YYDEBUG(498, *YYCURSOR); yych = *++YYCURSOR; @@ -5359,7 +5363,7 @@ { return T_PROTECTED; } -#line 5363 "Zend/zend_language_scanner.c" +#line 5367 "Zend/zend_language_scanner.c" yy507: YYDEBUG(507, *YYCURSOR); yych = *++YYCURSOR; @@ -5393,7 +5397,7 @@ { return T_PRIVATE; } -#line 5397 "Zend/zend_language_scanner.c" +#line 5401 "Zend/zend_language_scanner.c" yy513: YYDEBUG(513, *YYCURSOR); ++YYCURSOR; @@ -5406,7 +5410,7 @@ { return T_PRINT; } -#line 5410 "Zend/zend_language_scanner.c" +#line 5414 "Zend/zend_language_scanner.c" yy515: YYDEBUG(515, *YYCURSOR); yych = *++YYCURSOR; @@ -5435,7 +5439,7 @@ { return T_GOTO; } -#line 5439 "Zend/zend_language_scanner.c" +#line 5443 "Zend/zend_language_scanner.c" yy520: YYDEBUG(520, *YYCURSOR); yych = *++YYCURSOR; @@ -5463,7 +5467,7 @@ { return T_GLOBAL; } -#line 5467 "Zend/zend_language_scanner.c" +#line 5471 "Zend/zend_language_scanner.c" yy525: YYDEBUG(525, *YYCURSOR); yych = *++YYCURSOR; @@ -5504,7 +5508,7 @@ { return T_BREAK; } -#line 5508 "Zend/zend_language_scanner.c" +#line 5512 "Zend/zend_language_scanner.c" yy533: YYDEBUG(533, *YYCURSOR); yych = *++YYCURSOR; @@ -5548,7 +5552,7 @@ { return T_SWITCH; } -#line 5552 "Zend/zend_language_scanner.c" +#line 5556 "Zend/zend_language_scanner.c" yy541: YYDEBUG(541, *YYCURSOR); yych = *++YYCURSOR; @@ -5576,7 +5580,7 @@ { return T_STATIC; } -#line 5580 "Zend/zend_language_scanner.c" +#line 5584 "Zend/zend_language_scanner.c" yy546: YYDEBUG(546, *YYCURSOR); yych = *++YYCURSOR; @@ -5607,7 +5611,7 @@ { return T_AS; } -#line 5611 "Zend/zend_language_scanner.c" +#line 5615 "Zend/zend_language_scanner.c" yy551: YYDEBUG(551, *YYCURSOR); yych = *++YYCURSOR; @@ -5630,7 +5634,7 @@ { return T_ARRAY; } -#line 5634 "Zend/zend_language_scanner.c" +#line 5638 "Zend/zend_language_scanner.c" yy555: YYDEBUG(555, *YYCURSOR); ++YYCURSOR; @@ -5643,7 +5647,7 @@ { return T_LOGICAL_AND; } -#line 5647 "Zend/zend_language_scanner.c" +#line 5651 "Zend/zend_language_scanner.c" yy557: YYDEBUG(557, *YYCURSOR); yych = *++YYCURSOR; @@ -5681,7 +5685,7 @@ { return T_ABSTRACT; } -#line 5685 "Zend/zend_language_scanner.c" +#line 5689 "Zend/zend_language_scanner.c" yy564: YYDEBUG(564, *YYCURSOR); yych = *++YYCURSOR; @@ -5709,7 +5713,7 @@ { return T_WHILE; } -#line 5713 "Zend/zend_language_scanner.c" +#line 5717 "Zend/zend_language_scanner.c" yy569: YYDEBUG(569, *YYCURSOR); ++YYCURSOR; @@ -5722,7 +5726,7 @@ { return T_IF; } -#line 5726 "Zend/zend_language_scanner.c" +#line 5730 "Zend/zend_language_scanner.c" yy571: YYDEBUG(571, *YYCURSOR); yych = *++YYCURSOR; @@ -5778,7 +5782,7 @@ { return T_ISSET; } -#line 5782 "Zend/zend_language_scanner.c" +#line 5786 "Zend/zend_language_scanner.c" yy578: YYDEBUG(578, *YYCURSOR); yych = *++YYCURSOR; @@ -5836,7 +5840,7 @@ { return T_INCLUDE; } -#line 5840 "Zend/zend_language_scanner.c" +#line 5844 "Zend/zend_language_scanner.c" yy586: YYDEBUG(586, *YYCURSOR); yych = *++YYCURSOR; @@ -5869,7 +5873,7 @@ { return T_INCLUDE_ONCE; } -#line 5873 "Zend/zend_language_scanner.c" +#line 5877 "Zend/zend_language_scanner.c" yy592: YYDEBUG(592, *YYCURSOR); yych = *++YYCURSOR; @@ -5907,7 +5911,7 @@ { return T_INTERFACE; } -#line 5911 "Zend/zend_language_scanner.c" +#line 5915 "Zend/zend_language_scanner.c" yy599: YYDEBUG(599, *YYCURSOR); yych = *++YYCURSOR; @@ -5961,7 +5965,7 @@ { return T_INSTEADOF; } -#line 5965 "Zend/zend_language_scanner.c" +#line 5969 "Zend/zend_language_scanner.c" yy607: YYDEBUG(607, *YYCURSOR); yych = *++YYCURSOR; @@ -5994,7 +5998,7 @@ { return T_INSTANCEOF; } -#line 5998 "Zend/zend_language_scanner.c" +#line 6002 "Zend/zend_language_scanner.c" yy613: YYDEBUG(613, *YYCURSOR); yych = *++YYCURSOR; @@ -6042,7 +6046,7 @@ { return T_IMPLEMENTS; } -#line 6046 "Zend/zend_language_scanner.c" +#line 6050 "Zend/zend_language_scanner.c" yy622: YYDEBUG(622, *YYCURSOR); yych = *++YYCURSOR; @@ -6074,7 +6078,7 @@ { return T_TRY; } -#line 6078 "Zend/zend_language_scanner.c" +#line 6082 "Zend/zend_language_scanner.c" yy626: YYDEBUG(626, *YYCURSOR); yych = *++YYCURSOR; @@ -6097,7 +6101,7 @@ { return T_TRAIT; } -#line 6101 "Zend/zend_language_scanner.c" +#line 6105 "Zend/zend_language_scanner.c" yy630: YYDEBUG(630, *YYCURSOR); yych = *++YYCURSOR; @@ -6120,7 +6124,7 @@ { return T_THROW; } -#line 6124 "Zend/zend_language_scanner.c" +#line 6128 "Zend/zend_language_scanner.c" yy634: YYDEBUG(634, *YYCURSOR); yych = *++YYCURSOR; @@ -6185,7 +6189,7 @@ { return T_REQUIRE; } -#line 6189 "Zend/zend_language_scanner.c" +#line 6193 "Zend/zend_language_scanner.c" yy642: YYDEBUG(642, *YYCURSOR); yych = *++YYCURSOR; @@ -6218,7 +6222,7 @@ { return T_REQUIRE_ONCE; } -#line 6222 "Zend/zend_language_scanner.c" +#line 6226 "Zend/zend_language_scanner.c" yy648: YYDEBUG(648, *YYCURSOR); yych = *++YYCURSOR; @@ -6241,7 +6245,7 @@ { return T_RETURN; } -#line 6245 "Zend/zend_language_scanner.c" +#line 6249 "Zend/zend_language_scanner.c" yy652: YYDEBUG(652, *YYCURSOR); yych = *++YYCURSOR; @@ -6335,7 +6339,7 @@ { return T_CONTINUE; } -#line 6339 "Zend/zend_language_scanner.c" +#line 6343 "Zend/zend_language_scanner.c" yy663: YYDEBUG(663, *YYCURSOR); ++YYCURSOR; @@ -6348,7 +6352,7 @@ { return T_CONST; } -#line 6352 "Zend/zend_language_scanner.c" +#line 6356 "Zend/zend_language_scanner.c" yy665: YYDEBUG(665, *YYCURSOR); yych = *++YYCURSOR; @@ -6377,7 +6381,7 @@ { return T_CLONE; } -#line 6381 "Zend/zend_language_scanner.c" +#line 6385 "Zend/zend_language_scanner.c" yy670: YYDEBUG(670, *YYCURSOR); yych = *++YYCURSOR; @@ -6395,7 +6399,7 @@ { return T_CLASS; } -#line 6399 "Zend/zend_language_scanner.c" +#line 6403 "Zend/zend_language_scanner.c" yy673: YYDEBUG(673, *YYCURSOR); yych = *++YYCURSOR; @@ -6445,7 +6449,7 @@ { return T_CALLABLE; } -#line 6449 "Zend/zend_language_scanner.c" +#line 6453 "Zend/zend_language_scanner.c" yy682: YYDEBUG(682, *YYCURSOR); ++YYCURSOR; @@ -6458,7 +6462,7 @@ { return T_CASE; } -#line 6462 "Zend/zend_language_scanner.c" +#line 6466 "Zend/zend_language_scanner.c" yy684: YYDEBUG(684, *YYCURSOR); yych = *++YYCURSOR; @@ -6476,7 +6480,7 @@ { return T_CATCH; } -#line 6480 "Zend/zend_language_scanner.c" +#line 6484 "Zend/zend_language_scanner.c" yy687: YYDEBUG(687, *YYCURSOR); yych = *++YYCURSOR; @@ -6531,7 +6535,7 @@ { return T_FUNCTION; } -#line 6535 "Zend/zend_language_scanner.c" +#line 6539 "Zend/zend_language_scanner.c" yy697: YYDEBUG(697, *YYCURSOR); ++YYCURSOR; @@ -6559,7 +6563,7 @@ { return T_FOR; } -#line 6563 "Zend/zend_language_scanner.c" +#line 6567 "Zend/zend_language_scanner.c" yy699: YYDEBUG(699, *YYCURSOR); yych = *++YYCURSOR; @@ -6587,7 +6591,7 @@ { return T_FOREACH; } -#line 6591 "Zend/zend_language_scanner.c" +#line 6595 "Zend/zend_language_scanner.c" yy704: YYDEBUG(704, *YYCURSOR); yych = *++YYCURSOR; @@ -6610,7 +6614,7 @@ { return T_FINAL; } -#line 6614 "Zend/zend_language_scanner.c" +#line 6618 "Zend/zend_language_scanner.c" yy708: YYDEBUG(708, *YYCURSOR); yych = *++YYCURSOR; @@ -6645,7 +6649,7 @@ { return T_DO; } -#line 6649 "Zend/zend_language_scanner.c" +#line 6653 "Zend/zend_language_scanner.c" yy712: YYDEBUG(712, *YYCURSOR); ++YYCURSOR; @@ -6658,7 +6662,7 @@ { return T_EXIT; } -#line 6662 "Zend/zend_language_scanner.c" +#line 6666 "Zend/zend_language_scanner.c" yy714: YYDEBUG(714, *YYCURSOR); yych = *++YYCURSOR; @@ -6697,7 +6701,7 @@ { return T_DEFAULT; } -#line 6701 "Zend/zend_language_scanner.c" +#line 6705 "Zend/zend_language_scanner.c" yy721: YYDEBUG(721, *YYCURSOR); yych = *++YYCURSOR; @@ -6725,7 +6729,7 @@ { return T_DECLARE; } -#line 6729 "Zend/zend_language_scanner.c" +#line 6733 "Zend/zend_language_scanner.c" yy726: YYDEBUG(726, *YYCURSOR); yych = *++YYCURSOR; @@ -6809,7 +6813,7 @@ { return T_EXTENDS; } -#line 6813 "Zend/zend_language_scanner.c" +#line 6817 "Zend/zend_language_scanner.c" yy739: YYDEBUG(739, *YYCURSOR); ++YYCURSOR; @@ -6822,7 +6826,7 @@ { return T_EXIT; } -#line 6826 "Zend/zend_language_scanner.c" +#line 6830 "Zend/zend_language_scanner.c" yy741: YYDEBUG(741, *YYCURSOR); yych = *++YYCURSOR; @@ -6840,7 +6844,7 @@ { return T_EVAL; } -#line 6844 "Zend/zend_language_scanner.c" +#line 6848 "Zend/zend_language_scanner.c" yy744: YYDEBUG(744, *YYCURSOR); yych = *++YYCURSOR; @@ -6914,7 +6918,7 @@ { return T_ENDWHILE; } -#line 6918 "Zend/zend_language_scanner.c" +#line 6922 "Zend/zend_language_scanner.c" yy755: YYDEBUG(755, *YYCURSOR); yych = *++YYCURSOR; @@ -6947,7 +6951,7 @@ { return T_ENDSWITCH; } -#line 6951 "Zend/zend_language_scanner.c" +#line 6955 "Zend/zend_language_scanner.c" yy761: YYDEBUG(761, *YYCURSOR); ++YYCURSOR; @@ -6960,7 +6964,7 @@ { return T_ENDIF; } -#line 6964 "Zend/zend_language_scanner.c" +#line 6968 "Zend/zend_language_scanner.c" yy763: YYDEBUG(763, *YYCURSOR); yych = *++YYCURSOR; @@ -6993,7 +6997,7 @@ { return T_ENDFOR; } -#line 6997 "Zend/zend_language_scanner.c" +#line 7001 "Zend/zend_language_scanner.c" yy766: YYDEBUG(766, *YYCURSOR); yych = *++YYCURSOR; @@ -7021,7 +7025,7 @@ { return T_ENDFOREACH; } -#line 7025 "Zend/zend_language_scanner.c" +#line 7029 "Zend/zend_language_scanner.c" yy771: YYDEBUG(771, *YYCURSOR); yych = *++YYCURSOR; @@ -7059,7 +7063,7 @@ { return T_ENDDECLARE; } -#line 7063 "Zend/zend_language_scanner.c" +#line 7067 "Zend/zend_language_scanner.c" yy778: YYDEBUG(778, *YYCURSOR); yych = *++YYCURSOR; @@ -7082,7 +7086,7 @@ { return T_EMPTY; } -#line 7086 "Zend/zend_language_scanner.c" +#line 7090 "Zend/zend_language_scanner.c" yy782: YYDEBUG(782, *YYCURSOR); yych = *++YYCURSOR; @@ -7115,7 +7119,7 @@ { return T_ELSE; } -#line 7119 "Zend/zend_language_scanner.c" +#line 7123 "Zend/zend_language_scanner.c" yy785: YYDEBUG(785, *YYCURSOR); yych = *++YYCURSOR; @@ -7133,7 +7137,7 @@ { return T_ELSEIF; } -#line 7137 "Zend/zend_language_scanner.c" +#line 7141 "Zend/zend_language_scanner.c" yy788: YYDEBUG(788, *YYCURSOR); yych = *++YYCURSOR; @@ -7151,7 +7155,7 @@ { return T_ECHO; } -#line 7155 "Zend/zend_language_scanner.c" +#line 7159 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_LOOKING_FOR_PROPERTY: @@ -7232,7 +7236,7 @@ HANDLE_NEWLINES(yytext, yyleng); return T_WHITESPACE; } -#line 7236 "Zend/zend_language_scanner.c" +#line 7240 "Zend/zend_language_scanner.c" yy795: YYDEBUG(795, *YYCURSOR); ++YYCURSOR; @@ -7246,7 +7250,7 @@ yy_pop_state(TSRMLS_C); goto restart; } -#line 7250 "Zend/zend_language_scanner.c" +#line 7254 "Zend/zend_language_scanner.c" yy797: YYDEBUG(797, *YYCURSOR); ++YYCURSOR; @@ -7262,7 +7266,7 @@ zendlval->type = IS_STRING; return T_STRING; } -#line 7266 "Zend/zend_language_scanner.c" +#line 7270 "Zend/zend_language_scanner.c" yy799: YYDEBUG(799, *YYCURSOR); yych = *++YYCURSOR; @@ -7287,7 +7291,7 @@ { return T_OBJECT_OPERATOR; } -#line 7291 "Zend/zend_language_scanner.c" +#line 7295 "Zend/zend_language_scanner.c" yy804: YYDEBUG(804, *YYCURSOR); ++YYCURSOR; @@ -7365,7 +7369,7 @@ yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); return T_STRING_VARNAME; } -#line 7369 "Zend/zend_language_scanner.c" +#line 7373 "Zend/zend_language_scanner.c" yy810: YYDEBUG(810, *YYCURSOR); ++YYCURSOR; @@ -7378,7 +7382,7 @@ yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); goto restart; } -#line 7382 "Zend/zend_language_scanner.c" +#line 7386 "Zend/zend_language_scanner.c" yy812: YYDEBUG(812, *YYCURSOR); ++YYCURSOR; @@ -7400,7 +7404,7 @@ ++YYCURSOR; YYDEBUG(817, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2340 "Zend/zend_language_scanner.l" +#line 2344 "Zend/zend_language_scanner.l" { int newline = 0; @@ -7455,7 +7459,7 @@ HANDLE_NEWLINES(yytext, yyleng - newline); return T_ENCAPSED_AND_WHITESPACE; } -#line 7459 "Zend/zend_language_scanner.c" +#line 7463 "Zend/zend_language_scanner.c" /* *********************************** */ yyc_ST_VAR_OFFSET: { @@ -7562,7 +7566,7 @@ yy821: YYDEBUG(821, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1536 "Zend/zend_language_scanner.l" +#line 1540 "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); @@ -7574,7 +7578,7 @@ } return T_NUM_STRING; } -#line 7578 "Zend/zend_language_scanner.c" +#line 7582 "Zend/zend_language_scanner.c" yy822: YYDEBUG(822, *YYCURSOR); yych = *++YYCURSOR; @@ -7594,23 +7598,23 @@ yy824: YYDEBUG(824, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1868 "Zend/zend_language_scanner.l" +#line 1872 "Zend/zend_language_scanner.l" { /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */ return yytext[0]; } -#line 7603 "Zend/zend_language_scanner.c" +#line 7607 "Zend/zend_language_scanner.c" yy825: YYDEBUG(825, *YYCURSOR); ++YYCURSOR; YYDEBUG(826, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1863 "Zend/zend_language_scanner.l" +#line 1867 "Zend/zend_language_scanner.l" { yy_pop_state(TSRMLS_C); return ']'; } -#line 7614 "Zend/zend_language_scanner.c" +#line 7618 "Zend/zend_language_scanner.c" yy827: YYDEBUG(827, *YYCURSOR); yych = *++YYCURSOR; @@ -7620,14 +7624,14 @@ ++YYCURSOR; YYDEBUG(829, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1873 "Zend/zend_language_scanner.l" +#line 1877 "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 7631 "Zend/zend_language_scanner.c" +#line 7635 "Zend/zend_language_scanner.c" yy830: YYDEBUG(830, *YYCURSOR); ++YYCURSOR; @@ -7636,19 +7640,19 @@ yy831: YYDEBUG(831, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1880 "Zend/zend_language_scanner.l" +#line 1884 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); zendlval->type = IS_STRING; return T_STRING; } -#line 7646 "Zend/zend_language_scanner.c" +#line 7650 "Zend/zend_language_scanner.c" yy832: YYDEBUG(832, *YYCURSOR); ++YYCURSOR; YYDEBUG(833, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2396 "Zend/zend_language_scanner.l" +#line 2400 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -7657,7 +7661,7 @@ zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); goto restart; } -#line 7661 "Zend/zend_language_scanner.c" +#line 7665 "Zend/zend_language_scanner.c" yy834: YYDEBUG(834, *YYCURSOR); ++YYCURSOR; @@ -7693,13 +7697,13 @@ yy838: YYDEBUG(838, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1857 "Zend/zend_language_scanner.l" +#line 1861 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; return T_VARIABLE; } -#line 7703 "Zend/zend_language_scanner.c" +#line 7707 "Zend/zend_language_scanner.c" yy839: YYDEBUG(839, *YYCURSOR); ++YYCURSOR; @@ -7739,14 +7743,14 @@ yy846: YYDEBUG(846, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1548 "Zend/zend_language_scanner.l" +#line 1552 "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 7750 "Zend/zend_language_scanner.c" +#line 7754 "Zend/zend_language_scanner.c" yy847: YYDEBUG(847, *YYCURSOR); ++YYCURSOR; @@ -7769,6 +7773,6 @@ goto yy846; } } -#line 2405 "Zend/zend_language_scanner.l" +#line 2409 "Zend/zend_language_scanner.l" } Modified: php/php-src/trunk/Zend/zend_language_scanner.l =================================================================== --- php/php-src/trunk/Zend/zend_language_scanner.l 2012-02-20 18:18:50 UTC (rev 323393) +++ php/php-src/trunk/Zend/zend_language_scanner.l 2012-02-20 18:28:57 UTC (rev 323394) @@ -1523,7 +1523,11 @@ } if (len < SIZEOF_LONG * 2 || (len == SIZEOF_LONG * 2 && *hex <= '7')) { - zendlval->value.lval = strtol(hex, NULL, 16); + if (len == 0) { + zendlval->value.lval = 0; + } else { + zendlval->value.lval = strtol(hex, NULL, 16); + } zendlval->type = IS_LONG; return T_LNUMBER; } else { Modified: php/php-src/trunk/Zend/zend_language_scanner_defs.h =================================================================== --- php/php-src/trunk/Zend/zend_language_scanner_defs.h 2012-02-20 18:18:50 UTC (rev 323393) +++ php/php-src/trunk/Zend/zend_language_scanner_defs.h 2012-02-20 18:28:57 UTC (rev 323394) @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Tue Jan 17 11:54:12 2012 */ +/* Generated by re2c 0.13.5 on Wed Feb 15 17:27:19 2012 */ #line 3 "Zend/zend_language_scanner_defs.h" enum YYCONDTYPE {