]> granicus.if.org Git - php/commitdiff
Fix sequencing UB
authorNikita Popov <nikita.ppv@gmail.com>
Thu, 23 Mar 2017 21:48:45 +0000 (22:48 +0100)
committerNikita Popov <nikita.ppv@gmail.com>
Thu, 23 Mar 2017 21:48:45 +0000 (22:48 +0100)
Zend/zend_language_scanner.c
Zend/zend_language_scanner.l

index d35fbceff27c6c8a8cc83136dfd200f1de4d9d4c..d5b41a1ef5748582b877bb315d965b5e2500c654 100644 (file)
@@ -1173,7 +1173,7 @@ yyc_INITIAL:
 yy4:
        YYDEBUG(4, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 1817 "Zend/zend_language_scanner.l"
+#line 1818 "Zend/zend_language_scanner.l"
        {
        if (YYCURSOR > YYLIMIT) {
                RETURN_TOKEN(END);
@@ -1234,7 +1234,7 @@ yy5:
 yy7:
        YYDEBUG(7, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 1808 "Zend/zend_language_scanner.l"
+#line 1809 "Zend/zend_language_scanner.l"
        {
        if (CG(short_tags)) {
                BEGIN(ST_IN_SCRIPTING);
@@ -1249,7 +1249,7 @@ yy8:
        ++YYCURSOR;
        YYDEBUG(9, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 1795 "Zend/zend_language_scanner.l"
+#line 1796 "Zend/zend_language_scanner.l"
        {
        BEGIN(ST_IN_SCRIPTING);
        RETURN_TOKEN(T_OPEN_TAG_WITH_ECHO);
@@ -1285,7 +1285,7 @@ yy14:
 yy15:
        YYDEBUG(15, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 1801 "Zend/zend_language_scanner.l"
+#line 1802 "Zend/zend_language_scanner.l"
        {
        HANDLE_NEWLINE(yytext[yyleng-1]);
        BEGIN(ST_IN_SCRIPTING);
@@ -1348,7 +1348,7 @@ yyc_ST_BACKQUOTE:
 yy20:
                YYDEBUG(20, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2227 "Zend/zend_language_scanner.l"
+#line 2228 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                RETURN_TOKEN(END);
@@ -1413,7 +1413,7 @@ yy22:
                ++YYCURSOR;
                YYDEBUG(23, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2171 "Zend/zend_language_scanner.l"
+#line 2172 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        RETURN_TOKEN('`');
@@ -1439,7 +1439,7 @@ yy25:
 yy27:
                YYDEBUG(27, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1882 "Zend/zend_language_scanner.l"
+#line 1883 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        RETURN_TOKEN(T_VARIABLE);
@@ -1450,7 +1450,7 @@ yy28:
                ++YYCURSOR;
                YYDEBUG(29, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1600 "Zend/zend_language_scanner.l"
+#line 1601 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME);
        RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
@@ -1461,7 +1461,7 @@ yy30:
                ++YYCURSOR;
                YYDEBUG(31, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2158 "Zend/zend_language_scanner.l"
+#line 2159 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = (zend_long) '{';
        yy_push_state(ST_IN_SCRIPTING);
@@ -1482,7 +1482,7 @@ yy34:
                ++YYCURSOR;
                YYDEBUG(35, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1875 "Zend/zend_language_scanner.l"
+#line 1876 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET);
@@ -1507,7 +1507,7 @@ yy37:
                ++YYCURSOR;
                YYDEBUG(38, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1866 "Zend/zend_language_scanner.l"
+#line 1867 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY);
@@ -1567,7 +1567,7 @@ yyc_ST_DOUBLE_QUOTES:
 yy42:
                YYDEBUG(42, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2177 "Zend/zend_language_scanner.l"
+#line 2178 "Zend/zend_language_scanner.l"
                {
        if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
                YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
@@ -1622,7 +1622,7 @@ yy43:
                ++YYCURSOR;
                YYDEBUG(44, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2166 "Zend/zend_language_scanner.l"
+#line 2167 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        RETURN_TOKEN('"');
@@ -1666,7 +1666,7 @@ yy47:
 yy49:
                YYDEBUG(49, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1882 "Zend/zend_language_scanner.l"
+#line 1883 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        RETURN_TOKEN(T_VARIABLE);
@@ -1677,7 +1677,7 @@ yy50:
                ++YYCURSOR;
                YYDEBUG(51, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1600 "Zend/zend_language_scanner.l"
+#line 1601 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME);
        RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
@@ -1688,7 +1688,7 @@ yy52:
                ++YYCURSOR;
                YYDEBUG(53, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2158 "Zend/zend_language_scanner.l"
+#line 2159 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = (zend_long) '{';
        yy_push_state(ST_IN_SCRIPTING);
@@ -1709,7 +1709,7 @@ yy56:
                ++YYCURSOR;
                YYDEBUG(57, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1875 "Zend/zend_language_scanner.l"
+#line 1876 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET);
@@ -1734,7 +1734,7 @@ yy59:
                ++YYCURSOR;
                YYDEBUG(60, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1866 "Zend/zend_language_scanner.l"
+#line 1867 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY);
@@ -1752,7 +1752,7 @@ yyc_ST_END_HEREDOC:
        ++YYCURSOR;
        YYDEBUG(64, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 2144 "Zend/zend_language_scanner.l"
+#line 2145 "Zend/zend_language_scanner.l"
        {
        zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack));
 
@@ -1813,7 +1813,7 @@ yyc_ST_HEREDOC:
 yy68:
                YYDEBUG(68, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2269 "Zend/zend_language_scanner.l"
+#line 2270 "Zend/zend_language_scanner.l"
                {
        int newline = 0;
 
@@ -1925,7 +1925,7 @@ yy71:
 yy73:
                YYDEBUG(73, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1882 "Zend/zend_language_scanner.l"
+#line 1883 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        RETURN_TOKEN(T_VARIABLE);
@@ -1936,7 +1936,7 @@ yy74:
                ++YYCURSOR;
                YYDEBUG(75, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1600 "Zend/zend_language_scanner.l"
+#line 1601 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME);
        RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
@@ -1947,7 +1947,7 @@ yy76:
                ++YYCURSOR;
                YYDEBUG(77, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2158 "Zend/zend_language_scanner.l"
+#line 2159 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = (zend_long) '{';
        yy_push_state(ST_IN_SCRIPTING);
@@ -1968,7 +1968,7 @@ yy80:
                ++YYCURSOR;
                YYDEBUG(81, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1875 "Zend/zend_language_scanner.l"
+#line 1876 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET);
@@ -1993,7 +1993,7 @@ yy83:
                ++YYCURSOR;
                YYDEBUG(84, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1866 "Zend/zend_language_scanner.l"
+#line 1867 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY);
@@ -2168,7 +2168,7 @@ yy87:
                ++YYCURSOR;
                YYDEBUG(88, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2400 "Zend/zend_language_scanner.l"
+#line 2401 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                RETURN_TOKEN(END);
@@ -2189,7 +2189,7 @@ yy89:
                }
                YYDEBUG(91, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1304 "Zend/zend_language_scanner.l"
+#line 1305 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        RETURN_TOKEN(T_WHITESPACE);
@@ -2202,7 +2202,7 @@ yy92:
 yy93:
                YYDEBUG(93, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1589 "Zend/zend_language_scanner.l"
+#line 1590 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(yytext[0]);
 }
@@ -2212,7 +2212,7 @@ yy94:
                ++YYCURSOR;
                YYDEBUG(95, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2048 "Zend/zend_language_scanner.l"
+#line 2049 "Zend/zend_language_scanner.l"
                {
        int bprefix = (yytext[0] != '"') ? 1 : 0;
 
@@ -2259,7 +2259,7 @@ yy96:
                ++YYCURSOR;
                YYDEBUG(97, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1911 "Zend/zend_language_scanner.l"
+#line 1912 "Zend/zend_language_scanner.l"
                {
        while (YYCURSOR < YYLIMIT) {
                switch (*YYCURSOR++) {
@@ -2319,7 +2319,7 @@ yy101:
                ++YYCURSOR;
                YYDEBUG(102, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1979 "Zend/zend_language_scanner.l"
+#line 1980 "Zend/zend_language_scanner.l"
                {
        register char *s, *t;
        char *end;
@@ -2517,7 +2517,7 @@ yy110:
 yy111:
                YYDEBUG(111, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1659 "Zend/zend_language_scanner.l"
+#line 1660 "Zend/zend_language_scanner.l"
                {
        char *end;
        if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
@@ -2643,7 +2643,7 @@ yy119:
 yy120:
                YYDEBUG(120, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1905 "Zend/zend_language_scanner.l"
+#line 1906 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        RETURN_TOKEN(T_STRING);
@@ -2933,7 +2933,7 @@ yy142:
                ++YYCURSOR;
                YYDEBUG(143, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1329 "Zend/zend_language_scanner.l"
+#line 1330 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_NS_SEPARATOR);
 }
@@ -2953,7 +2953,7 @@ yy146:
                ++YYCURSOR;
                YYDEBUG(147, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2138 "Zend/zend_language_scanner.l"
+#line 2139 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_BACKQUOTE);
        RETURN_TOKEN('`');
@@ -2964,7 +2964,7 @@ yy148:
                ++YYCURSOR;
                YYDEBUG(149, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1594 "Zend/zend_language_scanner.l"
+#line 1595 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_IN_SCRIPTING);
        RETURN_TOKEN('{');
@@ -2981,7 +2981,7 @@ yy151:
                ++YYCURSOR;
                YYDEBUG(152, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1606 "Zend/zend_language_scanner.l"
+#line 1607 "Zend/zend_language_scanner.l"
                {
        RESET_DOC_COMMENT();
        if (!zend_stack_is_empty(&SCNG(state_stack))) {
@@ -2997,7 +2997,7 @@ yy153:
 yy154:
                YYDEBUG(154, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1493 "Zend/zend_language_scanner.l"
+#line 1494 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_IS_NOT_EQUAL);
 }
@@ -3026,7 +3026,7 @@ yy155:
 yy157:
                YYDEBUG(157, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1882 "Zend/zend_language_scanner.l"
+#line 1883 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        RETURN_TOKEN(T_VARIABLE);
@@ -3037,7 +3037,7 @@ yy158:
                ++YYCURSOR;
                YYDEBUG(159, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1537 "Zend/zend_language_scanner.l"
+#line 1538 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_MOD_EQUAL);
 }
@@ -3047,7 +3047,7 @@ yy160:
                ++YYCURSOR;
                YYDEBUG(161, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1565 "Zend/zend_language_scanner.l"
+#line 1566 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_BOOLEAN_AND);
 }
@@ -3057,7 +3057,7 @@ yy162:
                ++YYCURSOR;
                YYDEBUG(163, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1549 "Zend/zend_language_scanner.l"
+#line 1550 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_AND_EQUAL);
 }
@@ -3191,7 +3191,7 @@ yy176:
                if ((yych = *YYCURSOR) == '=') goto yy289;
                YYDEBUG(177, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1521 "Zend/zend_language_scanner.l"
+#line 1522 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_POW);
 }
@@ -3201,7 +3201,7 @@ yy178:
                ++YYCURSOR;
                YYDEBUG(179, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1517 "Zend/zend_language_scanner.l"
+#line 1518 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_MUL_EQUAL);
 }
@@ -3211,7 +3211,7 @@ yy180:
                ++YYCURSOR;
                YYDEBUG(181, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1473 "Zend/zend_language_scanner.l"
+#line 1474 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_INC);
 }
@@ -3221,7 +3221,7 @@ yy182:
                ++YYCURSOR;
                YYDEBUG(183, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1509 "Zend/zend_language_scanner.l"
+#line 1510 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_PLUS_EQUAL);
 }
@@ -3231,7 +3231,7 @@ yy184:
                ++YYCURSOR;
                YYDEBUG(185, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1477 "Zend/zend_language_scanner.l"
+#line 1478 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_DEC);
 }
@@ -3241,7 +3241,7 @@ yy186:
                ++YYCURSOR;
                YYDEBUG(187, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1513 "Zend/zend_language_scanner.l"
+#line 1514 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_MINUS_EQUAL);
 }
@@ -3251,7 +3251,7 @@ yy188:
                ++YYCURSOR;
                YYDEBUG(189, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1299 "Zend/zend_language_scanner.l"
+#line 1300 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_PROPERTY);
        RETURN_TOKEN(T_OBJECT_OPERATOR);
@@ -3279,7 +3279,7 @@ yy191:
 yy193:
                YYDEBUG(193, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1753 "Zend/zend_language_scanner.l"
+#line 1754 "Zend/zend_language_scanner.l"
                {
        const char *end;
 
@@ -3294,7 +3294,7 @@ yy194:
                ++YYCURSOR;
                YYDEBUG(195, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1533 "Zend/zend_language_scanner.l"
+#line 1534 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_CONCAT_EQUAL);
 }
@@ -3307,7 +3307,7 @@ yy196:
 yy197:
                YYDEBUG(197, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1940 "Zend/zend_language_scanner.l"
+#line 1941 "Zend/zend_language_scanner.l"
                {
        int doc_com;
 
@@ -3346,7 +3346,7 @@ yy198:
                ++YYCURSOR;
                YYDEBUG(199, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1529 "Zend/zend_language_scanner.l"
+#line 1530 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_DIV_EQUAL);
 }
@@ -3382,7 +3382,7 @@ yy203:
                ++YYCURSOR;
                YYDEBUG(204, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1325 "Zend/zend_language_scanner.l"
+#line 1326 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM);
 }
@@ -3397,7 +3397,7 @@ yy205:
 yy206:
                YYDEBUG(206, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1581 "Zend/zend_language_scanner.l"
+#line 1582 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_SL);
 }
@@ -3408,7 +3408,7 @@ yy207:
                if ((yych = *YYCURSOR) == '>') goto yy307;
                YYDEBUG(208, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1501 "Zend/zend_language_scanner.l"
+#line 1502 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL);
 }
@@ -3423,7 +3423,7 @@ yy210:
                if ((yych = *YYCURSOR) == '=') goto yy309;
                YYDEBUG(211, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1489 "Zend/zend_language_scanner.l"
+#line 1490 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_IS_EQUAL);
 }
@@ -3433,7 +3433,7 @@ yy212:
                ++YYCURSOR;
                YYDEBUG(213, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1457 "Zend/zend_language_scanner.l"
+#line 1458 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_DOUBLE_ARROW);
 }
@@ -3443,7 +3443,7 @@ yy214:
                ++YYCURSOR;
                YYDEBUG(215, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1505 "Zend/zend_language_scanner.l"
+#line 1506 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_IS_GREATER_OR_EQUAL);
 }
@@ -3454,7 +3454,7 @@ yy216:
                if ((yych = *YYCURSOR) == '=') goto yy311;
                YYDEBUG(217, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1585 "Zend/zend_language_scanner.l"
+#line 1586 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_SR);
 }
@@ -3467,7 +3467,7 @@ yy218:
 yy219:
                YYDEBUG(219, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1973 "Zend/zend_language_scanner.l"
+#line 1974 "Zend/zend_language_scanner.l"
                {
        BEGIN(INITIAL);
        RETURN_TOKEN(T_CLOSE_TAG);  /* implicit ';' at php-end tag */
@@ -3478,7 +3478,7 @@ yy220:
                ++YYCURSOR;
                YYDEBUG(221, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1337 "Zend/zend_language_scanner.l"
+#line 1338 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_COALESCE);
 }
@@ -3509,7 +3509,7 @@ yy225:
                }
                YYDEBUG(226, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1239 "Zend/zend_language_scanner.l"
+#line 1240 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_AS);
 }
@@ -3599,7 +3599,7 @@ yy234:
                }
                YYDEBUG(235, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1207 "Zend/zend_language_scanner.l"
+#line 1208 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_DO);
 }
@@ -3688,7 +3688,7 @@ yy247:
                }
                YYDEBUG(248, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1183 "Zend/zend_language_scanner.l"
+#line 1184 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_IF);
 }
@@ -3753,7 +3753,7 @@ yy255:
                }
                YYDEBUG(256, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1569 "Zend/zend_language_scanner.l"
+#line 1570 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_LOGICAL_OR);
 }
@@ -3871,7 +3871,7 @@ yy270:
                ++YYCURSOR;
                YYDEBUG(271, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1557 "Zend/zend_language_scanner.l"
+#line 1558 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_XOR_EQUAL);
 }
@@ -3903,7 +3903,7 @@ yy273:
                ++YYCURSOR;
                YYDEBUG(274, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1553 "Zend/zend_language_scanner.l"
+#line 1554 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_OR_EQUAL);
 }
@@ -3913,7 +3913,7 @@ yy275:
                ++YYCURSOR;
                YYDEBUG(276, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1561 "Zend/zend_language_scanner.l"
+#line 1562 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_BOOLEAN_OR);
 }
@@ -3923,7 +3923,7 @@ yy277:
                ++YYCURSOR;
                YYDEBUG(278, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1485 "Zend/zend_language_scanner.l"
+#line 1486 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_IS_NOT_IDENTICAL);
 }
@@ -3993,7 +3993,7 @@ yy289:
                ++YYCURSOR;
                YYDEBUG(290, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1525 "Zend/zend_language_scanner.l"
+#line 1526 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_POW_EQUAL);
 }
@@ -4003,7 +4003,7 @@ yy291:
                ++YYCURSOR;
                YYDEBUG(292, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1333 "Zend/zend_language_scanner.l"
+#line 1334 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ELLIPSIS);
 }
@@ -4031,7 +4031,7 @@ yy294:
                }
                YYDEBUG(296, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1631 "Zend/zend_language_scanner.l"
+#line 1632 "Zend/zend_language_scanner.l"
                {
        char *bin = yytext + 2; /* Skip "0b" */
        int len = yyleng - 2;
@@ -4085,7 +4085,7 @@ yy300:
                }
                YYDEBUG(302, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1704 "Zend/zend_language_scanner.l"
+#line 1705 "Zend/zend_language_scanner.l"
                {
        char *hex = yytext + 2; /* Skip "0x" */
        int len = yyleng - 2;
@@ -4148,7 +4148,7 @@ yy305:
                ++YYCURSOR;
                YYDEBUG(306, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1541 "Zend/zend_language_scanner.l"
+#line 1542 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_SL_EQUAL);
 }
@@ -4158,7 +4158,7 @@ yy307:
                ++YYCURSOR;
                YYDEBUG(308, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1497 "Zend/zend_language_scanner.l"
+#line 1498 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_SPACESHIP);
 }
@@ -4168,7 +4168,7 @@ yy309:
                ++YYCURSOR;
                YYDEBUG(310, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1481 "Zend/zend_language_scanner.l"
+#line 1482 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_IS_IDENTICAL);
 }
@@ -4178,7 +4178,7 @@ yy311:
                ++YYCURSOR;
                YYDEBUG(312, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1545 "Zend/zend_language_scanner.l"
+#line 1546 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_SR_EQUAL);
 }
@@ -4206,7 +4206,7 @@ yy316:
                }
                YYDEBUG(317, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1573 "Zend/zend_language_scanner.l"
+#line 1574 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_LOGICAL_AND);
 }
@@ -4377,7 +4377,7 @@ yy339:
 yy340:
                YYDEBUG(340, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1211 "Zend/zend_language_scanner.l"
+#line 1212 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_FOR);
 }
@@ -4450,7 +4450,7 @@ yy351:
                }
                YYDEBUG(352, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1341 "Zend/zend_language_scanner.l"
+#line 1342 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_NEW);
 }
@@ -4527,7 +4527,7 @@ yy362:
                }
                YYDEBUG(363, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1167 "Zend/zend_language_scanner.l"
+#line 1168 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_TRY);
 }
@@ -4546,7 +4546,7 @@ yy365:
                }
                YYDEBUG(366, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1405 "Zend/zend_language_scanner.l"
+#line 1406 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_USE);
 }
@@ -4559,7 +4559,7 @@ yy367:
                }
                YYDEBUG(368, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1349 "Zend/zend_language_scanner.l"
+#line 1350 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_VAR);
 }
@@ -4578,7 +4578,7 @@ yy370:
                }
                YYDEBUG(371, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1577 "Zend/zend_language_scanner.l"
+#line 1578 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_LOGICAL_XOR);
 }
@@ -4796,7 +4796,7 @@ yy401:
                }
                YYDEBUG(402, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1251 "Zend/zend_language_scanner.l"
+#line 1252 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_CASE);
 }
@@ -4851,7 +4851,7 @@ yy410:
                }
                YYDEBUG(411, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1271 "Zend/zend_language_scanner.l"
+#line 1272 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ECHO);
 }
@@ -4879,7 +4879,7 @@ yy412:
 yy413:
                YYDEBUG(413, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1195 "Zend/zend_language_scanner.l"
+#line 1196 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ELSE);
 }
@@ -4928,7 +4928,7 @@ yy420:
                }
                YYDEBUG(421, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1381 "Zend/zend_language_scanner.l"
+#line 1382 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_EVAL);
 }
@@ -4984,7 +4984,7 @@ yy429:
                }
                YYDEBUG(430, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1267 "Zend/zend_language_scanner.l"
+#line 1268 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_GOTO);
 }
@@ -5037,7 +5037,7 @@ yy436:
                }
                YYDEBUG(437, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1461 "Zend/zend_language_scanner.l"
+#line 1462 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_LIST);
 }
@@ -5228,7 +5228,7 @@ yy467:
                ++YYCURSOR;
                YYDEBUG(469, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1353 "Zend/zend_language_scanner.l"
+#line 1354 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_INT_CAST);
 }
@@ -5329,7 +5329,7 @@ yy480:
 yy481:
                YYDEBUG(481, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2090 "Zend/zend_language_scanner.l"
+#line 2091 "Zend/zend_language_scanner.l"
                {
        char *s;
        int bprefix = (yytext[0] != '<') ? 1 : 0;
@@ -5396,7 +5396,7 @@ yy484:
                }
                YYDEBUG(485, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1465 "Zend/zend_language_scanner.l"
+#line 1466 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ARRAY);
 }
@@ -5409,7 +5409,7 @@ yy486:
                }
                YYDEBUG(487, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1259 "Zend/zend_language_scanner.l"
+#line 1260 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_BREAK);
 }
@@ -5428,7 +5428,7 @@ yy489:
                }
                YYDEBUG(490, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1171 "Zend/zend_language_scanner.l"
+#line 1172 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_CATCH);
 }
@@ -5441,7 +5441,7 @@ yy491:
                }
                YYDEBUG(492, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1279 "Zend/zend_language_scanner.l"
+#line 1280 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_CLASS);
 }
@@ -5454,7 +5454,7 @@ yy493:
                }
                YYDEBUG(494, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1345 "Zend/zend_language_scanner.l"
+#line 1346 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_CLONE);
 }
@@ -5504,7 +5504,7 @@ yy501:
                }
                YYDEBUG(502, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1421 "Zend/zend_language_scanner.l"
+#line 1422 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_EMPTY);
 }
@@ -5529,7 +5529,7 @@ yy505:
                }
                YYDEBUG(506, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1191 "Zend/zend_language_scanner.l"
+#line 1192 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ENDIF);
 }
@@ -5575,7 +5575,7 @@ yy510:
 yy511:
                YYDEBUG(511, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1437 "Zend/zend_language_scanner.l"
+#line 1438 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_FINAL);
 }
@@ -5636,7 +5636,7 @@ yy520:
                }
                YYDEBUG(521, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1417 "Zend/zend_language_scanner.l"
+#line 1418 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ISSET);
 }
@@ -5655,7 +5655,7 @@ yy523:
                }
                YYDEBUG(524, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1275 "Zend/zend_language_scanner.l"
+#line 1276 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_PRINT);
 }
@@ -5710,7 +5710,7 @@ yy532:
                }
                YYDEBUG(533, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1179 "Zend/zend_language_scanner.l"
+#line 1180 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_THROW);
 }
@@ -5723,7 +5723,7 @@ yy534:
                }
                YYDEBUG(535, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1287 "Zend/zend_language_scanner.l"
+#line 1288 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_TRAIT);
 }
@@ -5736,7 +5736,7 @@ yy536:
                }
                YYDEBUG(537, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1453 "Zend/zend_language_scanner.l"
+#line 1454 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_UNSET);
 }
@@ -5749,7 +5749,7 @@ yy538:
                }
                YYDEBUG(539, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1199 "Zend/zend_language_scanner.l"
+#line 1200 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_WHILE);
 }
@@ -5771,7 +5771,7 @@ yy540:
 yy541:
                YYDEBUG(541, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1163 "Zend/zend_language_scanner.l"
+#line 1164 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_YIELD);
 }
@@ -5867,7 +5867,7 @@ yy555:
                ++YYCURSOR;
                YYDEBUG(557, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1373 "Zend/zend_language_scanner.l"
+#line 1374 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_BOOL_CAST);
 }
@@ -5901,7 +5901,7 @@ yy562:
                ++YYCURSOR;
                YYDEBUG(563, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1357 "Zend/zend_language_scanner.l"
+#line 1358 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_DOUBLE_CAST);
 }
@@ -5970,7 +5970,7 @@ yy573:
                }
                YYDEBUG(574, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1187 "Zend/zend_language_scanner.l"
+#line 1188 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ELSEIF);
 }
@@ -6004,7 +6004,7 @@ yy576:
 yy577:
                YYDEBUG(577, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1215 "Zend/zend_language_scanner.l"
+#line 1216 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ENDFOR);
 }
@@ -6053,7 +6053,7 @@ yy584:
                }
                YYDEBUG(585, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1413 "Zend/zend_language_scanner.l"
+#line 1414 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_GLOBAL);
 }
@@ -6114,7 +6114,7 @@ yy594:
                }
                YYDEBUG(595, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1449 "Zend/zend_language_scanner.l"
+#line 1450 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_PUBLIC);
 }
@@ -6146,7 +6146,7 @@ yy599:
                }
                YYDEBUG(600, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1429 "Zend/zend_language_scanner.l"
+#line 1430 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_STATIC);
 }
@@ -6159,7 +6159,7 @@ yy601:
                }
                YYDEBUG(602, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1243 "Zend/zend_language_scanner.l"
+#line 1244 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_SWITCH);
 }
@@ -6167,7 +6167,7 @@ yy601:
 yy603:
                YYDEBUG(603, *YYCURSOR);
                ++YYCURSOR;
-               YYFILL(4);
+               YYFILL(5);
                yych = *YYCURSOR;
                YYDEBUG(604, *YYCURSOR);
                if (yych <= 0x1F) {
@@ -6243,7 +6243,7 @@ yy614:
                ++YYCURSOR;
                YYDEBUG(615, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1365 "Zend/zend_language_scanner.l"
+#line 1366 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ARRAY_CAST);
 }
@@ -6293,7 +6293,7 @@ yy622:
                ++YYCURSOR;
                YYDEBUG(623, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1377 "Zend/zend_language_scanner.l"
+#line 1378 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_UNSET_CAST);
 }
@@ -6324,7 +6324,7 @@ yy627:
                }
                YYDEBUG(628, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1227 "Zend/zend_language_scanner.l"
+#line 1228 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_DECLARE);
 }
@@ -6337,7 +6337,7 @@ yy629:
                }
                YYDEBUG(630, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1255 "Zend/zend_language_scanner.l"
+#line 1256 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_DEFAULT);
 }
@@ -6374,7 +6374,7 @@ yy635:
                }
                YYDEBUG(636, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1291 "Zend/zend_language_scanner.l"
+#line 1292 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_EXTENDS);
 }
@@ -6387,7 +6387,7 @@ yy637:
                }
                YYDEBUG(638, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1175 "Zend/zend_language_scanner.l"
+#line 1176 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_FINALLY);
 }
@@ -6400,7 +6400,7 @@ yy639:
                }
                YYDEBUG(640, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1219 "Zend/zend_language_scanner.l"
+#line 1220 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_FOREACH);
 }
@@ -6438,7 +6438,7 @@ yy643:
 yy644:
                YYDEBUG(644, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1385 "Zend/zend_language_scanner.l"
+#line 1386 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_INCLUDE);
 }
@@ -6475,7 +6475,7 @@ yy649:
                }
                YYDEBUG(650, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1441 "Zend/zend_language_scanner.l"
+#line 1442 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_PRIVATE);
 }
@@ -6507,7 +6507,7 @@ yy652:
 yy653:
                YYDEBUG(653, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1393 "Zend/zend_language_scanner.l"
+#line 1394 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_REQUIRE);
 }
@@ -6531,7 +6531,7 @@ yy656:
                }
                YYDEBUG(657, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1786 "Zend/zend_language_scanner.l"
+#line 1787 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_DIR);
 }
@@ -6580,7 +6580,7 @@ yy665:
                ++YYCURSOR;
                YYDEBUG(666, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1361 "Zend/zend_language_scanner.l"
+#line 1362 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_STRING_CAST);
 }
@@ -6590,7 +6590,7 @@ yy667:
                ++YYCURSOR;
                YYDEBUG(668, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1369 "Zend/zend_language_scanner.l"
+#line 1370 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_OBJECT_CAST);
 }
@@ -6603,7 +6603,7 @@ yy669:
                }
                YYDEBUG(670, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1433 "Zend/zend_language_scanner.l"
+#line 1434 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ABSTRACT);
 }
@@ -6616,7 +6616,7 @@ yy671:
                }
                YYDEBUG(672, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1469 "Zend/zend_language_scanner.l"
+#line 1470 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_CALLABLE);
 }
@@ -6629,7 +6629,7 @@ yy673:
                }
                YYDEBUG(674, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1263 "Zend/zend_language_scanner.l"
+#line 1264 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_CONTINUE);
 }
@@ -6660,7 +6660,7 @@ yy678:
                }
                YYDEBUG(679, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1203 "Zend/zend_language_scanner.l"
+#line 1204 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ENDWHILE);
 }
@@ -6745,7 +6745,7 @@ yy692:
                }
                YYDEBUG(693, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1782 "Zend/zend_language_scanner.l"
+#line 1783 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_FILE);
 }
@@ -6770,7 +6770,7 @@ yy696:
                }
                YYDEBUG(697, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1778 "Zend/zend_language_scanner.l"
+#line 1779 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_LINE);
 }
@@ -6811,7 +6811,7 @@ yy703:
                }
                YYDEBUG(704, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1247 "Zend/zend_language_scanner.l"
+#line 1248 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ENDSWITCH);
 }
@@ -6842,7 +6842,7 @@ yy708:
                }
                YYDEBUG(709, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1409 "Zend/zend_language_scanner.l"
+#line 1410 "Zend/zend_language_scanner.l"
                {
     RETURN_TOKEN(T_INSTEADOF);
 }
@@ -6855,7 +6855,7 @@ yy710:
                }
                YYDEBUG(711, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1283 "Zend/zend_language_scanner.l"
+#line 1284 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_INTERFACE);
 }
@@ -6868,7 +6868,7 @@ yy712:
                }
                YYDEBUG(713, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1401 "Zend/zend_language_scanner.l"
+#line 1402 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_NAMESPACE);
 }
@@ -6881,7 +6881,7 @@ yy714:
                }
                YYDEBUG(715, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1445 "Zend/zend_language_scanner.l"
+#line 1446 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_PROTECTED);
 }
@@ -6906,7 +6906,7 @@ yy718:
                }
                YYDEBUG(719, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1762 "Zend/zend_language_scanner.l"
+#line 1763 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_CLASS_C);
 }
@@ -6914,25 +6914,25 @@ yy718:
 yy720:
                YYDEBUG(720, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy738;
-               if (yych == 'n') goto yy738;
+               if (yych == 'N') goto yy737;
+               if (yych == 'n') goto yy737;
                goto yy128;
 yy721:
                YYDEBUG(721, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'M') goto yy739;
-               if (yych == 'm') goto yy739;
+               if (yych == 'M') goto yy738;
+               if (yych == 'm') goto yy738;
                goto yy128;
 yy722:
                YYDEBUG(722, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '_') goto yy740;
+               if (yych == '_') goto yy739;
                goto yy128;
 yy723:
                YYDEBUG(723, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy742;
-               if (yych == 'c') goto yy742;
+               if (yych == 'C') goto yy741;
+               if (yych == 'c') goto yy741;
                goto yy128;
 yy724:
                YYDEBUG(724, *YYCURSOR);
@@ -6942,7 +6942,7 @@ yy724:
                }
                YYDEBUG(725, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1766 "Zend/zend_language_scanner.l"
+#line 1767 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_TRAIT_C);
 }
@@ -6955,7 +6955,7 @@ yy726:
                }
                YYDEBUG(727, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1231 "Zend/zend_language_scanner.l"
+#line 1232 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ENDDECLARE);
 }
@@ -6968,7 +6968,7 @@ yy728:
                }
                YYDEBUG(729, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1223 "Zend/zend_language_scanner.l"
+#line 1224 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ENDFOREACH);
 }
@@ -6981,7 +6981,7 @@ yy730:
                }
                YYDEBUG(731, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1295 "Zend/zend_language_scanner.l"
+#line 1296 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_IMPLEMENTS);
 }
@@ -6989,8 +6989,8 @@ yy730:
 yy732:
                YYDEBUG(732, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy743;
-               if (yych == 'c') goto yy743;
+               if (yych == 'C') goto yy742;
+               if (yych == 'c') goto yy742;
                goto yy128;
 yy733:
                YYDEBUG(733, *YYCURSOR);
@@ -7000,7 +7000,7 @@ yy733:
                }
                YYDEBUG(734, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1235 "Zend/zend_language_scanner.l"
+#line 1236 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_INSTANCEOF);
 }
@@ -7008,165 +7008,188 @@ yy733:
 yy735:
                YYDEBUG(735, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy744;
-               if (yych == 'c') goto yy744;
+               if (yych == 'C') goto yy743;
+               if (yych == 'c') goto yy743;
                goto yy128;
 yy736:
                YYDEBUG(736, *YYCURSOR);
-               ++YYCURSOR;
+               yych = *++YYCURSOR;
+               if (yych <= '^') {
+                       if (yych <= '9') {
+                               if (yych <= '/') goto yy744;
+                               goto yy166;
+                       } else {
+                               if (yych <= '@') goto yy744;
+                               if (yych <= 'Z') goto yy166;
+                               goto yy744;
+                       }
+               } else {
+                       if (yych <= '`') {
+                               if (yych <= '_') goto yy166;
+                               goto yy744;
+                       } else {
+                               if (yych <= 'z') goto yy166;
+                               if (yych <= 0x7F) goto yy744;
+                               goto yy166;
+                       }
+               }
+yy737:
                YYDEBUG(737, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1158 "Zend/zend_language_scanner.l"
-               {
-       HANDLE_NEWLINES(yytext, yyleng);
-       RETURN_TOKEN(T_YIELD_FROM);
-}
-#line 7025 "Zend/zend_language_scanner.c"
+               yych = *++YYCURSOR;
+               if (yych == '_') goto yy746;
+               goto yy128;
 yy738:
                YYDEBUG(738, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '_') goto yy745;
+               if (yych == 'P') goto yy747;
+               if (yych == 'p') goto yy747;
                goto yy128;
 yy739:
                YYDEBUG(739, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'P') goto yy746;
-               if (yych == 'p') goto yy746;
-               goto yy128;
-yy740:
-               YYDEBUG(740, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy127;
                }
-               YYDEBUG(741, *YYCURSOR);
+               YYDEBUG(740, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1774 "Zend/zend_language_scanner.l"
+#line 1775 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_METHOD_C);
 }
-#line 7049 "Zend/zend_language_scanner.c"
+#line 7060 "Zend/zend_language_scanner.c"
+yy741:
+               YYDEBUG(741, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy748;
+               if (yych == 'e') goto yy748;
+               goto yy128;
 yy742:
                YYDEBUG(742, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy747;
-               if (yych == 'e') goto yy747;
+               if (yych == 'E') goto yy749;
+               if (yych == 'e') goto yy749;
                goto yy128;
 yy743:
                YYDEBUG(743, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy748;
-               if (yych == 'e') goto yy748;
+               if (yych == 'E') goto yy751;
+               if (yych == 'e') goto yy751;
                goto yy128;
 yy744:
                YYDEBUG(744, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy750;
-               if (yych == 'e') goto yy750;
-               goto yy128;
-yy745:
+               ++YYCURSOR;
                YYDEBUG(745, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '_') goto yy752;
-               goto yy128;
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 1158 "Zend/zend_language_scanner.l"
+               {
+       yyless(yyleng - 1);
+       HANDLE_NEWLINES(yytext, yyleng);
+       RETURN_TOKEN(T_YIELD_FROM);
+}
+#line 7090 "Zend/zend_language_scanner.c"
 yy746:
                YYDEBUG(746, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy754;
-               if (yych == 'i') goto yy754;
+               if (yych == '_') goto yy753;
                goto yy128;
 yy747:
                YYDEBUG(747, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '_') goto yy755;
+               if (yych == 'I') goto yy755;
+               if (yych == 'i') goto yy755;
                goto yy128;
 yy748:
                YYDEBUG(748, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == '_') goto yy756;
+               goto yy128;
+yy749:
+               YYDEBUG(749, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy127;
                }
-               YYDEBUG(749, *YYCURSOR);
+               YYDEBUG(750, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1389 "Zend/zend_language_scanner.l"
+#line 1390 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_INCLUDE_ONCE);
 }
-#line 7096 "Zend/zend_language_scanner.c"
-yy750:
-               YYDEBUG(750, *YYCURSOR);
+#line 7119 "Zend/zend_language_scanner.c"
+yy751:
+               YYDEBUG(751, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy127;
                }
-               YYDEBUG(751, *YYCURSOR);
+               YYDEBUG(752, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1397 "Zend/zend_language_scanner.l"
+#line 1398 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_REQUIRE_ONCE);
 }
-#line 7109 "Zend/zend_language_scanner.c"
-yy752:
-               YYDEBUG(752, *YYCURSOR);
+#line 7132 "Zend/zend_language_scanner.c"
+yy753:
+               YYDEBUG(753, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy127;
                }
-               YYDEBUG(753, *YYCURSOR);
+               YYDEBUG(754, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1770 "Zend/zend_language_scanner.l"
+#line 1771 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_FUNC_C);
 }
-#line 7122 "Zend/zend_language_scanner.c"
-yy754:
-               YYDEBUG(754, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy756;
-               if (yych == 'l') goto yy756;
-               goto yy128;
+#line 7145 "Zend/zend_language_scanner.c"
 yy755:
                YYDEBUG(755, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '_') goto yy757;
+               if (yych == 'L') goto yy757;
+               if (yych == 'l') goto yy757;
                goto yy128;
 yy756:
                YYDEBUG(756, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy759;
-               if (yych == 'e') goto yy759;
+               if (yych == '_') goto yy758;
                goto yy128;
 yy757:
                YYDEBUG(757, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy760;
+               if (yych == 'e') goto yy760;
+               goto yy128;
+yy758:
+               YYDEBUG(758, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy127;
                }
-               YYDEBUG(758, *YYCURSOR);
+               YYDEBUG(759, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1790 "Zend/zend_language_scanner.l"
+#line 1791 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_NS_C);
 }
-#line 7152 "Zend/zend_language_scanner.c"
-yy759:
-               YYDEBUG(759, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy760;
-               if (yych != 'r') goto yy128;
+#line 7175 "Zend/zend_language_scanner.c"
 yy760:
                YYDEBUG(760, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'R') goto yy761;
+               if (yych != 'r') goto yy128;
+yy761:
+               YYDEBUG(761, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy127;
                }
-               YYDEBUG(761, *YYCURSOR);
+               YYDEBUG(762, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1425 "Zend/zend_language_scanner.l"
+#line 1426 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_HALT_COMPILER);
 }
-#line 7170 "Zend/zend_language_scanner.c"
+#line 7193 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_LOOKING_FOR_PROPERTY:
@@ -7205,90 +7228,90 @@ yyc_ST_LOOKING_FOR_PROPERTY:
                        128, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
                };
-               YYDEBUG(762, *YYCURSOR);
+               YYDEBUG(763, *YYCURSOR);
                YYFILL(2);
                yych = *YYCURSOR;
                if (yybm[0+yych] & 64) {
-                       goto yy766;
+                       goto yy767;
                }
                if (yych <= '^') {
                        if (yych <= '-') {
-                               if (yych >= '-') goto yy769;
+                               if (yych >= '-') goto yy770;
                        } else {
-                               if (yych <= '@') goto yy764;
-                               if (yych <= 'Z') goto yy770;
+                               if (yych <= '@') goto yy765;
+                               if (yych <= 'Z') goto yy771;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych <= '_') goto yy770;
+                               if (yych <= '_') goto yy771;
                        } else {
-                               if (yych <= 'z') goto yy770;
-                               if (yych >= 0x7F) goto yy770;
+                               if (yych <= 'z') goto yy771;
+                               if (yych >= 0x7F) goto yy771;
                        }
                }
-yy764:
-               YYDEBUG(764, *YYCURSOR);
-               ++YYCURSOR;
 yy765:
                YYDEBUG(765, *YYCURSOR);
+               ++YYCURSOR;
+yy766:
+               YYDEBUG(766, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1319 "Zend/zend_language_scanner.l"
+#line 1320 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state();
        goto restart;
 }
-#line 7242 "Zend/zend_language_scanner.c"
-yy766:
-               YYDEBUG(766, *YYCURSOR);
+#line 7265 "Zend/zend_language_scanner.c"
+yy767:
+               YYDEBUG(767, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(767, *YYCURSOR);
+               YYDEBUG(768, *YYCURSOR);
                if (yybm[0+yych] & 64) {
-                       goto yy766;
+                       goto yy767;
                }
-               YYDEBUG(768, *YYCURSOR);
+               YYDEBUG(769, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1304 "Zend/zend_language_scanner.l"
+#line 1305 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        RETURN_TOKEN(T_WHITESPACE);
 }
-#line 7259 "Zend/zend_language_scanner.c"
-yy769:
-               YYDEBUG(769, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '>') goto yy773;
-               goto yy765;
+#line 7282 "Zend/zend_language_scanner.c"
 yy770:
                YYDEBUG(770, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == '>') goto yy774;
+               goto yy766;
+yy771:
+               YYDEBUG(771, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(771, *YYCURSOR);
+               YYDEBUG(772, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy770;
+                       goto yy771;
                }
-               YYDEBUG(772, *YYCURSOR);
+               YYDEBUG(773, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1313 "Zend/zend_language_scanner.l"
+#line 1314 "Zend/zend_language_scanner.l"
                {
        yy_pop_state();
        zend_copy_value(zendlval, yytext, yyleng);
        RETURN_TOKEN(T_STRING);
 }
-#line 7282 "Zend/zend_language_scanner.c"
-yy773:
-               YYDEBUG(773, *YYCURSOR);
-               ++YYCURSOR;
+#line 7305 "Zend/zend_language_scanner.c"
+yy774:
                YYDEBUG(774, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(775, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1309 "Zend/zend_language_scanner.l"
+#line 1310 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_OBJECT_OPERATOR);
 }
-#line 7292 "Zend/zend_language_scanner.c"
+#line 7315 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_LOOKING_FOR_VARNAME:
@@ -7327,78 +7350,78 @@ yyc_ST_LOOKING_FOR_VARNAME:
                        128, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
                };
-               YYDEBUG(775, *YYCURSOR);
+               YYDEBUG(776, *YYCURSOR);
                YYFILL(2);
                yych = *YYCURSOR;
                if (yych <= '_') {
-                       if (yych <= '@') goto yy777;
-                       if (yych <= 'Z') goto yy779;
-                       if (yych >= '_') goto yy779;
+                       if (yych <= '@') goto yy778;
+                       if (yych <= 'Z') goto yy780;
+                       if (yych >= '_') goto yy780;
                } else {
-                       if (yych <= '`') goto yy777;
-                       if (yych <= 'z') goto yy779;
-                       if (yych >= 0x7F) goto yy779;
+                       if (yych <= '`') goto yy778;
+                       if (yych <= 'z') goto yy780;
+                       if (yych >= 0x7F) goto yy780;
                }
-yy777:
-               YYDEBUG(777, *YYCURSOR);
-               ++YYCURSOR;
 yy778:
                YYDEBUG(778, *YYCURSOR);
+               ++YYCURSOR;
+yy779:
+               YYDEBUG(779, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1624 "Zend/zend_language_scanner.l"
+#line 1625 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state();
        yy_push_state(ST_IN_SCRIPTING);
        goto restart;
 }
-#line 7356 "Zend/zend_language_scanner.c"
-yy779:
-               YYDEBUG(779, *YYCURSOR);
+#line 7379 "Zend/zend_language_scanner.c"
+yy780:
+               YYDEBUG(780, *YYCURSOR);
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= '_') {
                        if (yych <= '@') {
-                               if (yych <= '/') goto yy778;
-                               if (yych <= '9') goto yy781;
-                               goto yy778;
+                               if (yych <= '/') goto yy779;
+                               if (yych <= '9') goto yy782;
+                               goto yy779;
                        } else {
-                               if (yych <= '[') goto yy781;
-                               if (yych <= '^') goto yy778;
-                               goto yy781;
+                               if (yych <= '[') goto yy782;
+                               if (yych <= '^') goto yy779;
+                               goto yy782;
                        }
                } else {
                        if (yych <= '|') {
-                               if (yych <= '`') goto yy778;
-                               if (yych <= 'z') goto yy781;
-                               goto yy778;
+                               if (yych <= '`') goto yy779;
+                               if (yych <= 'z') goto yy782;
+                               goto yy779;
                        } else {
-                               if (yych == '~') goto yy778;
-                               goto yy781;
+                               if (yych == '~') goto yy779;
+                               goto yy782;
                        }
                }
-yy780:
-               YYDEBUG(780, *YYCURSOR);
+yy781:
+               YYDEBUG(781, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy781:
-               YYDEBUG(781, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy780;
-               }
-               if (yych <= '@') goto yy782;
-               if (yych <= '[') goto yy783;
-               if (yych == '}') goto yy783;
 yy782:
                YYDEBUG(782, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               goto yy778;
+               if (yybm[0+yych] & 128) {
+                       goto yy781;
+               }
+               if (yych <= '@') goto yy783;
+               if (yych <= '[') goto yy784;
+               if (yych == '}') goto yy784;
 yy783:
                YYDEBUG(783, *YYCURSOR);
-               ++YYCURSOR;
+               YYCURSOR = YYMARKER;
+               goto yy779;
+yy784:
                YYDEBUG(784, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(785, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1615 "Zend/zend_language_scanner.l"
+#line 1616 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        zend_copy_value(zendlval, yytext, yyleng);
@@ -7406,18 +7429,18 @@ yy783:
        yy_push_state(ST_IN_SCRIPTING);
        RETURN_TOKEN(T_STRING_VARNAME);
 }
-#line 7410 "Zend/zend_language_scanner.c"
+#line 7433 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_NOWDOC:
-       YYDEBUG(785, *YYCURSOR);
+       YYDEBUG(786, *YYCURSOR);
        YYFILL(1);
        yych = *YYCURSOR;
-       YYDEBUG(787, *YYCURSOR);
-       ++YYCURSOR;
        YYDEBUG(788, *YYCURSOR);
+       ++YYCURSOR;
+       YYDEBUG(789, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 2343 "Zend/zend_language_scanner.l"
+#line 2344 "Zend/zend_language_scanner.l"
        {
        int newline = 0;
 
@@ -7473,7 +7496,7 @@ nowdoc_scan_done:
        HANDLE_NEWLINES(yytext, yyleng - newline);
        RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE);
 }
-#line 7477 "Zend/zend_language_scanner.c"
+#line 7500 "Zend/zend_language_scanner.c"
 /* *********************************** */
 yyc_ST_VAR_OFFSET:
        {
@@ -7511,58 +7534,58 @@ yyc_ST_VAR_OFFSET:
                         32,  32,  32,  32,  32,  32,  32,  32, 
                         32,  32,  32,  32,  32,  32,  32,  32, 
                };
-               YYDEBUG(789, *YYCURSOR);
+               YYDEBUG(790, *YYCURSOR);
                YYFILL(3);
                yych = *YYCURSOR;
                if (yych <= '/') {
                        if (yych <= ' ') {
                                if (yych <= '\f') {
-                                       if (yych <= 0x08) goto yy791;
-                                       if (yych <= '\n') goto yy793;
+                                       if (yych <= 0x08) goto yy792;
+                                       if (yych <= '\n') goto yy794;
                                } else {
-                                       if (yych <= '\r') goto yy793;
-                                       if (yych >= ' ') goto yy793;
+                                       if (yych <= '\r') goto yy794;
+                                       if (yych >= ' ') goto yy794;
                                }
                        } else {
                                if (yych <= '$') {
-                                       if (yych <= '"') goto yy795;
-                                       if (yych <= '#') goto yy793;
-                                       goto yy797;
+                                       if (yych <= '"') goto yy796;
+                                       if (yych <= '#') goto yy794;
+                                       goto yy798;
                                } else {
-                                       if (yych == '\'') goto yy793;
-                                       goto yy795;
+                                       if (yych == '\'') goto yy794;
+                                       goto yy796;
                                }
                        }
                } else {
                        if (yych <= '\\') {
                                if (yych <= '@') {
-                                       if (yych <= '0') goto yy798;
-                                       if (yych <= '9') goto yy800;
-                                       goto yy795;
+                                       if (yych <= '0') goto yy799;
+                                       if (yych <= '9') goto yy801;
+                                       goto yy796;
                                } else {
-                                       if (yych <= 'Z') goto yy802;
-                                       if (yych <= '[') goto yy795;
-                                       goto yy793;
+                                       if (yych <= 'Z') goto yy803;
+                                       if (yych <= '[') goto yy796;
+                                       goto yy794;
                                }
                        } else {
                                if (yych <= '_') {
-                                       if (yych <= ']') goto yy805;
-                                       if (yych <= '^') goto yy795;
-                                       goto yy802;
+                                       if (yych <= ']') goto yy806;
+                                       if (yych <= '^') goto yy796;
+                                       goto yy803;
                                } else {
-                                       if (yych <= '`') goto yy795;
-                                       if (yych <= 'z') goto yy802;
-                                       if (yych <= '~') goto yy795;
-                                       goto yy802;
+                                       if (yych <= '`') goto yy796;
+                                       if (yych <= 'z') goto yy803;
+                                       if (yych <= '~') goto yy796;
+                                       goto yy803;
                                }
                        }
                }
-yy791:
-               YYDEBUG(791, *YYCURSOR);
-               ++YYCURSOR;
+yy792:
                YYDEBUG(792, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(793, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2400 "Zend/zend_language_scanner.l"
+#line 2401 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                RETURN_TOKEN(END);
@@ -7571,13 +7594,13 @@ yy791:
        zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
        goto restart;
 }
-#line 7575 "Zend/zend_language_scanner.c"
-yy793:
-               YYDEBUG(793, *YYCURSOR);
-               ++YYCURSOR;
+#line 7598 "Zend/zend_language_scanner.c"
+yy794:
                YYDEBUG(794, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(795, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1897 "Zend/zend_language_scanner.l"
+#line 1898 "Zend/zend_language_scanner.l"
                {
        /* Invalid rule to return a more explicit parse error with proper line number */
        yyless(0);
@@ -7585,54 +7608,54 @@ yy793:
        ZVAL_NULL(zendlval);
        RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE);
 }
-#line 7589 "Zend/zend_language_scanner.c"
-yy795:
-               YYDEBUG(795, *YYCURSOR);
-               ++YYCURSOR;
+#line 7612 "Zend/zend_language_scanner.c"
 yy796:
                YYDEBUG(796, *YYCURSOR);
+               ++YYCURSOR;
+yy797:
+               YYDEBUG(797, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1892 "Zend/zend_language_scanner.l"
+#line 1893 "Zend/zend_language_scanner.l"
                {
        /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
        RETURN_TOKEN(yytext[0]);
 }
-#line 7601 "Zend/zend_language_scanner.c"
-yy797:
-               YYDEBUG(797, *YYCURSOR);
+#line 7624 "Zend/zend_language_scanner.c"
+yy798:
+               YYDEBUG(798, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= '_') {
-                       if (yych <= '@') goto yy796;
-                       if (yych <= 'Z') goto yy807;
-                       if (yych <= '^') goto yy796;
-                       goto yy807;
+                       if (yych <= '@') goto yy797;
+                       if (yych <= 'Z') goto yy808;
+                       if (yych <= '^') goto yy797;
+                       goto yy808;
                } else {
-                       if (yych <= '`') goto yy796;
-                       if (yych <= 'z') goto yy807;
-                       if (yych <= '~') goto yy796;
-                       goto yy807;
+                       if (yych <= '`') goto yy797;
+                       if (yych <= 'z') goto yy808;
+                       if (yych <= '~') goto yy797;
+                       goto yy808;
                }
-yy798:
-               YYDEBUG(798, *YYCURSOR);
+yy799:
+               YYDEBUG(799, *YYCURSOR);
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= 'W') {
                        if (yych <= '9') {
-                               if (yych >= '0') goto yy810;
+                               if (yych >= '0') goto yy811;
                        } else {
-                               if (yych == 'B') goto yy813;
+                               if (yych == 'B') goto yy814;
                        }
                } else {
                        if (yych <= 'b') {
-                               if (yych <= 'X') goto yy815;
-                               if (yych >= 'b') goto yy813;
+                               if (yych <= 'X') goto yy816;
+                               if (yych >= 'b') goto yy814;
                        } else {
-                               if (yych == 'x') goto yy815;
+                               if (yych == 'x') goto yy816;
                        }
                }
-yy799:
-               YYDEBUG(799, *YYCURSOR);
+yy800:
+               YYDEBUG(800, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1732 "Zend/zend_language_scanner.l"
+#line 1733 "Zend/zend_language_scanner.l"
                { /* Offset could be treated as a long */
        if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {
                char *end;
@@ -7648,131 +7671,131 @@ string:
        }
        RETURN_TOKEN(T_NUM_STRING);
 }
-#line 7652 "Zend/zend_language_scanner.c"
-yy800:
-               YYDEBUG(800, *YYCURSOR);
+#line 7675 "Zend/zend_language_scanner.c"
+yy801:
+               YYDEBUG(801, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(801, *YYCURSOR);
+               YYDEBUG(802, *YYCURSOR);
                if (yybm[0+yych] & 16) {
-                       goto yy800;
+                       goto yy801;
                }
-               goto yy799;
-yy802:
-               YYDEBUG(802, *YYCURSOR);
+               goto yy800;
+yy803:
+               YYDEBUG(803, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(803, *YYCURSOR);
+               YYDEBUG(804, *YYCURSOR);
                if (yybm[0+yych] & 32) {
-                       goto yy802;
+                       goto yy803;
                }
-               YYDEBUG(804, *YYCURSOR);
+               YYDEBUG(805, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1905 "Zend/zend_language_scanner.l"
+#line 1906 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        RETURN_TOKEN(T_STRING);
 }
-#line 7679 "Zend/zend_language_scanner.c"
-yy805:
-               YYDEBUG(805, *YYCURSOR);
-               ++YYCURSOR;
+#line 7702 "Zend/zend_language_scanner.c"
+yy806:
                YYDEBUG(806, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(807, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1887 "Zend/zend_language_scanner.l"
+#line 1888 "Zend/zend_language_scanner.l"
                {
        yy_pop_state();
        RETURN_TOKEN(']');
 }
-#line 7690 "Zend/zend_language_scanner.c"
-yy807:
-               YYDEBUG(807, *YYCURSOR);
+#line 7713 "Zend/zend_language_scanner.c"
+yy808:
+               YYDEBUG(808, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(808, *YYCURSOR);
+               YYDEBUG(809, *YYCURSOR);
                if (yych <= '^') {
                        if (yych <= '9') {
-                               if (yych >= '0') goto yy807;
+                               if (yych >= '0') goto yy808;
                        } else {
-                               if (yych <= '@') goto yy809;
-                               if (yych <= 'Z') goto yy807;
+                               if (yych <= '@') goto yy810;
+                               if (yych <= 'Z') goto yy808;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych <= '_') goto yy807;
+                               if (yych <= '_') goto yy808;
                        } else {
-                               if (yych <= 'z') goto yy807;
-                               if (yych >= 0x7F) goto yy807;
+                               if (yych <= 'z') goto yy808;
+                               if (yych >= 0x7F) goto yy808;
                        }
                }
-yy809:
-               YYDEBUG(809, *YYCURSOR);
+yy810:
+               YYDEBUG(810, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1882 "Zend/zend_language_scanner.l"
+#line 1883 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        RETURN_TOKEN(T_VARIABLE);
 }
-#line 7720 "Zend/zend_language_scanner.c"
-yy810:
-               YYDEBUG(810, *YYCURSOR);
+#line 7743 "Zend/zend_language_scanner.c"
+yy811:
+               YYDEBUG(811, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(811, *YYCURSOR);
-               if (yych <= '/') goto yy812;
-               if (yych <= '9') goto yy810;
-yy812:
                YYDEBUG(812, *YYCURSOR);
+               if (yych <= '/') goto yy813;
+               if (yych <= '9') goto yy811;
+yy813:
+               YYDEBUG(813, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1748 "Zend/zend_language_scanner.l"
+#line 1749 "Zend/zend_language_scanner.l"
                { /* Offset must be treated as a string */
        ZVAL_STRINGL(zendlval, yytext, yyleng);
        RETURN_TOKEN(T_NUM_STRING);
 }
-#line 7737 "Zend/zend_language_scanner.c"
-yy813:
-               YYDEBUG(813, *YYCURSOR);
+#line 7760 "Zend/zend_language_scanner.c"
+yy814:
+               YYDEBUG(814, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yybm[0+yych] & 64) {
-                       goto yy816;
+                       goto yy817;
                }
-yy814:
-               YYDEBUG(814, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               goto yy799;
 yy815:
                YYDEBUG(815, *YYCURSOR);
+               YYCURSOR = YYMARKER;
+               goto yy800;
+yy816:
+               YYDEBUG(816, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yybm[0+yych] & 128) {
-                       goto yy818;
+                       goto yy819;
                }
-               goto yy814;
-yy816:
-               YYDEBUG(816, *YYCURSOR);
+               goto yy815;
+yy817:
+               YYDEBUG(817, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(817, *YYCURSOR);
+               YYDEBUG(818, *YYCURSOR);
                if (yybm[0+yych] & 64) {
-                       goto yy816;
+                       goto yy817;
                }
-               goto yy812;
-yy818:
-               YYDEBUG(818, *YYCURSOR);
+               goto yy813;
+yy819:
+               YYDEBUG(819, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(819, *YYCURSOR);
+               YYDEBUG(820, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy818;
+                       goto yy819;
                }
-               goto yy812;
+               goto yy813;
        }
 }
-#line 2409 "Zend/zend_language_scanner.l"
+#line 2410 "Zend/zend_language_scanner.l"
 
 }
index 093d7de9aa914e60fc76d992adad71cfb8497aa9..9dc075104cd23d67e33447db8a89ea8fabb56ba1 100644 (file)
@@ -1156,7 +1156,7 @@ NEWLINE ("\r"|"\n"|"\r\n")
 }
 
 <ST_IN_SCRIPTING>"yield"{WHITESPACE}"from"[^a-zA-Z0-9_\x80-\xff] {
-       yyless(--yyleng);
+       yyless(yyleng - 1);
        HANDLE_NEWLINES(yytext, yyleng);
        RETURN_TOKEN(T_YIELD_FROM);
 }