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

diff --git a/NEWS b/NEWS
index 889b18b72183d11655b2cd492df6d1031558932e..63b2353e992437f965a112d256d589771204c512 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,7 @@ PHP                                                                        NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? ??? 200?, PHP 5.3.0 RC 2
 - Fixed bug #47699 (autoload and late static binding). (Dmitry)
+- Fixed bug #47038 (Memory leak in include). (Dmitry)
 - Fixed bug #44409 (PDO::FETCH_SERIALIZE calls __construct()).
   (matteo at beccati dot com)
 - Fixed bug #42362 - (HTTP status codes 204 and 304 should not be gzipped).
index 546a392fdecf60a5403cc0ec6849cdb08cd88e87..287a7d20745cb20197d41707570e858471848eec 100644 (file)
@@ -292,8 +292,6 @@ struct _zend_php_scanner_globals {
        int yy_state;
        zend_stack state_stack;
        
-       zend_llist used_state_stacks;
-
 #ifdef ZEND_MULTIBYTE
        /* original (unfiltered) script */
        unsigned char *script_org;
index f8895a8deb5bbdd6a0917336559dd332e317a474..b8635084b341a0f04fa52dfa1763e04137ddaadf 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Fri Mar 13 00:13:18 2009 */
+/* Generated by re2c 0.13.5 on Wed Mar 25 18:23:22 2009 */
 #line 1 "Zend/zend_language_scanner.l"
 /*
    +----------------------------------------------------------------------+
@@ -145,9 +145,7 @@ void startup_scanner(TSRMLS_D)
        CG(heredoc_len) = 0;
        CG(doc_comment) = NULL;
        CG(doc_comment_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));
 }
 
 void shutdown_scanner(TSRMLS_D)
@@ -156,15 +154,10 @@ 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();
 }
 
-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);
@@ -176,7 +169,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;
@@ -204,7 +196,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;
@@ -363,9 +355,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;
 }
 
@@ -528,8 +518,8 @@ zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC)
                        zend_release_labels(TSRMLS_C);
                        retval = op_array;
                }
-               zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
        }
+       zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
        zval_dtor(&tmp);
        CG(in_compilation) = original_in_compilation;
        return retval;
@@ -549,6 +539,7 @@ int highlight_file(char *filename, zend_syntax_highlighter_ini *syntax_highlight
        zend_save_lexical_state(&original_lex_state TSRMLS_CC);
        if (open_file_for_scanning(&file_handle TSRMLS_CC)==FAILURE) {
                zend_message_dispatcher(ZMSG_FAILED_HIGHLIGHT_FOPEN, filename TSRMLS_CC);
+               zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
                return FAILURE;
        }
        zend_highlight(syntax_highlighter_ini TSRMLS_CC);
@@ -576,6 +567,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);
@@ -836,7 +828,7 @@ restart:
 yymore_restart:
 
 
-#line 840 "Zend/zend_language_scanner.c"
+#line 832 "Zend/zend_language_scanner.c"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
@@ -938,9 +930,9 @@ yy2:
                ++YYCURSOR;
                YYDEBUG(3, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2104 "Zend/zend_language_scanner.l"
+#line 2096 "Zend/zend_language_scanner.l"
                { return 0; }
-#line 944 "Zend/zend_language_scanner.c"
+#line 936 "Zend/zend_language_scanner.c"
 yy4:
                YYDEBUG(4, *YYCURSOR);
                yyaccept = 0;
@@ -958,7 +950,7 @@ yy4:
 yy5:
                YYDEBUG(5, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1611 "Zend/zend_language_scanner.l"
+#line 1603 "Zend/zend_language_scanner.l"
                {
 
 inline_char_handler:
@@ -1004,7 +996,7 @@ inline_char_handler:
        HANDLE_NEWLINES(yytext, yyleng);
        return T_INLINE_HTML;
 }
-#line 1008 "Zend/zend_language_scanner.c"
+#line 1000 "Zend/zend_language_scanner.c"
 yy6:
                YYDEBUG(6, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1022,7 +1014,7 @@ yy7:
 yy8:
                YYDEBUG(8, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1599 "Zend/zend_language_scanner.l"
+#line 1591 "Zend/zend_language_scanner.l"
                {
        if (CG(short_tags)) {
                zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1034,14 +1026,14 @@ yy8:
                goto inline_char_handler;
        }
 }
-#line 1038 "Zend/zend_language_scanner.c"
+#line 1030 "Zend/zend_language_scanner.c"
 yy9:
                YYDEBUG(9, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy45;
                YYDEBUG(10, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1576 "Zend/zend_language_scanner.l"
+#line 1568 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1053,7 +1045,7 @@ yy9:
                goto inline_char_handler;
        }
 }
-#line 1057 "Zend/zend_language_scanner.c"
+#line 1049 "Zend/zend_language_scanner.c"
 yy11:
                YYDEBUG(11, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1239,7 +1231,7 @@ yy37:
                ++YYCURSOR;
                YYDEBUG(40, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1540 "Zend/zend_language_scanner.l"
+#line 1532 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1248,7 +1240,7 @@ yy37:
        BEGIN(ST_IN_SCRIPTING);
        return T_OPEN_TAG;
 }
-#line 1252 "Zend/zend_language_scanner.c"
+#line 1244 "Zend/zend_language_scanner.c"
 yy41:
                YYDEBUG(41, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1275,7 +1267,7 @@ yy45:
                ++YYCURSOR;
                YYDEBUG(46, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1550 "Zend/zend_language_scanner.l"
+#line 1542 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1287,13 +1279,13 @@ yy45:
                goto inline_char_handler;
        }
 }
-#line 1291 "Zend/zend_language_scanner.c"
+#line 1283 "Zend/zend_language_scanner.c"
 yy47:
                YYDEBUG(47, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(48, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1563 "Zend/zend_language_scanner.l"
+#line 1555 "Zend/zend_language_scanner.l"
                {
        if (CG(short_tags)) {
                zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1305,7 +1297,7 @@ yy47:
                goto inline_char_handler;
        }
 }
-#line 1309 "Zend/zend_language_scanner.c"
+#line 1301 "Zend/zend_language_scanner.c"
 yy49:
                YYDEBUG(49, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1332,7 +1324,7 @@ yy52:
 yy53:
                YYDEBUG(53, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1589 "Zend/zend_language_scanner.l"
+#line 1581 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
@@ -1341,7 +1333,7 @@ yy53:
        BEGIN(ST_IN_SCRIPTING);
        return T_OPEN_TAG;
 }
-#line 1345 "Zend/zend_language_scanner.c"
+#line 1337 "Zend/zend_language_scanner.c"
 yy54:
                YYDEBUG(54, *YYCURSOR);
                ++YYCURSOR;
@@ -1412,12 +1404,12 @@ yyc_ST_BACKQUOTE:
 yy58:
                YYDEBUG(58, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2021 "Zend/zend_language_scanner.l"
+#line 2013 "Zend/zend_language_scanner.l"
                {
        zend_scan_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 1421 "Zend/zend_language_scanner.c"
+#line 1413 "Zend/zend_language_scanner.c"
 yy59:
                YYDEBUG(59, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1455,13 +1447,13 @@ yy60:
 yy61:
                YYDEBUG(61, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1996 "Zend/zend_language_scanner.l"
+#line 1988 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return T_CURLY_OPEN;
 }
-#line 1465 "Zend/zend_language_scanner.c"
+#line 1457 "Zend/zend_language_scanner.c"
 yy62:
                YYDEBUG(62, *YYCURSOR);
                yyaccept = 0;
@@ -1504,12 +1496,12 @@ yy66:
                ++YYCURSOR;
                YYDEBUG(67, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2099 "Zend/zend_language_scanner.l"
+#line 2091 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '`';
 }
-#line 1513 "Zend/zend_language_scanner.c"
+#line 1505 "Zend/zend_language_scanner.c"
 yy68:
                YYDEBUG(68, *YYCURSOR);
                ++YYCURSOR;
@@ -1582,13 +1574,13 @@ yy71:
 yy73:
                YYDEBUG(73, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2026 "Zend/zend_language_scanner.l"
+#line 2018 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        zend_scan_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 1592 "Zend/zend_language_scanner.c"
+#line 1584 "Zend/zend_language_scanner.c"
 yy74:
                YYDEBUG(74, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1622,24 +1614,24 @@ yy77:
 yy79:
                YYDEBUG(79, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1679 "Zend/zend_language_scanner.l"
+#line 1671 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 1632 "Zend/zend_language_scanner.c"
+#line 1624 "Zend/zend_language_scanner.c"
 yy80:
                YYDEBUG(80, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(81, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1333 "Zend/zend_language_scanner.l"
+#line 1325 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 1643 "Zend/zend_language_scanner.c"
+#line 1635 "Zend/zend_language_scanner.c"
 yy82:
                YYDEBUG(82, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1650,7 +1642,7 @@ yy83:
                ++YYCURSOR;
                YYDEBUG(84, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1671 "Zend/zend_language_scanner.l"
+#line 1663 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -1658,7 +1650,7 @@ yy83:
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 1662 "Zend/zend_language_scanner.c"
+#line 1654 "Zend/zend_language_scanner.c"
 yy85:
                YYDEBUG(85, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1676,7 +1668,7 @@ yy86:
                ++YYCURSOR;
                YYDEBUG(87, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1661 "Zend/zend_language_scanner.l"
+#line 1653 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -1684,7 +1676,7 @@ yy86:
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 1688 "Zend/zend_language_scanner.c"
+#line 1680 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_COMMENT:
@@ -1737,12 +1729,12 @@ yy90:
                }
                YYDEBUG(91, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1765 "Zend/zend_language_scanner.l"
+#line 1757 "Zend/zend_language_scanner.l"
                {
        zend_error(E_COMPILE_WARNING, "Unterminated comment starting line %d", CG(zend_lineno));
        return 0;
 }
-#line 1746 "Zend/zend_language_scanner.c"
+#line 1738 "Zend/zend_language_scanner.c"
 yy92:
                YYDEBUG(92, *YYCURSOR);
                ++YYCURSOR;
@@ -1754,34 +1746,34 @@ yy92:
                }
                YYDEBUG(94, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1776 "Zend/zend_language_scanner.l"
+#line 1768 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 1762 "Zend/zend_language_scanner.c"
+#line 1754 "Zend/zend_language_scanner.c"
 yy95:
                YYDEBUG(95, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '/') goto yy97;
                YYDEBUG(96, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1794 "Zend/zend_language_scanner.l"
+#line 1786 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 1773 "Zend/zend_language_scanner.c"
+#line 1765 "Zend/zend_language_scanner.c"
 yy97:
                YYDEBUG(97, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(98, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1788 "Zend/zend_language_scanner.l"
+#line 1780 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        BEGIN(ST_IN_SCRIPTING);
        return T_COMMENT;
 }
-#line 1785 "Zend/zend_language_scanner.c"
+#line 1777 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_DOC_COMMENT:
@@ -1834,12 +1826,12 @@ yy101:
                }
                YYDEBUG(102, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1765 "Zend/zend_language_scanner.l"
+#line 1757 "Zend/zend_language_scanner.l"
                {
        zend_error(E_COMPILE_WARNING, "Unterminated comment starting line %d", CG(zend_lineno));
        return 0;
 }
-#line 1843 "Zend/zend_language_scanner.c"
+#line 1835 "Zend/zend_language_scanner.c"
 yy103:
                YYDEBUG(103, *YYCURSOR);
                ++YYCURSOR;
@@ -1851,28 +1843,28 @@ yy103:
                }
                YYDEBUG(105, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1776 "Zend/zend_language_scanner.l"
+#line 1768 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 1859 "Zend/zend_language_scanner.c"
+#line 1851 "Zend/zend_language_scanner.c"
 yy106:
                YYDEBUG(106, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '/') goto yy108;
                YYDEBUG(107, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1794 "Zend/zend_language_scanner.l"
+#line 1786 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 1870 "Zend/zend_language_scanner.c"
+#line 1862 "Zend/zend_language_scanner.c"
 yy108:
                YYDEBUG(108, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(109, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1780 "Zend/zend_language_scanner.l"
+#line 1772 "Zend/zend_language_scanner.l"
                {
        CG(doc_comment) = estrndup(yytext, yyleng);
        CG(doc_comment_len) = yyleng;
@@ -1880,7 +1872,7 @@ yy108:
        BEGIN(ST_IN_SCRIPTING);
        return T_DOC_COMMENT;
 }
-#line 1884 "Zend/zend_language_scanner.c"
+#line 1876 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_DOUBLE_QUOTES:
@@ -1946,12 +1938,12 @@ yyc_ST_DOUBLE_QUOTES:
 yy113:
                YYDEBUG(113, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2003 "Zend/zend_language_scanner.l"
+#line 1995 "Zend/zend_language_scanner.l"
                {
        zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 1955 "Zend/zend_language_scanner.c"
+#line 1947 "Zend/zend_language_scanner.c"
 yy114:
                YYDEBUG(114, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1990,13 +1982,13 @@ yy115:
 yy116:
                YYDEBUG(116, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1996 "Zend/zend_language_scanner.l"
+#line 1988 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return T_CURLY_OPEN;
 }
-#line 2000 "Zend/zend_language_scanner.c"
+#line 1992 "Zend/zend_language_scanner.c"
 yy117:
                YYDEBUG(117, *YYCURSOR);
                yyaccept = 0;
@@ -2038,12 +2030,12 @@ yy121:
                ++YYCURSOR;
                YYDEBUG(122, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2093 "Zend/zend_language_scanner.l"
+#line 2085 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '"';
 }
-#line 2047 "Zend/zend_language_scanner.c"
+#line 2039 "Zend/zend_language_scanner.c"
 yy123:
                YYDEBUG(123, *YYCURSOR);
                ++YYCURSOR;
@@ -2119,13 +2111,13 @@ yy126:
 yy128:
                YYDEBUG(128, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2014 "Zend/zend_language_scanner.l"
+#line 2006 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 2129 "Zend/zend_language_scanner.c"
+#line 2121 "Zend/zend_language_scanner.c"
 yy129:
                YYDEBUG(129, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2159,24 +2151,24 @@ yy132:
 yy134:
                YYDEBUG(134, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1679 "Zend/zend_language_scanner.l"
+#line 1671 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 2169 "Zend/zend_language_scanner.c"
+#line 2161 "Zend/zend_language_scanner.c"
 yy135:
                YYDEBUG(135, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(136, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1333 "Zend/zend_language_scanner.l"
+#line 1325 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 2180 "Zend/zend_language_scanner.c"
+#line 2172 "Zend/zend_language_scanner.c"
 yy137:
                YYDEBUG(137, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2187,7 +2179,7 @@ yy138:
                ++YYCURSOR;
                YYDEBUG(139, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1671 "Zend/zend_language_scanner.l"
+#line 1663 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -2195,7 +2187,7 @@ yy138:
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 2199 "Zend/zend_language_scanner.c"
+#line 2191 "Zend/zend_language_scanner.c"
 yy140:
                YYDEBUG(140, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2213,7 +2205,7 @@ yy141:
                ++YYCURSOR;
                YYDEBUG(142, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1661 "Zend/zend_language_scanner.l"
+#line 1653 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -2221,7 +2213,7 @@ yy141:
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 2225 "Zend/zend_language_scanner.c"
+#line 2217 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_END_HEREDOC:
@@ -2233,15 +2225,15 @@ yyc_ST_END_HEREDOC:
        ++YYCURSOR;
        YYDEBUG(146, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 2104 "Zend/zend_language_scanner.l"
+#line 2096 "Zend/zend_language_scanner.l"
        { return 0; }
-#line 2239 "Zend/zend_language_scanner.c"
+#line 2231 "Zend/zend_language_scanner.c"
 yy147:
        YYDEBUG(147, *YYCURSOR);
        ++YYCURSOR;
        YYDEBUG(148, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 1982 "Zend/zend_language_scanner.l"
+#line 1974 "Zend/zend_language_scanner.l"
        {
        YYCURSOR += CG(heredoc_len) - 1;
        yyleng = CG(heredoc_len);
@@ -2253,7 +2245,7 @@ yy147:
        BEGIN(ST_IN_SCRIPTING);
        return T_END_HEREDOC;
 }
-#line 2257 "Zend/zend_language_scanner.c"
+#line 2249 "Zend/zend_language_scanner.c"
 /* *********************************** */
 yyc_ST_HEREDOC:
        {
@@ -2323,12 +2315,12 @@ yyc_ST_HEREDOC:
 yy151:
                YYDEBUG(151, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2040 "Zend/zend_language_scanner.l"
+#line 2032 "Zend/zend_language_scanner.l"
                {
        zend_scan_escape_string(zendlval, yytext, yyleng, 0 TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 2332 "Zend/zend_language_scanner.c"
+#line 2324 "Zend/zend_language_scanner.c"
 yy152:
                YYDEBUG(152, *YYCURSOR);
                yyaccept = 0;
@@ -2379,13 +2371,13 @@ yy154:
 yy155:
                YYDEBUG(155, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1996 "Zend/zend_language_scanner.l"
+#line 1988 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return T_CURLY_OPEN;
 }
-#line 2389 "Zend/zend_language_scanner.c"
+#line 2381 "Zend/zend_language_scanner.c"
 yy156:
                YYDEBUG(156, *YYCURSOR);
                yyaccept = 0;
@@ -2636,13 +2628,13 @@ yy172:
 yy174:
                YYDEBUG(174, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2045 "Zend/zend_language_scanner.l"
+#line 2037 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        zend_scan_escape_string(zendlval, yytext, yyleng, 0 TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 2646 "Zend/zend_language_scanner.c"
+#line 2638 "Zend/zend_language_scanner.c"
 yy175:
                YYDEBUG(175, *YYCURSOR);
                yyaccept = 2;
@@ -2741,7 +2733,7 @@ yy181:
                ++YYCURSOR;
                YYDEBUG(182, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1945 "Zend/zend_language_scanner.l"
+#line 1937 "Zend/zend_language_scanner.l"
                {
        char *end = yytext + yyleng - 1;
 
@@ -2778,7 +2770,7 @@ yy181:
                yymore();
        }
 }
-#line 2782 "Zend/zend_language_scanner.c"
+#line 2774 "Zend/zend_language_scanner.c"
 yy183:
                YYDEBUG(183, *YYCURSOR);
                yyaccept = 2;
@@ -3038,24 +3030,24 @@ yy202:
 yy204:
                YYDEBUG(204, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1679 "Zend/zend_language_scanner.l"
+#line 1671 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 3048 "Zend/zend_language_scanner.c"
+#line 3040 "Zend/zend_language_scanner.c"
 yy205:
                YYDEBUG(205, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(206, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1333 "Zend/zend_language_scanner.l"
+#line 1325 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 3059 "Zend/zend_language_scanner.c"
+#line 3051 "Zend/zend_language_scanner.c"
 yy207:
                YYDEBUG(207, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3066,7 +3058,7 @@ yy208:
                ++YYCURSOR;
                YYDEBUG(209, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1671 "Zend/zend_language_scanner.l"
+#line 1663 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -3074,7 +3066,7 @@ yy208:
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 3078 "Zend/zend_language_scanner.c"
+#line 3070 "Zend/zend_language_scanner.c"
 yy210:
                YYDEBUG(210, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3092,7 +3084,7 @@ yy211:
                ++YYCURSOR;
                YYDEBUG(212, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1661 "Zend/zend_language_scanner.l"
+#line 1653 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -3100,7 +3092,7 @@ yy211:
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 3104 "Zend/zend_language_scanner.c"
+#line 3096 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_IN_SCRIPTING:
@@ -3298,9 +3290,9 @@ yy215:
                ++YYCURSOR;
                YYDEBUG(216, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2104 "Zend/zend_language_scanner.l"
+#line 2096 "Zend/zend_language_scanner.l"
                { return 0; }
-#line 3304 "Zend/zend_language_scanner.c"
+#line 3296 "Zend/zend_language_scanner.c"
 yy217:
                YYDEBUG(217, *YYCURSOR);
                ++YYCURSOR;
@@ -3323,13 +3315,13 @@ yy217:
 yy218:
                YYDEBUG(218, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1703 "Zend/zend_language_scanner.l"
+#line 1695 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
        return T_STRING;
 }
-#line 3333 "Zend/zend_language_scanner.c"
+#line 3325 "Zend/zend_language_scanner.c"
 yy219:
                YYDEBUG(219, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3576,11 +3568,11 @@ yy231:
 yy232:
                YYDEBUG(232, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1322 "Zend/zend_language_scanner.l"
+#line 1314 "Zend/zend_language_scanner.l"
                {
        return yytext[0];
 }
-#line 3584 "Zend/zend_language_scanner.c"
+#line 3576 "Zend/zend_language_scanner.c"
 yy233:
                YYDEBUG(233, *YYCURSOR);
                ++YYCURSOR;
@@ -3589,7 +3581,7 @@ yy233:
 yy234:
                YYDEBUG(234, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1057 "Zend/zend_language_scanner.l"
+#line 1049 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
@@ -3597,7 +3589,7 @@ yy234:
        HANDLE_NEWLINES(yytext, yyleng);
        return T_WHITESPACE;
 }
-#line 3601 "Zend/zend_language_scanner.c"
+#line 3593 "Zend/zend_language_scanner.c"
 yy235:
                YYDEBUG(235, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3608,11 +3600,11 @@ yy236:
                ++YYCURSOR;
                YYDEBUG(237, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1086 "Zend/zend_language_scanner.l"
+#line 1078 "Zend/zend_language_scanner.l"
                {
        return T_NS_SEPARATOR;
 }
-#line 3616 "Zend/zend_language_scanner.c"
+#line 3608 "Zend/zend_language_scanner.c"
 yy238:
                YYDEBUG(238, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3840,18 +3832,18 @@ yy261:
                ++YYCURSOR;
                YYDEBUG(262, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1327 "Zend/zend_language_scanner.l"
+#line 1319 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return '{';
 }
-#line 3849 "Zend/zend_language_scanner.c"
+#line 3841 "Zend/zend_language_scanner.c"
 yy263:
                YYDEBUG(263, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(264, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1339 "Zend/zend_language_scanner.l"
+#line 1331 "Zend/zend_language_scanner.l"
                {
        RESET_DOC_COMMENT();
        if (!zend_stack_is_empty(&SCNG(state_stack))) {
@@ -3859,7 +3851,7 @@ yy263:
        }
        return '}';
 }
-#line 3863 "Zend/zend_language_scanner.c"
+#line 3855 "Zend/zend_language_scanner.c"
 yy265:
                YYDEBUG(265, *YYCURSOR);
                yyaccept = 2;
@@ -3882,7 +3874,7 @@ yy265:
 yy266:
                YYDEBUG(266, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1365 "Zend/zend_language_scanner.l"
+#line 1357 "Zend/zend_language_scanner.l"
                {
        if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
                zendlval->value.lval = strtol(yytext, NULL, 0);
@@ -3903,7 +3895,7 @@ yy266:
        zendlval->type = IS_LONG;
        return T_LNUMBER;
 }
-#line 3907 "Zend/zend_language_scanner.c"
+#line 3899 "Zend/zend_language_scanner.c"
 yy267:
                YYDEBUG(267, *YYCURSOR);
                yyaccept = 2;
@@ -3931,12 +3923,12 @@ yy269:
 yy270:
                YYDEBUG(270, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1710 "Zend/zend_language_scanner.l"
+#line 1702 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_ONE_LINE_COMMENT);
        yymore();
 }
-#line 3940 "Zend/zend_language_scanner.c"
+#line 3932 "Zend/zend_language_scanner.c"
 yy271:
                YYDEBUG(271, *YYCURSOR);
                yyaccept = 3;
@@ -3945,12 +3937,12 @@ yy271:
 yy272:
                YYDEBUG(272, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1882 "Zend/zend_language_scanner.l"
+#line 1874 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_DOUBLE_QUOTES);
        return '"';
 }
-#line 3954 "Zend/zend_language_scanner.c"
+#line 3946 "Zend/zend_language_scanner.c"
 yy273:
                YYDEBUG(273, *YYCURSOR);
                yyaccept = 4;
@@ -3959,23 +3951,23 @@ yy273:
 yy274:
                YYDEBUG(274, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2106 "Zend/zend_language_scanner.l"
+#line 2098 "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 3968 "Zend/zend_language_scanner.c"
+#line 3960 "Zend/zend_language_scanner.c"
 yy275:
                YYDEBUG(275, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(276, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1933 "Zend/zend_language_scanner.l"
+#line 1925 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_BACKQUOTE);
        return '`';
 }
-#line 3979 "Zend/zend_language_scanner.c"
+#line 3971 "Zend/zend_language_scanner.c"
 yy277:
                YYDEBUG(277, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4033,7 +4025,7 @@ yy282:
                ++YYCURSOR;
                YYDEBUG(283, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1831 "Zend/zend_language_scanner.l"
+#line 1823 "Zend/zend_language_scanner.l"
                {
        register char *s, *t;
        char *end;
@@ -4083,7 +4075,7 @@ yy282:
 #endif /* ZEND_MULTIBYTE */
        return T_CONSTANT_ENCAPSED_STRING;
 }
-#line 4087 "Zend/zend_language_scanner.c"
+#line 4079 "Zend/zend_language_scanner.c"
 yy284:
                YYDEBUG(284, *YYCURSOR);
                ++YYCURSOR;
@@ -4149,14 +4141,14 @@ yy291:
                ++YYCURSOR;
                YYDEBUG(292, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1823 "Zend/zend_language_scanner.l"
+#line 1815 "Zend/zend_language_scanner.l"
                {
        int bprefix = (yytext[0] != '"') ? 1 : 0;
 
        zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"' TSRMLS_CC);
        return T_CONSTANT_ENCAPSED_STRING;
 }
-#line 4160 "Zend/zend_language_scanner.c"
+#line 4152 "Zend/zend_language_scanner.c"
 yy293:
                YYDEBUG(293, *YYCURSOR);
                ++YYCURSOR;
@@ -4190,13 +4182,13 @@ yy296:
 yy298:
                YYDEBUG(298, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1426 "Zend/zend_language_scanner.l"
+#line 1418 "Zend/zend_language_scanner.l"
                {
        zendlval->value.dval = zend_strtod(yytext, NULL);
        zendlval->type = IS_DOUBLE;
        return T_DNUMBER;
 }
-#line 4200 "Zend/zend_language_scanner.c"
+#line 4192 "Zend/zend_language_scanner.c"
 yy299:
                YYDEBUG(299, *YYCURSOR);
                yyaccept = 2;
@@ -4258,7 +4250,7 @@ yy306:
                }
                YYDEBUG(308, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1386 "Zend/zend_language_scanner.l"
+#line 1378 "Zend/zend_language_scanner.l"
                {
        char *hex = yytext + 2; /* Skip "0x" */
        int len = yyleng - 2;
@@ -4279,7 +4271,7 @@ yy306:
                return T_DNUMBER;
        }
 }
-#line 4283 "Zend/zend_language_scanner.c"
+#line 4275 "Zend/zend_language_scanner.c"
 yy309:
                YYDEBUG(309, *YYCURSOR);
                ++YYCURSOR;
@@ -4288,7 +4280,7 @@ yy309:
 yy310:
                YYDEBUG(310, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1798 "Zend/zend_language_scanner.l"
+#line 1790 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
@@ -4296,7 +4288,7 @@ yy310:
        BEGIN(INITIAL);
        return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
 }
-#line 4300 "Zend/zend_language_scanner.c"
+#line 4292 "Zend/zend_language_scanner.c"
 yy311:
                YYDEBUG(311, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4330,13 +4322,13 @@ yy313:
 yy315:
                YYDEBUG(315, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1679 "Zend/zend_language_scanner.l"
+#line 1671 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 4340 "Zend/zend_language_scanner.c"
+#line 4332 "Zend/zend_language_scanner.c"
 yy316:
                YYDEBUG(316, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4350,11 +4342,11 @@ yy317:
                }
                YYDEBUG(318, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1310 "Zend/zend_language_scanner.l"
+#line 1302 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_XOR;
 }
-#line 4358 "Zend/zend_language_scanner.c"
+#line 4350 "Zend/zend_language_scanner.c"
 yy319:
                YYDEBUG(319, *YYCURSOR);
                ++YYCURSOR;
@@ -4363,61 +4355,61 @@ yy319:
                }
                YYDEBUG(320, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1302 "Zend/zend_language_scanner.l"
+#line 1294 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_OR;
 }
-#line 4371 "Zend/zend_language_scanner.c"
+#line 4363 "Zend/zend_language_scanner.c"
 yy321:
                YYDEBUG(321, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(322, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1290 "Zend/zend_language_scanner.l"
+#line 1282 "Zend/zend_language_scanner.l"
                {
        return T_XOR_EQUAL;
 }
-#line 4381 "Zend/zend_language_scanner.c"
+#line 4373 "Zend/zend_language_scanner.c"
 yy323:
                YYDEBUG(323, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(324, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1294 "Zend/zend_language_scanner.l"
+#line 1286 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_OR;
 }
-#line 4391 "Zend/zend_language_scanner.c"
+#line 4383 "Zend/zend_language_scanner.c"
 yy325:
                YYDEBUG(325, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(326, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1286 "Zend/zend_language_scanner.l"
+#line 1278 "Zend/zend_language_scanner.l"
                {
        return T_OR_EQUAL;
 }
-#line 4401 "Zend/zend_language_scanner.c"
+#line 4393 "Zend/zend_language_scanner.c"
 yy327:
                YYDEBUG(327, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(328, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1298 "Zend/zend_language_scanner.l"
+#line 1290 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_AND;
 }
-#line 4411 "Zend/zend_language_scanner.c"
+#line 4403 "Zend/zend_language_scanner.c"
 yy329:
                YYDEBUG(329, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(330, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1282 "Zend/zend_language_scanner.l"
+#line 1274 "Zend/zend_language_scanner.l"
                {
        return T_AND_EQUAL;
 }
-#line 4421 "Zend/zend_language_scanner.c"
+#line 4413 "Zend/zend_language_scanner.c"
 yy331:
                YYDEBUG(331, *YYCURSOR);
                ++YYCURSOR;
@@ -4426,7 +4418,7 @@ yy331:
 yy332:
                YYDEBUG(332, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1807 "Zend/zend_language_scanner.l"
+#line 1799 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                BEGIN(INITIAL);
@@ -4439,17 +4431,17 @@ yy332:
                return yytext[0];
        }
 }
-#line 4443 "Zend/zend_language_scanner.c"
+#line 4435 "Zend/zend_language_scanner.c"
 yy333:
                YYDEBUG(333, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(334, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1270 "Zend/zend_language_scanner.l"
+#line 1262 "Zend/zend_language_scanner.l"
                {
        return T_MOD_EQUAL;
 }
-#line 4453 "Zend/zend_language_scanner.c"
+#line 4445 "Zend/zend_language_scanner.c"
 yy335:
                YYDEBUG(335, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4480,11 +4472,11 @@ yy339:
                ++YYCURSOR;
                YYDEBUG(340, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1266 "Zend/zend_language_scanner.l"
+#line 1258 "Zend/zend_language_scanner.l"
                {
        return T_CONCAT_EQUAL;
 }
-#line 4488 "Zend/zend_language_scanner.c"
+#line 4480 "Zend/zend_language_scanner.c"
 yy341:
                YYDEBUG(341, *YYCURSOR);
                yyaccept = 6;
@@ -4493,12 +4485,12 @@ yy341:
 yy342:
                YYDEBUG(342, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1770 "Zend/zend_language_scanner.l"
+#line 1762 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_COMMENT);
        yymore();
 }
-#line 4502 "Zend/zend_language_scanner.c"
+#line 4494 "Zend/zend_language_scanner.c"
 yy343:
                YYDEBUG(343, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4508,11 +4500,11 @@ yy344:
                ++YYCURSOR;
                YYDEBUG(345, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1262 "Zend/zend_language_scanner.l"
+#line 1254 "Zend/zend_language_scanner.l"
                {
        return T_DIV_EQUAL;
 }
-#line 4516 "Zend/zend_language_scanner.c"
+#line 4508 "Zend/zend_language_scanner.c"
 yy346:
                YYDEBUG(346, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4531,54 +4523,54 @@ yy347:
                }
                YYDEBUG(349, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1759 "Zend/zend_language_scanner.l"
+#line 1751 "Zend/zend_language_scanner.l"
                {
        RESET_DOC_COMMENT();
        BEGIN(ST_DOC_COMMENT);
        yymore();
 }
-#line 4541 "Zend/zend_language_scanner.c"
+#line 4533 "Zend/zend_language_scanner.c"
 yy350:
                YYDEBUG(350, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(351, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1258 "Zend/zend_language_scanner.l"
+#line 1250 "Zend/zend_language_scanner.l"
                {
        return T_MUL_EQUAL;
 }
-#line 4551 "Zend/zend_language_scanner.c"
+#line 4543 "Zend/zend_language_scanner.c"
 yy352:
                YYDEBUG(352, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy356;
                YYDEBUG(353, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1318 "Zend/zend_language_scanner.l"
+#line 1310 "Zend/zend_language_scanner.l"
                {
        return T_SR;
 }
-#line 4562 "Zend/zend_language_scanner.c"
+#line 4554 "Zend/zend_language_scanner.c"
 yy354:
                YYDEBUG(354, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(355, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1246 "Zend/zend_language_scanner.l"
+#line 1238 "Zend/zend_language_scanner.l"
                {
        return T_IS_GREATER_OR_EQUAL;
 }
-#line 4572 "Zend/zend_language_scanner.c"
+#line 4564 "Zend/zend_language_scanner.c"
 yy356:
                YYDEBUG(356, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(357, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1278 "Zend/zend_language_scanner.l"
+#line 1270 "Zend/zend_language_scanner.l"
                {
        return T_SR_EQUAL;
 }
-#line 4582 "Zend/zend_language_scanner.c"
+#line 4574 "Zend/zend_language_scanner.c"
 yy358:
                YYDEBUG(358, *YYCURSOR);
                yyaccept = 7;
@@ -4589,11 +4581,11 @@ yy358:
 yy359:
                YYDEBUG(359, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1314 "Zend/zend_language_scanner.l"
+#line 1306 "Zend/zend_language_scanner.l"
                {
        return T_SL;
 }
-#line 4597 "Zend/zend_language_scanner.c"
+#line 4589 "Zend/zend_language_scanner.c"
 yy360:
                YYDEBUG(360, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4605,22 +4597,22 @@ yy361:
                ++YYCURSOR;
                YYDEBUG(362, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1242 "Zend/zend_language_scanner.l"
+#line 1234 "Zend/zend_language_scanner.l"
                {
        return T_IS_SMALLER_OR_EQUAL;
 }
-#line 4613 "Zend/zend_language_scanner.c"
+#line 4605 "Zend/zend_language_scanner.c"
 yy363:
                YYDEBUG(363, *YYCURSOR);
                ++YYCURSOR;
 yy364:
                YYDEBUG(364, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1238 "Zend/zend_language_scanner.l"
+#line 1230 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_EQUAL;
 }
-#line 4624 "Zend/zend_language_scanner.c"
+#line 4616 "Zend/zend_language_scanner.c"
 yy365:
                YYDEBUG(365, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4671,11 +4663,11 @@ yy372:
                ++YYCURSOR;
                YYDEBUG(373, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1274 "Zend/zend_language_scanner.l"
+#line 1266 "Zend/zend_language_scanner.l"
                {
        return T_SL_EQUAL;
 }
-#line 4679 "Zend/zend_language_scanner.c"
+#line 4671 "Zend/zend_language_scanner.c"
 yy374:
                YYDEBUG(374, *YYCURSOR);
                ++YYCURSOR;
@@ -4780,7 +4772,7 @@ yy383:
 yy384:
                YYDEBUG(384, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1888 "Zend/zend_language_scanner.l"
+#line 1880 "Zend/zend_language_scanner.l"
                {
        char *s;
        int bprefix = (yytext[0] != '<') ? 1 : 0;
@@ -4824,7 +4816,7 @@ yy384:
 
        return T_START_HEREDOC;
 }
-#line 4828 "Zend/zend_language_scanner.c"
+#line 4820 "Zend/zend_language_scanner.c"
 yy385:
                YYDEBUG(385, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4864,31 +4856,31 @@ yy388:
                ++YYCURSOR;
                YYDEBUG(390, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1230 "Zend/zend_language_scanner.l"
+#line 1222 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_IDENTICAL;
 }
-#line 4872 "Zend/zend_language_scanner.c"
+#line 4864 "Zend/zend_language_scanner.c"
 yy391:
                YYDEBUG(391, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(392, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1250 "Zend/zend_language_scanner.l"
+#line 1242 "Zend/zend_language_scanner.l"
                {
        return T_PLUS_EQUAL;
 }
-#line 4882 "Zend/zend_language_scanner.c"
+#line 4874 "Zend/zend_language_scanner.c"
 yy393:
                YYDEBUG(393, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(394, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1218 "Zend/zend_language_scanner.l"
+#line 1210 "Zend/zend_language_scanner.l"
                {
        return T_INC;
 }
-#line 4892 "Zend/zend_language_scanner.c"
+#line 4884 "Zend/zend_language_scanner.c"
 yy395:
                YYDEBUG(395, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4907,42 +4899,42 @@ yy397:
                }
                YYDEBUG(398, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1210 "Zend/zend_language_scanner.l"
+#line 1202 "Zend/zend_language_scanner.l"
                {
        return T_LIST;
 }
-#line 4915 "Zend/zend_language_scanner.c"
+#line 4907 "Zend/zend_language_scanner.c"
 yy399:
                YYDEBUG(399, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy403;
                YYDEBUG(400, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1234 "Zend/zend_language_scanner.l"
+#line 1226 "Zend/zend_language_scanner.l"
                {
        return T_IS_EQUAL;
 }
-#line 4926 "Zend/zend_language_scanner.c"
+#line 4918 "Zend/zend_language_scanner.c"
 yy401:
                YYDEBUG(401, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(402, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1206 "Zend/zend_language_scanner.l"
+#line 1198 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_ARROW;
 }
-#line 4936 "Zend/zend_language_scanner.c"
+#line 4928 "Zend/zend_language_scanner.c"
 yy403:
                YYDEBUG(403, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(404, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1226 "Zend/zend_language_scanner.l"
+#line 1218 "Zend/zend_language_scanner.l"
                {
        return T_IS_IDENTICAL;
 }
-#line 4946 "Zend/zend_language_scanner.c"
+#line 4938 "Zend/zend_language_scanner.c"
 yy405:
                YYDEBUG(405, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5064,7 +5056,7 @@ yy420:
                }
                YYDEBUG(423, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1530 "Zend/zend_language_scanner.l"
+#line 1522 "Zend/zend_language_scanner.l"
                {
        if (CG(current_namespace)) {
                *zendlval = *CG(current_namespace);
@@ -5074,7 +5066,7 @@ yy420:
        }
        return T_NS_C;
 }
-#line 5078 "Zend/zend_language_scanner.c"
+#line 5070 "Zend/zend_language_scanner.c"
 yy424:
                YYDEBUG(424, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5094,7 +5086,7 @@ yy425:
                }
                YYDEBUG(428, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1503 "Zend/zend_language_scanner.l"
+#line 1495 "Zend/zend_language_scanner.l"
                {
        char *filename = zend_get_compiled_filename(TSRMLS_C);
        const size_t filename_len = strlen(filename);
@@ -5121,7 +5113,7 @@ yy425:
        zendlval->type = IS_STRING;
        return T_DIR;
 }
-#line 5125 "Zend/zend_language_scanner.c"
+#line 5117 "Zend/zend_language_scanner.c"
 yy429:
                YYDEBUG(429, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5146,13 +5138,13 @@ yy431:
                }
                YYDEBUG(434, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1485 "Zend/zend_language_scanner.l"
+#line 1477 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = CG(zend_lineno);
        zendlval->type = IS_LONG;
        return T_LINE;
 }
-#line 5156 "Zend/zend_language_scanner.c"
+#line 5148 "Zend/zend_language_scanner.c"
 yy435:
                YYDEBUG(435, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5187,7 +5179,7 @@ yy439:
                }
                YYDEBUG(442, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1464 "Zend/zend_language_scanner.l"
+#line 1456 "Zend/zend_language_scanner.l"
                {
        char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL;
        char *func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL;
@@ -5208,7 +5200,7 @@ yy439:
        zendlval->type = IS_STRING;
        return T_METHOD_C;
 }
-#line 5212 "Zend/zend_language_scanner.c"
+#line 5204 "Zend/zend_language_scanner.c"
 yy443:
                YYDEBUG(443, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5259,7 +5251,7 @@ yy450:
                }
                YYDEBUG(453, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1448 "Zend/zend_language_scanner.l"
+#line 1440 "Zend/zend_language_scanner.l"
                {
        char *func_name = NULL;
 
@@ -5275,7 +5267,7 @@ yy450:
        zendlval->type = IS_STRING;
        return T_FUNC_C;
 }
-#line 5279 "Zend/zend_language_scanner.c"
+#line 5271 "Zend/zend_language_scanner.c"
 yy454:
                YYDEBUG(454, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5295,7 +5287,7 @@ yy455:
                }
                YYDEBUG(458, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1491 "Zend/zend_language_scanner.l"
+#line 1483 "Zend/zend_language_scanner.l"
                {
        char *filename = zend_get_compiled_filename(TSRMLS_C);
 
@@ -5307,7 +5299,7 @@ yy455:
        zendlval->type = IS_STRING;
        return T_FILE;
 }
-#line 5311 "Zend/zend_language_scanner.c"
+#line 5303 "Zend/zend_language_scanner.c"
 yy459:
                YYDEBUG(459, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5337,7 +5329,7 @@ yy462:
                }
                YYDEBUG(465, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1432 "Zend/zend_language_scanner.l"
+#line 1424 "Zend/zend_language_scanner.l"
                {
        char *class_name = NULL;
 
@@ -5353,7 +5345,7 @@ yy462:
        zendlval->type = IS_STRING;
        return T_CLASS_C;
 }
-#line 5357 "Zend/zend_language_scanner.c"
+#line 5349 "Zend/zend_language_scanner.c"
 yy466:
                YYDEBUG(466, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5415,11 +5407,11 @@ yy477:
                }
                YYDEBUG(478, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1174 "Zend/zend_language_scanner.l"
+#line 1166 "Zend/zend_language_scanner.l"
                {
        return T_HALT_COMPILER;
 }
-#line 5423 "Zend/zend_language_scanner.c"
+#line 5415 "Zend/zend_language_scanner.c"
 yy479:
                YYDEBUG(479, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5439,11 +5431,11 @@ yy481:
                }
                YYDEBUG(482, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1158 "Zend/zend_language_scanner.l"
+#line 1150 "Zend/zend_language_scanner.l"
                {
        return T_USE;
 }
-#line 5447 "Zend/zend_language_scanner.c"
+#line 5439 "Zend/zend_language_scanner.c"
 yy483:
                YYDEBUG(483, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5462,11 +5454,11 @@ yy485:
                }
                YYDEBUG(486, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1202 "Zend/zend_language_scanner.l"
+#line 1194 "Zend/zend_language_scanner.l"
                {
        return T_UNSET;
 }
-#line 5470 "Zend/zend_language_scanner.c"
+#line 5462 "Zend/zend_language_scanner.c"
 yy487:
                YYDEBUG(487, *YYCURSOR);
                ++YYCURSOR;
@@ -5638,11 +5630,11 @@ yy502:
                ++YYCURSOR;
                YYDEBUG(504, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1102 "Zend/zend_language_scanner.l"
+#line 1094 "Zend/zend_language_scanner.l"
                {
        return T_INT_CAST;
 }
-#line 5646 "Zend/zend_language_scanner.c"
+#line 5638 "Zend/zend_language_scanner.c"
 yy505:
                YYDEBUG(505, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5686,11 +5678,11 @@ yy510:
                ++YYCURSOR;
                YYDEBUG(513, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1106 "Zend/zend_language_scanner.l"
+#line 1098 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_CAST;
 }
-#line 5694 "Zend/zend_language_scanner.c"
+#line 5686 "Zend/zend_language_scanner.c"
 yy514:
                YYDEBUG(514, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5760,11 +5752,11 @@ yy524:
                ++YYCURSOR;
                YYDEBUG(527, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1110 "Zend/zend_language_scanner.l"
+#line 1102 "Zend/zend_language_scanner.l"
                {
        return T_STRING_CAST;
 }
-#line 5768 "Zend/zend_language_scanner.c"
+#line 5760 "Zend/zend_language_scanner.c"
 yy528:
                YYDEBUG(528, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5797,11 +5789,11 @@ yy531:
                ++YYCURSOR;
                YYDEBUG(534, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1118 "Zend/zend_language_scanner.l"
+#line 1110 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY_CAST;
 }
-#line 5805 "Zend/zend_language_scanner.c"
+#line 5797 "Zend/zend_language_scanner.c"
 yy535:
                YYDEBUG(535, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5839,11 +5831,11 @@ yy539:
                ++YYCURSOR;
                YYDEBUG(542, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1122 "Zend/zend_language_scanner.l"
+#line 1114 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_CAST;
 }
-#line 5847 "Zend/zend_language_scanner.c"
+#line 5839 "Zend/zend_language_scanner.c"
 yy543:
                YYDEBUG(543, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5884,11 +5876,11 @@ yy548:
                ++YYCURSOR;
                YYDEBUG(550, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1126 "Zend/zend_language_scanner.l"
+#line 1118 "Zend/zend_language_scanner.l"
                {
        return T_BOOL_CAST;
 }
-#line 5892 "Zend/zend_language_scanner.c"
+#line 5884 "Zend/zend_language_scanner.c"
 yy551:
                YYDEBUG(551, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5932,11 +5924,11 @@ yy556:
                ++YYCURSOR;
                YYDEBUG(559, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1114 "Zend/zend_language_scanner.l"
+#line 1106 "Zend/zend_language_scanner.l"
                {
        return T_STRING_CAST;
 }
-#line 5940 "Zend/zend_language_scanner.c"
+#line 5932 "Zend/zend_language_scanner.c"
 yy560:
                YYDEBUG(560, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5969,11 +5961,11 @@ yy563:
                ++YYCURSOR;
                YYDEBUG(566, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1130 "Zend/zend_language_scanner.l"
+#line 1122 "Zend/zend_language_scanner.l"
                {
        return T_UNSET_CAST;
 }
-#line 5977 "Zend/zend_language_scanner.c"
+#line 5969 "Zend/zend_language_scanner.c"
 yy567:
                YYDEBUG(567, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5987,11 +5979,11 @@ yy568:
                }
                YYDEBUG(569, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1098 "Zend/zend_language_scanner.l"
+#line 1090 "Zend/zend_language_scanner.l"
                {
        return T_VAR;
 }
-#line 5995 "Zend/zend_language_scanner.c"
+#line 5987 "Zend/zend_language_scanner.c"
 yy570:
                YYDEBUG(570, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6011,11 +6003,11 @@ yy572:
                }
                YYDEBUG(573, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1090 "Zend/zend_language_scanner.l"
+#line 1082 "Zend/zend_language_scanner.l"
                {
        return T_NEW;
 }
-#line 6019 "Zend/zend_language_scanner.c"
+#line 6011 "Zend/zend_language_scanner.c"
 yy574:
                YYDEBUG(574, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6054,21 +6046,21 @@ yy580:
                }
                YYDEBUG(581, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1154 "Zend/zend_language_scanner.l"
+#line 1146 "Zend/zend_language_scanner.l"
                {
        return T_NAMESPACE;
 }
-#line 6062 "Zend/zend_language_scanner.c"
+#line 6054 "Zend/zend_language_scanner.c"
 yy582:
                YYDEBUG(582, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(583, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1082 "Zend/zend_language_scanner.l"
+#line 1074 "Zend/zend_language_scanner.l"
                {
        return T_PAAMAYIM_NEKUDOTAYIM;
 }
-#line 6072 "Zend/zend_language_scanner.c"
+#line 6064 "Zend/zend_language_scanner.c"
 yy584:
                YYDEBUG(584, *YYCURSOR);
                ++YYCURSOR;
@@ -6090,32 +6082,32 @@ yy586:
                ++YYCURSOR;
                YYDEBUG(587, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1254 "Zend/zend_language_scanner.l"
+#line 1246 "Zend/zend_language_scanner.l"
                {
        return T_MINUS_EQUAL;
 }
-#line 6098 "Zend/zend_language_scanner.c"
+#line 6090 "Zend/zend_language_scanner.c"
 yy588:
                YYDEBUG(588, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(589, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1222 "Zend/zend_language_scanner.l"
+#line 1214 "Zend/zend_language_scanner.l"
                {
        return T_DEC;
 }
-#line 6108 "Zend/zend_language_scanner.c"
+#line 6100 "Zend/zend_language_scanner.c"
 yy590:
                YYDEBUG(590, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(591, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1052 "Zend/zend_language_scanner.l"
+#line 1044 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
        return T_OBJECT_OPERATOR;
 }
-#line 6119 "Zend/zend_language_scanner.c"
+#line 6111 "Zend/zend_language_scanner.c"
 yy592:
                YYDEBUG(592, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6160,11 +6152,11 @@ yy597:
                }
                YYDEBUG(598, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1198 "Zend/zend_language_scanner.l"
+#line 1190 "Zend/zend_language_scanner.l"
                {
        return T_PUBLIC;
 }
-#line 6168 "Zend/zend_language_scanner.c"
+#line 6160 "Zend/zend_language_scanner.c"
 yy599:
                YYDEBUG(599, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6219,11 +6211,11 @@ yy606:
                }
                YYDEBUG(607, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1194 "Zend/zend_language_scanner.l"
+#line 1186 "Zend/zend_language_scanner.l"
                {
        return T_PROTECTED;
 }
-#line 6227 "Zend/zend_language_scanner.c"
+#line 6219 "Zend/zend_language_scanner.c"
 yy608:
                YYDEBUG(608, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6253,11 +6245,11 @@ yy612:
                }
                YYDEBUG(613, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1190 "Zend/zend_language_scanner.l"
+#line 1182 "Zend/zend_language_scanner.l"
                {
        return T_PRIVATE;
 }
-#line 6261 "Zend/zend_language_scanner.c"
+#line 6253 "Zend/zend_language_scanner.c"
 yy614:
                YYDEBUG(614, *YYCURSOR);
                ++YYCURSOR;
@@ -6266,11 +6258,11 @@ yy614:
                }
                YYDEBUG(615, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1032 "Zend/zend_language_scanner.l"
+#line 1024 "Zend/zend_language_scanner.l"
                {
        return T_PRINT;
 }
-#line 6274 "Zend/zend_language_scanner.c"
+#line 6266 "Zend/zend_language_scanner.c"
 yy616:
                YYDEBUG(616, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6295,11 +6287,11 @@ yy619:
                }
                YYDEBUG(620, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1024 "Zend/zend_language_scanner.l"
+#line 1016 "Zend/zend_language_scanner.l"
                {
        return T_GOTO;
 }
-#line 6303 "Zend/zend_language_scanner.c"
+#line 6295 "Zend/zend_language_scanner.c"
 yy621:
                YYDEBUG(621, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6323,11 +6315,11 @@ yy624:
                }
                YYDEBUG(625, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1162 "Zend/zend_language_scanner.l"
+#line 1154 "Zend/zend_language_scanner.l"
                {
        return T_GLOBAL;
 }
-#line 6331 "Zend/zend_language_scanner.c"
+#line 6323 "Zend/zend_language_scanner.c"
 yy626:
                YYDEBUG(626, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6361,11 +6353,11 @@ yy631:
                }
                YYDEBUG(632, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1016 "Zend/zend_language_scanner.l"
+#line 1008 "Zend/zend_language_scanner.l"
                {
        return T_BREAK;
 }
-#line 6369 "Zend/zend_language_scanner.c"
+#line 6361 "Zend/zend_language_scanner.c"
 yy633:
                YYDEBUG(633, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6405,11 +6397,11 @@ yy639:
                }
                YYDEBUG(640, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1000 "Zend/zend_language_scanner.l"
+#line 992 "Zend/zend_language_scanner.l"
                {
        return T_SWITCH;
 }
-#line 6413 "Zend/zend_language_scanner.c"
+#line 6405 "Zend/zend_language_scanner.c"
 yy641:
                YYDEBUG(641, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6433,11 +6425,11 @@ yy644:
                }
                YYDEBUG(645, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1178 "Zend/zend_language_scanner.l"
+#line 1170 "Zend/zend_language_scanner.l"
                {
        return T_STATIC;
 }
-#line 6441 "Zend/zend_language_scanner.c"
+#line 6433 "Zend/zend_language_scanner.c"
 yy646:
                YYDEBUG(646, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6464,11 +6456,11 @@ yy649:
                }
                YYDEBUG(650, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 996 "Zend/zend_language_scanner.l"
+#line 988 "Zend/zend_language_scanner.l"
                {
        return T_AS;
 }
-#line 6472 "Zend/zend_language_scanner.c"
+#line 6464 "Zend/zend_language_scanner.c"
 yy651:
                YYDEBUG(651, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6487,11 +6479,11 @@ yy653:
                }
                YYDEBUG(654, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1214 "Zend/zend_language_scanner.l"
+#line 1206 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY;
 }
-#line 6495 "Zend/zend_language_scanner.c"
+#line 6487 "Zend/zend_language_scanner.c"
 yy655:
                YYDEBUG(655, *YYCURSOR);
                ++YYCURSOR;
@@ -6500,11 +6492,11 @@ yy655:
                }
                YYDEBUG(656, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1306 "Zend/zend_language_scanner.l"
+#line 1298 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_AND;
 }
-#line 6508 "Zend/zend_language_scanner.c"
+#line 6500 "Zend/zend_language_scanner.c"
 yy657:
                YYDEBUG(657, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6538,11 +6530,11 @@ yy662:
                }
                YYDEBUG(663, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1182 "Zend/zend_language_scanner.l"
+#line 1174 "Zend/zend_language_scanner.l"
                {
        return T_ABSTRACT;
 }
-#line 6546 "Zend/zend_language_scanner.c"
+#line 6538 "Zend/zend_language_scanner.c"
 yy664:
                YYDEBUG(664, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6566,11 +6558,11 @@ yy667:
                }
                YYDEBUG(668, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 956 "Zend/zend_language_scanner.l"
+#line 948 "Zend/zend_language_scanner.l"
                {
        return T_WHILE;
 }
-#line 6574 "Zend/zend_language_scanner.c"
+#line 6566 "Zend/zend_language_scanner.c"
 yy669:
                YYDEBUG(669, *YYCURSOR);
                ++YYCURSOR;
@@ -6579,11 +6571,11 @@ yy669:
                }
                YYDEBUG(670, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 940 "Zend/zend_language_scanner.l"
+#line 932 "Zend/zend_language_scanner.l"
                {
        return T_IF;
 }
-#line 6587 "Zend/zend_language_scanner.c"
+#line 6579 "Zend/zend_language_scanner.c"
 yy671:
                YYDEBUG(671, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6635,11 +6627,11 @@ yy676:
                }
                YYDEBUG(677, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1166 "Zend/zend_language_scanner.l"
+#line 1158 "Zend/zend_language_scanner.l"
                {
        return T_ISSET;
 }
-#line 6643 "Zend/zend_language_scanner.c"
+#line 6635 "Zend/zend_language_scanner.c"
 yy678:
                YYDEBUG(678, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6693,11 +6685,11 @@ yy684:
 yy685:
                YYDEBUG(685, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1138 "Zend/zend_language_scanner.l"
+#line 1130 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE;
 }
-#line 6701 "Zend/zend_language_scanner.c"
+#line 6693 "Zend/zend_language_scanner.c"
 yy686:
                YYDEBUG(686, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6726,11 +6718,11 @@ yy690:
                }
                YYDEBUG(691, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1142 "Zend/zend_language_scanner.l"
+#line 1134 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE_ONCE;
 }
-#line 6734 "Zend/zend_language_scanner.c"
+#line 6726 "Zend/zend_language_scanner.c"
 yy692:
                YYDEBUG(692, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6764,11 +6756,11 @@ yy697:
                }
                YYDEBUG(698, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1040 "Zend/zend_language_scanner.l"
+#line 1032 "Zend/zend_language_scanner.l"
                {
        return T_INTERFACE;
 }
-#line 6772 "Zend/zend_language_scanner.c"
+#line 6764 "Zend/zend_language_scanner.c"
 yy699:
                YYDEBUG(699, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6807,11 +6799,11 @@ yy705:
                }
                YYDEBUG(706, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 992 "Zend/zend_language_scanner.l"
+#line 984 "Zend/zend_language_scanner.l"
                {
        return T_INSTANCEOF;
 }
-#line 6815 "Zend/zend_language_scanner.c"
+#line 6807 "Zend/zend_language_scanner.c"
 yy707:
                YYDEBUG(707, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6855,11 +6847,11 @@ yy714:
                }
                YYDEBUG(715, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1048 "Zend/zend_language_scanner.l"
+#line 1040 "Zend/zend_language_scanner.l"
                {
        return T_IMPLEMENTS;
 }
-#line 6863 "Zend/zend_language_scanner.c"
+#line 6855 "Zend/zend_language_scanner.c"
 yy716:
                YYDEBUG(716, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6879,11 +6871,11 @@ yy718:
                }
                YYDEBUG(719, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 928 "Zend/zend_language_scanner.l"
+#line 920 "Zend/zend_language_scanner.l"
                {
        return T_TRY;
 }
-#line 6887 "Zend/zend_language_scanner.c"
+#line 6879 "Zend/zend_language_scanner.c"
 yy720:
                YYDEBUG(720, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6902,11 +6894,11 @@ yy722:
                }
                YYDEBUG(723, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 936 "Zend/zend_language_scanner.l"
+#line 928 "Zend/zend_language_scanner.l"
                {
        return T_THROW;
 }
-#line 6910 "Zend/zend_language_scanner.c"
+#line 6902 "Zend/zend_language_scanner.c"
 yy724:
                YYDEBUG(724, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6967,11 +6959,11 @@ yy730:
 yy731:
                YYDEBUG(731, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1146 "Zend/zend_language_scanner.l"
+#line 1138 "Zend/zend_language_scanner.l"
                {
        return T_REQUIRE;
 }
-#line 6975 "Zend/zend_language_scanner.c"
+#line 6967 "Zend/zend_language_scanner.c"
 yy732:
                YYDEBUG(732, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7000,11 +6992,11 @@ yy736:
                }
                YYDEBUG(737, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1150 "Zend/zend_language_scanner.l"
+#line 1142 "Zend/zend_language_scanner.l"
                {
        return T_REQUIRE_ONCE;
 }
-#line 7008 "Zend/zend_language_scanner.c"
+#line 7000 "Zend/zend_language_scanner.c"
 yy738:
                YYDEBUG(738, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7023,11 +7015,11 @@ yy740:
                }
                YYDEBUG(741, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 924 "Zend/zend_language_scanner.l"
+#line 916 "Zend/zend_language_scanner.l"
                {
        return T_RETURN;
 }
-#line 7031 "Zend/zend_language_scanner.c"
+#line 7023 "Zend/zend_language_scanner.c"
 yy742:
                YYDEBUG(742, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7108,11 +7100,11 @@ yy751:
                }
                YYDEBUG(752, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1020 "Zend/zend_language_scanner.l"
+#line 1012 "Zend/zend_language_scanner.l"
                {
        return T_CONTINUE;
 }
-#line 7116 "Zend/zend_language_scanner.c"
+#line 7108 "Zend/zend_language_scanner.c"
 yy753:
                YYDEBUG(753, *YYCURSOR);
                ++YYCURSOR;
@@ -7121,11 +7113,11 @@ yy753:
                }
                YYDEBUG(754, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 920 "Zend/zend_language_scanner.l"
+#line 912 "Zend/zend_language_scanner.l"
                {
        return T_CONST;
 }
-#line 7129 "Zend/zend_language_scanner.c"
+#line 7121 "Zend/zend_language_scanner.c"
 yy755:
                YYDEBUG(755, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7150,11 +7142,11 @@ yy758:
                }
                YYDEBUG(759, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1094 "Zend/zend_language_scanner.l"
+#line 1086 "Zend/zend_language_scanner.l"
                {
        return T_CLONE;
 }
-#line 7158 "Zend/zend_language_scanner.c"
+#line 7150 "Zend/zend_language_scanner.c"
 yy760:
                YYDEBUG(760, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7168,11 +7160,11 @@ yy761:
                }
                YYDEBUG(762, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1036 "Zend/zend_language_scanner.l"
+#line 1028 "Zend/zend_language_scanner.l"
                {
        return T_CLASS;
 }
-#line 7176 "Zend/zend_language_scanner.c"
+#line 7168 "Zend/zend_language_scanner.c"
 yy763:
                YYDEBUG(763, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7192,11 +7184,11 @@ yy765:
                }
                YYDEBUG(766, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1008 "Zend/zend_language_scanner.l"
+#line 1000 "Zend/zend_language_scanner.l"
                {
        return T_CASE;
 }
-#line 7200 "Zend/zend_language_scanner.c"
+#line 7192 "Zend/zend_language_scanner.c"
 yy767:
                YYDEBUG(767, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7210,11 +7202,11 @@ yy768:
                }
                YYDEBUG(769, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 932 "Zend/zend_language_scanner.l"
+#line 924 "Zend/zend_language_scanner.l"
                {
        return T_CATCH;
 }
-#line 7218 "Zend/zend_language_scanner.c"
+#line 7210 "Zend/zend_language_scanner.c"
 yy770:
                YYDEBUG(770, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7265,11 +7257,11 @@ yy778:
                }
                YYDEBUG(779, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 916 "Zend/zend_language_scanner.l"
+#line 908 "Zend/zend_language_scanner.l"
                {
        return T_FUNCTION;
 }
-#line 7273 "Zend/zend_language_scanner.c"
+#line 7265 "Zend/zend_language_scanner.c"
 yy780:
                YYDEBUG(780, *YYCURSOR);
                ++YYCURSOR;
@@ -7293,11 +7285,11 @@ yy780:
 yy781:
                YYDEBUG(781, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 968 "Zend/zend_language_scanner.l"
+#line 960 "Zend/zend_language_scanner.l"
                {
        return T_FOR;
 }
-#line 7301 "Zend/zend_language_scanner.c"
+#line 7293 "Zend/zend_language_scanner.c"
 yy782:
                YYDEBUG(782, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7321,11 +7313,11 @@ yy785:
                }
                YYDEBUG(786, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 976 "Zend/zend_language_scanner.l"
+#line 968 "Zend/zend_language_scanner.l"
                {
        return T_FOREACH;
 }
-#line 7329 "Zend/zend_language_scanner.c"
+#line 7321 "Zend/zend_language_scanner.c"
 yy787:
                YYDEBUG(787, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7344,11 +7336,11 @@ yy789:
                }
                YYDEBUG(790, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1186 "Zend/zend_language_scanner.l"
+#line 1178 "Zend/zend_language_scanner.l"
                {
        return T_FINAL;
 }
-#line 7352 "Zend/zend_language_scanner.c"
+#line 7344 "Zend/zend_language_scanner.c"
 yy791:
                YYDEBUG(791, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7379,11 +7371,11 @@ yy793:
                }
                YYDEBUG(794, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 964 "Zend/zend_language_scanner.l"
+#line 956 "Zend/zend_language_scanner.l"
                {
        return T_DO;
 }
-#line 7387 "Zend/zend_language_scanner.c"
+#line 7379 "Zend/zend_language_scanner.c"
 yy795:
                YYDEBUG(795, *YYCURSOR);
                ++YYCURSOR;
@@ -7392,11 +7384,11 @@ yy795:
                }
                YYDEBUG(796, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 912 "Zend/zend_language_scanner.l"
+#line 904 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
 }
-#line 7400 "Zend/zend_language_scanner.c"
+#line 7392 "Zend/zend_language_scanner.c"
 yy797:
                YYDEBUG(797, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7431,11 +7423,11 @@ yy802:
                }
                YYDEBUG(803, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1012 "Zend/zend_language_scanner.l"
+#line 1004 "Zend/zend_language_scanner.l"
                {
        return T_DEFAULT;
 }
-#line 7439 "Zend/zend_language_scanner.c"
+#line 7431 "Zend/zend_language_scanner.c"
 yy804:
                YYDEBUG(804, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7459,11 +7451,11 @@ yy807:
                }
                YYDEBUG(808, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 984 "Zend/zend_language_scanner.l"
+#line 976 "Zend/zend_language_scanner.l"
                {
        return T_DECLARE;
 }
-#line 7467 "Zend/zend_language_scanner.c"
+#line 7459 "Zend/zend_language_scanner.c"
 yy809:
                YYDEBUG(809, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7543,11 +7535,11 @@ yy820:
                }
                YYDEBUG(821, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1044 "Zend/zend_language_scanner.l"
+#line 1036 "Zend/zend_language_scanner.l"
                {
        return T_EXTENDS;
 }
-#line 7551 "Zend/zend_language_scanner.c"
+#line 7543 "Zend/zend_language_scanner.c"
 yy822:
                YYDEBUG(822, *YYCURSOR);
                ++YYCURSOR;
@@ -7556,11 +7548,11 @@ yy822:
                }
                YYDEBUG(823, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 908 "Zend/zend_language_scanner.l"
+#line 900 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
 }
-#line 7564 "Zend/zend_language_scanner.c"
+#line 7556 "Zend/zend_language_scanner.c"
 yy824:
                YYDEBUG(824, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7574,11 +7566,11 @@ yy825:
                }
                YYDEBUG(826, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1134 "Zend/zend_language_scanner.l"
+#line 1126 "Zend/zend_language_scanner.l"
                {
        return T_EVAL;
 }
-#line 7582 "Zend/zend_language_scanner.c"
+#line 7574 "Zend/zend_language_scanner.c"
 yy827:
                YYDEBUG(827, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7648,11 +7640,11 @@ yy836:
                }
                YYDEBUG(837, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 960 "Zend/zend_language_scanner.l"
+#line 952 "Zend/zend_language_scanner.l"
                {
        return T_ENDWHILE;
 }
-#line 7656 "Zend/zend_language_scanner.c"
+#line 7648 "Zend/zend_language_scanner.c"
 yy838:
                YYDEBUG(838, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7681,11 +7673,11 @@ yy842:
                }
                YYDEBUG(843, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1004 "Zend/zend_language_scanner.l"
+#line 996 "Zend/zend_language_scanner.l"
                {
        return T_ENDSWITCH;
 }
-#line 7689 "Zend/zend_language_scanner.c"
+#line 7681 "Zend/zend_language_scanner.c"
 yy844:
                YYDEBUG(844, *YYCURSOR);
                ++YYCURSOR;
@@ -7694,11 +7686,11 @@ yy844:
                }
                YYDEBUG(845, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 948 "Zend/zend_language_scanner.l"
+#line 940 "Zend/zend_language_scanner.l"
                {
        return T_ENDIF;
 }
-#line 7702 "Zend/zend_language_scanner.c"
+#line 7694 "Zend/zend_language_scanner.c"
 yy846:
                YYDEBUG(846, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7727,11 +7719,11 @@ yy847:
 yy848:
                YYDEBUG(848, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 972 "Zend/zend_language_scanner.l"
+#line 964 "Zend/zend_language_scanner.l"
                {
        return T_ENDFOR;
 }
-#line 7735 "Zend/zend_language_scanner.c"
+#line 7727 "Zend/zend_language_scanner.c"
 yy849:
                YYDEBUG(849, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7755,11 +7747,11 @@ yy852:
                }
                YYDEBUG(853, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 980 "Zend/zend_language_scanner.l"
+#line 972 "Zend/zend_language_scanner.l"
                {
        return T_ENDFOREACH;
 }
-#line 7763 "Zend/zend_language_scanner.c"
+#line 7755 "Zend/zend_language_scanner.c"
 yy854:
                YYDEBUG(854, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7793,11 +7785,11 @@ yy859:
                }
                YYDEBUG(860, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 988 "Zend/zend_language_scanner.l"
+#line 980 "Zend/zend_language_scanner.l"
                {
        return T_ENDDECLARE;
 }
-#line 7801 "Zend/zend_language_scanner.c"
+#line 7793 "Zend/zend_language_scanner.c"
 yy861:
                YYDEBUG(861, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7816,11 +7808,11 @@ yy863:
                }
                YYDEBUG(864, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1170 "Zend/zend_language_scanner.l"
+#line 1162 "Zend/zend_language_scanner.l"
                {
        return T_EMPTY;
 }
-#line 7824 "Zend/zend_language_scanner.c"
+#line 7816 "Zend/zend_language_scanner.c"
 yy865:
                YYDEBUG(865, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7849,11 +7841,11 @@ yy866:
 yy867:
                YYDEBUG(867, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 952 "Zend/zend_language_scanner.l"
+#line 944 "Zend/zend_language_scanner.l"
                {
        return T_ELSE;
 }
-#line 7857 "Zend/zend_language_scanner.c"
+#line 7849 "Zend/zend_language_scanner.c"
 yy868:
                YYDEBUG(868, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7867,11 +7859,11 @@ yy869:
                }
                YYDEBUG(870, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 944 "Zend/zend_language_scanner.l"
+#line 936 "Zend/zend_language_scanner.l"
                {
        return T_ELSEIF;
 }
-#line 7875 "Zend/zend_language_scanner.c"
+#line 7867 "Zend/zend_language_scanner.c"
 yy871:
                YYDEBUG(871, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7885,11 +7877,11 @@ yy872:
                }
                YYDEBUG(873, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1028 "Zend/zend_language_scanner.l"
+#line 1020 "Zend/zend_language_scanner.l"
                {
        return T_ECHO;
 }
-#line 7893 "Zend/zend_language_scanner.c"
+#line 7885 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_LOOKING_FOR_PROPERTY:
@@ -7964,9 +7956,9 @@ yy876:
                ++YYCURSOR;
                YYDEBUG(877, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2104 "Zend/zend_language_scanner.l"
+#line 2096 "Zend/zend_language_scanner.l"
                { return 0; }
-#line 7970 "Zend/zend_language_scanner.c"
+#line 7962 "Zend/zend_language_scanner.c"
 yy878:
                YYDEBUG(878, *YYCURSOR);
                ++YYCURSOR;
@@ -7975,7 +7967,7 @@ yy878:
 yy879:
                YYDEBUG(879, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1057 "Zend/zend_language_scanner.l"
+#line 1049 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
@@ -7983,7 +7975,7 @@ yy879:
        HANDLE_NEWLINES(yytext, yyleng);
        return T_WHITESPACE;
 }
-#line 7987 "Zend/zend_language_scanner.c"
+#line 7979 "Zend/zend_language_scanner.c"
 yy880:
                YYDEBUG(880, *YYCURSOR);
                ++YYCURSOR;
@@ -7991,13 +7983,13 @@ yy880:
 yy881:
                YYDEBUG(881, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1076 "Zend/zend_language_scanner.l"
+#line 1068 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state(TSRMLS_C);
        goto restart;
 }
-#line 8001 "Zend/zend_language_scanner.c"
+#line 7993 "Zend/zend_language_scanner.c"
 yy882:
                YYDEBUG(882, *YYCURSOR);
                ++YYCURSOR;
@@ -8006,14 +7998,14 @@ yy882:
 yy883:
                YYDEBUG(883, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1069 "Zend/zend_language_scanner.l"
+#line 1061 "Zend/zend_language_scanner.l"
                {
        yy_pop_state(TSRMLS_C);
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
        return T_STRING;
 }
-#line 8017 "Zend/zend_language_scanner.c"
+#line 8009 "Zend/zend_language_scanner.c"
 yy884:
                YYDEBUG(884, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8034,11 +8026,11 @@ yy887:
                ++YYCURSOR;
                YYDEBUG(888, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1065 "Zend/zend_language_scanner.l"
+#line 1057 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_OPERATOR;
 }
-#line 8042 "Zend/zend_language_scanner.c"
+#line 8034 "Zend/zend_language_scanner.c"
 yy889:
                YYDEBUG(889, *YYCURSOR);
                ++YYCURSOR;
@@ -8111,9 +8103,9 @@ yy893:
                ++YYCURSOR;
                YYDEBUG(894, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2104 "Zend/zend_language_scanner.l"
+#line 2096 "Zend/zend_language_scanner.l"
                { return 0; }
-#line 8117 "Zend/zend_language_scanner.c"
+#line 8109 "Zend/zend_language_scanner.c"
 yy895:
                YYDEBUG(895, *YYCURSOR);
                ++YYCURSOR;
@@ -8122,7 +8114,7 @@ yy895:
 yy896:
                YYDEBUG(896, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1348 "Zend/zend_language_scanner.l"
+#line 1340 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
@@ -8130,20 +8122,20 @@ yy896:
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return T_STRING_VARNAME;
 }
-#line 8134 "Zend/zend_language_scanner.c"
+#line 8126 "Zend/zend_language_scanner.c"
 yy897:
                YYDEBUG(897, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(898, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1357 "Zend/zend_language_scanner.l"
+#line 1349 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state(TSRMLS_C);
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        goto restart;
 }
-#line 8147 "Zend/zend_language_scanner.c"
+#line 8139 "Zend/zend_language_scanner.c"
 yy899:
                YYDEBUG(899, *YYCURSOR);
                ++YYCURSOR;
@@ -8209,9 +8201,9 @@ yy903:
                goto yy906;
                YYDEBUG(904, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2104 "Zend/zend_language_scanner.l"
+#line 2096 "Zend/zend_language_scanner.l"
                { return 0; }
-#line 8215 "Zend/zend_language_scanner.c"
+#line 8207 "Zend/zend_language_scanner.c"
 yy905:
                YYDEBUG(905, *YYCURSOR);
                ++YYCURSOR;
@@ -8304,7 +8296,7 @@ yy914:
                ++YYCURSOR;
                YYDEBUG(915, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2052 "Zend/zend_language_scanner.l"
+#line 2044 "Zend/zend_language_scanner.l"
                {
        char *end = yytext + yyleng - 1;
 
@@ -8344,7 +8336,7 @@ yy914:
                yymore();
        }
 }
-#line 8348 "Zend/zend_language_scanner.c"
+#line 8340 "Zend/zend_language_scanner.c"
 yy916:
                YYDEBUG(916, *YYCURSOR);
                ++YYCURSOR;
@@ -8455,9 +8447,9 @@ yy922:
                goto yy937;
                YYDEBUG(923, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2104 "Zend/zend_language_scanner.l"
+#line 2096 "Zend/zend_language_scanner.l"
                { return 0; }
-#line 8461 "Zend/zend_language_scanner.c"
+#line 8453 "Zend/zend_language_scanner.c"
 yy924:
                YYDEBUG(924, *YYCURSOR);
                ++YYCURSOR;
@@ -8465,11 +8457,11 @@ yy924:
 yy925:
                YYDEBUG(925, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1715 "Zend/zend_language_scanner.l"
+#line 1707 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 8473 "Zend/zend_language_scanner.c"
+#line 8465 "Zend/zend_language_scanner.c"
 yy926:
                YYDEBUG(926, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8506,7 +8498,7 @@ yy928:
 yy930:
                YYDEBUG(930, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1719 "Zend/zend_language_scanner.l"
+#line 1711 "Zend/zend_language_scanner.l"
                {
        switch (yytext[yyleng-1]) {
                case '?': case '%': case '>':
@@ -8524,7 +8516,7 @@ yy930:
                        return T_COMMENT;
        }
 }
-#line 8528 "Zend/zend_language_scanner.c"
+#line 8520 "Zend/zend_language_scanner.c"
 yy931:
                YYDEBUG(931, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8537,7 +8529,7 @@ yy932:
                ++YYCURSOR;
                YYDEBUG(934, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1737 "Zend/zend_language_scanner.l"
+#line 1729 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
@@ -8546,7 +8538,7 @@ yy932:
        CG(zend_lineno)++;
        return T_COMMENT;
 }
-#line 8550 "Zend/zend_language_scanner.c"
+#line 8542 "Zend/zend_language_scanner.c"
 yy935:
                YYDEBUG(935, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8580,7 +8572,7 @@ yy938:
                ++YYCURSOR;
                YYDEBUG(939, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1746 "Zend/zend_language_scanner.l"
+#line 1738 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags) || yytext[yyleng-2] != '%') { /* asp comment? */
                zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -8593,7 +8585,7 @@ yy938:
                yymore();
        }
 }
-#line 8597 "Zend/zend_language_scanner.c"
+#line 8589 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_VAR_OFFSET:
@@ -8685,9 +8677,9 @@ yy942:
                ++YYCURSOR;
                YYDEBUG(943, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2104 "Zend/zend_language_scanner.l"
+#line 2096 "Zend/zend_language_scanner.l"
                { return 0; }
-#line 8691 "Zend/zend_language_scanner.c"
+#line 8683 "Zend/zend_language_scanner.c"
 yy944:
                YYDEBUG(944, *YYCURSOR);
                yyaccept = 0;
@@ -8702,7 +8694,7 @@ yy944:
 yy945:
                YYDEBUG(945, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1407 "Zend/zend_language_scanner.l"
+#line 1399 "Zend/zend_language_scanner.l"
                { /* Offset could be treated as a long */
        if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {
                zendlval->value.lval = strtol(yytext, NULL, 10);
@@ -8714,7 +8706,7 @@ yy945:
        }
        return T_NUM_STRING;
 }
-#line 8718 "Zend/zend_language_scanner.c"
+#line 8710 "Zend/zend_language_scanner.c"
 yy946:
                YYDEBUG(946, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8734,23 +8726,23 @@ yy947:
 yy948:
                YYDEBUG(948, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1690 "Zend/zend_language_scanner.l"
+#line 1682 "Zend/zend_language_scanner.l"
                {
        /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
        return yytext[0];
 }
-#line 8743 "Zend/zend_language_scanner.c"
+#line 8735 "Zend/zend_language_scanner.c"
 yy949:
                YYDEBUG(949, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(950, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1685 "Zend/zend_language_scanner.l"
+#line 1677 "Zend/zend_language_scanner.l"
                {
        yy_pop_state(TSRMLS_C);
        return ']';
 }
-#line 8754 "Zend/zend_language_scanner.c"
+#line 8746 "Zend/zend_language_scanner.c"
 yy951:
                YYDEBUG(951, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8760,7 +8752,7 @@ yy952:
                ++YYCURSOR;
                YYDEBUG(953, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1695 "Zend/zend_language_scanner.l"
+#line 1687 "Zend/zend_language_scanner.l"
                {
        /* Invalid rule to return a more explicit parse error with proper line number */
        yyless(0);
@@ -8768,7 +8760,7 @@ yy952:
        ZVAL_EMPTY_STRING(zendlval); /* Empty since it won't be used */
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 8772 "Zend/zend_language_scanner.c"
+#line 8764 "Zend/zend_language_scanner.c"
 yy954:
                YYDEBUG(954, *YYCURSOR);
                ++YYCURSOR;
@@ -8777,24 +8769,24 @@ yy954:
 yy955:
                YYDEBUG(955, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1703 "Zend/zend_language_scanner.l"
+#line 1695 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
        return T_STRING;
 }
-#line 8787 "Zend/zend_language_scanner.c"
+#line 8779 "Zend/zend_language_scanner.c"
 yy956:
                YYDEBUG(956, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(957, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2106 "Zend/zend_language_scanner.l"
+#line 2098 "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 8798 "Zend/zend_language_scanner.c"
+#line 8790 "Zend/zend_language_scanner.c"
 yy958:
                YYDEBUG(958, *YYCURSOR);
                ++YYCURSOR;
@@ -8830,13 +8822,13 @@ yy960:
 yy962:
                YYDEBUG(962, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1679 "Zend/zend_language_scanner.l"
+#line 1671 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 8840 "Zend/zend_language_scanner.c"
+#line 8832 "Zend/zend_language_scanner.c"
 yy963:
                YYDEBUG(963, *YYCURSOR);
                ++YYCURSOR;
@@ -8868,14 +8860,14 @@ yy967:
 yy969:
                YYDEBUG(969, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1419 "Zend/zend_language_scanner.l"
+#line 1411 "Zend/zend_language_scanner.l"
                { /* Offset must be treated as a string */
        zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
        zendlval->value.str.len = yyleng;
        zendlval->type = IS_STRING;
        return T_NUM_STRING;
 }
-#line 8879 "Zend/zend_language_scanner.c"
+#line 8871 "Zend/zend_language_scanner.c"
 yy970:
                YYDEBUG(970, *YYCURSOR);
                ++YYCURSOR;
@@ -8888,6 +8880,6 @@ yy970:
                goto yy969;
        }
 }
-#line 2111 "Zend/zend_language_scanner.l"
+#line 2103 "Zend/zend_language_scanner.l"
 
 }
index c59504b3a3b7fc2182a64f291edc7464be7e3db5..34cec312f82bdf8a4f20d581432a85bf99558c04 100644 (file)
@@ -143,9 +143,7 @@ void startup_scanner(TSRMLS_D)
        CG(heredoc_len) = 0;
        CG(doc_comment) = NULL;
        CG(doc_comment_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));
 }
 
 void shutdown_scanner(TSRMLS_D)
@@ -154,15 +152,10 @@ 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();
 }
 
-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);
@@ -174,7 +167,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;
@@ -202,7 +194,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;
@@ -361,9 +353,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;
 }
 
@@ -526,8 +516,8 @@ zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC)
                        zend_release_labels(TSRMLS_C);
                        retval = op_array;
                }
-               zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
        }
+       zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
        zval_dtor(&tmp);
        CG(in_compilation) = original_in_compilation;
        return retval;
@@ -547,6 +537,7 @@ int highlight_file(char *filename, zend_syntax_highlighter_ini *syntax_highlight
        zend_save_lexical_state(&original_lex_state TSRMLS_CC);
        if (open_file_for_scanning(&file_handle TSRMLS_CC)==FAILURE) {
                zend_message_dispatcher(ZMSG_FAILED_HIGHLIGHT_FOPEN, filename TSRMLS_CC);
+               zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
                return FAILURE;
        }
        zend_highlight(syntax_highlighter_ini TSRMLS_CC);
@@ -574,6 +565,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 b28eb52ea84a8dc2db9cc80c04ac0cf3e9010118..d2546df11ff4970f650a7cec84ad9166c9b2c3ce 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Fri Mar 13 00:13:18 2009 */
+/* Generated by re2c 0.13.5 on Wed Mar 25 18:23:22 2009 */
 #line 3 "Zend/zend_language_scanner_defs.h"
 
 enum YYCONDTYPE {
index fbe9e338f89a6e798e17caa522962b020e36c4fb..b0d1c417cbc227229b0a55a771026b61631d1cfa 100644 (file)
@@ -171,6 +171,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();
        }
 
@@ -178,10 +179,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);
 }