]> granicus.if.org Git - php/commitdiff
Eliminate duplication
authorDmitry Stogov <dmitry@zend.com>
Wed, 17 Jan 2018 12:52:52 +0000 (15:52 +0300)
committerDmitry Stogov <dmitry@zend.com>
Wed, 17 Jan 2018 12:52:52 +0000 (15:52 +0300)
Zend/zend_language_scanner.c
Zend/zend_language_scanner.l

index a23f972790936c373ab43c14bbeb542b7bcdbbc5..f91d10368742c7ec63ac6a06d936fe19313fed6e 100644 (file)
@@ -673,8 +673,8 @@ zend_op_array *compile_filename(int type, zval *filename)
        }
        zend_destroy_file_handle(&file_handle);
 
-       if (filename==&tmp) {
-               zval_dtor(&tmp);
+       if (UNEXPECTED(filename == &tmp)) {
+               zval_ptr_dtor(&tmp);
        }
        return retval;
 }
@@ -753,22 +753,25 @@ zend_op_array *compile_string(zval *source_string, char *filename)
        zend_op_array *op_array = NULL;
        zval tmp;
 
-       if (Z_STRLEN_P(source_string)==0) {
-               return NULL;
+       if (UNEXPECTED(Z_TYPE_P(source_string) != IS_STRING)) {
+               ZVAL_STR(&tmp, zval_get_string_func(source_string));
+       } else {
+               ZVAL_COPY(&tmp, source_string);
        }
 
-       ZVAL_DUP(&tmp, source_string);
-       convert_to_string(&tmp);
-       source_string = &tmp;
+       if (Z_STRLEN(tmp)==0) {
+               zval_ptr_dtor(&tmp);
+               return NULL;
+       }
 
        zend_save_lexical_state(&original_lex_state);
-       if (zend_prepare_string_for_scanning(source_string, filename) == SUCCESS) {
+       if (zend_prepare_string_for_scanning(&tmp, filename) == SUCCESS) {
                BEGIN(ST_IN_SCRIPTING);
                op_array = zend_compile(ZEND_EVAL_CODE);
        }
 
        zend_restore_lexical_state(&original_lex_state);
-       zval_dtor(&tmp);
+       zval_ptr_dtor(&tmp);
 
        return op_array;
 }
@@ -803,13 +806,18 @@ int highlight_file(char *filename, zend_syntax_highlighter_ini *syntax_highlight
 int highlight_string(zval *str, zend_syntax_highlighter_ini *syntax_highlighter_ini, char *str_name)
 {
        zend_lex_state original_lex_state;
-       zval tmp = *str;
+       zval tmp;
 
-       str = &tmp;
-       zval_copy_ctor(str);
+       if (UNEXPECTED(Z_TYPE_P(str) != IS_STRING)) {
+               ZVAL_STR(&tmp, zval_get_string_func(str));
+               str = &tmp;
+       }
        zend_save_lexical_state(&original_lex_state);
        if (zend_prepare_string_for_scanning(str, str_name)==FAILURE) {
                zend_restore_lexical_state(&original_lex_state);
+               if (UNEXPECTED(str == &tmp)) {
+                       zval_ptr_dtor(&tmp);
+               }
                return FAILURE;
        }
        BEGIN(INITIAL);
@@ -819,7 +827,9 @@ int highlight_string(zval *str, zend_syntax_highlighter_ini *syntax_highlighter_
                SCNG(script_filtered) = NULL;
        }
        zend_restore_lexical_state(&original_lex_state);
-       zval_dtor(str);
+       if (UNEXPECTED(str == &tmp)) {
+               zval_ptr_dtor(&tmp);
+       }
        return SUCCESS;
 }
 
@@ -1106,7 +1116,7 @@ restart:
        SCNG(yy_text) = YYCURSOR;
 
 
-#line 1110 "Zend/zend_language_scanner.c"
+#line 1120 "Zend/zend_language_scanner.c"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
@@ -1158,7 +1168,7 @@ yyc_INITIAL:
 yy4:
        YYDEBUG(4, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 1801 "Zend/zend_language_scanner.l"
+#line 1811 "Zend/zend_language_scanner.l"
        {
        if (YYCURSOR > YYLIMIT) {
                RETURN_TOKEN(END);
@@ -1203,7 +1213,7 @@ inline_char_handler:
        HANDLE_NEWLINES(yytext, yyleng);
        RETURN_TOKEN(T_INLINE_HTML);
 }
-#line 1207 "Zend/zend_language_scanner.c"
+#line 1217 "Zend/zend_language_scanner.c"
 yy5:
        YYDEBUG(5, *YYCURSOR);
        yych = *++YYCURSOR;
@@ -1219,7 +1229,7 @@ yy5:
 yy7:
        YYDEBUG(7, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 1792 "Zend/zend_language_scanner.l"
+#line 1802 "Zend/zend_language_scanner.l"
        {
        if (CG(short_tags)) {
                BEGIN(ST_IN_SCRIPTING);
@@ -1228,18 +1238,18 @@ yy7:
                goto inline_char_handler;
        }
 }
-#line 1232 "Zend/zend_language_scanner.c"
+#line 1242 "Zend/zend_language_scanner.c"
 yy8:
        YYDEBUG(8, *YYCURSOR);
        ++YYCURSOR;
        YYDEBUG(9, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 1779 "Zend/zend_language_scanner.l"
+#line 1789 "Zend/zend_language_scanner.l"
        {
        BEGIN(ST_IN_SCRIPTING);
        RETURN_TOKEN(T_OPEN_TAG_WITH_ECHO);
 }
-#line 1243 "Zend/zend_language_scanner.c"
+#line 1253 "Zend/zend_language_scanner.c"
 yy10:
        YYDEBUG(10, *YYCURSOR);
        yych = *++YYCURSOR;
@@ -1270,13 +1280,13 @@ yy14:
 yy15:
        YYDEBUG(15, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 1785 "Zend/zend_language_scanner.l"
+#line 1795 "Zend/zend_language_scanner.l"
        {
        HANDLE_NEWLINE(yytext[yyleng-1]);
        BEGIN(ST_IN_SCRIPTING);
        RETURN_TOKEN(T_OPEN_TAG);
 }
-#line 1280 "Zend/zend_language_scanner.c"
+#line 1290 "Zend/zend_language_scanner.c"
 yy16:
        YYDEBUG(16, *YYCURSOR);
        ++YYCURSOR;
@@ -1286,38 +1296,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,   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,
+                         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,   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, 
                };
                YYDEBUG(17, *YYCURSOR);
                YYFILL(2);
@@ -1333,7 +1343,7 @@ yyc_ST_BACKQUOTE:
 yy20:
                YYDEBUG(20, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2214 "Zend/zend_language_scanner.l"
+#line 2224 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                RETURN_TOKEN(END);
@@ -1374,7 +1384,7 @@ yy20:
        zend_scan_escape_string(zendlval, yytext, yyleng, '`');
        RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE);
 }
-#line 1378 "Zend/zend_language_scanner.c"
+#line 1388 "Zend/zend_language_scanner.c"
 yy21:
                YYDEBUG(21, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1398,12 +1408,12 @@ yy22:
                ++YYCURSOR;
                YYDEBUG(23, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2158 "Zend/zend_language_scanner.l"
+#line 2168 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        RETURN_TOKEN('`');
 }
-#line 1407 "Zend/zend_language_scanner.c"
+#line 1417 "Zend/zend_language_scanner.c"
 yy24:
                YYDEBUG(24, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1424,36 +1434,36 @@ yy25:
 yy27:
                YYDEBUG(27, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1866 "Zend/zend_language_scanner.l"
+#line 1876 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        RETURN_TOKEN(T_VARIABLE);
 }
-#line 1433 "Zend/zend_language_scanner.c"
+#line 1443 "Zend/zend_language_scanner.c"
 yy28:
                YYDEBUG(28, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(29, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1586 "Zend/zend_language_scanner.l"
+#line 1596 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME);
        RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
 }
-#line 1444 "Zend/zend_language_scanner.c"
+#line 1454 "Zend/zend_language_scanner.c"
 yy30:
                YYDEBUG(30, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(31, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2145 "Zend/zend_language_scanner.l"
+#line 2155 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = (zend_long) '{';
        yy_push_state(ST_IN_SCRIPTING);
        yyless(1);
        RETURN_TOKEN(T_CURLY_OPEN);
 }
-#line 1457 "Zend/zend_language_scanner.c"
+#line 1467 "Zend/zend_language_scanner.c"
 yy32:
                YYDEBUG(32, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1467,14 +1477,14 @@ yy34:
                ++YYCURSOR;
                YYDEBUG(35, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1859 "Zend/zend_language_scanner.l"
+#line 1869 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET);
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        RETURN_TOKEN(T_VARIABLE);
 }
-#line 1478 "Zend/zend_language_scanner.c"
+#line 1488 "Zend/zend_language_scanner.c"
 yy36:
                YYDEBUG(36, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1492,51 +1502,51 @@ yy37:
                ++YYCURSOR;
                YYDEBUG(38, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1850 "Zend/zend_language_scanner.l"
+#line 1860 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY);
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        RETURN_TOKEN(T_VARIABLE);
 }
-#line 1503 "Zend/zend_language_scanner.c"
+#line 1513 "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,   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,
+                         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,   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, 
                };
                YYDEBUG(39, *YYCURSOR);
                YYFILL(2);
@@ -1552,7 +1562,7 @@ yyc_ST_DOUBLE_QUOTES:
 yy42:
                YYDEBUG(42, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2164 "Zend/zend_language_scanner.l"
+#line 2174 "Zend/zend_language_scanner.l"
                {
        if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
                YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
@@ -1601,18 +1611,18 @@ double_quotes_scan_done:
        zend_scan_escape_string(zendlval, yytext, yyleng, '"');
        RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE);
 }
-#line 1605 "Zend/zend_language_scanner.c"
+#line 1615 "Zend/zend_language_scanner.c"
 yy43:
                YYDEBUG(43, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(44, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2153 "Zend/zend_language_scanner.l"
+#line 2163 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        RETURN_TOKEN('"');
 }
-#line 1616 "Zend/zend_language_scanner.c"
+#line 1626 "Zend/zend_language_scanner.c"
 yy45:
                YYDEBUG(45, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1651,36 +1661,36 @@ yy47:
 yy49:
                YYDEBUG(49, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1866 "Zend/zend_language_scanner.l"
+#line 1876 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        RETURN_TOKEN(T_VARIABLE);
 }
-#line 1660 "Zend/zend_language_scanner.c"
+#line 1670 "Zend/zend_language_scanner.c"
 yy50:
                YYDEBUG(50, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(51, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1586 "Zend/zend_language_scanner.l"
+#line 1596 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME);
        RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
 }
-#line 1671 "Zend/zend_language_scanner.c"
+#line 1681 "Zend/zend_language_scanner.c"
 yy52:
                YYDEBUG(52, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(53, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2145 "Zend/zend_language_scanner.l"
+#line 2155 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = (zend_long) '{';
        yy_push_state(ST_IN_SCRIPTING);
        yyless(1);
        RETURN_TOKEN(T_CURLY_OPEN);
 }
-#line 1684 "Zend/zend_language_scanner.c"
+#line 1694 "Zend/zend_language_scanner.c"
 yy54:
                YYDEBUG(54, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1694,14 +1704,14 @@ yy56:
                ++YYCURSOR;
                YYDEBUG(57, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1859 "Zend/zend_language_scanner.l"
+#line 1869 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET);
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        RETURN_TOKEN(T_VARIABLE);
 }
-#line 1705 "Zend/zend_language_scanner.c"
+#line 1715 "Zend/zend_language_scanner.c"
 yy58:
                YYDEBUG(58, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1719,14 +1729,14 @@ yy59:
                ++YYCURSOR;
                YYDEBUG(60, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1850 "Zend/zend_language_scanner.l"
+#line 1860 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY);
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        RETURN_TOKEN(T_VARIABLE);
 }
-#line 1730 "Zend/zend_language_scanner.c"
+#line 1740 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_END_HEREDOC:
@@ -1737,7 +1747,7 @@ yyc_ST_END_HEREDOC:
        ++YYCURSOR;
        YYDEBUG(64, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 2131 "Zend/zend_language_scanner.l"
+#line 2141 "Zend/zend_language_scanner.l"
        {
        zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack));
 
@@ -1750,43 +1760,43 @@ yyc_ST_END_HEREDOC:
        BEGIN(ST_IN_SCRIPTING);
        RETURN_TOKEN(T_END_HEREDOC);
 }
-#line 1754 "Zend/zend_language_scanner.c"
+#line 1764 "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,   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,
+                         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,   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, 
                };
                YYDEBUG(65, *YYCURSOR);
                YYFILL(2);
@@ -1798,7 +1808,7 @@ yyc_ST_HEREDOC:
 yy68:
                YYDEBUG(68, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2256 "Zend/zend_language_scanner.l"
+#line 2266 "Zend/zend_language_scanner.l"
                {
        int newline = 0;
 
@@ -1871,7 +1881,7 @@ heredoc_scan_done:
        zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0);
        RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE);
 }
-#line 1875 "Zend/zend_language_scanner.c"
+#line 1885 "Zend/zend_language_scanner.c"
 yy69:
                YYDEBUG(69, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1910,36 +1920,36 @@ yy71:
 yy73:
                YYDEBUG(73, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1866 "Zend/zend_language_scanner.l"
+#line 1876 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        RETURN_TOKEN(T_VARIABLE);
 }
-#line 1919 "Zend/zend_language_scanner.c"
+#line 1929 "Zend/zend_language_scanner.c"
 yy74:
                YYDEBUG(74, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(75, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1586 "Zend/zend_language_scanner.l"
+#line 1596 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME);
        RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
 }
-#line 1930 "Zend/zend_language_scanner.c"
+#line 1940 "Zend/zend_language_scanner.c"
 yy76:
                YYDEBUG(76, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(77, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2145 "Zend/zend_language_scanner.l"
+#line 2155 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = (zend_long) '{';
        yy_push_state(ST_IN_SCRIPTING);
        yyless(1);
        RETURN_TOKEN(T_CURLY_OPEN);
 }
-#line 1943 "Zend/zend_language_scanner.c"
+#line 1953 "Zend/zend_language_scanner.c"
 yy78:
                YYDEBUG(78, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1953,14 +1963,14 @@ yy80:
                ++YYCURSOR;
                YYDEBUG(81, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1859 "Zend/zend_language_scanner.l"
+#line 1869 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET);
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        RETURN_TOKEN(T_VARIABLE);
 }
-#line 1964 "Zend/zend_language_scanner.c"
+#line 1974 "Zend/zend_language_scanner.c"
 yy82:
                YYDEBUG(82, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1978,51 +1988,51 @@ yy83:
                ++YYCURSOR;
                YYDEBUG(84, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1850 "Zend/zend_language_scanner.l"
+#line 1860 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY);
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        RETURN_TOKEN(T_VARIABLE);
 }
-#line 1989 "Zend/zend_language_scanner.c"
+#line 1999 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_IN_SCRIPTING:
        {
                static const unsigned char yybm[] = {
-                         0,   0,   0,   0,   0,   0,   0,   0,
-                         0,  36,   4,   0,   0,   4,   0,   0,
-                         0,   0,   0,   0,   0,   0,   0,   0,
-                         0,   0,   0,   0,   0,   0,   0,   0,
-                        36,   0,   0,   0,   0,   0,   0,   0,
-                         0,   0,   0,   0,   0,   0,   0,   0,
-                       216, 216, 152, 152, 152, 152, 152, 152,
-                       152, 152,   0,   0,   0,   0,   0,   0,
-                         0, 144, 144, 144, 144, 144, 144,  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, 144, 144, 144, 144, 144, 144,  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,
-                        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,  36,   4,   0,   0,   4,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                        36,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                       216, 216, 152, 152, 152, 152, 152, 152, 
+                       152, 152,   0,   0,   0,   0,   0,   0, 
+                         0, 144, 144, 144, 144, 144, 144,  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, 144, 144, 144, 144, 144, 144,  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, 
+                        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(85, *YYCURSOR);
                YYFILL(16);
@@ -2154,7 +2164,7 @@ yy87:
                ++YYCURSOR;
                YYDEBUG(88, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2387 "Zend/zend_language_scanner.l"
+#line 2397 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                RETURN_TOKEN(END);
@@ -2163,7 +2173,7 @@ yy87:
        zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
        goto restart;
 }
-#line 2167 "Zend/zend_language_scanner.c"
+#line 2177 "Zend/zend_language_scanner.c"
 yy89:
                YYDEBUG(89, *YYCURSOR);
                ++YYCURSOR;
@@ -2175,12 +2185,12 @@ yy89:
                }
                YYDEBUG(91, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1290 "Zend/zend_language_scanner.l"
+#line 1300 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        RETURN_TOKEN(T_WHITESPACE);
 }
-#line 2184 "Zend/zend_language_scanner.c"
+#line 2194 "Zend/zend_language_scanner.c"
 yy92:
                YYDEBUG(92, *YYCURSOR);
                ++YYCURSOR;
@@ -2188,17 +2198,17 @@ yy92:
 yy93:
                YYDEBUG(93, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1575 "Zend/zend_language_scanner.l"
+#line 1585 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(yytext[0]);
 }
-#line 2196 "Zend/zend_language_scanner.c"
+#line 2206 "Zend/zend_language_scanner.c"
 yy94:
                YYDEBUG(94, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(95, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2035 "Zend/zend_language_scanner.l"
+#line 2045 "Zend/zend_language_scanner.l"
                {
        int bprefix = (yytext[0] != '"') ? 1 : 0;
 
@@ -2239,13 +2249,13 @@ yy94:
        BEGIN(ST_DOUBLE_QUOTES);
        RETURN_TOKEN('"');
 }
-#line 2243 "Zend/zend_language_scanner.c"
+#line 2253 "Zend/zend_language_scanner.c"
 yy96:
                YYDEBUG(96, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(97, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1895 "Zend/zend_language_scanner.l"
+#line 1905 "Zend/zend_language_scanner.l"
                {
        while (YYCURSOR < YYLIMIT) {
                switch (*YYCURSOR++) {
@@ -2274,7 +2284,7 @@ yy96:
 
        RETURN_TOKEN(T_COMMENT);
 }
-#line 2278 "Zend/zend_language_scanner.c"
+#line 2288 "Zend/zend_language_scanner.c"
 yy98:
                YYDEBUG(98, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2305,7 +2315,7 @@ yy101:
                ++YYCURSOR;
                YYDEBUG(102, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1966 "Zend/zend_language_scanner.l"
+#line 1976 "Zend/zend_language_scanner.l"
                {
        register char *s, *t;
        char *end;
@@ -2373,7 +2383,7 @@ yy101:
        }
        RETURN_TOKEN(T_CONSTANT_ENCAPSED_STRING);
 }
-#line 2377 "Zend/zend_language_scanner.c"
+#line 2387 "Zend/zend_language_scanner.c"
 yy103:
                YYDEBUG(103, *YYCURSOR);
                yyaccept = 0;
@@ -2503,7 +2513,7 @@ yy110:
 yy111:
                YYDEBUG(111, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1645 "Zend/zend_language_scanner.l"
+#line 1655 "Zend/zend_language_scanner.l"
                {
        char *end;
        if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
@@ -2546,7 +2556,7 @@ yy111:
        ZEND_ASSERT(!errno);
        RETURN_TOKEN(T_LNUMBER);
 }
-#line 2550 "Zend/zend_language_scanner.c"
+#line 2560 "Zend/zend_language_scanner.c"
 yy112:
                YYDEBUG(112, *YYCURSOR);
                yyaccept = 1;
@@ -2627,12 +2637,12 @@ yy119:
 yy120:
                YYDEBUG(120, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1889 "Zend/zend_language_scanner.l"
+#line 1899 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        RETURN_TOKEN(T_STRING);
 }
-#line 2636 "Zend/zend_language_scanner.c"
+#line 2646 "Zend/zend_language_scanner.c"
 yy121:
                YYDEBUG(121, *YYCURSOR);
                yyaccept = 2;
@@ -2917,11 +2927,11 @@ yy142:
                ++YYCURSOR;
                YYDEBUG(143, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1315 "Zend/zend_language_scanner.l"
+#line 1325 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_NS_SEPARATOR);
 }
-#line 2925 "Zend/zend_language_scanner.c"
+#line 2935 "Zend/zend_language_scanner.c"
 yy144:
                YYDEBUG(144, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2937,23 +2947,23 @@ yy146:
                ++YYCURSOR;
                YYDEBUG(147, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2125 "Zend/zend_language_scanner.l"
+#line 2135 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_BACKQUOTE);
        RETURN_TOKEN('`');
 }
-#line 2946 "Zend/zend_language_scanner.c"
+#line 2956 "Zend/zend_language_scanner.c"
 yy148:
                YYDEBUG(148, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(149, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1580 "Zend/zend_language_scanner.l"
+#line 1590 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_IN_SCRIPTING);
        RETURN_TOKEN('{');
 }
-#line 2957 "Zend/zend_language_scanner.c"
+#line 2967 "Zend/zend_language_scanner.c"
 yy150:
                YYDEBUG(150, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2965,7 +2975,7 @@ yy151:
                ++YYCURSOR;
                YYDEBUG(152, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1592 "Zend/zend_language_scanner.l"
+#line 1602 "Zend/zend_language_scanner.l"
                {
        RESET_DOC_COMMENT();
        if (!zend_stack_is_empty(&SCNG(state_stack))) {
@@ -2973,7 +2983,7 @@ yy151:
        }
        RETURN_TOKEN('}');
 }
-#line 2977 "Zend/zend_language_scanner.c"
+#line 2987 "Zend/zend_language_scanner.c"
 yy153:
                YYDEBUG(153, *YYCURSOR);
                ++YYCURSOR;
@@ -2981,11 +2991,11 @@ yy153:
 yy154:
                YYDEBUG(154, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1479 "Zend/zend_language_scanner.l"
+#line 1489 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_IS_NOT_EQUAL);
 }
-#line 2989 "Zend/zend_language_scanner.c"
+#line 2999 "Zend/zend_language_scanner.c"
 yy155:
                YYDEBUG(155, *YYCURSOR);
                ++YYCURSOR;
@@ -3010,42 +3020,42 @@ yy155:
 yy157:
                YYDEBUG(157, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1866 "Zend/zend_language_scanner.l"
+#line 1876 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        RETURN_TOKEN(T_VARIABLE);
 }
-#line 3019 "Zend/zend_language_scanner.c"
+#line 3029 "Zend/zend_language_scanner.c"
 yy158:
                YYDEBUG(158, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(159, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1523 "Zend/zend_language_scanner.l"
+#line 1533 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_MOD_EQUAL);
 }
-#line 3029 "Zend/zend_language_scanner.c"
+#line 3039 "Zend/zend_language_scanner.c"
 yy160:
                YYDEBUG(160, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(161, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1551 "Zend/zend_language_scanner.l"
+#line 1561 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_BOOLEAN_AND);
 }
-#line 3039 "Zend/zend_language_scanner.c"
+#line 3049 "Zend/zend_language_scanner.c"
 yy162:
                YYDEBUG(162, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(163, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1535 "Zend/zend_language_scanner.l"
+#line 1545 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_AND_EQUAL);
 }
-#line 3049 "Zend/zend_language_scanner.c"
+#line 3059 "Zend/zend_language_scanner.c"
 yy164:
                YYDEBUG(164, *YYCURSOR);
                ++YYCURSOR;
@@ -3175,72 +3185,72 @@ yy176:
                if ((yych = *YYCURSOR) == '=') goto yy289;
                YYDEBUG(177, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1507 "Zend/zend_language_scanner.l"
+#line 1517 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_POW);
 }
-#line 3183 "Zend/zend_language_scanner.c"
+#line 3193 "Zend/zend_language_scanner.c"
 yy178:
                YYDEBUG(178, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(179, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1503 "Zend/zend_language_scanner.l"
+#line 1513 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_MUL_EQUAL);
 }
-#line 3193 "Zend/zend_language_scanner.c"
+#line 3203 "Zend/zend_language_scanner.c"
 yy180:
                YYDEBUG(180, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(181, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1459 "Zend/zend_language_scanner.l"
+#line 1469 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_INC);
 }
-#line 3203 "Zend/zend_language_scanner.c"
+#line 3213 "Zend/zend_language_scanner.c"
 yy182:
                YYDEBUG(182, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(183, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1495 "Zend/zend_language_scanner.l"
+#line 1505 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_PLUS_EQUAL);
 }
-#line 3213 "Zend/zend_language_scanner.c"
+#line 3223 "Zend/zend_language_scanner.c"
 yy184:
                YYDEBUG(184, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(185, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1463 "Zend/zend_language_scanner.l"
+#line 1473 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_DEC);
 }
-#line 3223 "Zend/zend_language_scanner.c"
+#line 3233 "Zend/zend_language_scanner.c"
 yy186:
                YYDEBUG(186, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(187, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1499 "Zend/zend_language_scanner.l"
+#line 1509 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_MINUS_EQUAL);
 }
-#line 3233 "Zend/zend_language_scanner.c"
+#line 3243 "Zend/zend_language_scanner.c"
 yy188:
                YYDEBUG(188, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(189, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1285 "Zend/zend_language_scanner.l"
+#line 1295 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_PROPERTY);
        RETURN_TOKEN(T_OBJECT_OPERATOR);
 }
-#line 3244 "Zend/zend_language_scanner.c"
+#line 3254 "Zend/zend_language_scanner.c"
 yy190:
                YYDEBUG(190, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3263,7 +3273,7 @@ yy191:
 yy193:
                YYDEBUG(193, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1737 "Zend/zend_language_scanner.l"
+#line 1747 "Zend/zend_language_scanner.l"
                {
        const char *end;
 
@@ -3272,17 +3282,17 @@ yy193:
        ZEND_ASSERT(end == yytext + yyleng);
        RETURN_TOKEN(T_DNUMBER);
 }
-#line 3276 "Zend/zend_language_scanner.c"
+#line 3286 "Zend/zend_language_scanner.c"
 yy194:
                YYDEBUG(194, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(195, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1519 "Zend/zend_language_scanner.l"
+#line 1529 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_CONCAT_EQUAL);
 }
-#line 3286 "Zend/zend_language_scanner.c"
+#line 3296 "Zend/zend_language_scanner.c"
 yy196:
                YYDEBUG(196, *YYCURSOR);
                yyaccept = 4;
@@ -3291,7 +3301,7 @@ yy196:
 yy197:
                YYDEBUG(197, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1924 "Zend/zend_language_scanner.l"
+#line 1934 "Zend/zend_language_scanner.l"
                {
        int doc_com;
 
@@ -3324,17 +3334,17 @@ yy197:
 
        RETURN_TOKEN(T_COMMENT);
 }
-#line 3328 "Zend/zend_language_scanner.c"
+#line 3338 "Zend/zend_language_scanner.c"
 yy198:
                YYDEBUG(198, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(199, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1515 "Zend/zend_language_scanner.l"
+#line 1525 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_DIV_EQUAL);
 }
-#line 3338 "Zend/zend_language_scanner.c"
+#line 3348 "Zend/zend_language_scanner.c"
 yy200:
                YYDEBUG(200, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3366,11 +3376,11 @@ yy203:
                ++YYCURSOR;
                YYDEBUG(204, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1311 "Zend/zend_language_scanner.l"
+#line 1321 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM);
 }
-#line 3374 "Zend/zend_language_scanner.c"
+#line 3384 "Zend/zend_language_scanner.c"
 yy205:
                YYDEBUG(205, *YYCURSOR);
                yyaccept = 5;
@@ -3381,22 +3391,22 @@ yy205:
 yy206:
                YYDEBUG(206, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1567 "Zend/zend_language_scanner.l"
+#line 1577 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_SL);
 }
-#line 3389 "Zend/zend_language_scanner.c"
+#line 3399 "Zend/zend_language_scanner.c"
 yy207:
                YYDEBUG(207, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '>') goto yy307;
                YYDEBUG(208, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1487 "Zend/zend_language_scanner.l"
+#line 1497 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL);
 }
-#line 3400 "Zend/zend_language_scanner.c"
+#line 3410 "Zend/zend_language_scanner.c"
 yy209:
                YYDEBUG(209, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3407,42 +3417,42 @@ yy210:
                if ((yych = *YYCURSOR) == '=') goto yy309;
                YYDEBUG(211, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1475 "Zend/zend_language_scanner.l"
+#line 1485 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_IS_EQUAL);
 }
-#line 3415 "Zend/zend_language_scanner.c"
+#line 3425 "Zend/zend_language_scanner.c"
 yy212:
                YYDEBUG(212, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(213, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1443 "Zend/zend_language_scanner.l"
+#line 1453 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_DOUBLE_ARROW);
 }
-#line 3425 "Zend/zend_language_scanner.c"
+#line 3435 "Zend/zend_language_scanner.c"
 yy214:
                YYDEBUG(214, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(215, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1491 "Zend/zend_language_scanner.l"
+#line 1501 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_IS_GREATER_OR_EQUAL);
 }
-#line 3435 "Zend/zend_language_scanner.c"
+#line 3445 "Zend/zend_language_scanner.c"
 yy216:
                YYDEBUG(216, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy311;
                YYDEBUG(217, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1571 "Zend/zend_language_scanner.l"
+#line 1581 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_SR);
 }
-#line 3446 "Zend/zend_language_scanner.c"
+#line 3456 "Zend/zend_language_scanner.c"
 yy218:
                YYDEBUG(218, *YYCURSOR);
                ++YYCURSOR;
@@ -3451,7 +3461,7 @@ yy218:
 yy219:
                YYDEBUG(219, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1957 "Zend/zend_language_scanner.l"
+#line 1967 "Zend/zend_language_scanner.l"
                {
        BEGIN(INITIAL);
        if (yytext[yyleng-1] != '>') {
@@ -3459,17 +3469,17 @@ yy219:
        }
        RETURN_TOKEN(T_CLOSE_TAG);  /* implicit ';' at php-end tag */
 }
-#line 3463 "Zend/zend_language_scanner.c"
+#line 3473 "Zend/zend_language_scanner.c"
 yy220:
                YYDEBUG(220, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(221, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1323 "Zend/zend_language_scanner.l"
+#line 1333 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_COALESCE);
 }
-#line 3473 "Zend/zend_language_scanner.c"
+#line 3483 "Zend/zend_language_scanner.c"
 yy222:
                YYDEBUG(222, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3496,11 +3506,11 @@ yy225:
                }
                YYDEBUG(226, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1225 "Zend/zend_language_scanner.l"
+#line 1235 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_AS);
 }
-#line 3504 "Zend/zend_language_scanner.c"
+#line 3514 "Zend/zend_language_scanner.c"
 yy227:
                YYDEBUG(227, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3586,11 +3596,11 @@ yy234:
                }
                YYDEBUG(235, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1193 "Zend/zend_language_scanner.l"
+#line 1203 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_DO);
 }
-#line 3594 "Zend/zend_language_scanner.c"
+#line 3604 "Zend/zend_language_scanner.c"
 yy236:
                YYDEBUG(236, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3675,11 +3685,11 @@ yy247:
                }
                YYDEBUG(248, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1169 "Zend/zend_language_scanner.l"
+#line 1179 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_IF);
 }
-#line 3683 "Zend/zend_language_scanner.c"
+#line 3693 "Zend/zend_language_scanner.c"
 yy249:
                YYDEBUG(249, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3740,11 +3750,11 @@ yy255:
                }
                YYDEBUG(256, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1555 "Zend/zend_language_scanner.l"
+#line 1565 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_LOGICAL_OR);
 }
-#line 3748 "Zend/zend_language_scanner.c"
+#line 3758 "Zend/zend_language_scanner.c"
 yy257:
                YYDEBUG(257, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3858,11 +3868,11 @@ yy270:
                ++YYCURSOR;
                YYDEBUG(271, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1543 "Zend/zend_language_scanner.l"
+#line 1553 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_XOR_EQUAL);
 }
-#line 3866 "Zend/zend_language_scanner.c"
+#line 3876 "Zend/zend_language_scanner.c"
 yy272:
                YYDEBUG(272, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3890,31 +3900,31 @@ yy273:
                ++YYCURSOR;
                YYDEBUG(274, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1539 "Zend/zend_language_scanner.l"
+#line 1549 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_OR_EQUAL);
 }
-#line 3898 "Zend/zend_language_scanner.c"
+#line 3908 "Zend/zend_language_scanner.c"
 yy275:
                YYDEBUG(275, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(276, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1547 "Zend/zend_language_scanner.l"
+#line 1557 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_BOOLEAN_OR);
 }
-#line 3908 "Zend/zend_language_scanner.c"
+#line 3918 "Zend/zend_language_scanner.c"
 yy277:
                YYDEBUG(277, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(278, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1471 "Zend/zend_language_scanner.l"
+#line 1481 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_IS_NOT_IDENTICAL);
 }
-#line 3918 "Zend/zend_language_scanner.c"
+#line 3928 "Zend/zend_language_scanner.c"
 yy279:
                YYDEBUG(279, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3980,21 +3990,21 @@ yy289:
                ++YYCURSOR;
                YYDEBUG(290, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1511 "Zend/zend_language_scanner.l"
+#line 1521 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_POW_EQUAL);
 }
-#line 3988 "Zend/zend_language_scanner.c"
+#line 3998 "Zend/zend_language_scanner.c"
 yy291:
                YYDEBUG(291, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(292, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1319 "Zend/zend_language_scanner.l"
+#line 1329 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ELLIPSIS);
 }
-#line 3998 "Zend/zend_language_scanner.c"
+#line 4008 "Zend/zend_language_scanner.c"
 yy293:
                YYDEBUG(293, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4018,7 +4028,7 @@ yy294:
                }
                YYDEBUG(296, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1617 "Zend/zend_language_scanner.l"
+#line 1627 "Zend/zend_language_scanner.l"
                {
        char *bin = yytext + 2; /* Skip "0b" */
        int len = yyleng - 2;
@@ -4046,7 +4056,7 @@ yy294:
                RETURN_TOKEN(T_DNUMBER);
        }
 }
-#line 4050 "Zend/zend_language_scanner.c"
+#line 4060 "Zend/zend_language_scanner.c"
 yy297:
                YYDEBUG(297, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4072,7 +4082,7 @@ yy300:
                }
                YYDEBUG(302, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1688 "Zend/zend_language_scanner.l"
+#line 1698 "Zend/zend_language_scanner.l"
                {
        char *hex = yytext + 2; /* Skip "0x" */
        int len = yyleng - 2;
@@ -4100,7 +4110,7 @@ yy300:
                RETURN_TOKEN(T_DNUMBER);
        }
 }
-#line 4104 "Zend/zend_language_scanner.c"
+#line 4114 "Zend/zend_language_scanner.c"
 yy303:
                YYDEBUG(303, *YYCURSOR);
                ++YYCURSOR;
@@ -4135,41 +4145,41 @@ yy305:
                ++YYCURSOR;
                YYDEBUG(306, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1527 "Zend/zend_language_scanner.l"
+#line 1537 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_SL_EQUAL);
 }
-#line 4143 "Zend/zend_language_scanner.c"
+#line 4153 "Zend/zend_language_scanner.c"
 yy307:
                YYDEBUG(307, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(308, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1483 "Zend/zend_language_scanner.l"
+#line 1493 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_SPACESHIP);
 }
-#line 4153 "Zend/zend_language_scanner.c"
+#line 4163 "Zend/zend_language_scanner.c"
 yy309:
                YYDEBUG(309, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(310, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1467 "Zend/zend_language_scanner.l"
+#line 1477 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_IS_IDENTICAL);
 }
-#line 4163 "Zend/zend_language_scanner.c"
+#line 4173 "Zend/zend_language_scanner.c"
 yy311:
                YYDEBUG(311, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(312, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1531 "Zend/zend_language_scanner.l"
+#line 1541 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_SR_EQUAL);
 }
-#line 4173 "Zend/zend_language_scanner.c"
+#line 4183 "Zend/zend_language_scanner.c"
 yy313:
                YYDEBUG(313, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4193,11 +4203,11 @@ yy316:
                }
                YYDEBUG(317, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1559 "Zend/zend_language_scanner.l"
+#line 1569 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_LOGICAL_AND);
 }
-#line 4201 "Zend/zend_language_scanner.c"
+#line 4211 "Zend/zend_language_scanner.c"
 yy318:
                YYDEBUG(318, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4278,11 +4288,11 @@ yy329:
                }
                YYDEBUG(330, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1127 "Zend/zend_language_scanner.l"
+#line 1137 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_EXIT);
 }
-#line 4286 "Zend/zend_language_scanner.c"
+#line 4296 "Zend/zend_language_scanner.c"
 yy331:
                YYDEBUG(331, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4364,11 +4374,11 @@ yy339:
 yy340:
                YYDEBUG(340, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1197 "Zend/zend_language_scanner.l"
+#line 1207 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_FOR);
 }
-#line 4372 "Zend/zend_language_scanner.c"
+#line 4382 "Zend/zend_language_scanner.c"
 yy341:
                YYDEBUG(341, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4437,11 +4447,11 @@ yy351:
                }
                YYDEBUG(352, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1327 "Zend/zend_language_scanner.l"
+#line 1337 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_NEW);
 }
-#line 4445 "Zend/zend_language_scanner.c"
+#line 4455 "Zend/zend_language_scanner.c"
 yy353:
                YYDEBUG(353, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4514,11 +4524,11 @@ yy362:
                }
                YYDEBUG(363, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1153 "Zend/zend_language_scanner.l"
+#line 1163 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_TRY);
 }
-#line 4522 "Zend/zend_language_scanner.c"
+#line 4532 "Zend/zend_language_scanner.c"
 yy364:
                YYDEBUG(364, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4533,11 +4543,11 @@ yy365:
                }
                YYDEBUG(366, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1391 "Zend/zend_language_scanner.l"
+#line 1401 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_USE);
 }
-#line 4541 "Zend/zend_language_scanner.c"
+#line 4551 "Zend/zend_language_scanner.c"
 yy367:
                YYDEBUG(367, *YYCURSOR);
                ++YYCURSOR;
@@ -4546,11 +4556,11 @@ yy367:
                }
                YYDEBUG(368, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1335 "Zend/zend_language_scanner.l"
+#line 1345 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_VAR);
 }
-#line 4554 "Zend/zend_language_scanner.c"
+#line 4564 "Zend/zend_language_scanner.c"
 yy369:
                YYDEBUG(369, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4565,11 +4575,11 @@ yy370:
                }
                YYDEBUG(371, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1563 "Zend/zend_language_scanner.l"
+#line 1573 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_LOGICAL_XOR);
 }
-#line 4573 "Zend/zend_language_scanner.c"
+#line 4583 "Zend/zend_language_scanner.c"
 yy372:
                YYDEBUG(372, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4783,11 +4793,11 @@ yy401:
                }
                YYDEBUG(402, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1237 "Zend/zend_language_scanner.l"
+#line 1247 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_CASE);
 }
-#line 4791 "Zend/zend_language_scanner.c"
+#line 4801 "Zend/zend_language_scanner.c"
 yy403:
                YYDEBUG(403, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4838,11 +4848,11 @@ yy410:
                }
                YYDEBUG(411, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1257 "Zend/zend_language_scanner.l"
+#line 1267 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ECHO);
 }
-#line 4846 "Zend/zend_language_scanner.c"
+#line 4856 "Zend/zend_language_scanner.c"
 yy412:
                YYDEBUG(412, *YYCURSOR);
                ++YYCURSOR;
@@ -4866,11 +4876,11 @@ yy412:
 yy413:
                YYDEBUG(413, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1181 "Zend/zend_language_scanner.l"
+#line 1191 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ELSE);
 }
-#line 4874 "Zend/zend_language_scanner.c"
+#line 4884 "Zend/zend_language_scanner.c"
 yy414:
                YYDEBUG(414, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4915,11 +4925,11 @@ yy420:
                }
                YYDEBUG(421, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1367 "Zend/zend_language_scanner.l"
+#line 1377 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_EVAL);
 }
-#line 4923 "Zend/zend_language_scanner.c"
+#line 4933 "Zend/zend_language_scanner.c"
 yy422:
                YYDEBUG(422, *YYCURSOR);
                ++YYCURSOR;
@@ -4928,11 +4938,11 @@ yy422:
                }
                YYDEBUG(423, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1123 "Zend/zend_language_scanner.l"
+#line 1133 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_EXIT);
 }
-#line 4936 "Zend/zend_language_scanner.c"
+#line 4946 "Zend/zend_language_scanner.c"
 yy424:
                YYDEBUG(424, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4971,11 +4981,11 @@ yy429:
                }
                YYDEBUG(430, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1253 "Zend/zend_language_scanner.l"
+#line 1263 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_GOTO);
 }
-#line 4979 "Zend/zend_language_scanner.c"
+#line 4989 "Zend/zend_language_scanner.c"
 yy431:
                YYDEBUG(431, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5024,11 +5034,11 @@ yy436:
                }
                YYDEBUG(437, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1447 "Zend/zend_language_scanner.l"
+#line 1457 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_LIST);
 }
-#line 5032 "Zend/zend_language_scanner.c"
+#line 5042 "Zend/zend_language_scanner.c"
 yy438:
                YYDEBUG(438, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5215,11 +5225,11 @@ yy467:
                ++YYCURSOR;
                YYDEBUG(469, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1339 "Zend/zend_language_scanner.l"
+#line 1349 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_INT_CAST);
 }
-#line 5223 "Zend/zend_language_scanner.c"
+#line 5233 "Zend/zend_language_scanner.c"
 yy470:
                YYDEBUG(470, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5316,7 +5326,7 @@ yy480:
 yy481:
                YYDEBUG(481, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2077 "Zend/zend_language_scanner.l"
+#line 2087 "Zend/zend_language_scanner.l"
                {
        char *s;
        int bprefix = (yytext[0] != '<') ? 1 : 0;
@@ -5363,7 +5373,7 @@ yy481:
 
        RETURN_TOKEN(T_START_HEREDOC);
 }
-#line 5367 "Zend/zend_language_scanner.c"
+#line 5377 "Zend/zend_language_scanner.c"
 yy482:
                YYDEBUG(482, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5383,11 +5393,11 @@ yy484:
                }
                YYDEBUG(485, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1451 "Zend/zend_language_scanner.l"
+#line 1461 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ARRAY);
 }
-#line 5391 "Zend/zend_language_scanner.c"
+#line 5401 "Zend/zend_language_scanner.c"
 yy486:
                YYDEBUG(486, *YYCURSOR);
                ++YYCURSOR;
@@ -5396,11 +5406,11 @@ yy486:
                }
                YYDEBUG(487, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1245 "Zend/zend_language_scanner.l"
+#line 1255 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_BREAK);
 }
-#line 5404 "Zend/zend_language_scanner.c"
+#line 5414 "Zend/zend_language_scanner.c"
 yy488:
                YYDEBUG(488, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5415,11 +5425,11 @@ yy489:
                }
                YYDEBUG(490, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1157 "Zend/zend_language_scanner.l"
+#line 1167 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_CATCH);
 }
-#line 5423 "Zend/zend_language_scanner.c"
+#line 5433 "Zend/zend_language_scanner.c"
 yy491:
                YYDEBUG(491, *YYCURSOR);
                ++YYCURSOR;
@@ -5428,11 +5438,11 @@ yy491:
                }
                YYDEBUG(492, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1265 "Zend/zend_language_scanner.l"
+#line 1275 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_CLASS);
 }
-#line 5436 "Zend/zend_language_scanner.c"
+#line 5446 "Zend/zend_language_scanner.c"
 yy493:
                YYDEBUG(493, *YYCURSOR);
                ++YYCURSOR;
@@ -5441,11 +5451,11 @@ yy493:
                }
                YYDEBUG(494, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1331 "Zend/zend_language_scanner.l"
+#line 1341 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_CLONE);
 }
-#line 5449 "Zend/zend_language_scanner.c"
+#line 5459 "Zend/zend_language_scanner.c"
 yy495:
                YYDEBUG(495, *YYCURSOR);
                ++YYCURSOR;
@@ -5454,11 +5464,11 @@ yy495:
                }
                YYDEBUG(496, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1135 "Zend/zend_language_scanner.l"
+#line 1145 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_CONST);
 }
-#line 5462 "Zend/zend_language_scanner.c"
+#line 5472 "Zend/zend_language_scanner.c"
 yy497:
                YYDEBUG(497, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5491,11 +5501,11 @@ yy501:
                }
                YYDEBUG(502, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1407 "Zend/zend_language_scanner.l"
+#line 1417 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_EMPTY);
 }
-#line 5499 "Zend/zend_language_scanner.c"
+#line 5509 "Zend/zend_language_scanner.c"
 yy503:
                YYDEBUG(503, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5516,11 +5526,11 @@ yy505:
                }
                YYDEBUG(506, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1177 "Zend/zend_language_scanner.l"
+#line 1187 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ENDIF);
 }
-#line 5524 "Zend/zend_language_scanner.c"
+#line 5534 "Zend/zend_language_scanner.c"
 yy507:
                YYDEBUG(507, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5562,11 +5572,11 @@ yy510:
 yy511:
                YYDEBUG(511, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1423 "Zend/zend_language_scanner.l"
+#line 1433 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_FINAL);
 }
-#line 5570 "Zend/zend_language_scanner.c"
+#line 5580 "Zend/zend_language_scanner.c"
 yy512:
                YYDEBUG(512, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5623,11 +5633,11 @@ yy520:
                }
                YYDEBUG(521, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1403 "Zend/zend_language_scanner.l"
+#line 1413 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ISSET);
 }
-#line 5631 "Zend/zend_language_scanner.c"
+#line 5641 "Zend/zend_language_scanner.c"
 yy522:
                YYDEBUG(522, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5642,11 +5652,11 @@ yy523:
                }
                YYDEBUG(524, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1261 "Zend/zend_language_scanner.l"
+#line 1271 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_PRINT);
 }
-#line 5650 "Zend/zend_language_scanner.c"
+#line 5660 "Zend/zend_language_scanner.c"
 yy525:
                YYDEBUG(525, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5697,11 +5707,11 @@ yy532:
                }
                YYDEBUG(533, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1165 "Zend/zend_language_scanner.l"
+#line 1175 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_THROW);
 }
-#line 5705 "Zend/zend_language_scanner.c"
+#line 5715 "Zend/zend_language_scanner.c"
 yy534:
                YYDEBUG(534, *YYCURSOR);
                ++YYCURSOR;
@@ -5710,11 +5720,11 @@ yy534:
                }
                YYDEBUG(535, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1273 "Zend/zend_language_scanner.l"
+#line 1283 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_TRAIT);
 }
-#line 5718 "Zend/zend_language_scanner.c"
+#line 5728 "Zend/zend_language_scanner.c"
 yy536:
                YYDEBUG(536, *YYCURSOR);
                ++YYCURSOR;
@@ -5723,11 +5733,11 @@ yy536:
                }
                YYDEBUG(537, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1439 "Zend/zend_language_scanner.l"
+#line 1449 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_UNSET);
 }
-#line 5731 "Zend/zend_language_scanner.c"
+#line 5741 "Zend/zend_language_scanner.c"
 yy538:
                YYDEBUG(538, *YYCURSOR);
                ++YYCURSOR;
@@ -5736,11 +5746,11 @@ yy538:
                }
                YYDEBUG(539, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1185 "Zend/zend_language_scanner.l"
+#line 1195 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_WHILE);
 }
-#line 5744 "Zend/zend_language_scanner.c"
+#line 5754 "Zend/zend_language_scanner.c"
 yy540:
                YYDEBUG(540, *YYCURSOR);
                yyaccept = 6;
@@ -5758,11 +5768,11 @@ yy540:
 yy541:
                YYDEBUG(541, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1149 "Zend/zend_language_scanner.l"
+#line 1159 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_YIELD);
 }
-#line 5766 "Zend/zend_language_scanner.c"
+#line 5776 "Zend/zend_language_scanner.c"
 yy542:
                YYDEBUG(542, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5854,11 +5864,11 @@ yy555:
                ++YYCURSOR;
                YYDEBUG(557, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1359 "Zend/zend_language_scanner.l"
+#line 1369 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_BOOL_CAST);
 }
-#line 5862 "Zend/zend_language_scanner.c"
+#line 5872 "Zend/zend_language_scanner.c"
 yy558:
                YYDEBUG(558, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5888,11 +5898,11 @@ yy562:
                ++YYCURSOR;
                YYDEBUG(563, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1343 "Zend/zend_language_scanner.l"
+#line 1353 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_DOUBLE_CAST);
 }
-#line 5896 "Zend/zend_language_scanner.c"
+#line 5906 "Zend/zend_language_scanner.c"
 yy564:
                YYDEBUG(564, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5957,11 +5967,11 @@ yy573:
                }
                YYDEBUG(574, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1173 "Zend/zend_language_scanner.l"
+#line 1183 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ELSEIF);
 }
-#line 5965 "Zend/zend_language_scanner.c"
+#line 5975 "Zend/zend_language_scanner.c"
 yy575:
                YYDEBUG(575, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5991,11 +6001,11 @@ yy576:
 yy577:
                YYDEBUG(577, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1201 "Zend/zend_language_scanner.l"
+#line 1211 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ENDFOR);
 }
-#line 5999 "Zend/zend_language_scanner.c"
+#line 6009 "Zend/zend_language_scanner.c"
 yy578:
                YYDEBUG(578, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6040,11 +6050,11 @@ yy584:
                }
                YYDEBUG(585, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1399 "Zend/zend_language_scanner.l"
+#line 1409 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_GLOBAL);
 }
-#line 6048 "Zend/zend_language_scanner.c"
+#line 6058 "Zend/zend_language_scanner.c"
 yy586:
                YYDEBUG(586, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6101,11 +6111,11 @@ yy594:
                }
                YYDEBUG(595, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1435 "Zend/zend_language_scanner.l"
+#line 1445 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_PUBLIC);
 }
-#line 6109 "Zend/zend_language_scanner.c"
+#line 6119 "Zend/zend_language_scanner.c"
 yy596:
                YYDEBUG(596, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6120,11 +6130,11 @@ yy597:
                }
                YYDEBUG(598, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1139 "Zend/zend_language_scanner.l"
+#line 1149 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_RETURN);
 }
-#line 6128 "Zend/zend_language_scanner.c"
+#line 6138 "Zend/zend_language_scanner.c"
 yy599:
                YYDEBUG(599, *YYCURSOR);
                ++YYCURSOR;
@@ -6133,11 +6143,11 @@ yy599:
                }
                YYDEBUG(600, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1415 "Zend/zend_language_scanner.l"
+#line 1425 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_STATIC);
 }
-#line 6141 "Zend/zend_language_scanner.c"
+#line 6151 "Zend/zend_language_scanner.c"
 yy601:
                YYDEBUG(601, *YYCURSOR);
                ++YYCURSOR;
@@ -6146,11 +6156,11 @@ yy601:
                }
                YYDEBUG(602, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1229 "Zend/zend_language_scanner.l"
+#line 1239 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_SWITCH);
 }
-#line 6154 "Zend/zend_language_scanner.c"
+#line 6164 "Zend/zend_language_scanner.c"
 yy603:
                YYDEBUG(603, *YYCURSOR);
                ++YYCURSOR;
@@ -6230,11 +6240,11 @@ yy614:
                ++YYCURSOR;
                YYDEBUG(615, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1351 "Zend/zend_language_scanner.l"
+#line 1361 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ARRAY_CAST);
 }
-#line 6238 "Zend/zend_language_scanner.c"
+#line 6248 "Zend/zend_language_scanner.c"
 yy616:
                YYDEBUG(616, *YYCURSOR);
                ++YYCURSOR;
@@ -6280,11 +6290,11 @@ yy622:
                ++YYCURSOR;
                YYDEBUG(623, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1363 "Zend/zend_language_scanner.l"
+#line 1373 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_UNSET_CAST);
 }
-#line 6288 "Zend/zend_language_scanner.c"
+#line 6298 "Zend/zend_language_scanner.c"
 yy624:
                YYDEBUG(624, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6311,11 +6321,11 @@ yy627:
                }
                YYDEBUG(628, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1213 "Zend/zend_language_scanner.l"
+#line 1223 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_DECLARE);
 }
-#line 6319 "Zend/zend_language_scanner.c"
+#line 6329 "Zend/zend_language_scanner.c"
 yy629:
                YYDEBUG(629, *YYCURSOR);
                ++YYCURSOR;
@@ -6324,11 +6334,11 @@ yy629:
                }
                YYDEBUG(630, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1241 "Zend/zend_language_scanner.l"
+#line 1251 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_DEFAULT);
 }
-#line 6332 "Zend/zend_language_scanner.c"
+#line 6342 "Zend/zend_language_scanner.c"
 yy631:
                YYDEBUG(631, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6361,11 +6371,11 @@ yy635:
                }
                YYDEBUG(636, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1277 "Zend/zend_language_scanner.l"
+#line 1287 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_EXTENDS);
 }
-#line 6369 "Zend/zend_language_scanner.c"
+#line 6379 "Zend/zend_language_scanner.c"
 yy637:
                YYDEBUG(637, *YYCURSOR);
                ++YYCURSOR;
@@ -6374,11 +6384,11 @@ yy637:
                }
                YYDEBUG(638, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1161 "Zend/zend_language_scanner.l"
+#line 1171 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_FINALLY);
 }
-#line 6382 "Zend/zend_language_scanner.c"
+#line 6392 "Zend/zend_language_scanner.c"
 yy639:
                YYDEBUG(639, *YYCURSOR);
                ++YYCURSOR;
@@ -6387,11 +6397,11 @@ yy639:
                }
                YYDEBUG(640, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1205 "Zend/zend_language_scanner.l"
+#line 1215 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_FOREACH);
 }
-#line 6395 "Zend/zend_language_scanner.c"
+#line 6405 "Zend/zend_language_scanner.c"
 yy641:
                YYDEBUG(641, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6425,11 +6435,11 @@ yy643:
 yy644:
                YYDEBUG(644, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1371 "Zend/zend_language_scanner.l"
+#line 1381 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_INCLUDE);
 }
-#line 6433 "Zend/zend_language_scanner.c"
+#line 6443 "Zend/zend_language_scanner.c"
 yy645:
                YYDEBUG(645, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6462,11 +6472,11 @@ yy649:
                }
                YYDEBUG(650, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1427 "Zend/zend_language_scanner.l"
+#line 1437 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_PRIVATE);
 }
-#line 6470 "Zend/zend_language_scanner.c"
+#line 6480 "Zend/zend_language_scanner.c"
 yy651:
                YYDEBUG(651, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6494,11 +6504,11 @@ yy652:
 yy653:
                YYDEBUG(653, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1379 "Zend/zend_language_scanner.l"
+#line 1389 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_REQUIRE);
 }
-#line 6502 "Zend/zend_language_scanner.c"
+#line 6512 "Zend/zend_language_scanner.c"
 yy654:
                YYDEBUG(654, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6518,11 +6528,11 @@ yy656:
                }
                YYDEBUG(657, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1770 "Zend/zend_language_scanner.l"
+#line 1780 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_DIR);
 }
-#line 6526 "Zend/zend_language_scanner.c"
+#line 6536 "Zend/zend_language_scanner.c"
 yy658:
                YYDEBUG(658, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6567,21 +6577,21 @@ yy665:
                ++YYCURSOR;
                YYDEBUG(666, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1347 "Zend/zend_language_scanner.l"
+#line 1357 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_STRING_CAST);
 }
-#line 6575 "Zend/zend_language_scanner.c"
+#line 6585 "Zend/zend_language_scanner.c"
 yy667:
                YYDEBUG(667, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(668, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1355 "Zend/zend_language_scanner.l"
+#line 1365 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_OBJECT_CAST);
 }
-#line 6585 "Zend/zend_language_scanner.c"
+#line 6595 "Zend/zend_language_scanner.c"
 yy669:
                YYDEBUG(669, *YYCURSOR);
                ++YYCURSOR;
@@ -6590,11 +6600,11 @@ yy669:
                }
                YYDEBUG(670, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1419 "Zend/zend_language_scanner.l"
+#line 1429 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ABSTRACT);
 }
-#line 6598 "Zend/zend_language_scanner.c"
+#line 6608 "Zend/zend_language_scanner.c"
 yy671:
                YYDEBUG(671, *YYCURSOR);
                ++YYCURSOR;
@@ -6603,11 +6613,11 @@ yy671:
                }
                YYDEBUG(672, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1455 "Zend/zend_language_scanner.l"
+#line 1465 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_CALLABLE);
 }
-#line 6611 "Zend/zend_language_scanner.c"
+#line 6621 "Zend/zend_language_scanner.c"
 yy673:
                YYDEBUG(673, *YYCURSOR);
                ++YYCURSOR;
@@ -6616,11 +6626,11 @@ yy673:
                }
                YYDEBUG(674, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1249 "Zend/zend_language_scanner.l"
+#line 1259 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_CONTINUE);
 }
-#line 6624 "Zend/zend_language_scanner.c"
+#line 6634 "Zend/zend_language_scanner.c"
 yy675:
                YYDEBUG(675, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6647,11 +6657,11 @@ yy678:
                }
                YYDEBUG(679, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1189 "Zend/zend_language_scanner.l"
+#line 1199 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ENDWHILE);
 }
-#line 6655 "Zend/zend_language_scanner.c"
+#line 6665 "Zend/zend_language_scanner.c"
 yy680:
                YYDEBUG(680, *YYCURSOR);
                ++YYCURSOR;
@@ -6660,11 +6670,11 @@ yy680:
                }
                YYDEBUG(681, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1131 "Zend/zend_language_scanner.l"
+#line 1141 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_FUNCTION);
 }
-#line 6668 "Zend/zend_language_scanner.c"
+#line 6678 "Zend/zend_language_scanner.c"
 yy682:
                YYDEBUG(682, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6732,11 +6742,11 @@ yy692:
                }
                YYDEBUG(693, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1766 "Zend/zend_language_scanner.l"
+#line 1776 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_FILE);
 }
-#line 6740 "Zend/zend_language_scanner.c"
+#line 6750 "Zend/zend_language_scanner.c"
 yy694:
                YYDEBUG(694, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6757,11 +6767,11 @@ yy696:
                }
                YYDEBUG(697, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1762 "Zend/zend_language_scanner.l"
+#line 1772 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_LINE);
 }
-#line 6765 "Zend/zend_language_scanner.c"
+#line 6775 "Zend/zend_language_scanner.c"
 yy698:
                YYDEBUG(698, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6798,11 +6808,11 @@ yy703:
                }
                YYDEBUG(704, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1233 "Zend/zend_language_scanner.l"
+#line 1243 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ENDSWITCH);
 }
-#line 6806 "Zend/zend_language_scanner.c"
+#line 6816 "Zend/zend_language_scanner.c"
 yy705:
                YYDEBUG(705, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6829,11 +6839,11 @@ yy708:
                }
                YYDEBUG(709, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1395 "Zend/zend_language_scanner.l"
+#line 1405 "Zend/zend_language_scanner.l"
                {
     RETURN_TOKEN(T_INSTEADOF);
 }
-#line 6837 "Zend/zend_language_scanner.c"
+#line 6847 "Zend/zend_language_scanner.c"
 yy710:
                YYDEBUG(710, *YYCURSOR);
                ++YYCURSOR;
@@ -6842,11 +6852,11 @@ yy710:
                }
                YYDEBUG(711, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1269 "Zend/zend_language_scanner.l"
+#line 1279 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_INTERFACE);
 }
-#line 6850 "Zend/zend_language_scanner.c"
+#line 6860 "Zend/zend_language_scanner.c"
 yy712:
                YYDEBUG(712, *YYCURSOR);
                ++YYCURSOR;
@@ -6855,11 +6865,11 @@ yy712:
                }
                YYDEBUG(713, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1387 "Zend/zend_language_scanner.l"
+#line 1397 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_NAMESPACE);
 }
-#line 6863 "Zend/zend_language_scanner.c"
+#line 6873 "Zend/zend_language_scanner.c"
 yy714:
                YYDEBUG(714, *YYCURSOR);
                ++YYCURSOR;
@@ -6868,11 +6878,11 @@ yy714:
                }
                YYDEBUG(715, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1431 "Zend/zend_language_scanner.l"
+#line 1441 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_PROTECTED);
 }
-#line 6876 "Zend/zend_language_scanner.c"
+#line 6886 "Zend/zend_language_scanner.c"
 yy716:
                YYDEBUG(716, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6893,11 +6903,11 @@ yy718:
                }
                YYDEBUG(719, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1746 "Zend/zend_language_scanner.l"
+#line 1756 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_CLASS_C);
 }
-#line 6901 "Zend/zend_language_scanner.c"
+#line 6911 "Zend/zend_language_scanner.c"
 yy720:
                YYDEBUG(720, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6929,11 +6939,11 @@ yy724:
                }
                YYDEBUG(725, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1750 "Zend/zend_language_scanner.l"
+#line 1760 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_TRAIT_C);
 }
-#line 6937 "Zend/zend_language_scanner.c"
+#line 6947 "Zend/zend_language_scanner.c"
 yy726:
                YYDEBUG(726, *YYCURSOR);
                ++YYCURSOR;
@@ -6942,11 +6952,11 @@ yy726:
                }
                YYDEBUG(727, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1217 "Zend/zend_language_scanner.l"
+#line 1227 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ENDDECLARE);
 }
-#line 6950 "Zend/zend_language_scanner.c"
+#line 6960 "Zend/zend_language_scanner.c"
 yy728:
                YYDEBUG(728, *YYCURSOR);
                ++YYCURSOR;
@@ -6955,11 +6965,11 @@ yy728:
                }
                YYDEBUG(729, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1209 "Zend/zend_language_scanner.l"
+#line 1219 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_ENDFOREACH);
 }
-#line 6963 "Zend/zend_language_scanner.c"
+#line 6973 "Zend/zend_language_scanner.c"
 yy730:
                YYDEBUG(730, *YYCURSOR);
                ++YYCURSOR;
@@ -6968,11 +6978,11 @@ yy730:
                }
                YYDEBUG(731, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1281 "Zend/zend_language_scanner.l"
+#line 1291 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_IMPLEMENTS);
 }
-#line 6976 "Zend/zend_language_scanner.c"
+#line 6986 "Zend/zend_language_scanner.c"
 yy732:
                YYDEBUG(732, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6987,11 +6997,11 @@ yy733:
                }
                YYDEBUG(734, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1221 "Zend/zend_language_scanner.l"
+#line 1231 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_INSTANCEOF);
 }
-#line 6995 "Zend/zend_language_scanner.c"
+#line 7005 "Zend/zend_language_scanner.c"
 yy735:
                YYDEBUG(735, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7039,11 +7049,11 @@ yy739:
                }
                YYDEBUG(740, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1758 "Zend/zend_language_scanner.l"
+#line 1768 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_METHOD_C);
 }
-#line 7047 "Zend/zend_language_scanner.c"
+#line 7057 "Zend/zend_language_scanner.c"
 yy741:
                YYDEBUG(741, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7067,13 +7077,13 @@ yy744:
                ++YYCURSOR;
                YYDEBUG(745, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1143 "Zend/zend_language_scanner.l"
+#line 1153 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        HANDLE_NEWLINES(yytext, yyleng);
        RETURN_TOKEN(T_YIELD_FROM);
 }
-#line 7077 "Zend/zend_language_scanner.c"
+#line 7087 "Zend/zend_language_scanner.c"
 yy746:
                YYDEBUG(746, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7098,11 +7108,11 @@ yy749:
                }
                YYDEBUG(750, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1375 "Zend/zend_language_scanner.l"
+#line 1385 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_INCLUDE_ONCE);
 }
-#line 7106 "Zend/zend_language_scanner.c"
+#line 7116 "Zend/zend_language_scanner.c"
 yy751:
                YYDEBUG(751, *YYCURSOR);
                ++YYCURSOR;
@@ -7111,11 +7121,11 @@ yy751:
                }
                YYDEBUG(752, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1383 "Zend/zend_language_scanner.l"
+#line 1393 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_REQUIRE_ONCE);
 }
-#line 7119 "Zend/zend_language_scanner.c"
+#line 7129 "Zend/zend_language_scanner.c"
 yy753:
                YYDEBUG(753, *YYCURSOR);
                ++YYCURSOR;
@@ -7124,11 +7134,11 @@ yy753:
                }
                YYDEBUG(754, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1754 "Zend/zend_language_scanner.l"
+#line 1764 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_FUNC_C);
 }
-#line 7132 "Zend/zend_language_scanner.c"
+#line 7142 "Zend/zend_language_scanner.c"
 yy755:
                YYDEBUG(755, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7154,11 +7164,11 @@ yy758:
                }
                YYDEBUG(759, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1774 "Zend/zend_language_scanner.l"
+#line 1784 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_NS_C);
 }
-#line 7162 "Zend/zend_language_scanner.c"
+#line 7172 "Zend/zend_language_scanner.c"
 yy760:
                YYDEBUG(760, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7172,48 +7182,48 @@ yy761:
                }
                YYDEBUG(762, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1411 "Zend/zend_language_scanner.l"
+#line 1421 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_HALT_COMPILER);
 }
-#line 7180 "Zend/zend_language_scanner.c"
+#line 7190 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_LOOKING_FOR_PROPERTY:
        {
                static const unsigned char yybm[] = {
-                         0,   0,   0,   0,   0,   0,   0,   0,
-                         0,  64,  64,   0,   0,  64,   0,   0,
-                         0,   0,   0,   0,   0,   0,   0,   0,
-                         0,   0,   0,   0,   0,   0,   0,   0,
-                        64,   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,   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,
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0,  64,  64,   0,   0,  64,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                        64,   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,   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, 
                };
                YYDEBUG(763, *YYCURSOR);
                YYFILL(2);
@@ -7242,13 +7252,13 @@ yy765:
 yy766:
                YYDEBUG(766, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1305 "Zend/zend_language_scanner.l"
+#line 1315 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state();
        goto restart;
 }
-#line 7252 "Zend/zend_language_scanner.c"
+#line 7262 "Zend/zend_language_scanner.c"
 yy767:
                YYDEBUG(767, *YYCURSOR);
                ++YYCURSOR;
@@ -7260,12 +7270,12 @@ yy767:
                }
                YYDEBUG(769, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1290 "Zend/zend_language_scanner.l"
+#line 1300 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        RETURN_TOKEN(T_WHITESPACE);
 }
-#line 7269 "Zend/zend_language_scanner.c"
+#line 7279 "Zend/zend_language_scanner.c"
 yy770:
                YYDEBUG(770, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7282,60 +7292,60 @@ yy771:
                }
                YYDEBUG(773, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1299 "Zend/zend_language_scanner.l"
+#line 1309 "Zend/zend_language_scanner.l"
                {
        yy_pop_state();
        zend_copy_value(zendlval, yytext, yyleng);
        RETURN_TOKEN(T_STRING);
 }
-#line 7292 "Zend/zend_language_scanner.c"
+#line 7302 "Zend/zend_language_scanner.c"
 yy774:
                YYDEBUG(774, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(775, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1295 "Zend/zend_language_scanner.l"
+#line 1305 "Zend/zend_language_scanner.l"
                {
        RETURN_TOKEN(T_OBJECT_OPERATOR);
 }
-#line 7302 "Zend/zend_language_scanner.c"
+#line 7312 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 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,   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,
+                         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,   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, 
                };
                YYDEBUG(776, *YYCURSOR);
                YYFILL(2);
@@ -7355,14 +7365,14 @@ yy778:
 yy779:
                YYDEBUG(779, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1610 "Zend/zend_language_scanner.l"
+#line 1620 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state();
        yy_push_state(ST_IN_SCRIPTING);
        goto restart;
 }
-#line 7366 "Zend/zend_language_scanner.c"
+#line 7376 "Zend/zend_language_scanner.c"
 yy780:
                YYDEBUG(780, *YYCURSOR);
                yych = *(YYMARKER = ++YYCURSOR);
@@ -7409,7 +7419,7 @@ yy784:
                ++YYCURSOR;
                YYDEBUG(785, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1601 "Zend/zend_language_scanner.l"
+#line 1611 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        zend_copy_value(zendlval, yytext, yyleng);
@@ -7417,7 +7427,7 @@ yy784:
        yy_push_state(ST_IN_SCRIPTING);
        RETURN_TOKEN(T_STRING_VARNAME);
 }
-#line 7421 "Zend/zend_language_scanner.c"
+#line 7431 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_NOWDOC:
@@ -7428,7 +7438,7 @@ yyc_ST_NOWDOC:
        ++YYCURSOR;
        YYDEBUG(789, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 2330 "Zend/zend_language_scanner.l"
+#line 2340 "Zend/zend_language_scanner.l"
        {
        int newline = 0;
 
@@ -7484,43 +7494,43 @@ nowdoc_scan_done:
        HANDLE_NEWLINES(yytext, yyleng - newline);
        RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE);
 }
-#line 7488 "Zend/zend_language_scanner.c"
+#line 7498 "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, 176, 176, 176, 176, 176, 176,
-                       176, 176,   0,   0,   0,   0,   0,   0,
-                         0, 160, 160, 160, 160, 160, 160,  32,
-                        32,  32,  32,  32,  32,  32,  32,  32,
-                        32,  32,  32,  32,  32,  32,  32,  32,
-                        32,  32,  32,   0,   0,   0,   0,  32,
-                         0, 160, 160, 160, 160, 160, 160,  32,
-                        32,  32,  32,  32,  32,  32,  32,  32,
-                        32,  32,  32,  32,  32,  32,  32,  32,
-                        32,  32,  32,   0,   0,   0,   0,   0,
-                        32,  32,  32,  32,  32,  32,  32,  32,
-                        32,  32,  32,  32,  32,  32,  32,  32,
-                        32,  32,  32,  32,  32,  32,  32,  32,
-                        32,  32,  32,  32,  32,  32,  32,  32,
-                        32,  32,  32,  32,  32,  32,  32,  32,
-                        32,  32,  32,  32,  32,  32,  32,  32,
-                        32,  32,  32,  32,  32,  32,  32,  32,
-                        32,  32,  32,  32,  32,  32,  32,  32,
-                        32,  32,  32,  32,  32,  32,  32,  32,
-                        32,  32,  32,  32,  32,  32,  32,  32,
-                        32,  32,  32,  32,  32,  32,  32,  32,
-                        32,  32,  32,  32,  32,  32,  32,  32,
-                        32,  32,  32,  32,  32,  32,  32,  32,
-                        32,  32,  32,  32,  32,  32,  32,  32,
-                        32,  32,  32,  32,  32,  32,  32,  32,
-                        32,  32,  32,  32,  32,  32,  32,  32,
+                         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, 176, 176, 176, 176, 176, 176, 
+                       176, 176,   0,   0,   0,   0,   0,   0, 
+                         0, 160, 160, 160, 160, 160, 160,  32, 
+                        32,  32,  32,  32,  32,  32,  32,  32, 
+                        32,  32,  32,  32,  32,  32,  32,  32, 
+                        32,  32,  32,   0,   0,   0,   0,  32, 
+                         0, 160, 160, 160, 160, 160, 160,  32, 
+                        32,  32,  32,  32,  32,  32,  32,  32, 
+                        32,  32,  32,  32,  32,  32,  32,  32, 
+                        32,  32,  32,   0,   0,   0,   0,   0, 
+                        32,  32,  32,  32,  32,  32,  32,  32, 
+                        32,  32,  32,  32,  32,  32,  32,  32, 
+                        32,  32,  32,  32,  32,  32,  32,  32, 
+                        32,  32,  32,  32,  32,  32,  32,  32, 
+                        32,  32,  32,  32,  32,  32,  32,  32, 
+                        32,  32,  32,  32,  32,  32,  32,  32, 
+                        32,  32,  32,  32,  32,  32,  32,  32, 
+                        32,  32,  32,  32,  32,  32,  32,  32, 
+                        32,  32,  32,  32,  32,  32,  32,  32, 
+                        32,  32,  32,  32,  32,  32,  32,  32, 
+                        32,  32,  32,  32,  32,  32,  32,  32, 
+                        32,  32,  32,  32,  32,  32,  32,  32, 
+                        32,  32,  32,  32,  32,  32,  32,  32, 
+                        32,  32,  32,  32,  32,  32,  32,  32, 
+                        32,  32,  32,  32,  32,  32,  32,  32, 
+                        32,  32,  32,  32,  32,  32,  32,  32, 
                };
                YYDEBUG(790, *YYCURSOR);
                YYFILL(3);
@@ -7572,7 +7582,7 @@ yy792:
                ++YYCURSOR;
                YYDEBUG(793, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2387 "Zend/zend_language_scanner.l"
+#line 2397 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                RETURN_TOKEN(END);
@@ -7581,13 +7591,13 @@ yy792:
        zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
        goto restart;
 }
-#line 7585 "Zend/zend_language_scanner.c"
+#line 7595 "Zend/zend_language_scanner.c"
 yy794:
                YYDEBUG(794, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(795, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1881 "Zend/zend_language_scanner.l"
+#line 1891 "Zend/zend_language_scanner.l"
                {
        /* Invalid rule to return a more explicit parse error with proper line number */
        yyless(0);
@@ -7595,19 +7605,19 @@ yy794:
        ZVAL_NULL(zendlval);
        RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE);
 }
-#line 7599 "Zend/zend_language_scanner.c"
+#line 7609 "Zend/zend_language_scanner.c"
 yy796:
                YYDEBUG(796, *YYCURSOR);
                ++YYCURSOR;
 yy797:
                YYDEBUG(797, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1876 "Zend/zend_language_scanner.l"
+#line 1886 "Zend/zend_language_scanner.l"
                {
        /* Only '[' or '-' can be valid, but returning other tokens will allow a more explicit parse error */
        RETURN_TOKEN(yytext[0]);
 }
-#line 7611 "Zend/zend_language_scanner.c"
+#line 7621 "Zend/zend_language_scanner.c"
 yy798:
                YYDEBUG(798, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7642,7 +7652,7 @@ yy799:
 yy800:
                YYDEBUG(800, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1716 "Zend/zend_language_scanner.l"
+#line 1726 "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;
@@ -7658,7 +7668,7 @@ string:
        }
        RETURN_TOKEN(T_NUM_STRING);
 }
-#line 7662 "Zend/zend_language_scanner.c"
+#line 7672 "Zend/zend_language_scanner.c"
 yy801:
                YYDEBUG(801, *YYCURSOR);
                ++YYCURSOR;
@@ -7680,23 +7690,23 @@ yy803:
                }
                YYDEBUG(805, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1889 "Zend/zend_language_scanner.l"
+#line 1899 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        RETURN_TOKEN(T_STRING);
 }
-#line 7689 "Zend/zend_language_scanner.c"
+#line 7699 "Zend/zend_language_scanner.c"
 yy806:
                YYDEBUG(806, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(807, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1871 "Zend/zend_language_scanner.l"
+#line 1881 "Zend/zend_language_scanner.l"
                {
        yy_pop_state();
        RETURN_TOKEN(']');
 }
-#line 7700 "Zend/zend_language_scanner.c"
+#line 7710 "Zend/zend_language_scanner.c"
 yy808:
                YYDEBUG(808, *YYCURSOR);
                ++YYCURSOR;
@@ -7721,12 +7731,12 @@ yy808:
 yy810:
                YYDEBUG(810, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1866 "Zend/zend_language_scanner.l"
+#line 1876 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        RETURN_TOKEN(T_VARIABLE);
 }
-#line 7730 "Zend/zend_language_scanner.c"
+#line 7740 "Zend/zend_language_scanner.c"
 yy811:
                YYDEBUG(811, *YYCURSOR);
                ++YYCURSOR;
@@ -7738,12 +7748,12 @@ yy811:
 yy813:
                YYDEBUG(813, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1732 "Zend/zend_language_scanner.l"
+#line 1742 "Zend/zend_language_scanner.l"
                { /* Offset must be treated as a string */
        ZVAL_STRINGL(zendlval, yytext, yyleng);
        RETURN_TOKEN(T_NUM_STRING);
 }
-#line 7747 "Zend/zend_language_scanner.c"
+#line 7757 "Zend/zend_language_scanner.c"
 yy814:
                YYDEBUG(814, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7783,6 +7793,6 @@ yy819:
                goto yy813;
        }
 }
-#line 2396 "Zend/zend_language_scanner.l"
+#line 2406 "Zend/zend_language_scanner.l"
 
 }
index 49355d3e17ad52a9b70833f5c28bca62eb27ebd6..6a1d5e021edb01931cb5315354ace3753578a757 100644 (file)
@@ -671,8 +671,8 @@ zend_op_array *compile_filename(int type, zval *filename)
        }
        zend_destroy_file_handle(&file_handle);
 
-       if (filename==&tmp) {
-               zval_dtor(&tmp);
+       if (UNEXPECTED(filename == &tmp)) {
+               zval_ptr_dtor(&tmp);
        }
        return retval;
 }
@@ -751,22 +751,25 @@ zend_op_array *compile_string(zval *source_string, char *filename)
        zend_op_array *op_array = NULL;
        zval tmp;
 
-       if (Z_STRLEN_P(source_string)==0) {
-               return NULL;
+       if (UNEXPECTED(Z_TYPE_P(source_string) != IS_STRING)) {
+               ZVAL_STR(&tmp, zval_get_string_func(source_string));
+       } else {
+               ZVAL_COPY(&tmp, source_string);
        }
 
-       ZVAL_DUP(&tmp, source_string);
-       convert_to_string(&tmp);
-       source_string = &tmp;
+       if (Z_STRLEN(tmp)==0) {
+               zval_ptr_dtor(&tmp);
+               return NULL;
+       }
 
        zend_save_lexical_state(&original_lex_state);
-       if (zend_prepare_string_for_scanning(source_string, filename) == SUCCESS) {
+       if (zend_prepare_string_for_scanning(&tmp, filename) == SUCCESS) {
                BEGIN(ST_IN_SCRIPTING);
                op_array = zend_compile(ZEND_EVAL_CODE);
        }
 
        zend_restore_lexical_state(&original_lex_state);
-       zval_dtor(&tmp);
+       zval_ptr_dtor(&tmp);
 
        return op_array;
 }
@@ -801,13 +804,18 @@ int highlight_file(char *filename, zend_syntax_highlighter_ini *syntax_highlight
 int highlight_string(zval *str, zend_syntax_highlighter_ini *syntax_highlighter_ini, char *str_name)
 {
        zend_lex_state original_lex_state;
-       zval tmp = *str;
+       zval tmp;
 
-       str = &tmp;
-       zval_copy_ctor(str);
+       if (UNEXPECTED(Z_TYPE_P(str) != IS_STRING)) {
+               ZVAL_STR(&tmp, zval_get_string_func(str));
+               str = &tmp;
+       }
        zend_save_lexical_state(&original_lex_state);
        if (zend_prepare_string_for_scanning(str, str_name)==FAILURE) {
                zend_restore_lexical_state(&original_lex_state);
+               if (UNEXPECTED(str == &tmp)) {
+                       zval_ptr_dtor(&tmp);
+               }
                return FAILURE;
        }
        BEGIN(INITIAL);
@@ -817,7 +825,9 @@ int highlight_string(zval *str, zend_syntax_highlighter_ini *syntax_highlighter_
                SCNG(script_filtered) = NULL;
        }
        zend_restore_lexical_state(&original_lex_state);
-       zval_dtor(str);
+       if (UNEXPECTED(str == &tmp)) {
+               zval_ptr_dtor(&tmp);
+       }
        return SUCCESS;
 }