]> granicus.if.org Git - php/commitdiff
Fixed bug #47038 (Memory leak in include)
authorDmitry Stogov <dmitry@php.net>
Wed, 25 Mar 2009 15:24:51 +0000 (15:24 +0000)
committerDmitry Stogov <dmitry@php.net>
Wed, 25 Mar 2009 15:24:51 +0000 (15:24 +0000)
Zend/zend_globals.h
Zend/zend_language_scanner.c
Zend/zend_language_scanner.l
Zend/zend_language_scanner_defs.h
ext/standard/basic_functions.c
ext/tokenizer/tokenizer.c

index a1e450cde32888ab38901dd8003d15614ba66287..b74c8a2dc1f3df9e7764f779c9d1f8437df1fa01 100644 (file)
@@ -279,8 +279,6 @@ struct _zend_php_scanner_globals {
        int yy_state;
        zend_stack state_stack;
        
-       zend_llist used_state_stacks;
-
        UConverter *input_conv;     /* converter for flex input */
        UConverter *output_conv;    /* converter for data from flex output */
        zend_bool encoding_checked;
index 969887492bc68a38ce68b3705cf8ae17e20b5df1..e05d1be4e99d4ed7d5c5a068f74369ef8731f52e 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Sun Mar 15 17:30:06 2009 */
+/* Generated by re2c 0.13.5 on Wed Mar 25 18:24:36 2009 */
 #line 1 "Zend/zend_language_scanner.l"
 /*
    +----------------------------------------------------------------------+
@@ -158,9 +158,7 @@ void startup_scanner(TSRMLS_D)
        SCNG(rest_str) = NULL;
        SCNG(rest_len) = 0;
 
-       zend_llist_init(&SCNG(used_state_stacks), sizeof(zend_stack), (llist_dtor_func_t) zend_stack_destroy, 0);
        zend_stack_init(&SCNG(state_stack));
-       zend_llist_add_element(&SCNG(used_state_stacks), &SCNG(state_stack));
 }
 
 
@@ -170,7 +168,7 @@ void shutdown_scanner(TSRMLS_D)
                efree(CG(heredoc));
                CG(heredoc_len)=0;
        }
-       zend_llist_destroy(&SCNG(used_state_stacks));
+       zend_stack_destroy(&SCNG(state_stack));
        RESET_DOC_COMMENT();
 
        if (SCNG(input_conv)) {
@@ -189,11 +187,6 @@ void shutdown_scanner(TSRMLS_D)
        SCNG(rest_len) = 0;
 }
 
-static int compare_stacks(zend_stack *stack1, zend_stack *stack2)
-{
-       return (stack1 == stack2);
-}
-
 ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
 {
        lex_state->yy_leng   = SCNG(yy_leng);
@@ -205,7 +198,6 @@ ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
 
        lex_state->state_stack = SCNG(state_stack);
        zend_stack_init(&SCNG(state_stack));
-       zend_llist_add_element(&SCNG(used_state_stacks), &SCNG(state_stack));
 
        lex_state->in = SCNG(yy_in);
        lex_state->yy_state = YYSTATE;
@@ -233,7 +225,7 @@ ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
        SCNG(yy_marker) = lex_state->yy_marker;
        SCNG(yy_limit)  = lex_state->yy_limit;
 
-       zend_llist_del_element(&SCNG(used_state_stacks), &SCNG(state_stack), (int (*)(void *, void *)) compare_stacks);
+       zend_stack_destroy(&SCNG(state_stack));
        SCNG(state_stack) = lex_state->state_stack;
 
        SCNG(yy_in) = lex_state->in;
@@ -782,9 +774,7 @@ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSR
                        retval = NULL;
                }
        }
-       if (compilation_successful) {
-               zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
-       }
+       zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
        return retval;
 }
 
@@ -893,6 +883,7 @@ zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC)
 
        zend_save_lexical_state(&original_lex_state TSRMLS_CC);
        if (zend_prepare_string_for_scanning(source_string, filename TSRMLS_CC)==FAILURE) {
+               zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
                efree(op_array);
                retval = NULL;
        } else {
@@ -936,6 +927,7 @@ int highlight_file(char *filename, zend_syntax_highlighter_ini *syntax_highlight
        file_handle.opened_path = NULL;
        zend_save_lexical_state(&original_lex_state TSRMLS_CC);
        if (open_file_for_scanning(&file_handle TSRMLS_CC)==FAILURE) {
+               zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
                zend_message_dispatcher(ZMSG_FAILED_HIGHLIGHT_FOPEN, filename TSRMLS_CC);
                return FAILURE;
        }
@@ -954,6 +946,7 @@ int highlight_string(zval *str, zend_syntax_highlighter_ini *syntax_highlighter_
        zval_copy_ctor(str);
        zend_save_lexical_state(&original_lex_state TSRMLS_CC);
        if (zend_prepare_string_for_scanning(str, str_name TSRMLS_CC)==FAILURE) {
+               zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
                return FAILURE;
        }
        BEGIN(INITIAL);
@@ -1330,7 +1323,7 @@ restart:
 yymore_restart:
 
 
-#line 1334 "Zend/zend_language_scanner.c"
+#line 1327 "Zend/zend_language_scanner.c"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
@@ -1432,9 +1425,9 @@ yy2:
                ++YYCURSOR;
                YYDEBUG(3, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2657 "Zend/zend_language_scanner.l"
+#line 2650 "Zend/zend_language_scanner.l"
                { return 0; }
-#line 1438 "Zend/zend_language_scanner.c"
+#line 1431 "Zend/zend_language_scanner.c"
 yy4:
                YYDEBUG(4, *YYCURSOR);
                yyaccept = 0;
@@ -1452,7 +1445,7 @@ yy4:
 yy5:
                YYDEBUG(5, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2140 "Zend/zend_language_scanner.l"
+#line 2133 "Zend/zend_language_scanner.l"
                {
 
 inline_char_handler:
@@ -1483,7 +1476,7 @@ inline_char_handler:
        HANDLE_NEWLINES(yytext, yyleng);
        return T_INLINE_HTML;
 }
-#line 1487 "Zend/zend_language_scanner.c"
+#line 1480 "Zend/zend_language_scanner.c"
 yy6:
                YYDEBUG(6, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1501,7 +1494,7 @@ yy7:
 yy8:
                YYDEBUG(8, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2128 "Zend/zend_language_scanner.l"
+#line 2121 "Zend/zend_language_scanner.l"
                {
        if (CG(short_tags)) {
                Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1513,14 +1506,14 @@ yy8:
                goto inline_char_handler;
        }
 }
-#line 1517 "Zend/zend_language_scanner.c"
+#line 1510 "Zend/zend_language_scanner.c"
 yy9:
                YYDEBUG(9, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy45;
                YYDEBUG(10, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2105 "Zend/zend_language_scanner.l"
+#line 2098 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1532,7 +1525,7 @@ yy9:
                goto inline_char_handler;
        }
 }
-#line 1536 "Zend/zend_language_scanner.c"
+#line 1529 "Zend/zend_language_scanner.c"
 yy11:
                YYDEBUG(11, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1718,7 +1711,7 @@ yy37:
                ++YYCURSOR;
                YYDEBUG(40, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2070 "Zend/zend_language_scanner.l"
+#line 2063 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1727,7 +1720,7 @@ yy37:
        BEGIN(ST_IN_SCRIPTING);
        return T_OPEN_TAG;
 }
-#line 1731 "Zend/zend_language_scanner.c"
+#line 1724 "Zend/zend_language_scanner.c"
 yy41:
                YYDEBUG(41, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1754,7 +1747,7 @@ yy45:
                ++YYCURSOR;
                YYDEBUG(46, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2079 "Zend/zend_language_scanner.l"
+#line 2072 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1766,13 +1759,13 @@ yy45:
                goto inline_char_handler;
        }
 }
-#line 1770 "Zend/zend_language_scanner.c"
+#line 1763 "Zend/zend_language_scanner.c"
 yy47:
                YYDEBUG(47, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(48, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2092 "Zend/zend_language_scanner.l"
+#line 2085 "Zend/zend_language_scanner.l"
                {
        if (CG(short_tags)) {
                Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1784,7 +1777,7 @@ yy47:
                goto inline_char_handler;
        }
 }
-#line 1788 "Zend/zend_language_scanner.c"
+#line 1781 "Zend/zend_language_scanner.c"
 yy49:
                YYDEBUG(49, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1811,7 +1804,7 @@ yy52:
 yy53:
                YYDEBUG(53, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2118 "Zend/zend_language_scanner.l"
+#line 2111 "Zend/zend_language_scanner.l"
                {
        Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
        Z_STRLEN_P(zendlval) = yyleng;
@@ -1820,7 +1813,7 @@ yy53:
        BEGIN(ST_IN_SCRIPTING);
        return T_OPEN_TAG;
 }
-#line 1824 "Zend/zend_language_scanner.c"
+#line 1817 "Zend/zend_language_scanner.c"
 yy54:
                YYDEBUG(54, *YYCURSOR);
                ++YYCURSOR;
@@ -1891,7 +1884,7 @@ yyc_ST_BACKQUOTE:
 yy58:
                YYDEBUG(58, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2555 "Zend/zend_language_scanner.l"
+#line 2548 "Zend/zend_language_scanner.l"
                {
        if (CG(literal_type) == IS_UNICODE) {
                return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0x60 /*'`'*/, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
@@ -1900,7 +1893,7 @@ yy58:
                return T_ENCAPSED_AND_WHITESPACE;
        }
 }
-#line 1904 "Zend/zend_language_scanner.c"
+#line 1897 "Zend/zend_language_scanner.c"
 yy59:
                YYDEBUG(59, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1938,13 +1931,13 @@ yy60:
 yy61:
                YYDEBUG(61, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2521 "Zend/zend_language_scanner.l"
+#line 2514 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return T_CURLY_OPEN;
 }
-#line 1948 "Zend/zend_language_scanner.c"
+#line 1941 "Zend/zend_language_scanner.c"
 yy62:
                YYDEBUG(62, *YYCURSOR);
                yyaccept = 0;
@@ -1987,12 +1980,12 @@ yy66:
                ++YYCURSOR;
                YYDEBUG(67, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2652 "Zend/zend_language_scanner.l"
+#line 2645 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '`';
 }
-#line 1996 "Zend/zend_language_scanner.c"
+#line 1989 "Zend/zend_language_scanner.c"
 yy68:
                YYDEBUG(68, *YYCURSOR);
                ++YYCURSOR;
@@ -2065,7 +2058,7 @@ yy71:
 yy73:
                YYDEBUG(73, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2564 "Zend/zend_language_scanner.l"
+#line 2557 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
 
@@ -2076,7 +2069,7 @@ yy73:
                return T_ENCAPSED_AND_WHITESPACE;
        }
 }
-#line 2080 "Zend/zend_language_scanner.c"
+#line 2073 "Zend/zend_language_scanner.c"
 yy74:
                YYDEBUG(74, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2110,7 +2103,7 @@ yy77:
 yy79:
                YYDEBUG(79, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2202 "Zend/zend_language_scanner.l"
+#line 2195 "Zend/zend_language_scanner.l"
                {
        if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
                return 0;
@@ -2120,18 +2113,18 @@ yy79:
        }
        return T_VARIABLE;
 }
-#line 2124 "Zend/zend_language_scanner.c"
+#line 2117 "Zend/zend_language_scanner.c"
 yy80:
                YYDEBUG(80, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(81, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1835 "Zend/zend_language_scanner.l"
+#line 1828 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 2135 "Zend/zend_language_scanner.c"
+#line 2128 "Zend/zend_language_scanner.c"
 yy82:
                YYDEBUG(82, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2142,7 +2135,7 @@ yy83:
                ++YYCURSOR;
                YYDEBUG(84, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2189 "Zend/zend_language_scanner.l"
+#line 2182 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -2155,7 +2148,7 @@ yy83:
        }
        return T_VARIABLE;
 }
-#line 2159 "Zend/zend_language_scanner.c"
+#line 2152 "Zend/zend_language_scanner.c"
 yy85:
                YYDEBUG(85, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2173,7 +2166,7 @@ yy86:
                ++YYCURSOR;
                YYDEBUG(87, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2174 "Zend/zend_language_scanner.l"
+#line 2167 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -2186,7 +2179,7 @@ yy86:
        }
        return T_VARIABLE;
 }
-#line 2190 "Zend/zend_language_scanner.c"
+#line 2183 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_COMMENT:
@@ -2239,12 +2232,12 @@ yy90:
                }
                YYDEBUG(91, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2303 "Zend/zend_language_scanner.l"
+#line 2296 "Zend/zend_language_scanner.l"
                {
        zend_error(E_COMPILE_WARNING, "Unterminated comment starting line %d", CG(zend_lineno));
        return 0;
 }
-#line 2248 "Zend/zend_language_scanner.c"
+#line 2241 "Zend/zend_language_scanner.c"
 yy92:
                YYDEBUG(92, *YYCURSOR);
                ++YYCURSOR;
@@ -2256,34 +2249,34 @@ yy92:
                }
                YYDEBUG(94, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2314 "Zend/zend_language_scanner.l"
+#line 2307 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 2264 "Zend/zend_language_scanner.c"
+#line 2257 "Zend/zend_language_scanner.c"
 yy95:
                YYDEBUG(95, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '/') goto yy97;
                YYDEBUG(96, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2337 "Zend/zend_language_scanner.l"
+#line 2330 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 2275 "Zend/zend_language_scanner.c"
+#line 2268 "Zend/zend_language_scanner.c"
 yy97:
                YYDEBUG(97, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(98, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2331 "Zend/zend_language_scanner.l"
+#line 2324 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        BEGIN(ST_IN_SCRIPTING);
        return T_COMMENT;
 }
-#line 2287 "Zend/zend_language_scanner.c"
+#line 2280 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_DOC_COMMENT:
@@ -2336,12 +2329,12 @@ yy101:
                }
                YYDEBUG(102, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2303 "Zend/zend_language_scanner.l"
+#line 2296 "Zend/zend_language_scanner.l"
                {
        zend_error(E_COMPILE_WARNING, "Unterminated comment starting line %d", CG(zend_lineno));
        return 0;
 }
-#line 2345 "Zend/zend_language_scanner.c"
+#line 2338 "Zend/zend_language_scanner.c"
 yy103:
                YYDEBUG(103, *YYCURSOR);
                ++YYCURSOR;
@@ -2353,28 +2346,28 @@ yy103:
                }
                YYDEBUG(105, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2314 "Zend/zend_language_scanner.l"
+#line 2307 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 2361 "Zend/zend_language_scanner.c"
+#line 2354 "Zend/zend_language_scanner.c"
 yy106:
                YYDEBUG(106, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '/') goto yy108;
                YYDEBUG(107, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2337 "Zend/zend_language_scanner.l"
+#line 2330 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 2372 "Zend/zend_language_scanner.c"
+#line 2365 "Zend/zend_language_scanner.c"
 yy108:
                YYDEBUG(108, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(109, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2318 "Zend/zend_language_scanner.l"
+#line 2311 "Zend/zend_language_scanner.l"
                {
        zval temp;
 
@@ -2387,7 +2380,7 @@ yy108:
        BEGIN(ST_IN_SCRIPTING);
        return T_DOC_COMMENT;
 }
-#line 2391 "Zend/zend_language_scanner.c"
+#line 2384 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_DOUBLE_QUOTES:
@@ -2453,7 +2446,7 @@ yyc_ST_DOUBLE_QUOTES:
 yy113:
                YYDEBUG(113, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2528 "Zend/zend_language_scanner.l"
+#line 2521 "Zend/zend_language_scanner.l"
                {
        if (CG(literal_type) == IS_UNICODE) {
                return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0x22 /*'"'*/, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
@@ -2462,7 +2455,7 @@ yy113:
                return T_ENCAPSED_AND_WHITESPACE;
        }
 }
-#line 2466 "Zend/zend_language_scanner.c"
+#line 2459 "Zend/zend_language_scanner.c"
 yy114:
                YYDEBUG(114, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2501,13 +2494,13 @@ yy115:
 yy116:
                YYDEBUG(116, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2521 "Zend/zend_language_scanner.l"
+#line 2514 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return T_CURLY_OPEN;
 }
-#line 2511 "Zend/zend_language_scanner.c"
+#line 2504 "Zend/zend_language_scanner.c"
 yy117:
                YYDEBUG(117, *YYCURSOR);
                yyaccept = 0;
@@ -2549,12 +2542,12 @@ yy121:
                ++YYCURSOR;
                YYDEBUG(122, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2646 "Zend/zend_language_scanner.l"
+#line 2639 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '"';
 }
-#line 2558 "Zend/zend_language_scanner.c"
+#line 2551 "Zend/zend_language_scanner.c"
 yy123:
                YYDEBUG(123, *YYCURSOR);
                ++YYCURSOR;
@@ -2630,7 +2623,7 @@ yy126:
 yy128:
                YYDEBUG(128, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2543 "Zend/zend_language_scanner.l"
+#line 2536 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
 
@@ -2641,7 +2634,7 @@ yy128:
                return T_ENCAPSED_AND_WHITESPACE;
        }
 }
-#line 2645 "Zend/zend_language_scanner.c"
+#line 2638 "Zend/zend_language_scanner.c"
 yy129:
                YYDEBUG(129, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2675,7 +2668,7 @@ yy132:
 yy134:
                YYDEBUG(134, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2202 "Zend/zend_language_scanner.l"
+#line 2195 "Zend/zend_language_scanner.l"
                {
        if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
                return 0;
@@ -2685,18 +2678,18 @@ yy134:
        }
        return T_VARIABLE;
 }
-#line 2689 "Zend/zend_language_scanner.c"
+#line 2682 "Zend/zend_language_scanner.c"
 yy135:
                YYDEBUG(135, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(136, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1835 "Zend/zend_language_scanner.l"
+#line 1828 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 2700 "Zend/zend_language_scanner.c"
+#line 2693 "Zend/zend_language_scanner.c"
 yy137:
                YYDEBUG(137, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2707,7 +2700,7 @@ yy138:
                ++YYCURSOR;
                YYDEBUG(139, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2189 "Zend/zend_language_scanner.l"
+#line 2182 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -2720,7 +2713,7 @@ yy138:
        }
        return T_VARIABLE;
 }
-#line 2724 "Zend/zend_language_scanner.c"
+#line 2717 "Zend/zend_language_scanner.c"
 yy140:
                YYDEBUG(140, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2738,7 +2731,7 @@ yy141:
                ++YYCURSOR;
                YYDEBUG(142, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2174 "Zend/zend_language_scanner.l"
+#line 2167 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -2751,7 +2744,7 @@ yy141:
        }
        return T_VARIABLE;
 }
-#line 2755 "Zend/zend_language_scanner.c"
+#line 2748 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_END_HEREDOC:
@@ -2763,15 +2756,15 @@ yyc_ST_END_HEREDOC:
        ++YYCURSOR;
        YYDEBUG(146, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 2657 "Zend/zend_language_scanner.l"
+#line 2650 "Zend/zend_language_scanner.l"
        { return 0; }
-#line 2769 "Zend/zend_language_scanner.c"
+#line 2762 "Zend/zend_language_scanner.c"
 yy147:
        YYDEBUG(147, *YYCURSOR);
        ++YYCURSOR;
        YYDEBUG(148, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 2507 "Zend/zend_language_scanner.l"
+#line 2500 "Zend/zend_language_scanner.l"
        {
        YYCURSOR += CG(heredoc_len) - 1;
        yyleng = CG(heredoc_len);
@@ -2783,7 +2776,7 @@ yy147:
        BEGIN(ST_IN_SCRIPTING);
        return T_END_HEREDOC;
 }
-#line 2787 "Zend/zend_language_scanner.c"
+#line 2780 "Zend/zend_language_scanner.c"
 /* *********************************** */
 yyc_ST_HEREDOC:
        {
@@ -2853,7 +2846,7 @@ yyc_ST_HEREDOC:
 yy151:
                YYDEBUG(151, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2583 "Zend/zend_language_scanner.l"
+#line 2576 "Zend/zend_language_scanner.l"
                {
        if (CG(literal_type) == IS_UNICODE) {
                return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
@@ -2862,7 +2855,7 @@ yy151:
                return T_ENCAPSED_AND_WHITESPACE;
        }
 }
-#line 2866 "Zend/zend_language_scanner.c"
+#line 2859 "Zend/zend_language_scanner.c"
 yy152:
                YYDEBUG(152, *YYCURSOR);
                yyaccept = 0;
@@ -2913,13 +2906,13 @@ yy154:
 yy155:
                YYDEBUG(155, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2521 "Zend/zend_language_scanner.l"
+#line 2514 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return T_CURLY_OPEN;
 }
-#line 2923 "Zend/zend_language_scanner.c"
+#line 2916 "Zend/zend_language_scanner.c"
 yy156:
                YYDEBUG(156, *YYCURSOR);
                yyaccept = 0;
@@ -3170,7 +3163,7 @@ yy172:
 yy174:
                YYDEBUG(174, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2592 "Zend/zend_language_scanner.l"
+#line 2585 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
 
@@ -3181,7 +3174,7 @@ yy174:
                return T_ENCAPSED_AND_WHITESPACE;
        }
 }
-#line 3185 "Zend/zend_language_scanner.c"
+#line 3178 "Zend/zend_language_scanner.c"
 yy175:
                YYDEBUG(175, *YYCURSOR);
                yyaccept = 2;
@@ -3280,7 +3273,7 @@ yy181:
                ++YYCURSOR;
                YYDEBUG(182, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2465 "Zend/zend_language_scanner.l"
+#line 2458 "Zend/zend_language_scanner.l"
                {
        char *end = yytext + yyleng - 1;
 
@@ -3322,7 +3315,7 @@ yy181:
                yymore();
        }
 }
-#line 3326 "Zend/zend_language_scanner.c"
+#line 3319 "Zend/zend_language_scanner.c"
 yy183:
                YYDEBUG(183, *YYCURSOR);
                yyaccept = 2;
@@ -3582,7 +3575,7 @@ yy202:
 yy204:
                YYDEBUG(204, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2202 "Zend/zend_language_scanner.l"
+#line 2195 "Zend/zend_language_scanner.l"
                {
        if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
                return 0;
@@ -3592,18 +3585,18 @@ yy204:
        }
        return T_VARIABLE;
 }
-#line 3596 "Zend/zend_language_scanner.c"
+#line 3589 "Zend/zend_language_scanner.c"
 yy205:
                YYDEBUG(205, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(206, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1835 "Zend/zend_language_scanner.l"
+#line 1828 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 3607 "Zend/zend_language_scanner.c"
+#line 3600 "Zend/zend_language_scanner.c"
 yy207:
                YYDEBUG(207, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3614,7 +3607,7 @@ yy208:
                ++YYCURSOR;
                YYDEBUG(209, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2189 "Zend/zend_language_scanner.l"
+#line 2182 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -3627,7 +3620,7 @@ yy208:
        }
        return T_VARIABLE;
 }
-#line 3631 "Zend/zend_language_scanner.c"
+#line 3624 "Zend/zend_language_scanner.c"
 yy210:
                YYDEBUG(210, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3645,7 +3638,7 @@ yy211:
                ++YYCURSOR;
                YYDEBUG(212, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2174 "Zend/zend_language_scanner.l"
+#line 2167 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -3658,7 +3651,7 @@ yy211:
        }
        return T_VARIABLE;
 }
-#line 3662 "Zend/zend_language_scanner.c"
+#line 3655 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_IN_SCRIPTING:
@@ -3856,9 +3849,9 @@ yy215:
                ++YYCURSOR;
                YYDEBUG(216, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2657 "Zend/zend_language_scanner.l"
+#line 2650 "Zend/zend_language_scanner.l"
                { return 0; }
-#line 3862 "Zend/zend_language_scanner.c"
+#line 3855 "Zend/zend_language_scanner.c"
 yy217:
                YYDEBUG(217, *YYCURSOR);
                ++YYCURSOR;
@@ -3881,7 +3874,7 @@ yy217:
 yy218:
                YYDEBUG(218, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2230 "Zend/zend_language_scanner.l"
+#line 2223 "Zend/zend_language_scanner.l"
                {
        if (!zend_copy_scanner_string(zendlval, yytext, yyleng, UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
                return 0;
@@ -3891,7 +3884,7 @@ yy218:
        }
        return T_STRING;
 }
-#line 3895 "Zend/zend_language_scanner.c"
+#line 3888 "Zend/zend_language_scanner.c"
 yy219:
                YYDEBUG(219, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4138,11 +4131,11 @@ yy231:
 yy232:
                YYDEBUG(232, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1824 "Zend/zend_language_scanner.l"
+#line 1817 "Zend/zend_language_scanner.l"
                {
        return yytext[0];
 }
-#line 4146 "Zend/zend_language_scanner.c"
+#line 4139 "Zend/zend_language_scanner.c"
 yy233:
                YYDEBUG(233, *YYCURSOR);
                ++YYCURSOR;
@@ -4151,7 +4144,7 @@ yy233:
 yy234:
                YYDEBUG(234, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1551 "Zend/zend_language_scanner.l"
+#line 1544 "Zend/zend_language_scanner.l"
                {
        Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
        Z_STRLEN_P(zendlval) = yyleng;
@@ -4159,7 +4152,7 @@ yy234:
        HANDLE_NEWLINES(yytext, yyleng);
        return T_WHITESPACE;
 }
-#line 4163 "Zend/zend_language_scanner.c"
+#line 4156 "Zend/zend_language_scanner.c"
 yy235:
                YYDEBUG(235, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4170,11 +4163,11 @@ yy236:
                ++YYCURSOR;
                YYDEBUG(237, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1584 "Zend/zend_language_scanner.l"
+#line 1577 "Zend/zend_language_scanner.l"
                {
        return T_NS_SEPARATOR;
 }
-#line 4178 "Zend/zend_language_scanner.c"
+#line 4171 "Zend/zend_language_scanner.c"
 yy238:
                YYDEBUG(238, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4402,18 +4395,18 @@ yy261:
                ++YYCURSOR;
                YYDEBUG(262, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1829 "Zend/zend_language_scanner.l"
+#line 1822 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return '{';
 }
-#line 4411 "Zend/zend_language_scanner.c"
+#line 4404 "Zend/zend_language_scanner.c"
 yy263:
                YYDEBUG(263, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(264, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1841 "Zend/zend_language_scanner.l"
+#line 1834 "Zend/zend_language_scanner.l"
                {
        RESET_DOC_COMMENT();
        if (!zend_stack_is_empty(&SCNG(state_stack))) {
@@ -4421,7 +4414,7 @@ yy263:
        }
        return '}';
 }
-#line 4425 "Zend/zend_language_scanner.c"
+#line 4418 "Zend/zend_language_scanner.c"
 yy265:
                YYDEBUG(265, *YYCURSOR);
                yyaccept = 2;
@@ -4444,7 +4437,7 @@ yy265:
 yy266:
                YYDEBUG(266, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1871 "Zend/zend_language_scanner.l"
+#line 1864 "Zend/zend_language_scanner.l"
                {
        if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
                Z_LVAL_P(zendlval) = strtol(yytext, NULL, 0);
@@ -4465,7 +4458,7 @@ yy266:
        Z_TYPE_P(zendlval) = IS_LONG;
        return T_LNUMBER;
 }
-#line 4469 "Zend/zend_language_scanner.c"
+#line 4462 "Zend/zend_language_scanner.c"
 yy267:
                YYDEBUG(267, *YYCURSOR);
                yyaccept = 2;
@@ -4493,12 +4486,12 @@ yy269:
 yy270:
                YYDEBUG(270, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2248 "Zend/zend_language_scanner.l"
+#line 2241 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_ONE_LINE_COMMENT);
        yymore();
 }
-#line 4502 "Zend/zend_language_scanner.c"
+#line 4495 "Zend/zend_language_scanner.c"
 yy271:
                YYDEBUG(271, *YYCURSOR);
                yyaccept = 3;
@@ -4507,12 +4500,12 @@ yy271:
 yy272:
                YYDEBUG(272, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2398 "Zend/zend_language_scanner.l"
+#line 2391 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_DOUBLE_QUOTES);
        return '"';
 }
-#line 4516 "Zend/zend_language_scanner.c"
+#line 4509 "Zend/zend_language_scanner.c"
 yy273:
                YYDEBUG(273, *YYCURSOR);
                yyaccept = 4;
@@ -4521,23 +4514,23 @@ yy273:
 yy274:
                YYDEBUG(274, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2659 "Zend/zend_language_scanner.l"
+#line 2652 "Zend/zend_language_scanner.l"
                {
        zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
        goto restart;
 }
-#line 4530 "Zend/zend_language_scanner.c"
+#line 4523 "Zend/zend_language_scanner.c"
 yy275:
                YYDEBUG(275, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(276, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2453 "Zend/zend_language_scanner.l"
+#line 2446 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_BACKQUOTE);
        return '`';
 }
-#line 4541 "Zend/zend_language_scanner.c"
+#line 4534 "Zend/zend_language_scanner.c"
 yy277:
                YYDEBUG(277, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4599,7 +4592,7 @@ yy282:
                ++YYCURSOR;
                YYDEBUG(283, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2382 "Zend/zend_language_scanner.l"
+#line 2375 "Zend/zend_language_scanner.l"
                {
        if (UG(unicode)) {
                return zend_scan_unicode_single_string(zendlval TSRMLS_CC);
@@ -4608,7 +4601,7 @@ yy282:
                return T_CONSTANT_ENCAPSED_STRING;
        }
 }
-#line 4612 "Zend/zend_language_scanner.c"
+#line 4605 "Zend/zend_language_scanner.c"
 yy284:
                YYDEBUG(284, *YYCURSOR);
                ++YYCURSOR;
@@ -4674,7 +4667,7 @@ yy291:
                ++YYCURSOR;
                YYDEBUG(292, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2366 "Zend/zend_language_scanner.l"
+#line 2359 "Zend/zend_language_scanner.l"
                {
        if (UG(unicode)) {
                return zend_scan_unicode_escape_string(zendlval, yytext+1, yyleng-2, 0x22 /*'"'*/, T_CONSTANT_ENCAPSED_STRING TSRMLS_CC);
@@ -4683,7 +4676,7 @@ yy291:
                return T_CONSTANT_ENCAPSED_STRING;
        }
 }
-#line 4687 "Zend/zend_language_scanner.c"
+#line 4680 "Zend/zend_language_scanner.c"
 yy293:
                YYDEBUG(293, *YYCURSOR);
                ++YYCURSOR;
@@ -4717,13 +4710,13 @@ yy296:
 yy298:
                YYDEBUG(298, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1932 "Zend/zend_language_scanner.l"
+#line 1925 "Zend/zend_language_scanner.l"
                {
        Z_DVAL_P(zendlval) = zend_strtod(yytext, NULL);
        Z_TYPE_P(zendlval) = IS_DOUBLE;
        return T_DNUMBER;
 }
-#line 4727 "Zend/zend_language_scanner.c"
+#line 4720 "Zend/zend_language_scanner.c"
 yy299:
                YYDEBUG(299, *YYCURSOR);
                yyaccept = 2;
@@ -4785,7 +4778,7 @@ yy306:
                }
                YYDEBUG(308, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1892 "Zend/zend_language_scanner.l"
+#line 1885 "Zend/zend_language_scanner.l"
                {
        char *hex = yytext + 2; /* Skip "0x" */
        int len = yyleng - 2;
@@ -4806,7 +4799,7 @@ yy306:
                return T_DNUMBER;
        }
 }
-#line 4810 "Zend/zend_language_scanner.c"
+#line 4803 "Zend/zend_language_scanner.c"
 yy309:
                YYDEBUG(309, *YYCURSOR);
                ++YYCURSOR;
@@ -4815,7 +4808,7 @@ yy309:
 yy310:
                YYDEBUG(310, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2341 "Zend/zend_language_scanner.l"
+#line 2334 "Zend/zend_language_scanner.l"
                {
        Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
        Z_STRLEN_P(zendlval) = yyleng;
@@ -4823,7 +4816,7 @@ yy310:
        BEGIN(INITIAL);
        return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
 }
-#line 4827 "Zend/zend_language_scanner.c"
+#line 4820 "Zend/zend_language_scanner.c"
 yy311:
                YYDEBUG(311, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4857,7 +4850,7 @@ yy313:
 yy315:
                YYDEBUG(315, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2202 "Zend/zend_language_scanner.l"
+#line 2195 "Zend/zend_language_scanner.l"
                {
        if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
                return 0;
@@ -4867,7 +4860,7 @@ yy315:
        }
        return T_VARIABLE;
 }
-#line 4871 "Zend/zend_language_scanner.c"
+#line 4864 "Zend/zend_language_scanner.c"
 yy316:
                YYDEBUG(316, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4881,11 +4874,11 @@ yy317:
                }
                YYDEBUG(318, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1812 "Zend/zend_language_scanner.l"
+#line 1805 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_XOR;
 }
-#line 4889 "Zend/zend_language_scanner.c"
+#line 4882 "Zend/zend_language_scanner.c"
 yy319:
                YYDEBUG(319, *YYCURSOR);
                ++YYCURSOR;
@@ -4894,61 +4887,61 @@ yy319:
                }
                YYDEBUG(320, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1804 "Zend/zend_language_scanner.l"
+#line 1797 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_OR;
 }
-#line 4902 "Zend/zend_language_scanner.c"
+#line 4895 "Zend/zend_language_scanner.c"
 yy321:
                YYDEBUG(321, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(322, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1792 "Zend/zend_language_scanner.l"
+#line 1785 "Zend/zend_language_scanner.l"
                {
        return T_XOR_EQUAL;
 }
-#line 4912 "Zend/zend_language_scanner.c"
+#line 4905 "Zend/zend_language_scanner.c"
 yy323:
                YYDEBUG(323, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(324, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1796 "Zend/zend_language_scanner.l"
+#line 1789 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_OR;
 }
-#line 4922 "Zend/zend_language_scanner.c"
+#line 4915 "Zend/zend_language_scanner.c"
 yy325:
                YYDEBUG(325, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(326, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1788 "Zend/zend_language_scanner.l"
+#line 1781 "Zend/zend_language_scanner.l"
                {
        return T_OR_EQUAL;
 }
-#line 4932 "Zend/zend_language_scanner.c"
+#line 4925 "Zend/zend_language_scanner.c"
 yy327:
                YYDEBUG(327, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(328, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1800 "Zend/zend_language_scanner.l"
+#line 1793 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_AND;
 }
-#line 4942 "Zend/zend_language_scanner.c"
+#line 4935 "Zend/zend_language_scanner.c"
 yy329:
                YYDEBUG(329, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(330, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1784 "Zend/zend_language_scanner.l"
+#line 1777 "Zend/zend_language_scanner.l"
                {
        return T_AND_EQUAL;
 }
-#line 4952 "Zend/zend_language_scanner.c"
+#line 4945 "Zend/zend_language_scanner.c"
 yy331:
                YYDEBUG(331, *YYCURSOR);
                ++YYCURSOR;
@@ -4957,7 +4950,7 @@ yy331:
 yy332:
                YYDEBUG(332, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2350 "Zend/zend_language_scanner.l"
+#line 2343 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                BEGIN(INITIAL);
@@ -4970,17 +4963,17 @@ yy332:
                return yytext[0];
        }
 }
-#line 4974 "Zend/zend_language_scanner.c"
+#line 4967 "Zend/zend_language_scanner.c"
 yy333:
                YYDEBUG(333, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(334, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1772 "Zend/zend_language_scanner.l"
+#line 1765 "Zend/zend_language_scanner.l"
                {
        return T_MOD_EQUAL;
 }
-#line 4984 "Zend/zend_language_scanner.c"
+#line 4977 "Zend/zend_language_scanner.c"
 yy335:
                YYDEBUG(335, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5011,11 +5004,11 @@ yy339:
                ++YYCURSOR;
                YYDEBUG(340, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1768 "Zend/zend_language_scanner.l"
+#line 1761 "Zend/zend_language_scanner.l"
                {
        return T_CONCAT_EQUAL;
 }
-#line 5019 "Zend/zend_language_scanner.c"
+#line 5012 "Zend/zend_language_scanner.c"
 yy341:
                YYDEBUG(341, *YYCURSOR);
                yyaccept = 6;
@@ -5024,12 +5017,12 @@ yy341:
 yy342:
                YYDEBUG(342, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2308 "Zend/zend_language_scanner.l"
+#line 2301 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_COMMENT);
        yymore();
 }
-#line 5033 "Zend/zend_language_scanner.c"
+#line 5026 "Zend/zend_language_scanner.c"
 yy343:
                YYDEBUG(343, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5039,11 +5032,11 @@ yy344:
                ++YYCURSOR;
                YYDEBUG(345, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1764 "Zend/zend_language_scanner.l"
+#line 1757 "Zend/zend_language_scanner.l"
                {
        return T_DIV_EQUAL;
 }
-#line 5047 "Zend/zend_language_scanner.c"
+#line 5040 "Zend/zend_language_scanner.c"
 yy346:
                YYDEBUG(346, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5062,54 +5055,54 @@ yy347:
                }
                YYDEBUG(349, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2297 "Zend/zend_language_scanner.l"
+#line 2290 "Zend/zend_language_scanner.l"
                {
        RESET_DOC_COMMENT();
        BEGIN(ST_DOC_COMMENT);
        yymore();
 }
-#line 5072 "Zend/zend_language_scanner.c"
+#line 5065 "Zend/zend_language_scanner.c"
 yy350:
                YYDEBUG(350, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(351, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1760 "Zend/zend_language_scanner.l"
+#line 1753 "Zend/zend_language_scanner.l"
                {
        return T_MUL_EQUAL;
 }
-#line 5082 "Zend/zend_language_scanner.c"
+#line 5075 "Zend/zend_language_scanner.c"
 yy352:
                YYDEBUG(352, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy356;
                YYDEBUG(353, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1820 "Zend/zend_language_scanner.l"
+#line 1813 "Zend/zend_language_scanner.l"
                {
        return T_SR;
 }
-#line 5093 "Zend/zend_language_scanner.c"
+#line 5086 "Zend/zend_language_scanner.c"
 yy354:
                YYDEBUG(354, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(355, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1748 "Zend/zend_language_scanner.l"
+#line 1741 "Zend/zend_language_scanner.l"
                {
        return T_IS_GREATER_OR_EQUAL;
 }
-#line 5103 "Zend/zend_language_scanner.c"
+#line 5096 "Zend/zend_language_scanner.c"
 yy356:
                YYDEBUG(356, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(357, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1780 "Zend/zend_language_scanner.l"
+#line 1773 "Zend/zend_language_scanner.l"
                {
        return T_SR_EQUAL;
 }
-#line 5113 "Zend/zend_language_scanner.c"
+#line 5106 "Zend/zend_language_scanner.c"
 yy358:
                YYDEBUG(358, *YYCURSOR);
                yyaccept = 7;
@@ -5120,11 +5113,11 @@ yy358:
 yy359:
                YYDEBUG(359, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1816 "Zend/zend_language_scanner.l"
+#line 1809 "Zend/zend_language_scanner.l"
                {
        return T_SL;
 }
-#line 5128 "Zend/zend_language_scanner.c"
+#line 5121 "Zend/zend_language_scanner.c"
 yy360:
                YYDEBUG(360, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5136,22 +5129,22 @@ yy361:
                ++YYCURSOR;
                YYDEBUG(362, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1744 "Zend/zend_language_scanner.l"
+#line 1737 "Zend/zend_language_scanner.l"
                {
        return T_IS_SMALLER_OR_EQUAL;
 }
-#line 5144 "Zend/zend_language_scanner.c"
+#line 5137 "Zend/zend_language_scanner.c"
 yy363:
                YYDEBUG(363, *YYCURSOR);
                ++YYCURSOR;
 yy364:
                YYDEBUG(364, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1740 "Zend/zend_language_scanner.l"
+#line 1733 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_EQUAL;
 }
-#line 5155 "Zend/zend_language_scanner.c"
+#line 5148 "Zend/zend_language_scanner.c"
 yy365:
                YYDEBUG(365, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5202,11 +5195,11 @@ yy372:
                ++YYCURSOR;
                YYDEBUG(373, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1776 "Zend/zend_language_scanner.l"
+#line 1769 "Zend/zend_language_scanner.l"
                {
        return T_SL_EQUAL;
 }
-#line 5210 "Zend/zend_language_scanner.c"
+#line 5203 "Zend/zend_language_scanner.c"
 yy374:
                YYDEBUG(374, *YYCURSOR);
                ++YYCURSOR;
@@ -5311,7 +5304,7 @@ yy383:
 yy384:
                YYDEBUG(384, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2408 "Zend/zend_language_scanner.l"
+#line 2401 "Zend/zend_language_scanner.l"
                {
        char *s;
        int bprefix = (yytext[0] != '<') ? 1 : 0;
@@ -5355,7 +5348,7 @@ yy384:
 
        return bprefix ? T_BINARY_HEREDOC : T_START_HEREDOC;
 }
-#line 5359 "Zend/zend_language_scanner.c"
+#line 5352 "Zend/zend_language_scanner.c"
 yy385:
                YYDEBUG(385, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5395,31 +5388,31 @@ yy388:
                ++YYCURSOR;
                YYDEBUG(390, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1732 "Zend/zend_language_scanner.l"
+#line 1725 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_IDENTICAL;
 }
-#line 5403 "Zend/zend_language_scanner.c"
+#line 5396 "Zend/zend_language_scanner.c"
 yy391:
                YYDEBUG(391, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(392, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1752 "Zend/zend_language_scanner.l"
+#line 1745 "Zend/zend_language_scanner.l"
                {
        return T_PLUS_EQUAL;
 }
-#line 5413 "Zend/zend_language_scanner.c"
+#line 5406 "Zend/zend_language_scanner.c"
 yy393:
                YYDEBUG(393, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(394, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1720 "Zend/zend_language_scanner.l"
+#line 1713 "Zend/zend_language_scanner.l"
                {
        return T_INC;
 }
-#line 5423 "Zend/zend_language_scanner.c"
+#line 5416 "Zend/zend_language_scanner.c"
 yy395:
                YYDEBUG(395, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5438,42 +5431,42 @@ yy397:
                }
                YYDEBUG(398, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1712 "Zend/zend_language_scanner.l"
+#line 1705 "Zend/zend_language_scanner.l"
                {
        return T_LIST;
 }
-#line 5446 "Zend/zend_language_scanner.c"
+#line 5439 "Zend/zend_language_scanner.c"
 yy399:
                YYDEBUG(399, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy403;
                YYDEBUG(400, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1736 "Zend/zend_language_scanner.l"
+#line 1729 "Zend/zend_language_scanner.l"
                {
        return T_IS_EQUAL;
 }
-#line 5457 "Zend/zend_language_scanner.c"
+#line 5450 "Zend/zend_language_scanner.c"
 yy401:
                YYDEBUG(401, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(402, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1708 "Zend/zend_language_scanner.l"
+#line 1701 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_ARROW;
 }
-#line 5467 "Zend/zend_language_scanner.c"
+#line 5460 "Zend/zend_language_scanner.c"
 yy403:
                YYDEBUG(403, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(404, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1728 "Zend/zend_language_scanner.l"
+#line 1721 "Zend/zend_language_scanner.l"
                {
        return T_IS_IDENTICAL;
 }
-#line 5477 "Zend/zend_language_scanner.c"
+#line 5470 "Zend/zend_language_scanner.c"
 yy405:
                YYDEBUG(405, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5595,7 +5588,7 @@ yy420:
                }
                YYDEBUG(423, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2060 "Zend/zend_language_scanner.l"
+#line 2053 "Zend/zend_language_scanner.l"
                {
        if (CG(current_namespace)) {
                *zendlval = *CG(current_namespace);
@@ -5605,7 +5598,7 @@ yy420:
        }
        return T_NS_C;
 }
-#line 5609 "Zend/zend_language_scanner.c"
+#line 5602 "Zend/zend_language_scanner.c"
 yy424:
                YYDEBUG(424, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5625,7 +5618,7 @@ yy425:
                }
                YYDEBUG(428, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2033 "Zend/zend_language_scanner.l"
+#line 2026 "Zend/zend_language_scanner.l"
                {
        char *filename = zend_get_compiled_filename(TSRMLS_C);
        const size_t filename_len = strlen(filename);
@@ -5652,7 +5645,7 @@ yy425:
        zendlval->type = IS_STRING;
        return T_DIR;
 }
-#line 5656 "Zend/zend_language_scanner.c"
+#line 5649 "Zend/zend_language_scanner.c"
 yy429:
                YYDEBUG(429, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5677,13 +5670,13 @@ yy431:
                }
                YYDEBUG(434, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2017 "Zend/zend_language_scanner.l"
+#line 2010 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = CG(zend_lineno);
        Z_TYPE_P(zendlval) = IS_LONG;
        return T_LINE;
 }
-#line 5687 "Zend/zend_language_scanner.c"
+#line 5680 "Zend/zend_language_scanner.c"
 yy435:
                YYDEBUG(435, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5718,7 +5711,7 @@ yy439:
                }
                YYDEBUG(442, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1968 "Zend/zend_language_scanner.l"
+#line 1961 "Zend/zend_language_scanner.l"
                {
        zstr class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL_ZSTR;
        zstr func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL_ZSTR;
@@ -5767,7 +5760,7 @@ yy439:
        }
        return T_METHOD_C;
 }
-#line 5771 "Zend/zend_language_scanner.c"
+#line 5764 "Zend/zend_language_scanner.c"
 yy443:
                YYDEBUG(443, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5818,7 +5811,7 @@ yy450:
                }
                YYDEBUG(453, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1953 "Zend/zend_language_scanner.l"
+#line 1946 "Zend/zend_language_scanner.l"
                {
        zstr func_name = NULL_ZSTR;
 
@@ -5833,7 +5826,7 @@ yy450:
        }
        return T_FUNC_C;
 }
-#line 5837 "Zend/zend_language_scanner.c"
+#line 5830 "Zend/zend_language_scanner.c"
 yy454:
                YYDEBUG(454, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5853,7 +5846,7 @@ yy455:
                }
                YYDEBUG(458, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2023 "Zend/zend_language_scanner.l"
+#line 2016 "Zend/zend_language_scanner.l"
                {
        char *filename = zend_get_compiled_filename(TSRMLS_C);
 
@@ -5863,7 +5856,7 @@ yy455:
        ZVAL_RT_STRING(zendlval, filename, 1);
        return T_FILE;
 }
-#line 5867 "Zend/zend_language_scanner.c"
+#line 5860 "Zend/zend_language_scanner.c"
 yy459:
                YYDEBUG(459, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5893,7 +5886,7 @@ yy462:
                }
                YYDEBUG(465, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1938 "Zend/zend_language_scanner.l"
+#line 1931 "Zend/zend_language_scanner.l"
                {
        zstr class_name = NULL_ZSTR;
 
@@ -5908,7 +5901,7 @@ yy462:
        }
        return T_CLASS_C;
 }
-#line 5912 "Zend/zend_language_scanner.c"
+#line 5905 "Zend/zend_language_scanner.c"
 yy466:
                YYDEBUG(466, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5970,11 +5963,11 @@ yy477:
                }
                YYDEBUG(478, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1676 "Zend/zend_language_scanner.l"
+#line 1669 "Zend/zend_language_scanner.l"
                {
        return T_HALT_COMPILER;
 }
-#line 5978 "Zend/zend_language_scanner.c"
+#line 5971 "Zend/zend_language_scanner.c"
 yy479:
                YYDEBUG(479, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5994,11 +5987,11 @@ yy481:
                }
                YYDEBUG(482, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1660 "Zend/zend_language_scanner.l"
+#line 1653 "Zend/zend_language_scanner.l"
                {
        return T_USE;
 }
-#line 6002 "Zend/zend_language_scanner.c"
+#line 5995 "Zend/zend_language_scanner.c"
 yy483:
                YYDEBUG(483, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6017,11 +6010,11 @@ yy485:
                }
                YYDEBUG(486, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1704 "Zend/zend_language_scanner.l"
+#line 1697 "Zend/zend_language_scanner.l"
                {
        return T_UNSET;
 }
-#line 6025 "Zend/zend_language_scanner.c"
+#line 6018 "Zend/zend_language_scanner.c"
 yy487:
                YYDEBUG(487, *YYCURSOR);
                ++YYCURSOR;
@@ -6193,11 +6186,11 @@ yy502:
                ++YYCURSOR;
                YYDEBUG(504, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1600 "Zend/zend_language_scanner.l"
+#line 1593 "Zend/zend_language_scanner.l"
                {
        return T_INT_CAST;
 }
-#line 6201 "Zend/zend_language_scanner.c"
+#line 6194 "Zend/zend_language_scanner.c"
 yy505:
                YYDEBUG(505, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6241,11 +6234,11 @@ yy510:
                ++YYCURSOR;
                YYDEBUG(513, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1604 "Zend/zend_language_scanner.l"
+#line 1597 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_CAST;
 }
-#line 6249 "Zend/zend_language_scanner.c"
+#line 6242 "Zend/zend_language_scanner.c"
 yy514:
                YYDEBUG(514, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6315,11 +6308,11 @@ yy524:
                ++YYCURSOR;
                YYDEBUG(527, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1608 "Zend/zend_language_scanner.l"
+#line 1601 "Zend/zend_language_scanner.l"
                {
        return T_STRING_CAST;
 }
-#line 6323 "Zend/zend_language_scanner.c"
+#line 6316 "Zend/zend_language_scanner.c"
 yy528:
                YYDEBUG(528, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6352,11 +6345,11 @@ yy531:
                ++YYCURSOR;
                YYDEBUG(534, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1620 "Zend/zend_language_scanner.l"
+#line 1613 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY_CAST;
 }
-#line 6360 "Zend/zend_language_scanner.c"
+#line 6353 "Zend/zend_language_scanner.c"
 yy535:
                YYDEBUG(535, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6394,11 +6387,11 @@ yy539:
                ++YYCURSOR;
                YYDEBUG(542, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1624 "Zend/zend_language_scanner.l"
+#line 1617 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_CAST;
 }
-#line 6402 "Zend/zend_language_scanner.c"
+#line 6395 "Zend/zend_language_scanner.c"
 yy543:
                YYDEBUG(543, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6439,11 +6432,11 @@ yy548:
                ++YYCURSOR;
                YYDEBUG(550, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1628 "Zend/zend_language_scanner.l"
+#line 1621 "Zend/zend_language_scanner.l"
                {
        return T_BOOL_CAST;
 }
-#line 6447 "Zend/zend_language_scanner.c"
+#line 6440 "Zend/zend_language_scanner.c"
 yy551:
                YYDEBUG(551, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6487,11 +6480,11 @@ yy556:
                ++YYCURSOR;
                YYDEBUG(559, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1616 "Zend/zend_language_scanner.l"
+#line 1609 "Zend/zend_language_scanner.l"
                {
        return T_BINARY_CAST;
 }
-#line 6495 "Zend/zend_language_scanner.c"
+#line 6488 "Zend/zend_language_scanner.c"
 yy560:
                YYDEBUG(560, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6548,11 +6541,11 @@ yy566:
                ++YYCURSOR;
                YYDEBUG(569, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1612 "Zend/zend_language_scanner.l"
+#line 1605 "Zend/zend_language_scanner.l"
                {
        return T_UNICODE_CAST;
 }
-#line 6556 "Zend/zend_language_scanner.c"
+#line 6549 "Zend/zend_language_scanner.c"
 yy570:
                YYDEBUG(570, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6575,11 +6568,11 @@ yy571:
                ++YYCURSOR;
                YYDEBUG(574, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1632 "Zend/zend_language_scanner.l"
+#line 1625 "Zend/zend_language_scanner.l"
                {
        return T_UNSET_CAST;
 }
-#line 6583 "Zend/zend_language_scanner.c"
+#line 6576 "Zend/zend_language_scanner.c"
 yy575:
                YYDEBUG(575, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6593,11 +6586,11 @@ yy576:
                }
                YYDEBUG(577, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1596 "Zend/zend_language_scanner.l"
+#line 1589 "Zend/zend_language_scanner.l"
                {
        return T_VAR;
 }
-#line 6601 "Zend/zend_language_scanner.c"
+#line 6594 "Zend/zend_language_scanner.c"
 yy578:
                YYDEBUG(578, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6617,11 +6610,11 @@ yy580:
                }
                YYDEBUG(581, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1588 "Zend/zend_language_scanner.l"
+#line 1581 "Zend/zend_language_scanner.l"
                {
        return T_NEW;
 }
-#line 6625 "Zend/zend_language_scanner.c"
+#line 6618 "Zend/zend_language_scanner.c"
 yy582:
                YYDEBUG(582, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6660,21 +6653,21 @@ yy588:
                }
                YYDEBUG(589, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1656 "Zend/zend_language_scanner.l"
+#line 1649 "Zend/zend_language_scanner.l"
                {
        return T_NAMESPACE;
 }
-#line 6668 "Zend/zend_language_scanner.c"
+#line 6661 "Zend/zend_language_scanner.c"
 yy590:
                YYDEBUG(590, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(591, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1580 "Zend/zend_language_scanner.l"
+#line 1573 "Zend/zend_language_scanner.l"
                {
        return T_PAAMAYIM_NEKUDOTAYIM;
 }
-#line 6678 "Zend/zend_language_scanner.c"
+#line 6671 "Zend/zend_language_scanner.c"
 yy592:
                YYDEBUG(592, *YYCURSOR);
                ++YYCURSOR;
@@ -6696,32 +6689,32 @@ yy594:
                ++YYCURSOR;
                YYDEBUG(595, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1756 "Zend/zend_language_scanner.l"
+#line 1749 "Zend/zend_language_scanner.l"
                {
        return T_MINUS_EQUAL;
 }
-#line 6704 "Zend/zend_language_scanner.c"
+#line 6697 "Zend/zend_language_scanner.c"
 yy596:
                YYDEBUG(596, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(597, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1724 "Zend/zend_language_scanner.l"
+#line 1717 "Zend/zend_language_scanner.l"
                {
        return T_DEC;
 }
-#line 6714 "Zend/zend_language_scanner.c"
+#line 6707 "Zend/zend_language_scanner.c"
 yy598:
                YYDEBUG(598, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(599, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1546 "Zend/zend_language_scanner.l"
+#line 1539 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
        return T_OBJECT_OPERATOR;
 }
-#line 6725 "Zend/zend_language_scanner.c"
+#line 6718 "Zend/zend_language_scanner.c"
 yy600:
                YYDEBUG(600, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6766,11 +6759,11 @@ yy605:
                }
                YYDEBUG(606, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1700 "Zend/zend_language_scanner.l"
+#line 1693 "Zend/zend_language_scanner.l"
                {
        return T_PUBLIC;
 }
-#line 6774 "Zend/zend_language_scanner.c"
+#line 6767 "Zend/zend_language_scanner.c"
 yy607:
                YYDEBUG(607, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6825,11 +6818,11 @@ yy614:
                }
                YYDEBUG(615, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1696 "Zend/zend_language_scanner.l"
+#line 1689 "Zend/zend_language_scanner.l"
                {
        return T_PROTECTED;
 }
-#line 6833 "Zend/zend_language_scanner.c"
+#line 6826 "Zend/zend_language_scanner.c"
 yy616:
                YYDEBUG(616, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6859,11 +6852,11 @@ yy620:
                }
                YYDEBUG(621, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1692 "Zend/zend_language_scanner.l"
+#line 1685 "Zend/zend_language_scanner.l"
                {
        return T_PRIVATE;
 }
-#line 6867 "Zend/zend_language_scanner.c"
+#line 6860 "Zend/zend_language_scanner.c"
 yy622:
                YYDEBUG(622, *YYCURSOR);
                ++YYCURSOR;
@@ -6872,11 +6865,11 @@ yy622:
                }
                YYDEBUG(623, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1526 "Zend/zend_language_scanner.l"
+#line 1519 "Zend/zend_language_scanner.l"
                {
        return T_PRINT;
 }
-#line 6880 "Zend/zend_language_scanner.c"
+#line 6873 "Zend/zend_language_scanner.c"
 yy624:
                YYDEBUG(624, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6901,11 +6894,11 @@ yy627:
                }
                YYDEBUG(628, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1518 "Zend/zend_language_scanner.l"
+#line 1511 "Zend/zend_language_scanner.l"
                {
        return T_GOTO;
 }
-#line 6909 "Zend/zend_language_scanner.c"
+#line 6902 "Zend/zend_language_scanner.c"
 yy629:
                YYDEBUG(629, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6929,11 +6922,11 @@ yy632:
                }
                YYDEBUG(633, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1664 "Zend/zend_language_scanner.l"
+#line 1657 "Zend/zend_language_scanner.l"
                {
        return T_GLOBAL;
 }
-#line 6937 "Zend/zend_language_scanner.c"
+#line 6930 "Zend/zend_language_scanner.c"
 yy634:
                YYDEBUG(634, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6947,12 +6940,12 @@ yy635:
 yy636:
                YYDEBUG(636, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2403 "Zend/zend_language_scanner.l"
+#line 2396 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_DOUBLE_QUOTES);
        return T_BINARY_DOUBLE;
 }
-#line 6956 "Zend/zend_language_scanner.c"
+#line 6949 "Zend/zend_language_scanner.c"
 yy637:
                YYDEBUG(637, *YYCURSOR);
                ++YYCURSOR;
@@ -6985,11 +6978,11 @@ yy642:
                }
                YYDEBUG(643, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1510 "Zend/zend_language_scanner.l"
+#line 1503 "Zend/zend_language_scanner.l"
                {
        return T_BREAK;
 }
-#line 6993 "Zend/zend_language_scanner.c"
+#line 6986 "Zend/zend_language_scanner.c"
 yy644:
                YYDEBUG(644, *YYCURSOR);
                ++YYCURSOR;
@@ -7002,12 +6995,12 @@ yy645:
                ++YYCURSOR;
                YYDEBUG(646, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2392 "Zend/zend_language_scanner.l"
+#line 2385 "Zend/zend_language_scanner.l"
                {
        zend_scan_binary_single_string(zendlval, yytext+2, yyleng-3 TSRMLS_CC);
        return T_CONSTANT_ENCAPSED_STRING;
 }
-#line 7011 "Zend/zend_language_scanner.c"
+#line 7004 "Zend/zend_language_scanner.c"
 yy647:
                YYDEBUG(647, *YYCURSOR);
                ++YYCURSOR;
@@ -7082,12 +7075,12 @@ yy654:
                ++YYCURSOR;
                YYDEBUG(655, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2376 "Zend/zend_language_scanner.l"
+#line 2369 "Zend/zend_language_scanner.l"
                {
        zend_scan_binary_escape_string(zendlval, yytext+2, yyleng-3, '"' TSRMLS_CC);
        return T_CONSTANT_ENCAPSED_STRING;
 }
-#line 7091 "Zend/zend_language_scanner.c"
+#line 7084 "Zend/zend_language_scanner.c"
 yy656:
                YYDEBUG(656, *YYCURSOR);
                ++YYCURSOR;
@@ -7134,11 +7127,11 @@ yy663:
                }
                YYDEBUG(664, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1494 "Zend/zend_language_scanner.l"
+#line 1487 "Zend/zend_language_scanner.l"
                {
        return T_SWITCH;
 }
-#line 7142 "Zend/zend_language_scanner.c"
+#line 7135 "Zend/zend_language_scanner.c"
 yy665:
                YYDEBUG(665, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7162,11 +7155,11 @@ yy668:
                }
                YYDEBUG(669, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1680 "Zend/zend_language_scanner.l"
+#line 1673 "Zend/zend_language_scanner.l"
                {
        return T_STATIC;
 }
-#line 7170 "Zend/zend_language_scanner.c"
+#line 7163 "Zend/zend_language_scanner.c"
 yy670:
                YYDEBUG(670, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7193,11 +7186,11 @@ yy673:
                }
                YYDEBUG(674, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1490 "Zend/zend_language_scanner.l"
+#line 1483 "Zend/zend_language_scanner.l"
                {
        return T_AS;
 }
-#line 7201 "Zend/zend_language_scanner.c"
+#line 7194 "Zend/zend_language_scanner.c"
 yy675:
                YYDEBUG(675, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7216,11 +7209,11 @@ yy677:
                }
                YYDEBUG(678, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1716 "Zend/zend_language_scanner.l"
+#line 1709 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY;
 }
-#line 7224 "Zend/zend_language_scanner.c"
+#line 7217 "Zend/zend_language_scanner.c"
 yy679:
                YYDEBUG(679, *YYCURSOR);
                ++YYCURSOR;
@@ -7229,11 +7222,11 @@ yy679:
                }
                YYDEBUG(680, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1808 "Zend/zend_language_scanner.l"
+#line 1801 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_AND;
 }
-#line 7237 "Zend/zend_language_scanner.c"
+#line 7230 "Zend/zend_language_scanner.c"
 yy681:
                YYDEBUG(681, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7267,11 +7260,11 @@ yy686:
                }
                YYDEBUG(687, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1684 "Zend/zend_language_scanner.l"
+#line 1677 "Zend/zend_language_scanner.l"
                {
        return T_ABSTRACT;
 }
-#line 7275 "Zend/zend_language_scanner.c"
+#line 7268 "Zend/zend_language_scanner.c"
 yy688:
                YYDEBUG(688, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7295,11 +7288,11 @@ yy691:
                }
                YYDEBUG(692, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1450 "Zend/zend_language_scanner.l"
+#line 1443 "Zend/zend_language_scanner.l"
                {
        return T_WHILE;
 }
-#line 7303 "Zend/zend_language_scanner.c"
+#line 7296 "Zend/zend_language_scanner.c"
 yy693:
                YYDEBUG(693, *YYCURSOR);
                ++YYCURSOR;
@@ -7308,11 +7301,11 @@ yy693:
                }
                YYDEBUG(694, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1434 "Zend/zend_language_scanner.l"
+#line 1427 "Zend/zend_language_scanner.l"
                {
        return T_IF;
 }
-#line 7316 "Zend/zend_language_scanner.c"
+#line 7309 "Zend/zend_language_scanner.c"
 yy695:
                YYDEBUG(695, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7364,11 +7357,11 @@ yy700:
                }
                YYDEBUG(701, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1668 "Zend/zend_language_scanner.l"
+#line 1661 "Zend/zend_language_scanner.l"
                {
        return T_ISSET;
 }
-#line 7372 "Zend/zend_language_scanner.c"
+#line 7365 "Zend/zend_language_scanner.c"
 yy702:
                YYDEBUG(702, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7422,11 +7415,11 @@ yy708:
 yy709:
                YYDEBUG(709, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1640 "Zend/zend_language_scanner.l"
+#line 1633 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE;
 }
-#line 7430 "Zend/zend_language_scanner.c"
+#line 7423 "Zend/zend_language_scanner.c"
 yy710:
                YYDEBUG(710, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7455,11 +7448,11 @@ yy714:
                }
                YYDEBUG(715, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1644 "Zend/zend_language_scanner.l"
+#line 1637 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE_ONCE;
 }
-#line 7463 "Zend/zend_language_scanner.c"
+#line 7456 "Zend/zend_language_scanner.c"
 yy716:
                YYDEBUG(716, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7493,11 +7486,11 @@ yy721:
                }
                YYDEBUG(722, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1534 "Zend/zend_language_scanner.l"
+#line 1527 "Zend/zend_language_scanner.l"
                {
        return T_INTERFACE;
 }
-#line 7501 "Zend/zend_language_scanner.c"
+#line 7494 "Zend/zend_language_scanner.c"
 yy723:
                YYDEBUG(723, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7536,11 +7529,11 @@ yy729:
                }
                YYDEBUG(730, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1486 "Zend/zend_language_scanner.l"
+#line 1479 "Zend/zend_language_scanner.l"
                {
        return T_INSTANCEOF;
 }
-#line 7544 "Zend/zend_language_scanner.c"
+#line 7537 "Zend/zend_language_scanner.c"
 yy731:
                YYDEBUG(731, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7584,11 +7577,11 @@ yy738:
                }
                YYDEBUG(739, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1542 "Zend/zend_language_scanner.l"
+#line 1535 "Zend/zend_language_scanner.l"
                {
        return T_IMPLEMENTS;
 }
-#line 7592 "Zend/zend_language_scanner.c"
+#line 7585 "Zend/zend_language_scanner.c"
 yy740:
                YYDEBUG(740, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7608,11 +7601,11 @@ yy742:
                }
                YYDEBUG(743, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1422 "Zend/zend_language_scanner.l"
+#line 1415 "Zend/zend_language_scanner.l"
                {
        return T_TRY;
 }
-#line 7616 "Zend/zend_language_scanner.c"
+#line 7609 "Zend/zend_language_scanner.c"
 yy744:
                YYDEBUG(744, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7631,11 +7624,11 @@ yy746:
                }
                YYDEBUG(747, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1430 "Zend/zend_language_scanner.l"
+#line 1423 "Zend/zend_language_scanner.l"
                {
        return T_THROW;
 }
-#line 7639 "Zend/zend_language_scanner.c"
+#line 7632 "Zend/zend_language_scanner.c"
 yy748:
                YYDEBUG(748, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7696,11 +7689,11 @@ yy754:
 yy755:
                YYDEBUG(755, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1648 "Zend/zend_language_scanner.l"
+#line 1641 "Zend/zend_language_scanner.l"
                {
        return T_REQUIRE;
 }
-#line 7704 "Zend/zend_language_scanner.c"
+#line 7697 "Zend/zend_language_scanner.c"
 yy756:
                YYDEBUG(756, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7729,11 +7722,11 @@ yy760:
                }
                YYDEBUG(761, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1652 "Zend/zend_language_scanner.l"
+#line 1645 "Zend/zend_language_scanner.l"
                {
        return T_REQUIRE_ONCE;
 }
-#line 7737 "Zend/zend_language_scanner.c"
+#line 7730 "Zend/zend_language_scanner.c"
 yy762:
                YYDEBUG(762, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7752,11 +7745,11 @@ yy764:
                }
                YYDEBUG(765, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1418 "Zend/zend_language_scanner.l"
+#line 1411 "Zend/zend_language_scanner.l"
                {
        return T_RETURN;
 }
-#line 7760 "Zend/zend_language_scanner.c"
+#line 7753 "Zend/zend_language_scanner.c"
 yy766:
                YYDEBUG(766, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7837,11 +7830,11 @@ yy775:
                }
                YYDEBUG(776, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1514 "Zend/zend_language_scanner.l"
+#line 1507 "Zend/zend_language_scanner.l"
                {
        return T_CONTINUE;
 }
-#line 7845 "Zend/zend_language_scanner.c"
+#line 7838 "Zend/zend_language_scanner.c"
 yy777:
                YYDEBUG(777, *YYCURSOR);
                ++YYCURSOR;
@@ -7850,11 +7843,11 @@ yy777:
                }
                YYDEBUG(778, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1414 "Zend/zend_language_scanner.l"
+#line 1407 "Zend/zend_language_scanner.l"
                {
        return T_CONST;
 }
-#line 7858 "Zend/zend_language_scanner.c"
+#line 7851 "Zend/zend_language_scanner.c"
 yy779:
                YYDEBUG(779, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7879,11 +7872,11 @@ yy782:
                }
                YYDEBUG(783, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1592 "Zend/zend_language_scanner.l"
+#line 1585 "Zend/zend_language_scanner.l"
                {
        return T_CLONE;
 }
-#line 7887 "Zend/zend_language_scanner.c"
+#line 7880 "Zend/zend_language_scanner.c"
 yy784:
                YYDEBUG(784, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7897,11 +7890,11 @@ yy785:
                }
                YYDEBUG(786, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1530 "Zend/zend_language_scanner.l"
+#line 1523 "Zend/zend_language_scanner.l"
                {
        return T_CLASS;
 }
-#line 7905 "Zend/zend_language_scanner.c"
+#line 7898 "Zend/zend_language_scanner.c"
 yy787:
                YYDEBUG(787, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7921,11 +7914,11 @@ yy789:
                }
                YYDEBUG(790, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1502 "Zend/zend_language_scanner.l"
+#line 1495 "Zend/zend_language_scanner.l"
                {
        return T_CASE;
 }
-#line 7929 "Zend/zend_language_scanner.c"
+#line 7922 "Zend/zend_language_scanner.c"
 yy791:
                YYDEBUG(791, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7939,11 +7932,11 @@ yy792:
                }
                YYDEBUG(793, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1426 "Zend/zend_language_scanner.l"
+#line 1419 "Zend/zend_language_scanner.l"
                {
        return T_CATCH;
 }
-#line 7947 "Zend/zend_language_scanner.c"
+#line 7940 "Zend/zend_language_scanner.c"
 yy794:
                YYDEBUG(794, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7994,11 +7987,11 @@ yy802:
                }
                YYDEBUG(803, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1410 "Zend/zend_language_scanner.l"
+#line 1403 "Zend/zend_language_scanner.l"
                {
        return T_FUNCTION;
 }
-#line 8002 "Zend/zend_language_scanner.c"
+#line 7995 "Zend/zend_language_scanner.c"
 yy804:
                YYDEBUG(804, *YYCURSOR);
                ++YYCURSOR;
@@ -8022,11 +8015,11 @@ yy804:
 yy805:
                YYDEBUG(805, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1462 "Zend/zend_language_scanner.l"
+#line 1455 "Zend/zend_language_scanner.l"
                {
        return T_FOR;
 }
-#line 8030 "Zend/zend_language_scanner.c"
+#line 8023 "Zend/zend_language_scanner.c"
 yy806:
                YYDEBUG(806, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8050,11 +8043,11 @@ yy809:
                }
                YYDEBUG(810, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1470 "Zend/zend_language_scanner.l"
+#line 1463 "Zend/zend_language_scanner.l"
                {
        return T_FOREACH;
 }
-#line 8058 "Zend/zend_language_scanner.c"
+#line 8051 "Zend/zend_language_scanner.c"
 yy811:
                YYDEBUG(811, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8073,11 +8066,11 @@ yy813:
                }
                YYDEBUG(814, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1688 "Zend/zend_language_scanner.l"
+#line 1681 "Zend/zend_language_scanner.l"
                {
        return T_FINAL;
 }
-#line 8081 "Zend/zend_language_scanner.c"
+#line 8074 "Zend/zend_language_scanner.c"
 yy815:
                YYDEBUG(815, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8108,11 +8101,11 @@ yy817:
                }
                YYDEBUG(818, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1458 "Zend/zend_language_scanner.l"
+#line 1451 "Zend/zend_language_scanner.l"
                {
        return T_DO;
 }
-#line 8116 "Zend/zend_language_scanner.c"
+#line 8109 "Zend/zend_language_scanner.c"
 yy819:
                YYDEBUG(819, *YYCURSOR);
                ++YYCURSOR;
@@ -8121,11 +8114,11 @@ yy819:
                }
                YYDEBUG(820, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1406 "Zend/zend_language_scanner.l"
+#line 1399 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
 }
-#line 8129 "Zend/zend_language_scanner.c"
+#line 8122 "Zend/zend_language_scanner.c"
 yy821:
                YYDEBUG(821, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8160,11 +8153,11 @@ yy826:
                }
                YYDEBUG(827, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1506 "Zend/zend_language_scanner.l"
+#line 1499 "Zend/zend_language_scanner.l"
                {
        return T_DEFAULT;
 }
-#line 8168 "Zend/zend_language_scanner.c"
+#line 8161 "Zend/zend_language_scanner.c"
 yy828:
                YYDEBUG(828, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8188,11 +8181,11 @@ yy831:
                }
                YYDEBUG(832, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1478 "Zend/zend_language_scanner.l"
+#line 1471 "Zend/zend_language_scanner.l"
                {
        return T_DECLARE;
 }
-#line 8196 "Zend/zend_language_scanner.c"
+#line 8189 "Zend/zend_language_scanner.c"
 yy833:
                YYDEBUG(833, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8272,11 +8265,11 @@ yy844:
                }
                YYDEBUG(845, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1538 "Zend/zend_language_scanner.l"
+#line 1531 "Zend/zend_language_scanner.l"
                {
        return T_EXTENDS;
 }
-#line 8280 "Zend/zend_language_scanner.c"
+#line 8273 "Zend/zend_language_scanner.c"
 yy846:
                YYDEBUG(846, *YYCURSOR);
                ++YYCURSOR;
@@ -8285,11 +8278,11 @@ yy846:
                }
                YYDEBUG(847, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1402 "Zend/zend_language_scanner.l"
+#line 1395 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
 }
-#line 8293 "Zend/zend_language_scanner.c"
+#line 8286 "Zend/zend_language_scanner.c"
 yy848:
                YYDEBUG(848, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8303,11 +8296,11 @@ yy849:
                }
                YYDEBUG(850, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1636 "Zend/zend_language_scanner.l"
+#line 1629 "Zend/zend_language_scanner.l"
                {
        return T_EVAL;
 }
-#line 8311 "Zend/zend_language_scanner.c"
+#line 8304 "Zend/zend_language_scanner.c"
 yy851:
                YYDEBUG(851, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8377,11 +8370,11 @@ yy860:
                }
                YYDEBUG(861, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1454 "Zend/zend_language_scanner.l"
+#line 1447 "Zend/zend_language_scanner.l"
                {
        return T_ENDWHILE;
 }
-#line 8385 "Zend/zend_language_scanner.c"
+#line 8378 "Zend/zend_language_scanner.c"
 yy862:
                YYDEBUG(862, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8410,11 +8403,11 @@ yy866:
                }
                YYDEBUG(867, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1498 "Zend/zend_language_scanner.l"
+#line 1491 "Zend/zend_language_scanner.l"
                {
        return T_ENDSWITCH;
 }
-#line 8418 "Zend/zend_language_scanner.c"
+#line 8411 "Zend/zend_language_scanner.c"
 yy868:
                YYDEBUG(868, *YYCURSOR);
                ++YYCURSOR;
@@ -8423,11 +8416,11 @@ yy868:
                }
                YYDEBUG(869, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1442 "Zend/zend_language_scanner.l"
+#line 1435 "Zend/zend_language_scanner.l"
                {
        return T_ENDIF;
 }
-#line 8431 "Zend/zend_language_scanner.c"
+#line 8424 "Zend/zend_language_scanner.c"
 yy870:
                YYDEBUG(870, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8456,11 +8449,11 @@ yy871:
 yy872:
                YYDEBUG(872, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1466 "Zend/zend_language_scanner.l"
+#line 1459 "Zend/zend_language_scanner.l"
                {
        return T_ENDFOR;
 }
-#line 8464 "Zend/zend_language_scanner.c"
+#line 8457 "Zend/zend_language_scanner.c"
 yy873:
                YYDEBUG(873, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8484,11 +8477,11 @@ yy876:
                }
                YYDEBUG(877, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1474 "Zend/zend_language_scanner.l"
+#line 1467 "Zend/zend_language_scanner.l"
                {
        return T_ENDFOREACH;
 }
-#line 8492 "Zend/zend_language_scanner.c"
+#line 8485 "Zend/zend_language_scanner.c"
 yy878:
                YYDEBUG(878, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8522,11 +8515,11 @@ yy883:
                }
                YYDEBUG(884, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1482 "Zend/zend_language_scanner.l"
+#line 1475 "Zend/zend_language_scanner.l"
                {
        return T_ENDDECLARE;
 }
-#line 8530 "Zend/zend_language_scanner.c"
+#line 8523 "Zend/zend_language_scanner.c"
 yy885:
                YYDEBUG(885, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8545,11 +8538,11 @@ yy887:
                }
                YYDEBUG(888, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1672 "Zend/zend_language_scanner.l"
+#line 1665 "Zend/zend_language_scanner.l"
                {
        return T_EMPTY;
 }
-#line 8553 "Zend/zend_language_scanner.c"
+#line 8546 "Zend/zend_language_scanner.c"
 yy889:
                YYDEBUG(889, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8578,11 +8571,11 @@ yy890:
 yy891:
                YYDEBUG(891, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1446 "Zend/zend_language_scanner.l"
+#line 1439 "Zend/zend_language_scanner.l"
                {
        return T_ELSE;
 }
-#line 8586 "Zend/zend_language_scanner.c"
+#line 8579 "Zend/zend_language_scanner.c"
 yy892:
                YYDEBUG(892, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8596,11 +8589,11 @@ yy893:
                }
                YYDEBUG(894, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1438 "Zend/zend_language_scanner.l"
+#line 1431 "Zend/zend_language_scanner.l"
                {
        return T_ELSEIF;
 }
-#line 8604 "Zend/zend_language_scanner.c"
+#line 8597 "Zend/zend_language_scanner.c"
 yy895:
                YYDEBUG(895, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8614,11 +8607,11 @@ yy896:
                }
                YYDEBUG(897, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1522 "Zend/zend_language_scanner.l"
+#line 1515 "Zend/zend_language_scanner.l"
                {
        return T_ECHO;
 }
-#line 8622 "Zend/zend_language_scanner.c"
+#line 8615 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_LOOKING_FOR_PROPERTY:
@@ -8693,9 +8686,9 @@ yy900:
                ++YYCURSOR;
                YYDEBUG(901, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2657 "Zend/zend_language_scanner.l"
+#line 2650 "Zend/zend_language_scanner.l"
                { return 0; }
-#line 8699 "Zend/zend_language_scanner.c"
+#line 8692 "Zend/zend_language_scanner.c"
 yy902:
                YYDEBUG(902, *YYCURSOR);
                ++YYCURSOR;
@@ -8704,7 +8697,7 @@ yy902:
 yy903:
                YYDEBUG(903, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1551 "Zend/zend_language_scanner.l"
+#line 1544 "Zend/zend_language_scanner.l"
                {
        Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
        Z_STRLEN_P(zendlval) = yyleng;
@@ -8712,7 +8705,7 @@ yy903:
        HANDLE_NEWLINES(yytext, yyleng);
        return T_WHITESPACE;
 }
-#line 8716 "Zend/zend_language_scanner.c"
+#line 8709 "Zend/zend_language_scanner.c"
 yy904:
                YYDEBUG(904, *YYCURSOR);
                ++YYCURSOR;
@@ -8720,13 +8713,13 @@ yy904:
 yy905:
                YYDEBUG(905, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1574 "Zend/zend_language_scanner.l"
+#line 1567 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state(TSRMLS_C);
        goto restart;
 }
-#line 8730 "Zend/zend_language_scanner.c"
+#line 8723 "Zend/zend_language_scanner.c"
 yy906:
                YYDEBUG(906, *YYCURSOR);
                ++YYCURSOR;
@@ -8735,7 +8728,7 @@ yy906:
 yy907:
                YYDEBUG(907, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1563 "Zend/zend_language_scanner.l"
+#line 1556 "Zend/zend_language_scanner.l"
                {
        yy_pop_state(TSRMLS_C);
        if (!zend_copy_scanner_string(zendlval, yytext, yyleng, UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
@@ -8746,7 +8739,7 @@ yy907:
        }
        return T_STRING;
 }
-#line 8750 "Zend/zend_language_scanner.c"
+#line 8743 "Zend/zend_language_scanner.c"
 yy908:
                YYDEBUG(908, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8767,11 +8760,11 @@ yy911:
                ++YYCURSOR;
                YYDEBUG(912, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1559 "Zend/zend_language_scanner.l"
+#line 1552 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_OPERATOR;
 }
-#line 8775 "Zend/zend_language_scanner.c"
+#line 8768 "Zend/zend_language_scanner.c"
 yy913:
                YYDEBUG(913, *YYCURSOR);
                ++YYCURSOR;
@@ -8844,9 +8837,9 @@ yy917:
                ++YYCURSOR;
                YYDEBUG(918, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2657 "Zend/zend_language_scanner.l"
+#line 2650 "Zend/zend_language_scanner.l"
                { return 0; }
-#line 8850 "Zend/zend_language_scanner.c"
+#line 8843 "Zend/zend_language_scanner.c"
 yy919:
                YYDEBUG(919, *YYCURSOR);
                ++YYCURSOR;
@@ -8855,7 +8848,7 @@ yy919:
 yy920:
                YYDEBUG(920, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1850 "Zend/zend_language_scanner.l"
+#line 1843 "Zend/zend_language_scanner.l"
                {
        if (!zend_copy_scanner_string(zendlval, yytext, yyleng, UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
                return 0;
@@ -8867,20 +8860,20 @@ yy920:
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return T_STRING_VARNAME;
 }
-#line 8871 "Zend/zend_language_scanner.c"
+#line 8864 "Zend/zend_language_scanner.c"
 yy921:
                YYDEBUG(921, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(922, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1863 "Zend/zend_language_scanner.l"
+#line 1856 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state(TSRMLS_C);
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        goto restart;
 }
-#line 8884 "Zend/zend_language_scanner.c"
+#line 8877 "Zend/zend_language_scanner.c"
 yy923:
                YYDEBUG(923, *YYCURSOR);
                ++YYCURSOR;
@@ -8946,9 +8939,9 @@ yy927:
                goto yy930;
                YYDEBUG(928, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2657 "Zend/zend_language_scanner.l"
+#line 2650 "Zend/zend_language_scanner.l"
                { return 0; }
-#line 8952 "Zend/zend_language_scanner.c"
+#line 8945 "Zend/zend_language_scanner.c"
 yy929:
                YYDEBUG(929, *YYCURSOR);
                ++YYCURSOR;
@@ -9041,7 +9034,7 @@ yy938:
                ++YYCURSOR;
                YYDEBUG(939, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2604 "Zend/zend_language_scanner.l"
+#line 2597 "Zend/zend_language_scanner.l"
                {
        char *end = yytext + yyleng - 1;
 
@@ -9082,7 +9075,7 @@ yy938:
                yymore();
        }
 }
-#line 9086 "Zend/zend_language_scanner.c"
+#line 9079 "Zend/zend_language_scanner.c"
 yy940:
                YYDEBUG(940, *YYCURSOR);
                ++YYCURSOR;
@@ -9193,9 +9186,9 @@ yy946:
                goto yy961;
                YYDEBUG(947, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2657 "Zend/zend_language_scanner.l"
+#line 2650 "Zend/zend_language_scanner.l"
                { return 0; }
-#line 9199 "Zend/zend_language_scanner.c"
+#line 9192 "Zend/zend_language_scanner.c"
 yy948:
                YYDEBUG(948, *YYCURSOR);
                ++YYCURSOR;
@@ -9203,11 +9196,11 @@ yy948:
 yy949:
                YYDEBUG(949, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2253 "Zend/zend_language_scanner.l"
+#line 2246 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 9211 "Zend/zend_language_scanner.c"
+#line 9204 "Zend/zend_language_scanner.c"
 yy950:
                YYDEBUG(950, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -9244,7 +9237,7 @@ yy952:
 yy954:
                YYDEBUG(954, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2257 "Zend/zend_language_scanner.l"
+#line 2250 "Zend/zend_language_scanner.l"
                {
        switch (yytext[yyleng-1]) {
                case '?': case '%': case '>':
@@ -9262,7 +9255,7 @@ yy954:
                        return T_COMMENT;
        }
 }
-#line 9266 "Zend/zend_language_scanner.c"
+#line 9259 "Zend/zend_language_scanner.c"
 yy955:
                YYDEBUG(955, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -9275,7 +9268,7 @@ yy956:
                ++YYCURSOR;
                YYDEBUG(958, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2275 "Zend/zend_language_scanner.l"
+#line 2268 "Zend/zend_language_scanner.l"
                {
        Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
        Z_STRLEN_P(zendlval) = yyleng;
@@ -9284,7 +9277,7 @@ yy956:
        CG(zend_lineno)++;
        return T_COMMENT;
 }
-#line 9288 "Zend/zend_language_scanner.c"
+#line 9281 "Zend/zend_language_scanner.c"
 yy959:
                YYDEBUG(959, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -9318,7 +9311,7 @@ yy962:
                ++YYCURSOR;
                YYDEBUG(963, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2284 "Zend/zend_language_scanner.l"
+#line 2277 "Zend/zend_language_scanner.l"
                {
     if (CG(asp_tags) || yytext[yyleng-2] != '%') { /* asp comment? */
                Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -9331,7 +9324,7 @@ yy962:
                yymore();
        }
 }
-#line 9335 "Zend/zend_language_scanner.c"
+#line 9328 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_VAR_OFFSET:
@@ -9423,9 +9416,9 @@ yy966:
                ++YYCURSOR;
                YYDEBUG(967, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2657 "Zend/zend_language_scanner.l"
+#line 2650 "Zend/zend_language_scanner.l"
                { return 0; }
-#line 9429 "Zend/zend_language_scanner.c"
+#line 9422 "Zend/zend_language_scanner.c"
 yy968:
                YYDEBUG(968, *YYCURSOR);
                yyaccept = 0;
@@ -9440,7 +9433,7 @@ yy968:
 yy969:
                YYDEBUG(969, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1913 "Zend/zend_language_scanner.l"
+#line 1906 "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)) {
                Z_LVAL_P(zendlval) = strtol(yytext, NULL, 10);
@@ -9452,7 +9445,7 @@ yy969:
        }
        return T_NUM_STRING;
 }
-#line 9456 "Zend/zend_language_scanner.c"
+#line 9449 "Zend/zend_language_scanner.c"
 yy970:
                YYDEBUG(970, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -9472,23 +9465,23 @@ yy971:
 yy972:
                YYDEBUG(972, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2217 "Zend/zend_language_scanner.l"
+#line 2210 "Zend/zend_language_scanner.l"
                {
        /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
        return yytext[0];
 }
-#line 9481 "Zend/zend_language_scanner.c"
+#line 9474 "Zend/zend_language_scanner.c"
 yy973:
                YYDEBUG(973, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(974, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2212 "Zend/zend_language_scanner.l"
+#line 2205 "Zend/zend_language_scanner.l"
                {
        yy_pop_state(TSRMLS_C);
        return ']';
 }
-#line 9492 "Zend/zend_language_scanner.c"
+#line 9485 "Zend/zend_language_scanner.c"
 yy975:
                YYDEBUG(975, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -9498,7 +9491,7 @@ yy976:
                ++YYCURSOR;
                YYDEBUG(977, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2222 "Zend/zend_language_scanner.l"
+#line 2215 "Zend/zend_language_scanner.l"
                {
        /* Invalid rule to return a more explicit parse error with proper line number */
        yyless(0);
@@ -9506,7 +9499,7 @@ yy976:
        ZVAL_EMPTY_TEXT(zendlval); /* Empty since it won't be used */
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 9510 "Zend/zend_language_scanner.c"
+#line 9503 "Zend/zend_language_scanner.c"
 yy978:
                YYDEBUG(978, *YYCURSOR);
                ++YYCURSOR;
@@ -9515,25 +9508,25 @@ yy978:
 yy979:
                YYDEBUG(979, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2240 "Zend/zend_language_scanner.l"
+#line 2233 "Zend/zend_language_scanner.l"
                {
        if (!zend_copy_scanner_string(zendlval, yytext, yyleng, CG(literal_type), SCNG(output_conv) TSRMLS_CC)) {
                return 0;
        }
        return T_STRING;
 }
-#line 9526 "Zend/zend_language_scanner.c"
+#line 9519 "Zend/zend_language_scanner.c"
 yy980:
                YYDEBUG(980, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(981, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2659 "Zend/zend_language_scanner.l"
+#line 2652 "Zend/zend_language_scanner.l"
                {
        zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
        goto restart;
 }
-#line 9537 "Zend/zend_language_scanner.c"
+#line 9530 "Zend/zend_language_scanner.c"
 yy982:
                YYDEBUG(982, *YYCURSOR);
                ++YYCURSOR;
@@ -9569,7 +9562,7 @@ yy984:
 yy986:
                YYDEBUG(986, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2202 "Zend/zend_language_scanner.l"
+#line 2195 "Zend/zend_language_scanner.l"
                {
        if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
                return 0;
@@ -9579,7 +9572,7 @@ yy986:
        }
        return T_VARIABLE;
 }
-#line 9583 "Zend/zend_language_scanner.c"
+#line 9576 "Zend/zend_language_scanner.c"
 yy987:
                YYDEBUG(987, *YYCURSOR);
                ++YYCURSOR;
@@ -9611,14 +9604,14 @@ yy991:
 yy993:
                YYDEBUG(993, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1925 "Zend/zend_language_scanner.l"
+#line 1918 "Zend/zend_language_scanner.l"
                { /* Offset must be treated as a string */
        if (!zend_copy_scanner_string(zendlval, yytext, yyleng, CG(literal_type), SCNG(output_conv) TSRMLS_CC)) {
                return 0;
        }
        return T_NUM_STRING;
 }
-#line 9622 "Zend/zend_language_scanner.c"
+#line 9615 "Zend/zend_language_scanner.c"
 yy994:
                YYDEBUG(994, *YYCURSOR);
                ++YYCURSOR;
@@ -9631,6 +9624,6 @@ yy994:
                goto yy993;
        }
 }
-#line 2664 "Zend/zend_language_scanner.l"
+#line 2657 "Zend/zend_language_scanner.l"
 
 }
index 8372bc9bb3a5d361a80716b432134cfed576c91f..f59b9f6b82c54af626ca21e6867dff20087968bd 100644 (file)
@@ -156,9 +156,7 @@ void startup_scanner(TSRMLS_D)
        SCNG(rest_str) = NULL;
        SCNG(rest_len) = 0;
 
-       zend_llist_init(&SCNG(used_state_stacks), sizeof(zend_stack), (llist_dtor_func_t) zend_stack_destroy, 0);
        zend_stack_init(&SCNG(state_stack));
-       zend_llist_add_element(&SCNG(used_state_stacks), &SCNG(state_stack));
 }
 
 
@@ -168,7 +166,7 @@ void shutdown_scanner(TSRMLS_D)
                efree(CG(heredoc));
                CG(heredoc_len)=0;
        }
-       zend_llist_destroy(&SCNG(used_state_stacks));
+       zend_stack_destroy(&SCNG(state_stack));
        RESET_DOC_COMMENT();
 
        if (SCNG(input_conv)) {
@@ -187,11 +185,6 @@ void shutdown_scanner(TSRMLS_D)
        SCNG(rest_len) = 0;
 }
 
-static int compare_stacks(zend_stack *stack1, zend_stack *stack2)
-{
-       return (stack1 == stack2);
-}
-
 ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
 {
        lex_state->yy_leng   = SCNG(yy_leng);
@@ -203,7 +196,6 @@ ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
 
        lex_state->state_stack = SCNG(state_stack);
        zend_stack_init(&SCNG(state_stack));
-       zend_llist_add_element(&SCNG(used_state_stacks), &SCNG(state_stack));
 
        lex_state->in = SCNG(yy_in);
        lex_state->yy_state = YYSTATE;
@@ -231,7 +223,7 @@ ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
        SCNG(yy_marker) = lex_state->yy_marker;
        SCNG(yy_limit)  = lex_state->yy_limit;
 
-       zend_llist_del_element(&SCNG(used_state_stacks), &SCNG(state_stack), (int (*)(void *, void *)) compare_stacks);
+       zend_stack_destroy(&SCNG(state_stack));
        SCNG(state_stack) = lex_state->state_stack;
 
        SCNG(yy_in) = lex_state->in;
@@ -780,9 +772,7 @@ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSR
                        retval = NULL;
                }
        }
-       if (compilation_successful) {
-               zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
-       }
+       zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
        return retval;
 }
 
@@ -891,6 +881,7 @@ zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC)
 
        zend_save_lexical_state(&original_lex_state TSRMLS_CC);
        if (zend_prepare_string_for_scanning(source_string, filename TSRMLS_CC)==FAILURE) {
+               zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
                efree(op_array);
                retval = NULL;
        } else {
@@ -934,6 +925,7 @@ int highlight_file(char *filename, zend_syntax_highlighter_ini *syntax_highlight
        file_handle.opened_path = NULL;
        zend_save_lexical_state(&original_lex_state TSRMLS_CC);
        if (open_file_for_scanning(&file_handle TSRMLS_CC)==FAILURE) {
+               zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
                zend_message_dispatcher(ZMSG_FAILED_HIGHLIGHT_FOPEN, filename TSRMLS_CC);
                return FAILURE;
        }
@@ -952,6 +944,7 @@ int highlight_string(zval *str, zend_syntax_highlighter_ini *syntax_highlighter_
        zval_copy_ctor(str);
        zend_save_lexical_state(&original_lex_state TSRMLS_CC);
        if (zend_prepare_string_for_scanning(str, str_name TSRMLS_CC)==FAILURE) {
+               zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
                return FAILURE;
        }
        BEGIN(INITIAL);
index 759b80b1597648d98fe43567ea839af63dd62b79..3007edd0cfac73610df3820933dac5206ee2a76f 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Sun Mar 15 17:30:06 2009 */
+/* Generated by re2c 0.13.5 on Wed Mar 25 18:24:36 2009 */
 #line 3 "Zend/zend_language_scanner_defs.h"
 
 enum YYCONDTYPE {
index 8a034491dab32e2614b7c2d32d934893794213b0..57a6c413349d8f182cf4fe0522750a0e5928ebec 100644 (file)
@@ -5169,6 +5169,7 @@ PHP_FUNCTION(php_strip_whitespace)
        file_handle.opened_path = NULL;
        zend_save_lexical_state(&original_lex_state TSRMLS_CC);
        if (open_file_for_scanning(&file_handle TSRMLS_CC) == FAILURE) {
+               zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
                php_output_end(TSRMLS_C);
                if (filename_type == IS_UNICODE) {
                        efree(filename);
index 3b19d4205cfac604fbefed01f65f05b905903b40..2d9aa32be9febc5a81265f86175cd19b75016f1d 100644 (file)
@@ -173,6 +173,7 @@ PHP_FUNCTION(token_get_all)
        zend_save_lexical_state(&original_lex_state TSRMLS_CC);
 
        if (zend_prepare_string_for_scanning(&source_z, "" TSRMLS_CC) == FAILURE) {
+               zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
                RETURN_EMPTY_STRING();
        }
 
@@ -180,10 +181,6 @@ PHP_FUNCTION(token_get_all)
 
        tokenize(return_value TSRMLS_CC);
        
-       while (!zend_stack_is_empty(&LANG_SCNG(state_stack))) {
-               zend_stack_del_top(&LANG_SCNG(state_stack));
-       }
-
        zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
        zval_dtor(&source_z);
 }