diff options
Diffstat (limited to 'Zend/zend_language_scanner.c')
-rw-r--r-- | Zend/zend_language_scanner.c | 959 |
1 files changed, 503 insertions, 456 deletions
diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c index f9f2c4ba07..6ef1bf11cb 100644 --- a/Zend/zend_language_scanner.c +++ b/Zend/zend_language_scanner.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.6 */ +/* Generated by re2c 0.13.7.5 */ #line 1 "Zend/zend_language_scanner.l" /* +----------------------------------------------------------------------+ @@ -1126,7 +1126,7 @@ yyc_INITIAL: yy4: YYDEBUG(4, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1712 "Zend/zend_language_scanner.l" +#line 1754 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -1189,7 +1189,7 @@ yy6: yy7: YYDEBUG(7, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1703 "Zend/zend_language_scanner.l" +#line 1745 "Zend/zend_language_scanner.l" { if (CG(short_tags)) { BEGIN(ST_IN_SCRIPTING); @@ -1204,7 +1204,7 @@ yy8: ++YYCURSOR; YYDEBUG(9, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1690 "Zend/zend_language_scanner.l" +#line 1732 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return T_OPEN_TAG_WITH_ECHO; @@ -1240,7 +1240,7 @@ yy14: yy15: YYDEBUG(15, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1696 "Zend/zend_language_scanner.l" +#line 1738 "Zend/zend_language_scanner.l" { HANDLE_NEWLINE(yytext[yyleng-1]); BEGIN(ST_IN_SCRIPTING); @@ -1256,38 +1256,38 @@ yy16: yyc_ST_BACKQUOTE: { static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 0, 0, 0, 0, 0, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 128, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 0, 0, 0, 0, 0, 0, + 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 0, 0, 0, 128, + 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 0, 0, 0, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, }; YYDEBUG(17, *YYCURSOR); YYFILL(2); @@ -1316,7 +1316,7 @@ yyc_ST_BACKQUOTE: yy20: YYDEBUG(20, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2122 "Zend/zend_language_scanner.l" +#line 2164 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -1368,7 +1368,7 @@ yy22: ++YYCURSOR; YYDEBUG(23, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2066 "Zend/zend_language_scanner.l" +#line 2108 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '`'; @@ -1383,7 +1383,7 @@ yy25: ++YYCURSOR; YYDEBUG(26, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2053 "Zend/zend_language_scanner.l" +#line 2095 "Zend/zend_language_scanner.l" { Z_LVAL_P(zendlval) = (zend_long) '{'; yy_push_state(ST_IN_SCRIPTING); @@ -1402,16 +1402,17 @@ yy27: goto yy27; } if (yych == '-') goto yy32; - if (yych == '[') goto yy34; + if (yych <= '@') goto yy29; + if (yych <= '[') goto yy34; yy29: YYDEBUG(29, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1777 "Zend/zend_language_scanner.l" +#line 1819 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1415 "Zend/zend_language_scanner.c" +#line 1416 "Zend/zend_language_scanner.c" yy30: YYDEBUG(30, *YYCURSOR); ++YYCURSOR; @@ -1422,7 +1423,7 @@ yy30: yy_push_state(ST_LOOKING_FOR_VARNAME); return T_DOLLAR_OPEN_CURLY_BRACES; } -#line 1426 "Zend/zend_language_scanner.c" +#line 1427 "Zend/zend_language_scanner.c" yy32: YYDEBUG(32, *YYCURSOR); yych = *++YYCURSOR; @@ -1436,14 +1437,14 @@ yy34: ++YYCURSOR; YYDEBUG(35, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1770 "Zend/zend_language_scanner.l" +#line 1812 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET); zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1447 "Zend/zend_language_scanner.c" +#line 1448 "Zend/zend_language_scanner.c" yy36: YYDEBUG(36, *YYCURSOR); yych = *++YYCURSOR; @@ -1461,51 +1462,51 @@ yy37: ++YYCURSOR; YYDEBUG(38, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1761 "Zend/zend_language_scanner.l" +#line 1803 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY); zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1472 "Zend/zend_language_scanner.c" +#line 1473 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_DOUBLE_QUOTES: { static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 0, 0, 0, 0, 0, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 128, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 0, 0, 0, 0, 0, 0, + 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 0, 0, 0, 128, + 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 0, 0, 0, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, }; YYDEBUG(39, *YYCURSOR); YYFILL(2); @@ -1536,7 +1537,7 @@ yy41: yy42: YYDEBUG(42, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2072 "Zend/zend_language_scanner.l" +#line 2114 "Zend/zend_language_scanner.l" { if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) { YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1; @@ -1585,7 +1586,7 @@ double_quotes_scan_done: zend_scan_escape_string(zendlval, yytext, yyleng, '"'); return T_ENCAPSED_AND_WHITESPACE; } -#line 1589 "Zend/zend_language_scanner.c" +#line 1590 "Zend/zend_language_scanner.c" yy43: YYDEBUG(43, *YYCURSOR); yych = *++YYCURSOR; @@ -1596,12 +1597,12 @@ yy44: ++YYCURSOR; YYDEBUG(45, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2061 "Zend/zend_language_scanner.l" +#line 2103 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '"'; } -#line 1605 "Zend/zend_language_scanner.c" +#line 1606 "Zend/zend_language_scanner.c" yy46: YYDEBUG(46, *YYCURSOR); yych = *++YYCURSOR; @@ -1611,14 +1612,14 @@ yy47: ++YYCURSOR; YYDEBUG(48, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2053 "Zend/zend_language_scanner.l" +#line 2095 "Zend/zend_language_scanner.l" { Z_LVAL_P(zendlval) = (zend_long) '{'; yy_push_state(ST_IN_SCRIPTING); yyless(1); return T_CURLY_OPEN; } -#line 1622 "Zend/zend_language_scanner.c" +#line 1623 "Zend/zend_language_scanner.c" yy49: YYDEBUG(49, *YYCURSOR); yyaccept = 0; @@ -1630,16 +1631,17 @@ yy49: goto yy49; } if (yych == '-') goto yy54; - if (yych == '[') goto yy56; + if (yych <= '@') goto yy51; + if (yych <= '[') goto yy56; yy51: YYDEBUG(51, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1777 "Zend/zend_language_scanner.l" +#line 1819 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1643 "Zend/zend_language_scanner.c" +#line 1645 "Zend/zend_language_scanner.c" yy52: YYDEBUG(52, *YYCURSOR); ++YYCURSOR; @@ -1650,7 +1652,7 @@ yy52: yy_push_state(ST_LOOKING_FOR_VARNAME); return T_DOLLAR_OPEN_CURLY_BRACES; } -#line 1654 "Zend/zend_language_scanner.c" +#line 1656 "Zend/zend_language_scanner.c" yy54: YYDEBUG(54, *YYCURSOR); yych = *++YYCURSOR; @@ -1664,14 +1666,14 @@ yy56: ++YYCURSOR; YYDEBUG(57, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1770 "Zend/zend_language_scanner.l" +#line 1812 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET); zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1675 "Zend/zend_language_scanner.c" +#line 1677 "Zend/zend_language_scanner.c" yy58: YYDEBUG(58, *YYCURSOR); yych = *++YYCURSOR; @@ -1689,14 +1691,14 @@ yy59: ++YYCURSOR; YYDEBUG(60, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1761 "Zend/zend_language_scanner.l" +#line 1803 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY); zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1700 "Zend/zend_language_scanner.c" +#line 1702 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_END_HEREDOC: @@ -1707,7 +1709,7 @@ yyc_ST_END_HEREDOC: ++YYCURSOR; YYDEBUG(64, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2039 "Zend/zend_language_scanner.l" +#line 2081 "Zend/zend_language_scanner.l" { zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack)); @@ -1720,43 +1722,43 @@ yyc_ST_END_HEREDOC: BEGIN(ST_IN_SCRIPTING); return T_END_HEREDOC; } -#line 1724 "Zend/zend_language_scanner.c" +#line 1726 "Zend/zend_language_scanner.c" /* *********************************** */ yyc_ST_HEREDOC: { static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 0, 0, 0, 0, 0, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 128, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 0, 0, 0, 0, 0, 0, + 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 0, 0, 0, 128, + 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 0, 0, 0, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, }; YYDEBUG(65, *YYCURSOR); YYFILL(2); @@ -1782,7 +1784,7 @@ yy67: yy68: YYDEBUG(68, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2164 "Zend/zend_language_scanner.l" +#line 2206 "Zend/zend_language_scanner.l" { int newline = 0; @@ -1855,7 +1857,7 @@ heredoc_scan_done: zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0); return T_ENCAPSED_AND_WHITESPACE; } -#line 1859 "Zend/zend_language_scanner.c" +#line 1861 "Zend/zend_language_scanner.c" yy69: YYDEBUG(69, *YYCURSOR); yych = *++YYCURSOR; @@ -1870,14 +1872,14 @@ yy71: ++YYCURSOR; YYDEBUG(72, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2053 "Zend/zend_language_scanner.l" +#line 2095 "Zend/zend_language_scanner.l" { Z_LVAL_P(zendlval) = (zend_long) '{'; yy_push_state(ST_IN_SCRIPTING); yyless(1); return T_CURLY_OPEN; } -#line 1881 "Zend/zend_language_scanner.c" +#line 1883 "Zend/zend_language_scanner.c" yy73: YYDEBUG(73, *YYCURSOR); yyaccept = 0; @@ -1889,16 +1891,17 @@ yy73: goto yy73; } if (yych == '-') goto yy78; - if (yych == '[') goto yy80; + if (yych <= '@') goto yy75; + if (yych <= '[') goto yy80; yy75: YYDEBUG(75, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1777 "Zend/zend_language_scanner.l" +#line 1819 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1902 "Zend/zend_language_scanner.c" +#line 1905 "Zend/zend_language_scanner.c" yy76: YYDEBUG(76, *YYCURSOR); ++YYCURSOR; @@ -1909,7 +1912,7 @@ yy76: yy_push_state(ST_LOOKING_FOR_VARNAME); return T_DOLLAR_OPEN_CURLY_BRACES; } -#line 1913 "Zend/zend_language_scanner.c" +#line 1916 "Zend/zend_language_scanner.c" yy78: YYDEBUG(78, *YYCURSOR); yych = *++YYCURSOR; @@ -1923,14 +1926,14 @@ yy80: ++YYCURSOR; YYDEBUG(81, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1770 "Zend/zend_language_scanner.l" +#line 1812 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET); zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1934 "Zend/zend_language_scanner.c" +#line 1937 "Zend/zend_language_scanner.c" yy82: YYDEBUG(82, *YYCURSOR); yych = *++YYCURSOR; @@ -1948,51 +1951,51 @@ yy83: ++YYCURSOR; YYDEBUG(84, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1761 "Zend/zend_language_scanner.l" +#line 1803 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY); zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1959 "Zend/zend_language_scanner.c" +#line 1962 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_IN_SCRIPTING: { static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 192, 64, 0, 0, 64, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 192, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 60, 60, 44, 44, 44, 44, 44, 44, - 44, 44, 0, 0, 0, 0, 0, 0, - 0, 36, 36, 36, 36, 36, 36, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 0, 0, 0, 0, 4, - 0, 36, 36, 36, 36, 36, 36, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 0, 0, 0, 0, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 192, 64, 0, 0, 64, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 192, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 60, 60, 44, 44, 44, 44, 44, 44, + 44, 44, 0, 0, 0, 0, 0, 0, + 0, 36, 36, 36, 36, 36, 36, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 0, 0, 0, 0, 4, + 0, 36, 36, 36, 36, 36, 36, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 0, 0, 0, 0, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, }; YYDEBUG(85, *YYCURSOR); YYFILL(16); @@ -2138,12 +2141,12 @@ yy87: yy88: YYDEBUG(88, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1800 "Zend/zend_language_scanner.l" +#line 1842 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); return T_STRING; } -#line 2147 "Zend/zend_language_scanner.c" +#line 2150 "Zend/zend_language_scanner.c" yy89: YYDEBUG(89, *YYCURSOR); yych = *++YYCURSOR; @@ -2379,7 +2382,7 @@ yy103: { return yytext[0]; } -#line 2383 "Zend/zend_language_scanner.c" +#line 2386 "Zend/zend_language_scanner.c" yy104: YYDEBUG(104, *YYCURSOR); ++YYCURSOR; @@ -2393,7 +2396,7 @@ yy105: HANDLE_NEWLINES(yytext, yyleng); return T_WHITESPACE; } -#line 2397 "Zend/zend_language_scanner.c" +#line 2400 "Zend/zend_language_scanner.c" yy106: YYDEBUG(106, *YYCURSOR); yych = *++YYCURSOR; @@ -2408,7 +2411,7 @@ yy107: { return T_NS_SEPARATOR; } -#line 2412 "Zend/zend_language_scanner.c" +#line 2415 "Zend/zend_language_scanner.c" yy109: YYDEBUG(109, *YYCURSOR); yyaccept = 1; @@ -2642,7 +2645,7 @@ yy132: yy_push_state(ST_IN_SCRIPTING); return '{'; } -#line 2646 "Zend/zend_language_scanner.c" +#line 2649 "Zend/zend_language_scanner.c" yy134: YYDEBUG(134, *YYCURSOR); ++YYCURSOR; @@ -2656,7 +2659,7 @@ yy134: } return '}'; } -#line 2660 "Zend/zend_language_scanner.c" +#line 2663 "Zend/zend_language_scanner.c" yy136: YYDEBUG(136, *YYCURSOR); yyaccept = 2; @@ -2684,25 +2687,46 @@ yy136: yy137: YYDEBUG(137, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1597 "Zend/zend_language_scanner.l" +#line 1602 "Zend/zend_language_scanner.l" { + char *end; if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */ - ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, NULL, 0)); + errno = 0; + ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 0)); + /* This isn't an assert, we need to ensure 019 isn't valid octal + * Because the lexing itself doesn't do that for us + */ + if (end != yytext + yyleng) { + zend_error_noreturn(E_COMPILE_ERROR, "Invalid numeric literal"); + } + ZEND_ASSERT(!errno); } else { errno = 0; - ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, NULL, 0)); + ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 0)); if (errno == ERANGE) { /* Overflow */ + errno = 0; if (yytext[0] == '0') { /* octal overflow */ - ZVAL_DOUBLE(zendlval, zend_oct_strtod(yytext, NULL)); + errno = 0; + ZVAL_DOUBLE(zendlval, zend_oct_strtod(yytext, &end)); } else { - ZVAL_DOUBLE(zendlval, zend_strtod(yytext, NULL)); + ZVAL_DOUBLE(zendlval, zend_strtod(yytext, &end)); + } + /* Also not an assert for the same reason */ + if (end != yytext + yyleng) { + zend_error_noreturn(E_COMPILE_ERROR, "Invalid numeric literal"); } + ZEND_ASSERT(!errno); return T_DNUMBER; } + /* Also not an assert for the same reason */ + if (end != yytext + yyleng) { + zend_error_noreturn(E_COMPILE_ERROR, "Invalid numeric literal"); + } + ZEND_ASSERT(!errno); } return T_LNUMBER; } -#line 2706 "Zend/zend_language_scanner.c" +#line 2730 "Zend/zend_language_scanner.c" yy138: YYDEBUG(138, *YYCURSOR); yyaccept = 2; @@ -2730,7 +2754,7 @@ yy140: yy141: YYDEBUG(141, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1806 "Zend/zend_language_scanner.l" +#line 1848 "Zend/zend_language_scanner.l" { while (YYCURSOR < YYLIMIT) { switch (*YYCURSOR++) { @@ -2759,14 +2783,14 @@ yy141: return T_COMMENT; } -#line 2763 "Zend/zend_language_scanner.c" +#line 2787 "Zend/zend_language_scanner.c" yy142: YYDEBUG(142, *YYCURSOR); ++YYCURSOR; yy143: YYDEBUG(143, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1874 "Zend/zend_language_scanner.l" +#line 1916 "Zend/zend_language_scanner.l" { register char *s, *t; char *end; @@ -2834,14 +2858,14 @@ yy143: } return T_CONSTANT_ENCAPSED_STRING; } -#line 2838 "Zend/zend_language_scanner.c" +#line 2862 "Zend/zend_language_scanner.c" yy144: YYDEBUG(144, *YYCURSOR); ++YYCURSOR; yy145: YYDEBUG(145, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1943 "Zend/zend_language_scanner.l" +#line 1985 "Zend/zend_language_scanner.l" { int bprefix = (yytext[0] != '"') ? 1 : 0; @@ -2882,24 +2906,24 @@ yy145: BEGIN(ST_DOUBLE_QUOTES); return '"'; } -#line 2886 "Zend/zend_language_scanner.c" +#line 2910 "Zend/zend_language_scanner.c" yy146: YYDEBUG(146, *YYCURSOR); ++YYCURSOR; YYDEBUG(147, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2033 "Zend/zend_language_scanner.l" +#line 2075 "Zend/zend_language_scanner.l" { BEGIN(ST_BACKQUOTE); return '`'; } -#line 2897 "Zend/zend_language_scanner.c" +#line 2921 "Zend/zend_language_scanner.c" yy148: YYDEBUG(148, *YYCURSOR); ++YYCURSOR; YYDEBUG(149, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2295 "Zend/zend_language_scanner.l" +#line 2337 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -2908,7 +2932,7 @@ yy148: zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); goto restart; } -#line 2912 "Zend/zend_language_scanner.c" +#line 2936 "Zend/zend_language_scanner.c" yy150: YYDEBUG(150, *YYCURSOR); ++YYCURSOR; @@ -2935,12 +2959,16 @@ yy152: yy154: YYDEBUG(154, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1652 "Zend/zend_language_scanner.l" +#line 1690 "Zend/zend_language_scanner.l" { - ZVAL_DOUBLE(zendlval, zend_strtod(yytext, NULL)); + char *end; + + ZVAL_DOUBLE(zendlval, zend_strtod(yytext, &end)); + /* errno isn't checked since we allow HUGE_VAL/INF overflow */ + ZEND_ASSERT(end == yytext + yyleng); return T_DNUMBER; } -#line 2944 "Zend/zend_language_scanner.c" +#line 2972 "Zend/zend_language_scanner.c" yy155: YYDEBUG(155, *YYCURSOR); yyaccept = 2; @@ -3036,6 +3064,7 @@ yy164: { char *bin = yytext + 2; /* Skip "0b" */ int len = yyleng - 2; + char *end; /* Skip any leading 0s */ while (*bin == '0') { @@ -3047,15 +3076,19 @@ yy164: if (len == 0) { ZVAL_LONG(zendlval, 0); } else { - ZVAL_LONG(zendlval, ZEND_STRTOL(bin, NULL, 2)); + errno = 0; + ZVAL_LONG(zendlval, ZEND_STRTOL(bin, &end, 2)); + ZEND_ASSERT(!errno && end == yytext + yyleng); } return T_LNUMBER; } else { - ZVAL_DOUBLE(zendlval, zend_bin_strtod(bin, NULL)); + ZVAL_DOUBLE(zendlval, zend_bin_strtod(bin, &end)); + /* errno isn't checked since we allow HUGE_VAL/INF overflow */ + ZEND_ASSERT(end == yytext + yyleng); return T_DNUMBER; } } -#line 3059 "Zend/zend_language_scanner.c" +#line 3092 "Zend/zend_language_scanner.c" yy167: YYDEBUG(167, *YYCURSOR); ++YYCURSOR; @@ -3067,10 +3100,11 @@ yy167: } YYDEBUG(169, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1615 "Zend/zend_language_scanner.l" +#line 1641 "Zend/zend_language_scanner.l" { char *hex = yytext + 2; /* Skip "0x" */ int len = yyleng - 2; + char *end; /* Skip any leading 0s */ while (*hex == '0') { @@ -3082,15 +3116,19 @@ yy167: if (len == 0) { ZVAL_LONG(zendlval, 0); } else { - ZVAL_LONG(zendlval, ZEND_STRTOL(hex, NULL, 16)); + errno = 0; + ZVAL_LONG(zendlval, ZEND_STRTOL(hex, &end, 16)); + ZEND_ASSERT(!errno && end == hex + len); } return T_LNUMBER; } else { - ZVAL_DOUBLE(zendlval, zend_hex_strtod(hex, NULL)); + ZVAL_DOUBLE(zendlval, zend_hex_strtod(hex, &end)); + /* errno isn't checked since we allow HUGE_VAL/INF overflow */ + ZEND_ASSERT(end == hex + len); return T_DNUMBER; } } -#line 3094 "Zend/zend_language_scanner.c" +#line 3132 "Zend/zend_language_scanner.c" yy170: YYDEBUG(170, *YYCURSOR); ++YYCURSOR; @@ -3115,12 +3153,12 @@ yy170: yy172: YYDEBUG(172, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1777 "Zend/zend_language_scanner.l" +#line 1819 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 3124 "Zend/zend_language_scanner.c" +#line 3162 "Zend/zend_language_scanner.c" yy173: YYDEBUG(173, *YYCURSOR); yych = *++YYCURSOR; @@ -3138,7 +3176,7 @@ yy174: { return T_LOGICAL_XOR; } -#line 3142 "Zend/zend_language_scanner.c" +#line 3180 "Zend/zend_language_scanner.c" yy176: YYDEBUG(176, *YYCURSOR); ++YYCURSOR; @@ -3151,7 +3189,7 @@ yy176: { return T_LOGICAL_OR; } -#line 3155 "Zend/zend_language_scanner.c" +#line 3193 "Zend/zend_language_scanner.c" yy178: YYDEBUG(178, *YYCURSOR); ++YYCURSOR; @@ -3161,7 +3199,7 @@ yy178: { return T_XOR_EQUAL; } -#line 3165 "Zend/zend_language_scanner.c" +#line 3203 "Zend/zend_language_scanner.c" yy180: YYDEBUG(180, *YYCURSOR); ++YYCURSOR; @@ -3171,7 +3209,7 @@ yy180: { return T_BOOLEAN_OR; } -#line 3175 "Zend/zend_language_scanner.c" +#line 3213 "Zend/zend_language_scanner.c" yy182: YYDEBUG(182, *YYCURSOR); ++YYCURSOR; @@ -3181,7 +3219,7 @@ yy182: { return T_OR_EQUAL; } -#line 3185 "Zend/zend_language_scanner.c" +#line 3223 "Zend/zend_language_scanner.c" yy184: YYDEBUG(184, *YYCURSOR); ++YYCURSOR; @@ -3191,7 +3229,7 @@ yy184: { return T_BOOLEAN_AND; } -#line 3195 "Zend/zend_language_scanner.c" +#line 3233 "Zend/zend_language_scanner.c" yy186: YYDEBUG(186, *YYCURSOR); ++YYCURSOR; @@ -3201,7 +3239,7 @@ yy186: { return T_AND_EQUAL; } -#line 3205 "Zend/zend_language_scanner.c" +#line 3243 "Zend/zend_language_scanner.c" yy188: YYDEBUG(188, *YYCURSOR); ++YYCURSOR; @@ -3211,7 +3249,7 @@ yy188: { return T_MOD_EQUAL; } -#line 3215 "Zend/zend_language_scanner.c" +#line 3253 "Zend/zend_language_scanner.c" yy190: YYDEBUG(190, *YYCURSOR); yyaccept = 4; @@ -3220,7 +3258,7 @@ yy190: yy191: YYDEBUG(191, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1835 "Zend/zend_language_scanner.l" +#line 1877 "Zend/zend_language_scanner.l" { int doc_com; @@ -3253,7 +3291,7 @@ yy191: return T_COMMENT; } -#line 3257 "Zend/zend_language_scanner.c" +#line 3295 "Zend/zend_language_scanner.c" yy192: YYDEBUG(192, *YYCURSOR); yych = *++YYCURSOR; @@ -3267,7 +3305,7 @@ yy193: { return T_DIV_EQUAL; } -#line 3271 "Zend/zend_language_scanner.c" +#line 3309 "Zend/zend_language_scanner.c" yy195: YYDEBUG(195, *YYCURSOR); yych = *++YYCURSOR; @@ -3295,7 +3333,7 @@ yy198: { return T_POW; } -#line 3299 "Zend/zend_language_scanner.c" +#line 3337 "Zend/zend_language_scanner.c" yy200: YYDEBUG(200, *YYCURSOR); ++YYCURSOR; @@ -3305,7 +3343,7 @@ yy200: { return T_MUL_EQUAL; } -#line 3309 "Zend/zend_language_scanner.c" +#line 3347 "Zend/zend_language_scanner.c" yy202: YYDEBUG(202, *YYCURSOR); ++YYCURSOR; @@ -3315,7 +3353,7 @@ yy202: { return T_POW_EQUAL; } -#line 3319 "Zend/zend_language_scanner.c" +#line 3357 "Zend/zend_language_scanner.c" yy204: YYDEBUG(204, *YYCURSOR); ++YYCURSOR; @@ -3326,7 +3364,7 @@ yy204: { return T_SR; } -#line 3330 "Zend/zend_language_scanner.c" +#line 3368 "Zend/zend_language_scanner.c" yy206: YYDEBUG(206, *YYCURSOR); ++YYCURSOR; @@ -3336,7 +3374,7 @@ yy206: { return T_IS_GREATER_OR_EQUAL; } -#line 3340 "Zend/zend_language_scanner.c" +#line 3378 "Zend/zend_language_scanner.c" yy208: YYDEBUG(208, *YYCURSOR); ++YYCURSOR; @@ -3346,7 +3384,7 @@ yy208: { return T_SR_EQUAL; } -#line 3350 "Zend/zend_language_scanner.c" +#line 3388 "Zend/zend_language_scanner.c" yy210: YYDEBUG(210, *YYCURSOR); yyaccept = 5; @@ -3361,7 +3399,7 @@ yy211: { return T_SL; } -#line 3365 "Zend/zend_language_scanner.c" +#line 3403 "Zend/zend_language_scanner.c" yy212: YYDEBUG(212, *YYCURSOR); ++YYCURSOR; @@ -3371,7 +3409,7 @@ yy212: { return T_IS_SMALLER_OR_EQUAL; } -#line 3375 "Zend/zend_language_scanner.c" +#line 3413 "Zend/zend_language_scanner.c" yy214: YYDEBUG(214, *YYCURSOR); ++YYCURSOR; @@ -3382,7 +3420,7 @@ yy215: { return T_IS_NOT_EQUAL; } -#line 3386 "Zend/zend_language_scanner.c" +#line 3424 "Zend/zend_language_scanner.c" yy216: YYDEBUG(216, *YYCURSOR); ++YYCURSOR; @@ -3392,7 +3430,7 @@ yy216: { return T_SL_EQUAL; } -#line 3396 "Zend/zend_language_scanner.c" +#line 3434 "Zend/zend_language_scanner.c" yy218: YYDEBUG(218, *YYCURSOR); ++YYCURSOR; @@ -3497,7 +3535,7 @@ yy227: yy228: YYDEBUG(228, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1985 "Zend/zend_language_scanner.l" +#line 2027 "Zend/zend_language_scanner.l" { char *s; int bprefix = (yytext[0] != '<') ? 1 : 0; @@ -3544,7 +3582,7 @@ yy228: return T_START_HEREDOC; } -#line 3548 "Zend/zend_language_scanner.c" +#line 3586 "Zend/zend_language_scanner.c" yy229: YYDEBUG(229, *YYCURSOR); yych = *++YYCURSOR; @@ -3588,7 +3626,7 @@ yy232: { return T_IS_NOT_IDENTICAL; } -#line 3592 "Zend/zend_language_scanner.c" +#line 3630 "Zend/zend_language_scanner.c" yy235: YYDEBUG(235, *YYCURSOR); ++YYCURSOR; @@ -3598,7 +3636,7 @@ yy235: { return T_PLUS_EQUAL; } -#line 3602 "Zend/zend_language_scanner.c" +#line 3640 "Zend/zend_language_scanner.c" yy237: YYDEBUG(237, *YYCURSOR); ++YYCURSOR; @@ -3608,7 +3646,7 @@ yy237: { return T_INC; } -#line 3612 "Zend/zend_language_scanner.c" +#line 3650 "Zend/zend_language_scanner.c" yy239: YYDEBUG(239, *YYCURSOR); yych = *++YYCURSOR; @@ -3631,7 +3669,7 @@ yy241: { return T_LIST; } -#line 3635 "Zend/zend_language_scanner.c" +#line 3673 "Zend/zend_language_scanner.c" yy243: YYDEBUG(243, *YYCURSOR); ++YYCURSOR; @@ -3642,7 +3680,7 @@ yy243: { return T_IS_EQUAL; } -#line 3646 "Zend/zend_language_scanner.c" +#line 3684 "Zend/zend_language_scanner.c" yy245: YYDEBUG(245, *YYCURSOR); ++YYCURSOR; @@ -3652,7 +3690,7 @@ yy245: { return T_DOUBLE_ARROW; } -#line 3656 "Zend/zend_language_scanner.c" +#line 3694 "Zend/zend_language_scanner.c" yy247: YYDEBUG(247, *YYCURSOR); ++YYCURSOR; @@ -3662,7 +3700,7 @@ yy247: { return T_IS_IDENTICAL; } -#line 3666 "Zend/zend_language_scanner.c" +#line 3704 "Zend/zend_language_scanner.c" yy249: YYDEBUG(249, *YYCURSOR); yych = *++YYCURSOR; @@ -3792,11 +3830,11 @@ yy265: } YYDEBUG(268, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1685 "Zend/zend_language_scanner.l" +#line 1727 "Zend/zend_language_scanner.l" { return T_NS_C; } -#line 3800 "Zend/zend_language_scanner.c" +#line 3838 "Zend/zend_language_scanner.c" yy269: YYDEBUG(269, *YYCURSOR); yych = *++YYCURSOR; @@ -3816,11 +3854,11 @@ yy270: } YYDEBUG(273, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1681 "Zend/zend_language_scanner.l" +#line 1723 "Zend/zend_language_scanner.l" { return T_DIR; } -#line 3824 "Zend/zend_language_scanner.c" +#line 3862 "Zend/zend_language_scanner.c" yy274: YYDEBUG(274, *YYCURSOR); yych = *++YYCURSOR; @@ -3845,11 +3883,11 @@ yy276: } YYDEBUG(279, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1673 "Zend/zend_language_scanner.l" +#line 1715 "Zend/zend_language_scanner.l" { return T_LINE; } -#line 3853 "Zend/zend_language_scanner.c" +#line 3891 "Zend/zend_language_scanner.c" yy280: YYDEBUG(280, *YYCURSOR); yych = *++YYCURSOR; @@ -3884,11 +3922,11 @@ yy284: } YYDEBUG(287, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1669 "Zend/zend_language_scanner.l" +#line 1711 "Zend/zend_language_scanner.l" { return T_METHOD_C; } -#line 3892 "Zend/zend_language_scanner.c" +#line 3930 "Zend/zend_language_scanner.c" yy288: YYDEBUG(288, *YYCURSOR); yych = *++YYCURSOR; @@ -3939,11 +3977,11 @@ yy295: } YYDEBUG(298, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1665 "Zend/zend_language_scanner.l" +#line 1707 "Zend/zend_language_scanner.l" { return T_FUNC_C; } -#line 3947 "Zend/zend_language_scanner.c" +#line 3985 "Zend/zend_language_scanner.c" yy299: YYDEBUG(299, *YYCURSOR); yych = *++YYCURSOR; @@ -3963,11 +4001,11 @@ yy300: } YYDEBUG(303, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1677 "Zend/zend_language_scanner.l" +#line 1719 "Zend/zend_language_scanner.l" { return T_FILE; } -#line 3971 "Zend/zend_language_scanner.c" +#line 4009 "Zend/zend_language_scanner.c" yy304: YYDEBUG(304, *YYCURSOR); yych = *++YYCURSOR; @@ -3997,11 +4035,11 @@ yy307: } YYDEBUG(310, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1661 "Zend/zend_language_scanner.l" +#line 1703 "Zend/zend_language_scanner.l" { return T_TRAIT_C; } -#line 4005 "Zend/zend_language_scanner.c" +#line 4043 "Zend/zend_language_scanner.c" yy311: YYDEBUG(311, *YYCURSOR); yych = *++YYCURSOR; @@ -4031,11 +4069,11 @@ yy314: } YYDEBUG(317, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1657 "Zend/zend_language_scanner.l" +#line 1699 "Zend/zend_language_scanner.l" { return T_CLASS_C; } -#line 4039 "Zend/zend_language_scanner.c" +#line 4077 "Zend/zend_language_scanner.c" yy318: YYDEBUG(318, *YYCURSOR); yych = *++YYCURSOR; @@ -4101,7 +4139,7 @@ yy329: { return T_HALT_COMPILER; } -#line 4105 "Zend/zend_language_scanner.c" +#line 4143 "Zend/zend_language_scanner.c" yy331: YYDEBUG(331, *YYCURSOR); yych = *++YYCURSOR; @@ -4125,7 +4163,7 @@ yy333: { return T_USE; } -#line 4129 "Zend/zend_language_scanner.c" +#line 4167 "Zend/zend_language_scanner.c" yy335: YYDEBUG(335, *YYCURSOR); yych = *++YYCURSOR; @@ -4148,7 +4186,7 @@ yy337: { return T_UNSET; } -#line 4152 "Zend/zend_language_scanner.c" +#line 4190 "Zend/zend_language_scanner.c" yy339: YYDEBUG(339, *YYCURSOR); ++YYCURSOR; @@ -4324,7 +4362,7 @@ yy354: { return T_INT_CAST; } -#line 4328 "Zend/zend_language_scanner.c" +#line 4366 "Zend/zend_language_scanner.c" yy357: YYDEBUG(357, *YYCURSOR); yych = *++YYCURSOR; @@ -4372,7 +4410,7 @@ yy362: { return T_DOUBLE_CAST; } -#line 4376 "Zend/zend_language_scanner.c" +#line 4414 "Zend/zend_language_scanner.c" yy366: YYDEBUG(366, *YYCURSOR); yych = *++YYCURSOR; @@ -4446,7 +4484,7 @@ yy376: { return T_STRING_CAST; } -#line 4450 "Zend/zend_language_scanner.c" +#line 4488 "Zend/zend_language_scanner.c" yy380: YYDEBUG(380, *YYCURSOR); yych = *++YYCURSOR; @@ -4483,7 +4521,7 @@ yy383: { return T_ARRAY_CAST; } -#line 4487 "Zend/zend_language_scanner.c" +#line 4525 "Zend/zend_language_scanner.c" yy387: YYDEBUG(387, *YYCURSOR); yych = *++YYCURSOR; @@ -4525,7 +4563,7 @@ yy391: { return T_OBJECT_CAST; } -#line 4529 "Zend/zend_language_scanner.c" +#line 4567 "Zend/zend_language_scanner.c" yy395: YYDEBUG(395, *YYCURSOR); yych = *++YYCURSOR; @@ -4570,7 +4608,7 @@ yy400: { return T_BOOL_CAST; } -#line 4574 "Zend/zend_language_scanner.c" +#line 4612 "Zend/zend_language_scanner.c" yy403: YYDEBUG(403, *YYCURSOR); yych = *++YYCURSOR; @@ -4634,7 +4672,7 @@ yy411: { return T_UNSET_CAST; } -#line 4638 "Zend/zend_language_scanner.c" +#line 4676 "Zend/zend_language_scanner.c" yy415: YYDEBUG(415, *YYCURSOR); yych = *++YYCURSOR; @@ -4652,7 +4690,7 @@ yy416: { return T_VAR; } -#line 4656 "Zend/zend_language_scanner.c" +#line 4694 "Zend/zend_language_scanner.c" yy418: YYDEBUG(418, *YYCURSOR); yych = *++YYCURSOR; @@ -4676,7 +4714,7 @@ yy420: { return T_NEW; } -#line 4680 "Zend/zend_language_scanner.c" +#line 4718 "Zend/zend_language_scanner.c" yy422: YYDEBUG(422, *YYCURSOR); yych = *++YYCURSOR; @@ -4719,7 +4757,7 @@ yy428: { return T_NAMESPACE; } -#line 4723 "Zend/zend_language_scanner.c" +#line 4761 "Zend/zend_language_scanner.c" yy430: YYDEBUG(430, *YYCURSOR); ++YYCURSOR; @@ -4728,12 +4766,12 @@ yy430: yy431: YYDEBUG(431, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1868 "Zend/zend_language_scanner.l" +#line 1910 "Zend/zend_language_scanner.l" { BEGIN(INITIAL); return T_CLOSE_TAG; /* implicit ';' at php-end tag */ } -#line 4737 "Zend/zend_language_scanner.c" +#line 4775 "Zend/zend_language_scanner.c" yy432: YYDEBUG(432, *YYCURSOR); ++YYCURSOR; @@ -4743,7 +4781,7 @@ yy432: { return T_COALESCE; } -#line 4747 "Zend/zend_language_scanner.c" +#line 4785 "Zend/zend_language_scanner.c" yy434: YYDEBUG(434, *YYCURSOR); yych = *++YYCURSOR; @@ -4778,7 +4816,7 @@ yy438: { return T_CONCAT_EQUAL; } -#line 4782 "Zend/zend_language_scanner.c" +#line 4820 "Zend/zend_language_scanner.c" yy440: YYDEBUG(440, *YYCURSOR); yych = *++YYCURSOR; @@ -4791,7 +4829,7 @@ yy440: { return T_ELLIPSIS; } -#line 4795 "Zend/zend_language_scanner.c" +#line 4833 "Zend/zend_language_scanner.c" yy443: YYDEBUG(443, *YYCURSOR); ++YYCURSOR; @@ -4801,7 +4839,7 @@ yy443: { return T_PAAMAYIM_NEKUDOTAYIM; } -#line 4805 "Zend/zend_language_scanner.c" +#line 4843 "Zend/zend_language_scanner.c" yy445: YYDEBUG(445, *YYCURSOR); ++YYCURSOR; @@ -4827,7 +4865,7 @@ yy447: { return T_MINUS_EQUAL; } -#line 4831 "Zend/zend_language_scanner.c" +#line 4869 "Zend/zend_language_scanner.c" yy449: YYDEBUG(449, *YYCURSOR); ++YYCURSOR; @@ -4837,7 +4875,7 @@ yy449: { return T_DEC; } -#line 4841 "Zend/zend_language_scanner.c" +#line 4879 "Zend/zend_language_scanner.c" yy451: YYDEBUG(451, *YYCURSOR); ++YYCURSOR; @@ -4848,7 +4886,7 @@ yy451: yy_push_state(ST_LOOKING_FOR_PROPERTY); return T_OBJECT_OPERATOR; } -#line 4852 "Zend/zend_language_scanner.c" +#line 4890 "Zend/zend_language_scanner.c" yy453: YYDEBUG(453, *YYCURSOR); yych = *++YYCURSOR; @@ -4897,7 +4935,7 @@ yy458: { return T_PUBLIC; } -#line 4901 "Zend/zend_language_scanner.c" +#line 4939 "Zend/zend_language_scanner.c" yy460: YYDEBUG(460, *YYCURSOR); yych = *++YYCURSOR; @@ -4956,7 +4994,7 @@ yy467: { return T_PROTECTED; } -#line 4960 "Zend/zend_language_scanner.c" +#line 4998 "Zend/zend_language_scanner.c" yy469: YYDEBUG(469, *YYCURSOR); yych = *++YYCURSOR; @@ -4990,7 +5028,7 @@ yy473: { return T_PRIVATE; } -#line 4994 "Zend/zend_language_scanner.c" +#line 5032 "Zend/zend_language_scanner.c" yy475: YYDEBUG(475, *YYCURSOR); ++YYCURSOR; @@ -5003,7 +5041,7 @@ yy475: { return T_PRINT; } -#line 5007 "Zend/zend_language_scanner.c" +#line 5045 "Zend/zend_language_scanner.c" yy477: YYDEBUG(477, *YYCURSOR); yych = *++YYCURSOR; @@ -5032,7 +5070,7 @@ yy480: { return T_GOTO; } -#line 5036 "Zend/zend_language_scanner.c" +#line 5074 "Zend/zend_language_scanner.c" yy482: YYDEBUG(482, *YYCURSOR); yych = *++YYCURSOR; @@ -5060,7 +5098,7 @@ yy485: { return T_GLOBAL; } -#line 5064 "Zend/zend_language_scanner.c" +#line 5102 "Zend/zend_language_scanner.c" yy487: YYDEBUG(487, *YYCURSOR); yych = *++YYCURSOR; @@ -5101,7 +5139,7 @@ yy493: { return T_BREAK; } -#line 5105 "Zend/zend_language_scanner.c" +#line 5143 "Zend/zend_language_scanner.c" yy495: YYDEBUG(495, *YYCURSOR); yych = *++YYCURSOR; @@ -5145,7 +5183,7 @@ yy501: { return T_SWITCH; } -#line 5149 "Zend/zend_language_scanner.c" +#line 5187 "Zend/zend_language_scanner.c" yy503: YYDEBUG(503, *YYCURSOR); yych = *++YYCURSOR; @@ -5173,7 +5211,7 @@ yy506: { return T_STATIC; } -#line 5177 "Zend/zend_language_scanner.c" +#line 5215 "Zend/zend_language_scanner.c" yy508: YYDEBUG(508, *YYCURSOR); yych = *++YYCURSOR; @@ -5204,7 +5242,7 @@ yy511: { return T_AS; } -#line 5208 "Zend/zend_language_scanner.c" +#line 5246 "Zend/zend_language_scanner.c" yy513: YYDEBUG(513, *YYCURSOR); yych = *++YYCURSOR; @@ -5227,7 +5265,7 @@ yy515: { return T_ARRAY; } -#line 5231 "Zend/zend_language_scanner.c" +#line 5269 "Zend/zend_language_scanner.c" yy517: YYDEBUG(517, *YYCURSOR); ++YYCURSOR; @@ -5240,7 +5278,7 @@ yy517: { return T_LOGICAL_AND; } -#line 5244 "Zend/zend_language_scanner.c" +#line 5282 "Zend/zend_language_scanner.c" yy519: YYDEBUG(519, *YYCURSOR); yych = *++YYCURSOR; @@ -5278,7 +5316,7 @@ yy524: { return T_ABSTRACT; } -#line 5282 "Zend/zend_language_scanner.c" +#line 5320 "Zend/zend_language_scanner.c" yy526: YYDEBUG(526, *YYCURSOR); yych = *++YYCURSOR; @@ -5306,7 +5344,7 @@ yy529: { return T_WHILE; } -#line 5310 "Zend/zend_language_scanner.c" +#line 5348 "Zend/zend_language_scanner.c" yy531: YYDEBUG(531, *YYCURSOR); ++YYCURSOR; @@ -5319,7 +5357,7 @@ yy531: { return T_IF; } -#line 5323 "Zend/zend_language_scanner.c" +#line 5361 "Zend/zend_language_scanner.c" yy533: YYDEBUG(533, *YYCURSOR); yych = *++YYCURSOR; @@ -5375,7 +5413,7 @@ yy538: { return T_ISSET; } -#line 5379 "Zend/zend_language_scanner.c" +#line 5417 "Zend/zend_language_scanner.c" yy540: YYDEBUG(540, *YYCURSOR); yych = *++YYCURSOR; @@ -5433,7 +5471,7 @@ yy547: { return T_INCLUDE; } -#line 5437 "Zend/zend_language_scanner.c" +#line 5475 "Zend/zend_language_scanner.c" yy548: YYDEBUG(548, *YYCURSOR); yych = *++YYCURSOR; @@ -5466,7 +5504,7 @@ yy552: { return T_INCLUDE_ONCE; } -#line 5470 "Zend/zend_language_scanner.c" +#line 5508 "Zend/zend_language_scanner.c" yy554: YYDEBUG(554, *YYCURSOR); yych = *++YYCURSOR; @@ -5504,7 +5542,7 @@ yy559: { return T_INTERFACE; } -#line 5508 "Zend/zend_language_scanner.c" +#line 5546 "Zend/zend_language_scanner.c" yy561: YYDEBUG(561, *YYCURSOR); yych = *++YYCURSOR; @@ -5558,7 +5596,7 @@ yy567: { return T_INSTEADOF; } -#line 5562 "Zend/zend_language_scanner.c" +#line 5600 "Zend/zend_language_scanner.c" yy569: YYDEBUG(569, *YYCURSOR); yych = *++YYCURSOR; @@ -5591,7 +5629,7 @@ yy573: { return T_INSTANCEOF; } -#line 5595 "Zend/zend_language_scanner.c" +#line 5633 "Zend/zend_language_scanner.c" yy575: YYDEBUG(575, *YYCURSOR); yych = *++YYCURSOR; @@ -5639,7 +5677,7 @@ yy582: { return T_IMPLEMENTS; } -#line 5643 "Zend/zend_language_scanner.c" +#line 5681 "Zend/zend_language_scanner.c" yy584: YYDEBUG(584, *YYCURSOR); yych = *++YYCURSOR; @@ -5671,7 +5709,7 @@ yy585: { return T_TRY; } -#line 5675 "Zend/zend_language_scanner.c" +#line 5713 "Zend/zend_language_scanner.c" yy588: YYDEBUG(588, *YYCURSOR); yych = *++YYCURSOR; @@ -5694,7 +5732,7 @@ yy590: { return T_TRAIT; } -#line 5698 "Zend/zend_language_scanner.c" +#line 5736 "Zend/zend_language_scanner.c" yy592: YYDEBUG(592, *YYCURSOR); yych = *++YYCURSOR; @@ -5717,7 +5755,7 @@ yy594: { return T_THROW; } -#line 5721 "Zend/zend_language_scanner.c" +#line 5759 "Zend/zend_language_scanner.c" yy596: YYDEBUG(596, *YYCURSOR); yych = *++YYCURSOR; @@ -5745,7 +5783,7 @@ yy599: { return T_YIELD; } -#line 5749 "Zend/zend_language_scanner.c" +#line 5787 "Zend/zend_language_scanner.c" yy601: YYDEBUG(601, *YYCURSOR); yych = *++YYCURSOR; @@ -5810,7 +5848,7 @@ yy608: { return T_REQUIRE; } -#line 5814 "Zend/zend_language_scanner.c" +#line 5852 "Zend/zend_language_scanner.c" yy609: YYDEBUG(609, *YYCURSOR); yych = *++YYCURSOR; @@ -5843,7 +5881,7 @@ yy613: { return T_REQUIRE_ONCE; } -#line 5847 "Zend/zend_language_scanner.c" +#line 5885 "Zend/zend_language_scanner.c" yy615: YYDEBUG(615, *YYCURSOR); yych = *++YYCURSOR; @@ -5866,7 +5904,7 @@ yy617: { return T_RETURN; } -#line 5870 "Zend/zend_language_scanner.c" +#line 5908 "Zend/zend_language_scanner.c" yy619: YYDEBUG(619, *YYCURSOR); yych = *++YYCURSOR; @@ -5960,7 +5998,7 @@ yy628: { return T_CONTINUE; } -#line 5964 "Zend/zend_language_scanner.c" +#line 6002 "Zend/zend_language_scanner.c" yy630: YYDEBUG(630, *YYCURSOR); ++YYCURSOR; @@ -5973,7 +6011,7 @@ yy630: { return T_CONST; } -#line 5977 "Zend/zend_language_scanner.c" +#line 6015 "Zend/zend_language_scanner.c" yy632: YYDEBUG(632, *YYCURSOR); yych = *++YYCURSOR; @@ -6002,7 +6040,7 @@ yy635: { return T_CLONE; } -#line 6006 "Zend/zend_language_scanner.c" +#line 6044 "Zend/zend_language_scanner.c" yy637: YYDEBUG(637, *YYCURSOR); yych = *++YYCURSOR; @@ -6020,7 +6058,7 @@ yy638: { return T_CLASS; } -#line 6024 "Zend/zend_language_scanner.c" +#line 6062 "Zend/zend_language_scanner.c" yy640: YYDEBUG(640, *YYCURSOR); yych = *++YYCURSOR; @@ -6070,7 +6108,7 @@ yy647: { return T_CALLABLE; } -#line 6074 "Zend/zend_language_scanner.c" +#line 6112 "Zend/zend_language_scanner.c" yy649: YYDEBUG(649, *YYCURSOR); ++YYCURSOR; @@ -6083,7 +6121,7 @@ yy649: { return T_CASE; } -#line 6087 "Zend/zend_language_scanner.c" +#line 6125 "Zend/zend_language_scanner.c" yy651: YYDEBUG(651, *YYCURSOR); yych = *++YYCURSOR; @@ -6101,7 +6139,7 @@ yy652: { return T_CATCH; } -#line 6105 "Zend/zend_language_scanner.c" +#line 6143 "Zend/zend_language_scanner.c" yy654: YYDEBUG(654, *YYCURSOR); yych = *++YYCURSOR; @@ -6156,7 +6194,7 @@ yy662: { return T_FUNCTION; } -#line 6160 "Zend/zend_language_scanner.c" +#line 6198 "Zend/zend_language_scanner.c" yy664: YYDEBUG(664, *YYCURSOR); ++YYCURSOR; @@ -6184,7 +6222,7 @@ yy665: { return T_FOR; } -#line 6188 "Zend/zend_language_scanner.c" +#line 6226 "Zend/zend_language_scanner.c" yy666: YYDEBUG(666, *YYCURSOR); yych = *++YYCURSOR; @@ -6212,7 +6250,7 @@ yy669: { return T_FOREACH; } -#line 6216 "Zend/zend_language_scanner.c" +#line 6254 "Zend/zend_language_scanner.c" yy671: YYDEBUG(671, *YYCURSOR); yych = *++YYCURSOR; @@ -6250,7 +6288,7 @@ yy674: { return T_FINAL; } -#line 6254 "Zend/zend_language_scanner.c" +#line 6292 "Zend/zend_language_scanner.c" yy675: YYDEBUG(675, *YYCURSOR); yych = *++YYCURSOR; @@ -6268,7 +6306,7 @@ yy676: { return T_FINALLY; } -#line 6272 "Zend/zend_language_scanner.c" +#line 6310 "Zend/zend_language_scanner.c" yy678: YYDEBUG(678, *YYCURSOR); yych = *++YYCURSOR; @@ -6303,7 +6341,7 @@ yy680: { return T_DO; } -#line 6307 "Zend/zend_language_scanner.c" +#line 6345 "Zend/zend_language_scanner.c" yy682: YYDEBUG(682, *YYCURSOR); ++YYCURSOR; @@ -6316,7 +6354,7 @@ yy682: { return T_EXIT; } -#line 6320 "Zend/zend_language_scanner.c" +#line 6358 "Zend/zend_language_scanner.c" yy684: YYDEBUG(684, *YYCURSOR); yych = *++YYCURSOR; @@ -6355,7 +6393,7 @@ yy689: { return T_DEFAULT; } -#line 6359 "Zend/zend_language_scanner.c" +#line 6397 "Zend/zend_language_scanner.c" yy691: YYDEBUG(691, *YYCURSOR); yych = *++YYCURSOR; @@ -6383,7 +6421,7 @@ yy694: { return T_DECLARE; } -#line 6387 "Zend/zend_language_scanner.c" +#line 6425 "Zend/zend_language_scanner.c" yy696: YYDEBUG(696, *YYCURSOR); yych = *++YYCURSOR; @@ -6467,7 +6505,7 @@ yy707: { return T_EXTENDS; } -#line 6471 "Zend/zend_language_scanner.c" +#line 6509 "Zend/zend_language_scanner.c" yy709: YYDEBUG(709, *YYCURSOR); ++YYCURSOR; @@ -6480,7 +6518,7 @@ yy709: { return T_EXIT; } -#line 6484 "Zend/zend_language_scanner.c" +#line 6522 "Zend/zend_language_scanner.c" yy711: YYDEBUG(711, *YYCURSOR); yych = *++YYCURSOR; @@ -6498,7 +6536,7 @@ yy712: { return T_EVAL; } -#line 6502 "Zend/zend_language_scanner.c" +#line 6540 "Zend/zend_language_scanner.c" yy714: YYDEBUG(714, *YYCURSOR); yych = *++YYCURSOR; @@ -6572,7 +6610,7 @@ yy723: { return T_ENDWHILE; } -#line 6576 "Zend/zend_language_scanner.c" +#line 6614 "Zend/zend_language_scanner.c" yy725: YYDEBUG(725, *YYCURSOR); yych = *++YYCURSOR; @@ -6605,7 +6643,7 @@ yy729: { return T_ENDSWITCH; } -#line 6609 "Zend/zend_language_scanner.c" +#line 6647 "Zend/zend_language_scanner.c" yy731: YYDEBUG(731, *YYCURSOR); ++YYCURSOR; @@ -6618,7 +6656,7 @@ yy731: { return T_ENDIF; } -#line 6622 "Zend/zend_language_scanner.c" +#line 6660 "Zend/zend_language_scanner.c" yy733: YYDEBUG(733, *YYCURSOR); yych = *++YYCURSOR; @@ -6651,7 +6689,7 @@ yy735: { return T_ENDFOR; } -#line 6655 "Zend/zend_language_scanner.c" +#line 6693 "Zend/zend_language_scanner.c" yy736: YYDEBUG(736, *YYCURSOR); yych = *++YYCURSOR; @@ -6679,7 +6717,7 @@ yy739: { return T_ENDFOREACH; } -#line 6683 "Zend/zend_language_scanner.c" +#line 6721 "Zend/zend_language_scanner.c" yy741: YYDEBUG(741, *YYCURSOR); yych = *++YYCURSOR; @@ -6717,7 +6755,7 @@ yy746: { return T_ENDDECLARE; } -#line 6721 "Zend/zend_language_scanner.c" +#line 6759 "Zend/zend_language_scanner.c" yy748: YYDEBUG(748, *YYCURSOR); yych = *++YYCURSOR; @@ -6740,7 +6778,7 @@ yy750: { return T_EMPTY; } -#line 6744 "Zend/zend_language_scanner.c" +#line 6782 "Zend/zend_language_scanner.c" yy752: YYDEBUG(752, *YYCURSOR); yych = *++YYCURSOR; @@ -6773,7 +6811,7 @@ yy754: { return T_ELSE; } -#line 6777 "Zend/zend_language_scanner.c" +#line 6815 "Zend/zend_language_scanner.c" yy755: YYDEBUG(755, *YYCURSOR); yych = *++YYCURSOR; @@ -6791,7 +6829,7 @@ yy756: { return T_ELSEIF; } -#line 6795 "Zend/zend_language_scanner.c" +#line 6833 "Zend/zend_language_scanner.c" yy758: YYDEBUG(758, *YYCURSOR); yych = *++YYCURSOR; @@ -6809,44 +6847,44 @@ yy759: { return T_ECHO; } -#line 6813 "Zend/zend_language_scanner.c" +#line 6851 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_LOOKING_FOR_PROPERTY: { static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 128, 0, 0, 128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 128, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 0, 0, 0, 0, 0, 0, - 0, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 0, 0, 0, 0, 64, - 0, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 0, 0, 0, 0, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 128, 128, 0, 0, 128, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 128, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 0, 0, 0, 0, 0, 0, + 0, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 0, 0, 0, 0, 64, + 0, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 0, 0, 0, 0, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, }; YYDEBUG(761, *YYCURSOR); YYFILL(2); @@ -6887,7 +6925,7 @@ yy764: HANDLE_NEWLINES(yytext, yyleng); return T_WHITESPACE; } -#line 6891 "Zend/zend_language_scanner.c" +#line 6929 "Zend/zend_language_scanner.c" yy765: YYDEBUG(765, *YYCURSOR); ++YYCURSOR; @@ -6901,7 +6939,7 @@ yy766: yy_pop_state(); goto restart; } -#line 6905 "Zend/zend_language_scanner.c" +#line 6943 "Zend/zend_language_scanner.c" yy767: YYDEBUG(767, *YYCURSOR); ++YYCURSOR; @@ -6916,7 +6954,7 @@ yy768: zend_copy_value(zendlval, yytext, yyleng); return T_STRING; } -#line 6920 "Zend/zend_language_scanner.c" +#line 6958 "Zend/zend_language_scanner.c" yy769: YYDEBUG(769, *YYCURSOR); yych = *++YYCURSOR; @@ -6941,7 +6979,7 @@ yy772: { return T_OBJECT_OPERATOR; } -#line 6945 "Zend/zend_language_scanner.c" +#line 6983 "Zend/zend_language_scanner.c" yy774: YYDEBUG(774, *YYCURSOR); ++YYCURSOR; @@ -6958,38 +6996,38 @@ yy775: yyc_ST_LOOKING_FOR_VARNAME: { static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 0, 0, 0, 0, 0, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 128, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 0, 0, 0, 0, 0, 0, + 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 0, 0, 0, 128, + 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 0, 0, 0, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, }; YYDEBUG(776, *YYCURSOR); YYFILL(2); @@ -7033,7 +7071,7 @@ yy779: yy_push_state(ST_IN_SCRIPTING); goto restart; } -#line 7037 "Zend/zend_language_scanner.c" +#line 7075 "Zend/zend_language_scanner.c" yy780: YYDEBUG(780, *YYCURSOR); yych = *++YYCURSOR; @@ -7048,8 +7086,10 @@ yy782: if (yybm[0+yych] & 128) { goto yy781; } - if (yych == '[') goto yy784; + if (yych <= '@') goto yy783; + if (yych <= '[') goto yy784; if (yych == '}') goto yy784; +yy783: YYDEBUG(783, *YYCURSOR); YYCURSOR = YYMARKER; goto yy779; @@ -7066,7 +7106,7 @@ yy784: yy_push_state(ST_IN_SCRIPTING); return T_STRING_VARNAME; } -#line 7070 "Zend/zend_language_scanner.c" +#line 7110 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_NOWDOC: @@ -7077,7 +7117,7 @@ yyc_ST_NOWDOC: ++YYCURSOR; YYDEBUG(789, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2238 "Zend/zend_language_scanner.l" +#line 2280 "Zend/zend_language_scanner.l" { int newline = 0; @@ -7133,43 +7173,43 @@ nowdoc_scan_done: HANDLE_NEWLINES(yytext, yyleng - newline); return T_ENCAPSED_AND_WHITESPACE; } -#line 7137 "Zend/zend_language_scanner.c" +#line 7177 "Zend/zend_language_scanner.c" /* *********************************** */ yyc_ST_VAR_OFFSET: { static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 240, 240, 112, 112, 112, 112, 112, 112, - 112, 112, 0, 0, 0, 0, 0, 0, - 0, 80, 80, 80, 80, 80, 80, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 0, 0, 0, 0, 16, - 0, 80, 80, 80, 80, 80, 80, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 0, 0, 0, 0, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 240, 240, 112, 112, 112, 112, 112, 112, + 112, 112, 0, 0, 0, 0, 0, 0, + 0, 80, 80, 80, 80, 80, 80, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 0, 0, 0, 0, 16, + 0, 80, 80, 80, 80, 80, 80, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 0, 0, 0, 0, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, }; YYDEBUG(790, *YYCURSOR); YYFILL(3); @@ -7240,16 +7280,23 @@ yy792: yy793: YYDEBUG(793, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1638 "Zend/zend_language_scanner.l" +#line 1669 "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)) { - ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, NULL, 10)); + char *end; + errno = 0; + ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 10)); + if (errno == ERANGE) { + goto string; + } + ZEND_ASSERT(end == yytext + yyleng); } else { +string: ZVAL_STRINGL(zendlval, yytext, yyleng); } return T_NUM_STRING; } -#line 7253 "Zend/zend_language_scanner.c" +#line 7300 "Zend/zend_language_scanner.c" yy794: YYDEBUG(794, *YYCURSOR); yych = *++YYCURSOR; @@ -7269,23 +7316,23 @@ yy795: yy796: YYDEBUG(796, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1787 "Zend/zend_language_scanner.l" +#line 1829 "Zend/zend_language_scanner.l" { /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */ return yytext[0]; } -#line 7278 "Zend/zend_language_scanner.c" +#line 7325 "Zend/zend_language_scanner.c" yy797: YYDEBUG(797, *YYCURSOR); ++YYCURSOR; YYDEBUG(798, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1782 "Zend/zend_language_scanner.l" +#line 1824 "Zend/zend_language_scanner.l" { yy_pop_state(); return ']'; } -#line 7289 "Zend/zend_language_scanner.c" +#line 7336 "Zend/zend_language_scanner.c" yy799: YYDEBUG(799, *YYCURSOR); yych = *++YYCURSOR; @@ -7295,7 +7342,7 @@ yy800: ++YYCURSOR; YYDEBUG(801, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1792 "Zend/zend_language_scanner.l" +#line 1834 "Zend/zend_language_scanner.l" { /* Invalid rule to return a more explicit parse error with proper line number */ yyless(0); @@ -7303,7 +7350,7 @@ yy800: ZVAL_NULL(zendlval); return T_ENCAPSED_AND_WHITESPACE; } -#line 7307 "Zend/zend_language_scanner.c" +#line 7354 "Zend/zend_language_scanner.c" yy802: YYDEBUG(802, *YYCURSOR); ++YYCURSOR; @@ -7312,18 +7359,18 @@ yy802: yy803: YYDEBUG(803, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1800 "Zend/zend_language_scanner.l" +#line 1842 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); return T_STRING; } -#line 7321 "Zend/zend_language_scanner.c" +#line 7368 "Zend/zend_language_scanner.c" yy804: YYDEBUG(804, *YYCURSOR); ++YYCURSOR; YYDEBUG(805, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2295 "Zend/zend_language_scanner.l" +#line 2337 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -7332,7 +7379,7 @@ yy804: zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); goto restart; } -#line 7336 "Zend/zend_language_scanner.c" +#line 7383 "Zend/zend_language_scanner.c" yy806: YYDEBUG(806, *YYCURSOR); ++YYCURSOR; @@ -7368,12 +7415,12 @@ yy808: yy810: YYDEBUG(810, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1777 "Zend/zend_language_scanner.l" +#line 1819 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 7377 "Zend/zend_language_scanner.c" +#line 7424 "Zend/zend_language_scanner.c" yy811: YYDEBUG(811, *YYCURSOR); ++YYCURSOR; @@ -7413,12 +7460,12 @@ yy816: yy818: YYDEBUG(818, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1647 "Zend/zend_language_scanner.l" +#line 1685 "Zend/zend_language_scanner.l" { /* Offset must be treated as a string */ ZVAL_STRINGL(zendlval, yytext, yyleng); return T_NUM_STRING; } -#line 7422 "Zend/zend_language_scanner.c" +#line 7469 "Zend/zend_language_scanner.c" yy819: YYDEBUG(819, *YYCURSOR); ++YYCURSOR; @@ -7441,6 +7488,6 @@ yy821: goto yy818; } } -#line 2304 "Zend/zend_language_scanner.l" +#line 2346 "Zend/zend_language_scanner.l" } |