]> granicus.if.org Git - php/commitdiff
Provide compiler hook for altering the AST pre-compilation.
authorSara Golemon <pollita@php.net>
Mon, 19 Jan 2015 16:39:52 +0000 (08:39 -0800)
committerSara Golemon <sgolemon@fb.com>
Mon, 19 Jan 2015 18:43:57 +0000 (10:43 -0800)
Zend/zend_ast.c
Zend/zend_ast.h
Zend/zend_language_scanner.c
Zend/zend_language_scanner.l

index c85608f2ee54fcd8795b250b69babf7b767c52ab..24fe8bd6f98cad1f86ca8788863fc293c7dd9038 100644 (file)
@@ -23,6 +23,8 @@
 #include "zend_API.h"
 #include "zend_operators.h"
 
+ZEND_API zend_ast_process_t zend_ast_process = NULL;
+
 static inline void *zend_ast_alloc(size_t size) {
        return zend_arena_alloc(&CG(ast_arena), size);
 }
index 4ce0f5de27a4520f42682496c3702b69b9006476..999dfd3c6c2f16285684f47b6a25cf87e13c9008 100644 (file)
@@ -186,6 +186,9 @@ typedef struct _zend_ast_decl {
        zend_ast *child[3];
 } zend_ast_decl;
 
+typedef void (*zend_ast_process_t)(zend_ast *ast);
+extern zend_ast_process_t zend_ast_process;
+
 ZEND_API zend_ast *zend_ast_create_zval_ex(zval *zv, zend_ast_attr attr);
 
 ZEND_API zend_ast *zend_ast_create_ex(zend_ast_kind kind, zend_ast_attr attr, ...);
index 2eea0f3aa04b5c63b9ded703d002fee57a3ec5e7..bb7c5966896a6d97b4b93459a73b405f3f6a5ce7 100644 (file)
@@ -588,6 +588,9 @@ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type)
                if (compiler_result != 0) { /* parser error */
                        zend_bailout();
                }
+               if (zend_ast_process) {
+                       zend_ast_process(CG(ast));
+               }
                zend_compile_top_stmt(CG(ast));
                zend_ast_destroy(CG(ast));
                zend_arena_destroy(CG(ast_arena));
@@ -749,6 +752,9 @@ zend_op_array *compile_string(zval *source_string, char *filename)
 
                        zend_stack_push(&CG(context_stack), (void *) &CG(context));
                        zend_init_compiler_context();
+                       if (zend_ast_process) {
+                               zend_ast_process(CG(ast));
+                       }
                        zend_compile_top_stmt(CG(ast));
                        zend_do_end_compilation();
                        zend_emit_final_return(NULL);
@@ -1073,7 +1079,7 @@ restart:
        SCNG(yy_text) = YYCURSOR;
 
 
-#line 1077 "Zend/zend_language_scanner.c"
+#line 1083 "Zend/zend_language_scanner.c"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
@@ -1127,7 +1133,7 @@ yyc_INITIAL:
 yy3:
        YYDEBUG(3, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 1754 "Zend/zend_language_scanner.l"
+#line 1760 "Zend/zend_language_scanner.l"
        {
        if (YYCURSOR > YYLIMIT) {
                return 0;
@@ -1172,7 +1178,7 @@ inline_char_handler:
        HANDLE_NEWLINES(yytext, yyleng);
        return T_INLINE_HTML;
 }
-#line 1176 "Zend/zend_language_scanner.c"
+#line 1182 "Zend/zend_language_scanner.c"
 yy4:
        YYDEBUG(4, *YYCURSOR);
        yych = *++YYCURSOR;
@@ -1190,7 +1196,7 @@ yy5:
 yy6:
        YYDEBUG(6, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 1745 "Zend/zend_language_scanner.l"
+#line 1751 "Zend/zend_language_scanner.l"
        {
        if (CG(short_tags)) {
                BEGIN(ST_IN_SCRIPTING);
@@ -1199,18 +1205,18 @@ yy6:
                goto inline_char_handler;
        }
 }
-#line 1203 "Zend/zend_language_scanner.c"
+#line 1209 "Zend/zend_language_scanner.c"
 yy7:
        YYDEBUG(7, *YYCURSOR);
        ++YYCURSOR;
        YYDEBUG(8, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 1732 "Zend/zend_language_scanner.l"
+#line 1738 "Zend/zend_language_scanner.l"
        {
        BEGIN(ST_IN_SCRIPTING);
        return T_OPEN_TAG_WITH_ECHO;
 }
-#line 1214 "Zend/zend_language_scanner.c"
+#line 1220 "Zend/zend_language_scanner.c"
 yy9:
        YYDEBUG(9, *YYCURSOR);
        yych = *++YYCURSOR;
@@ -1241,13 +1247,13 @@ yy13:
 yy14:
        YYDEBUG(14, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 1738 "Zend/zend_language_scanner.l"
+#line 1744 "Zend/zend_language_scanner.l"
        {
        HANDLE_NEWLINE(yytext[yyleng-1]);
        BEGIN(ST_IN_SCRIPTING);
        return T_OPEN_TAG;
 }
-#line 1251 "Zend/zend_language_scanner.c"
+#line 1257 "Zend/zend_language_scanner.c"
 yy15:
        YYDEBUG(15, *YYCURSOR);
        ++YYCURSOR;
@@ -1317,7 +1323,7 @@ yyc_ST_BACKQUOTE:
 yy19:
                YYDEBUG(19, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2164 "Zend/zend_language_scanner.l"
+#line 2170 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                return 0;
@@ -1358,7 +1364,7 @@ yy19:
        zend_scan_escape_string(zendlval, yytext, yyleng, '`');
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 1362 "Zend/zend_language_scanner.c"
+#line 1368 "Zend/zend_language_scanner.c"
 yy20:
                YYDEBUG(20, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1369,12 +1375,12 @@ yy21:
                ++YYCURSOR;
                YYDEBUG(22, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2108 "Zend/zend_language_scanner.l"
+#line 2114 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '`';
 }
-#line 1378 "Zend/zend_language_scanner.c"
+#line 1384 "Zend/zend_language_scanner.c"
 yy23:
                YYDEBUG(23, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1384,14 +1390,14 @@ yy24:
                ++YYCURSOR;
                YYDEBUG(25, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2095 "Zend/zend_language_scanner.l"
+#line 2101 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = (zend_long) '{';
        yy_push_state(ST_IN_SCRIPTING);
        yyless(1);
        return T_CURLY_OPEN;
 }
-#line 1395 "Zend/zend_language_scanner.c"
+#line 1401 "Zend/zend_language_scanner.c"
 yy26:
                YYDEBUG(26, *YYCURSOR);
                yyaccept = 0;
@@ -1407,23 +1413,23 @@ yy26:
 yy28:
                YYDEBUG(28, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1819 "Zend/zend_language_scanner.l"
+#line 1825 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        return T_VARIABLE;
 }
-#line 1416 "Zend/zend_language_scanner.c"
+#line 1422 "Zend/zend_language_scanner.c"
 yy29:
                YYDEBUG(29, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(30, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1543 "Zend/zend_language_scanner.l"
+#line 1549 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 1427 "Zend/zend_language_scanner.c"
+#line 1433 "Zend/zend_language_scanner.c"
 yy31:
                YYDEBUG(31, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1437,14 +1443,14 @@ yy33:
                ++YYCURSOR;
                YYDEBUG(34, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1812 "Zend/zend_language_scanner.l"
+#line 1818 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET);
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        return T_VARIABLE;
 }
-#line 1448 "Zend/zend_language_scanner.c"
+#line 1454 "Zend/zend_language_scanner.c"
 yy35:
                YYDEBUG(35, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1462,14 +1468,14 @@ yy36:
                ++YYCURSOR;
                YYDEBUG(37, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1803 "Zend/zend_language_scanner.l"
+#line 1809 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY);
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        return T_VARIABLE;
 }
-#line 1473 "Zend/zend_language_scanner.c"
+#line 1479 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_DOUBLE_QUOTES:
@@ -1537,7 +1543,7 @@ yy40:
 yy41:
                YYDEBUG(41, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2114 "Zend/zend_language_scanner.l"
+#line 2120 "Zend/zend_language_scanner.l"
                {
        if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
                YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
@@ -1586,7 +1592,7 @@ double_quotes_scan_done:
        zend_scan_escape_string(zendlval, yytext, yyleng, '"');
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 1590 "Zend/zend_language_scanner.c"
+#line 1596 "Zend/zend_language_scanner.c"
 yy42:
                YYDEBUG(42, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1597,12 +1603,12 @@ yy43:
                ++YYCURSOR;
                YYDEBUG(44, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2103 "Zend/zend_language_scanner.l"
+#line 2109 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '"';
 }
-#line 1606 "Zend/zend_language_scanner.c"
+#line 1612 "Zend/zend_language_scanner.c"
 yy45:
                YYDEBUG(45, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1612,14 +1618,14 @@ yy46:
                ++YYCURSOR;
                YYDEBUG(47, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2095 "Zend/zend_language_scanner.l"
+#line 2101 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = (zend_long) '{';
        yy_push_state(ST_IN_SCRIPTING);
        yyless(1);
        return T_CURLY_OPEN;
 }
-#line 1623 "Zend/zend_language_scanner.c"
+#line 1629 "Zend/zend_language_scanner.c"
 yy48:
                YYDEBUG(48, *YYCURSOR);
                yyaccept = 0;
@@ -1635,23 +1641,23 @@ yy48:
 yy50:
                YYDEBUG(50, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1819 "Zend/zend_language_scanner.l"
+#line 1825 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        return T_VARIABLE;
 }
-#line 1644 "Zend/zend_language_scanner.c"
+#line 1650 "Zend/zend_language_scanner.c"
 yy51:
                YYDEBUG(51, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(52, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1543 "Zend/zend_language_scanner.l"
+#line 1549 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 1655 "Zend/zend_language_scanner.c"
+#line 1661 "Zend/zend_language_scanner.c"
 yy53:
                YYDEBUG(53, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1665,14 +1671,14 @@ yy55:
                ++YYCURSOR;
                YYDEBUG(56, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1812 "Zend/zend_language_scanner.l"
+#line 1818 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET);
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        return T_VARIABLE;
 }
-#line 1676 "Zend/zend_language_scanner.c"
+#line 1682 "Zend/zend_language_scanner.c"
 yy57:
                YYDEBUG(57, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1690,14 +1696,14 @@ yy58:
                ++YYCURSOR;
                YYDEBUG(59, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1803 "Zend/zend_language_scanner.l"
+#line 1809 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY);
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        return T_VARIABLE;
 }
-#line 1701 "Zend/zend_language_scanner.c"
+#line 1707 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_END_HEREDOC:
@@ -1708,7 +1714,7 @@ yyc_ST_END_HEREDOC:
        ++YYCURSOR;
        YYDEBUG(63, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 2081 "Zend/zend_language_scanner.l"
+#line 2087 "Zend/zend_language_scanner.l"
        {
        zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack));
 
@@ -1721,7 +1727,7 @@ yyc_ST_END_HEREDOC:
        BEGIN(ST_IN_SCRIPTING);
        return T_END_HEREDOC;
 }
-#line 1725 "Zend/zend_language_scanner.c"
+#line 1731 "Zend/zend_language_scanner.c"
 /* *********************************** */
 yyc_ST_HEREDOC:
        {
@@ -1783,7 +1789,7 @@ yy66:
 yy67:
                YYDEBUG(67, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2206 "Zend/zend_language_scanner.l"
+#line 2212 "Zend/zend_language_scanner.l"
                {
        int newline = 0;
 
@@ -1856,7 +1862,7 @@ heredoc_scan_done:
        zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 1860 "Zend/zend_language_scanner.c"
+#line 1866 "Zend/zend_language_scanner.c"
 yy68:
                YYDEBUG(68, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1871,14 +1877,14 @@ yy70:
                ++YYCURSOR;
                YYDEBUG(71, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2095 "Zend/zend_language_scanner.l"
+#line 2101 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = (zend_long) '{';
        yy_push_state(ST_IN_SCRIPTING);
        yyless(1);
        return T_CURLY_OPEN;
 }
-#line 1882 "Zend/zend_language_scanner.c"
+#line 1888 "Zend/zend_language_scanner.c"
 yy72:
                YYDEBUG(72, *YYCURSOR);
                yyaccept = 0;
@@ -1894,23 +1900,23 @@ yy72:
 yy74:
                YYDEBUG(74, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1819 "Zend/zend_language_scanner.l"
+#line 1825 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        return T_VARIABLE;
 }
-#line 1903 "Zend/zend_language_scanner.c"
+#line 1909 "Zend/zend_language_scanner.c"
 yy75:
                YYDEBUG(75, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(76, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1543 "Zend/zend_language_scanner.l"
+#line 1549 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 1914 "Zend/zend_language_scanner.c"
+#line 1920 "Zend/zend_language_scanner.c"
 yy77:
                YYDEBUG(77, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1924,14 +1930,14 @@ yy79:
                ++YYCURSOR;
                YYDEBUG(80, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1812 "Zend/zend_language_scanner.l"
+#line 1818 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET);
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        return T_VARIABLE;
 }
-#line 1935 "Zend/zend_language_scanner.c"
+#line 1941 "Zend/zend_language_scanner.c"
 yy81:
                YYDEBUG(81, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1949,14 +1955,14 @@ yy82:
                ++YYCURSOR;
                YYDEBUG(83, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1803 "Zend/zend_language_scanner.l"
+#line 1809 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY);
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        return T_VARIABLE;
 }
-#line 1960 "Zend/zend_language_scanner.c"
+#line 1966 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_IN_SCRIPTING:
@@ -2139,12 +2145,12 @@ yy86:
 yy87:
                YYDEBUG(87, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1842 "Zend/zend_language_scanner.l"
+#line 1848 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        return T_STRING;
 }
-#line 2148 "Zend/zend_language_scanner.c"
+#line 2154 "Zend/zend_language_scanner.c"
 yy88:
                YYDEBUG(88, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2376,11 +2382,11 @@ yy101:
 yy102:
                YYDEBUG(102, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1532 "Zend/zend_language_scanner.l"
+#line 1538 "Zend/zend_language_scanner.l"
                {
        return yytext[0];
 }
-#line 2384 "Zend/zend_language_scanner.c"
+#line 2390 "Zend/zend_language_scanner.c"
 yy103:
                YYDEBUG(103, *YYCURSOR);
                ++YYCURSOR;
@@ -2389,12 +2395,12 @@ yy103:
 yy104:
                YYDEBUG(104, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1251 "Zend/zend_language_scanner.l"
+#line 1257 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        return T_WHITESPACE;
 }
-#line 2398 "Zend/zend_language_scanner.c"
+#line 2404 "Zend/zend_language_scanner.c"
 yy105:
                YYDEBUG(105, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2405,11 +2411,11 @@ yy106:
                ++YYCURSOR;
                YYDEBUG(107, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1276 "Zend/zend_language_scanner.l"
+#line 1282 "Zend/zend_language_scanner.l"
                {
        return T_NS_SEPARATOR;
 }
-#line 2413 "Zend/zend_language_scanner.c"
+#line 2419 "Zend/zend_language_scanner.c"
 yy108:
                YYDEBUG(108, *YYCURSOR);
                yyaccept = 1;
@@ -2638,18 +2644,18 @@ yy131:
                ++YYCURSOR;
                YYDEBUG(132, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1537 "Zend/zend_language_scanner.l"
+#line 1543 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_IN_SCRIPTING);
        return '{';
 }
-#line 2647 "Zend/zend_language_scanner.c"
+#line 2653 "Zend/zend_language_scanner.c"
 yy133:
                YYDEBUG(133, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(134, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1549 "Zend/zend_language_scanner.l"
+#line 1555 "Zend/zend_language_scanner.l"
                {
        RESET_DOC_COMMENT();
        if (!zend_stack_is_empty(&SCNG(state_stack))) {
@@ -2657,7 +2663,7 @@ yy133:
        }
        return '}';
 }
-#line 2661 "Zend/zend_language_scanner.c"
+#line 2667 "Zend/zend_language_scanner.c"
 yy135:
                YYDEBUG(135, *YYCURSOR);
                yyaccept = 2;
@@ -2685,7 +2691,7 @@ yy135:
 yy136:
                YYDEBUG(136, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1602 "Zend/zend_language_scanner.l"
+#line 1608 "Zend/zend_language_scanner.l"
                {
        char *end;
        if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
@@ -2724,7 +2730,7 @@ yy136:
        }
        return T_LNUMBER;
 }
-#line 2728 "Zend/zend_language_scanner.c"
+#line 2734 "Zend/zend_language_scanner.c"
 yy137:
                YYDEBUG(137, *YYCURSOR);
                yyaccept = 2;
@@ -2752,7 +2758,7 @@ yy139:
 yy140:
                YYDEBUG(140, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1848 "Zend/zend_language_scanner.l"
+#line 1854 "Zend/zend_language_scanner.l"
                {
        while (YYCURSOR < YYLIMIT) {
                switch (*YYCURSOR++) {
@@ -2781,14 +2787,14 @@ yy140:
 
        return T_COMMENT;
 }
-#line 2785 "Zend/zend_language_scanner.c"
+#line 2791 "Zend/zend_language_scanner.c"
 yy141:
                YYDEBUG(141, *YYCURSOR);
                ++YYCURSOR;
 yy142:
                YYDEBUG(142, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1916 "Zend/zend_language_scanner.l"
+#line 1922 "Zend/zend_language_scanner.l"
                {
        register char *s, *t;
        char *end;
@@ -2856,14 +2862,14 @@ yy142:
        }
        return T_CONSTANT_ENCAPSED_STRING;
 }
-#line 2860 "Zend/zend_language_scanner.c"
+#line 2866 "Zend/zend_language_scanner.c"
 yy143:
                YYDEBUG(143, *YYCURSOR);
                ++YYCURSOR;
 yy144:
                YYDEBUG(144, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1985 "Zend/zend_language_scanner.l"
+#line 1991 "Zend/zend_language_scanner.l"
                {
        int bprefix = (yytext[0] != '"') ? 1 : 0;
 
@@ -2904,24 +2910,24 @@ yy144:
        BEGIN(ST_DOUBLE_QUOTES);
        return '"';
 }
-#line 2908 "Zend/zend_language_scanner.c"
+#line 2914 "Zend/zend_language_scanner.c"
 yy145:
                YYDEBUG(145, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(146, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2075 "Zend/zend_language_scanner.l"
+#line 2081 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_BACKQUOTE);
        return '`';
 }
-#line 2919 "Zend/zend_language_scanner.c"
+#line 2925 "Zend/zend_language_scanner.c"
 yy147:
                YYDEBUG(147, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(148, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2337 "Zend/zend_language_scanner.l"
+#line 2343 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                return 0;
@@ -2930,7 +2936,7 @@ yy147:
        zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
        goto restart;
 }
-#line 2934 "Zend/zend_language_scanner.c"
+#line 2940 "Zend/zend_language_scanner.c"
 yy149:
                YYDEBUG(149, *YYCURSOR);
                ++YYCURSOR;
@@ -2957,7 +2963,7 @@ yy151:
 yy153:
                YYDEBUG(153, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1690 "Zend/zend_language_scanner.l"
+#line 1696 "Zend/zend_language_scanner.l"
                {
        const char *end;
 
@@ -2966,7 +2972,7 @@ yy153:
        ZEND_ASSERT(end == yytext + yyleng);
        return T_DNUMBER;
 }
-#line 2970 "Zend/zend_language_scanner.c"
+#line 2976 "Zend/zend_language_scanner.c"
 yy154:
                YYDEBUG(154, *YYCURSOR);
                yyaccept = 2;
@@ -3058,7 +3064,7 @@ yy163:
                }
                YYDEBUG(165, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1574 "Zend/zend_language_scanner.l"
+#line 1580 "Zend/zend_language_scanner.l"
                {
        char *bin = yytext + 2; /* Skip "0b" */
        int len = yyleng - 2;
@@ -3086,7 +3092,7 @@ yy163:
                return T_DNUMBER;
        }
 }
-#line 3090 "Zend/zend_language_scanner.c"
+#line 3096 "Zend/zend_language_scanner.c"
 yy166:
                YYDEBUG(166, *YYCURSOR);
                ++YYCURSOR;
@@ -3098,7 +3104,7 @@ yy166:
                }
                YYDEBUG(168, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1641 "Zend/zend_language_scanner.l"
+#line 1647 "Zend/zend_language_scanner.l"
                {
        char *hex = yytext + 2; /* Skip "0x" */
        int len = yyleng - 2;
@@ -3126,7 +3132,7 @@ yy166:
                return T_DNUMBER;
        }
 }
-#line 3130 "Zend/zend_language_scanner.c"
+#line 3136 "Zend/zend_language_scanner.c"
 yy169:
                YYDEBUG(169, *YYCURSOR);
                ++YYCURSOR;
@@ -3151,12 +3157,12 @@ yy169:
 yy171:
                YYDEBUG(171, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1819 "Zend/zend_language_scanner.l"
+#line 1825 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        return T_VARIABLE;
 }
-#line 3160 "Zend/zend_language_scanner.c"
+#line 3166 "Zend/zend_language_scanner.c"
 yy172:
                YYDEBUG(172, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3170,11 +3176,11 @@ yy173:
                }
                YYDEBUG(174, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1520 "Zend/zend_language_scanner.l"
+#line 1526 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_XOR;
 }
-#line 3178 "Zend/zend_language_scanner.c"
+#line 3184 "Zend/zend_language_scanner.c"
 yy175:
                YYDEBUG(175, *YYCURSOR);
                ++YYCURSOR;
@@ -3183,71 +3189,71 @@ yy175:
                }
                YYDEBUG(176, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1512 "Zend/zend_language_scanner.l"
+#line 1518 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_OR;
 }
-#line 3191 "Zend/zend_language_scanner.c"
+#line 3197 "Zend/zend_language_scanner.c"
 yy177:
                YYDEBUG(177, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(178, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1500 "Zend/zend_language_scanner.l"
+#line 1506 "Zend/zend_language_scanner.l"
                {
        return T_XOR_EQUAL;
 }
-#line 3201 "Zend/zend_language_scanner.c"
+#line 3207 "Zend/zend_language_scanner.c"
 yy179:
                YYDEBUG(179, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(180, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1504 "Zend/zend_language_scanner.l"
+#line 1510 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_OR;
 }
-#line 3211 "Zend/zend_language_scanner.c"
+#line 3217 "Zend/zend_language_scanner.c"
 yy181:
                YYDEBUG(181, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(182, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1496 "Zend/zend_language_scanner.l"
+#line 1502 "Zend/zend_language_scanner.l"
                {
        return T_OR_EQUAL;
 }
-#line 3221 "Zend/zend_language_scanner.c"
+#line 3227 "Zend/zend_language_scanner.c"
 yy183:
                YYDEBUG(183, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(184, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1508 "Zend/zend_language_scanner.l"
+#line 1514 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_AND;
 }
-#line 3231 "Zend/zend_language_scanner.c"
+#line 3237 "Zend/zend_language_scanner.c"
 yy185:
                YYDEBUG(185, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(186, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1492 "Zend/zend_language_scanner.l"
+#line 1498 "Zend/zend_language_scanner.l"
                {
        return T_AND_EQUAL;
 }
-#line 3241 "Zend/zend_language_scanner.c"
+#line 3247 "Zend/zend_language_scanner.c"
 yy187:
                YYDEBUG(187, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(188, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1480 "Zend/zend_language_scanner.l"
+#line 1486 "Zend/zend_language_scanner.l"
                {
        return T_MOD_EQUAL;
 }
-#line 3251 "Zend/zend_language_scanner.c"
+#line 3257 "Zend/zend_language_scanner.c"
 yy189:
                YYDEBUG(189, *YYCURSOR);
                yyaccept = 4;
@@ -3256,7 +3262,7 @@ yy189:
 yy190:
                YYDEBUG(190, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1877 "Zend/zend_language_scanner.l"
+#line 1883 "Zend/zend_language_scanner.l"
                {
        int doc_com;
 
@@ -3289,7 +3295,7 @@ yy190:
 
        return T_COMMENT;
 }
-#line 3293 "Zend/zend_language_scanner.c"
+#line 3299 "Zend/zend_language_scanner.c"
 yy191:
                YYDEBUG(191, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3299,11 +3305,11 @@ yy192:
                ++YYCURSOR;
                YYDEBUG(193, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1472 "Zend/zend_language_scanner.l"
+#line 1478 "Zend/zend_language_scanner.l"
                {
        return T_DIV_EQUAL;
 }
-#line 3307 "Zend/zend_language_scanner.c"
+#line 3313 "Zend/zend_language_scanner.c"
 yy194:
                YYDEBUG(194, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3327,62 +3333,62 @@ yy197:
                if ((yych = *YYCURSOR) == '=') goto yy201;
                YYDEBUG(198, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1464 "Zend/zend_language_scanner.l"
+#line 1470 "Zend/zend_language_scanner.l"
                {
        return T_POW;
 }
-#line 3335 "Zend/zend_language_scanner.c"
+#line 3341 "Zend/zend_language_scanner.c"
 yy199:
                YYDEBUG(199, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(200, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1460 "Zend/zend_language_scanner.l"
+#line 1466 "Zend/zend_language_scanner.l"
                {
        return T_MUL_EQUAL;
 }
-#line 3345 "Zend/zend_language_scanner.c"
+#line 3351 "Zend/zend_language_scanner.c"
 yy201:
                YYDEBUG(201, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(202, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1468 "Zend/zend_language_scanner.l"
+#line 1474 "Zend/zend_language_scanner.l"
                {
        return T_POW_EQUAL;
 }
-#line 3355 "Zend/zend_language_scanner.c"
+#line 3361 "Zend/zend_language_scanner.c"
 yy203:
                YYDEBUG(203, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy207;
                YYDEBUG(204, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1528 "Zend/zend_language_scanner.l"
+#line 1534 "Zend/zend_language_scanner.l"
                {
        return T_SR;
 }
-#line 3366 "Zend/zend_language_scanner.c"
+#line 3372 "Zend/zend_language_scanner.c"
 yy205:
                YYDEBUG(205, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(206, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1448 "Zend/zend_language_scanner.l"
+#line 1454 "Zend/zend_language_scanner.l"
                {
        return T_IS_GREATER_OR_EQUAL;
 }
-#line 3376 "Zend/zend_language_scanner.c"
+#line 3382 "Zend/zend_language_scanner.c"
 yy207:
                YYDEBUG(207, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(208, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1488 "Zend/zend_language_scanner.l"
+#line 1494 "Zend/zend_language_scanner.l"
                {
        return T_SR_EQUAL;
 }
-#line 3386 "Zend/zend_language_scanner.c"
+#line 3392 "Zend/zend_language_scanner.c"
 yy209:
                YYDEBUG(209, *YYCURSOR);
                yyaccept = 5;
@@ -3393,42 +3399,42 @@ yy209:
 yy210:
                YYDEBUG(210, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1524 "Zend/zend_language_scanner.l"
+#line 1530 "Zend/zend_language_scanner.l"
                {
        return T_SL;
 }
-#line 3401 "Zend/zend_language_scanner.c"
+#line 3407 "Zend/zend_language_scanner.c"
 yy211:
                YYDEBUG(211, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(212, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1444 "Zend/zend_language_scanner.l"
+#line 1450 "Zend/zend_language_scanner.l"
                {
        return T_IS_SMALLER_OR_EQUAL;
 }
-#line 3411 "Zend/zend_language_scanner.c"
+#line 3417 "Zend/zend_language_scanner.c"
 yy213:
                YYDEBUG(213, *YYCURSOR);
                ++YYCURSOR;
 yy214:
                YYDEBUG(214, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1440 "Zend/zend_language_scanner.l"
+#line 1446 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_EQUAL;
 }
-#line 3422 "Zend/zend_language_scanner.c"
+#line 3428 "Zend/zend_language_scanner.c"
 yy215:
                YYDEBUG(215, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(216, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1484 "Zend/zend_language_scanner.l"
+#line 1490 "Zend/zend_language_scanner.l"
                {
        return T_SL_EQUAL;
 }
-#line 3432 "Zend/zend_language_scanner.c"
+#line 3438 "Zend/zend_language_scanner.c"
 yy217:
                YYDEBUG(217, *YYCURSOR);
                ++YYCURSOR;
@@ -3533,7 +3539,7 @@ yy226:
 yy227:
                YYDEBUG(227, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2027 "Zend/zend_language_scanner.l"
+#line 2033 "Zend/zend_language_scanner.l"
                {
        char *s;
        int bprefix = (yytext[0] != '<') ? 1 : 0;
@@ -3580,7 +3586,7 @@ yy227:
 
        return T_START_HEREDOC;
 }
-#line 3584 "Zend/zend_language_scanner.c"
+#line 3590 "Zend/zend_language_scanner.c"
 yy228:
                YYDEBUG(228, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3620,31 +3626,31 @@ yy231:
                ++YYCURSOR;
                YYDEBUG(233, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1432 "Zend/zend_language_scanner.l"
+#line 1438 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_IDENTICAL;
 }
-#line 3628 "Zend/zend_language_scanner.c"
+#line 3634 "Zend/zend_language_scanner.c"
 yy234:
                YYDEBUG(234, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(235, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1452 "Zend/zend_language_scanner.l"
+#line 1458 "Zend/zend_language_scanner.l"
                {
        return T_PLUS_EQUAL;
 }
-#line 3638 "Zend/zend_language_scanner.c"
+#line 3644 "Zend/zend_language_scanner.c"
 yy236:
                YYDEBUG(236, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(237, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1420 "Zend/zend_language_scanner.l"
+#line 1426 "Zend/zend_language_scanner.l"
                {
        return T_INC;
 }
-#line 3648 "Zend/zend_language_scanner.c"
+#line 3654 "Zend/zend_language_scanner.c"
 yy238:
                YYDEBUG(238, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3663,42 +3669,42 @@ yy240:
                }
                YYDEBUG(241, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1408 "Zend/zend_language_scanner.l"
+#line 1414 "Zend/zend_language_scanner.l"
                {
        return T_LIST;
 }
-#line 3671 "Zend/zend_language_scanner.c"
+#line 3677 "Zend/zend_language_scanner.c"
 yy242:
                YYDEBUG(242, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy246;
                YYDEBUG(243, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1436 "Zend/zend_language_scanner.l"
+#line 1442 "Zend/zend_language_scanner.l"
                {
        return T_IS_EQUAL;
 }
-#line 3682 "Zend/zend_language_scanner.c"
+#line 3688 "Zend/zend_language_scanner.c"
 yy244:
                YYDEBUG(244, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(245, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1404 "Zend/zend_language_scanner.l"
+#line 1410 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_ARROW;
 }
-#line 3692 "Zend/zend_language_scanner.c"
+#line 3698 "Zend/zend_language_scanner.c"
 yy246:
                YYDEBUG(246, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(247, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1428 "Zend/zend_language_scanner.l"
+#line 1434 "Zend/zend_language_scanner.l"
                {
        return T_IS_IDENTICAL;
 }
-#line 3702 "Zend/zend_language_scanner.c"
+#line 3708 "Zend/zend_language_scanner.c"
 yy248:
                YYDEBUG(248, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3828,11 +3834,11 @@ yy264:
                }
                YYDEBUG(267, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1727 "Zend/zend_language_scanner.l"
+#line 1733 "Zend/zend_language_scanner.l"
                {
        return T_NS_C;
 }
-#line 3836 "Zend/zend_language_scanner.c"
+#line 3842 "Zend/zend_language_scanner.c"
 yy268:
                YYDEBUG(268, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3852,11 +3858,11 @@ yy269:
                }
                YYDEBUG(272, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1723 "Zend/zend_language_scanner.l"
+#line 1729 "Zend/zend_language_scanner.l"
                {
        return T_DIR;
 }
-#line 3860 "Zend/zend_language_scanner.c"
+#line 3866 "Zend/zend_language_scanner.c"
 yy273:
                YYDEBUG(273, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3881,11 +3887,11 @@ yy275:
                }
                YYDEBUG(278, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1715 "Zend/zend_language_scanner.l"
+#line 1721 "Zend/zend_language_scanner.l"
                {
        return T_LINE;
 }
-#line 3889 "Zend/zend_language_scanner.c"
+#line 3895 "Zend/zend_language_scanner.c"
 yy279:
                YYDEBUG(279, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3920,11 +3926,11 @@ yy283:
                }
                YYDEBUG(286, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1711 "Zend/zend_language_scanner.l"
+#line 1717 "Zend/zend_language_scanner.l"
                {
        return T_METHOD_C;
 }
-#line 3928 "Zend/zend_language_scanner.c"
+#line 3934 "Zend/zend_language_scanner.c"
 yy287:
                YYDEBUG(287, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3975,11 +3981,11 @@ yy294:
                }
                YYDEBUG(297, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1707 "Zend/zend_language_scanner.l"
+#line 1713 "Zend/zend_language_scanner.l"
                {
        return T_FUNC_C;
 }
-#line 3983 "Zend/zend_language_scanner.c"
+#line 3989 "Zend/zend_language_scanner.c"
 yy298:
                YYDEBUG(298, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3999,11 +4005,11 @@ yy299:
                }
                YYDEBUG(302, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1719 "Zend/zend_language_scanner.l"
+#line 1725 "Zend/zend_language_scanner.l"
                {
        return T_FILE;
 }
-#line 4007 "Zend/zend_language_scanner.c"
+#line 4013 "Zend/zend_language_scanner.c"
 yy303:
                YYDEBUG(303, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4033,11 +4039,11 @@ yy306:
                }
                YYDEBUG(309, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1703 "Zend/zend_language_scanner.l"
+#line 1709 "Zend/zend_language_scanner.l"
                {
        return T_TRAIT_C;
 }
-#line 4041 "Zend/zend_language_scanner.c"
+#line 4047 "Zend/zend_language_scanner.c"
 yy310:
                YYDEBUG(310, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4067,11 +4073,11 @@ yy313:
                }
                YYDEBUG(316, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1699 "Zend/zend_language_scanner.l"
+#line 1705 "Zend/zend_language_scanner.l"
                {
        return T_CLASS_C;
 }
-#line 4075 "Zend/zend_language_scanner.c"
+#line 4081 "Zend/zend_language_scanner.c"
 yy317:
                YYDEBUG(317, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4133,11 +4139,11 @@ yy328:
                }
                YYDEBUG(329, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1372 "Zend/zend_language_scanner.l"
+#line 1378 "Zend/zend_language_scanner.l"
                {
        return T_HALT_COMPILER;
 }
-#line 4141 "Zend/zend_language_scanner.c"
+#line 4147 "Zend/zend_language_scanner.c"
 yy330:
                YYDEBUG(330, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4157,11 +4163,11 @@ yy332:
                }
                YYDEBUG(333, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1352 "Zend/zend_language_scanner.l"
+#line 1358 "Zend/zend_language_scanner.l"
                {
        return T_USE;
 }
-#line 4165 "Zend/zend_language_scanner.c"
+#line 4171 "Zend/zend_language_scanner.c"
 yy334:
                YYDEBUG(334, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4180,11 +4186,11 @@ yy336:
                }
                YYDEBUG(337, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1400 "Zend/zend_language_scanner.l"
+#line 1406 "Zend/zend_language_scanner.l"
                {
        return T_UNSET;
 }
-#line 4188 "Zend/zend_language_scanner.c"
+#line 4194 "Zend/zend_language_scanner.c"
 yy338:
                YYDEBUG(338, *YYCURSOR);
                ++YYCURSOR;
@@ -4356,11 +4362,11 @@ yy353:
                ++YYCURSOR;
                YYDEBUG(355, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1300 "Zend/zend_language_scanner.l"
+#line 1306 "Zend/zend_language_scanner.l"
                {
        return T_INT_CAST;
 }
-#line 4364 "Zend/zend_language_scanner.c"
+#line 4370 "Zend/zend_language_scanner.c"
 yy356:
                YYDEBUG(356, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4404,11 +4410,11 @@ yy361:
                ++YYCURSOR;
                YYDEBUG(364, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1304 "Zend/zend_language_scanner.l"
+#line 1310 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_CAST;
 }
-#line 4412 "Zend/zend_language_scanner.c"
+#line 4418 "Zend/zend_language_scanner.c"
 yy365:
                YYDEBUG(365, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4478,11 +4484,11 @@ yy375:
                ++YYCURSOR;
                YYDEBUG(378, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1308 "Zend/zend_language_scanner.l"
+#line 1314 "Zend/zend_language_scanner.l"
                {
        return T_STRING_CAST;
 }
-#line 4486 "Zend/zend_language_scanner.c"
+#line 4492 "Zend/zend_language_scanner.c"
 yy379:
                YYDEBUG(379, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4515,11 +4521,11 @@ yy382:
                ++YYCURSOR;
                YYDEBUG(385, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1312 "Zend/zend_language_scanner.l"
+#line 1318 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY_CAST;
 }
-#line 4523 "Zend/zend_language_scanner.c"
+#line 4529 "Zend/zend_language_scanner.c"
 yy386:
                YYDEBUG(386, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4557,11 +4563,11 @@ yy390:
                ++YYCURSOR;
                YYDEBUG(393, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1316 "Zend/zend_language_scanner.l"
+#line 1322 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_CAST;
 }
-#line 4565 "Zend/zend_language_scanner.c"
+#line 4571 "Zend/zend_language_scanner.c"
 yy394:
                YYDEBUG(394, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4602,11 +4608,11 @@ yy399:
                ++YYCURSOR;
                YYDEBUG(401, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1320 "Zend/zend_language_scanner.l"
+#line 1326 "Zend/zend_language_scanner.l"
                {
        return T_BOOL_CAST;
 }
-#line 4610 "Zend/zend_language_scanner.c"
+#line 4616 "Zend/zend_language_scanner.c"
 yy402:
                YYDEBUG(402, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4666,11 +4672,11 @@ yy410:
                ++YYCURSOR;
                YYDEBUG(413, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1324 "Zend/zend_language_scanner.l"
+#line 1330 "Zend/zend_language_scanner.l"
                {
        return T_UNSET_CAST;
 }
-#line 4674 "Zend/zend_language_scanner.c"
+#line 4680 "Zend/zend_language_scanner.c"
 yy414:
                YYDEBUG(414, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4684,11 +4690,11 @@ yy415:
                }
                YYDEBUG(416, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1296 "Zend/zend_language_scanner.l"
+#line 1302 "Zend/zend_language_scanner.l"
                {
        return T_VAR;
 }
-#line 4692 "Zend/zend_language_scanner.c"
+#line 4698 "Zend/zend_language_scanner.c"
 yy417:
                YYDEBUG(417, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4708,11 +4714,11 @@ yy419:
                }
                YYDEBUG(420, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1288 "Zend/zend_language_scanner.l"
+#line 1294 "Zend/zend_language_scanner.l"
                {
        return T_NEW;
 }
-#line 4716 "Zend/zend_language_scanner.c"
+#line 4722 "Zend/zend_language_scanner.c"
 yy421:
                YYDEBUG(421, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4751,11 +4757,11 @@ yy427:
                }
                YYDEBUG(428, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1348 "Zend/zend_language_scanner.l"
+#line 1354 "Zend/zend_language_scanner.l"
                {
        return T_NAMESPACE;
 }
-#line 4759 "Zend/zend_language_scanner.c"
+#line 4765 "Zend/zend_language_scanner.c"
 yy429:
                YYDEBUG(429, *YYCURSOR);
                ++YYCURSOR;
@@ -4764,22 +4770,22 @@ yy429:
 yy430:
                YYDEBUG(430, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1910 "Zend/zend_language_scanner.l"
+#line 1916 "Zend/zend_language_scanner.l"
                {
        BEGIN(INITIAL);
        return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
 }
-#line 4773 "Zend/zend_language_scanner.c"
+#line 4779 "Zend/zend_language_scanner.c"
 yy431:
                YYDEBUG(431, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(432, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1284 "Zend/zend_language_scanner.l"
+#line 1290 "Zend/zend_language_scanner.l"
                {
        return T_COALESCE;
 }
-#line 4783 "Zend/zend_language_scanner.c"
+#line 4789 "Zend/zend_language_scanner.c"
 yy433:
                YYDEBUG(433, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4810,11 +4816,11 @@ yy437:
                ++YYCURSOR;
                YYDEBUG(438, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1476 "Zend/zend_language_scanner.l"
+#line 1482 "Zend/zend_language_scanner.l"
                {
        return T_CONCAT_EQUAL;
 }
-#line 4818 "Zend/zend_language_scanner.c"
+#line 4824 "Zend/zend_language_scanner.c"
 yy439:
                YYDEBUG(439, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4823,21 +4829,21 @@ yy439:
                ++YYCURSOR;
                YYDEBUG(441, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1280 "Zend/zend_language_scanner.l"
+#line 1286 "Zend/zend_language_scanner.l"
                {
        return T_ELLIPSIS;
 }
-#line 4831 "Zend/zend_language_scanner.c"
+#line 4837 "Zend/zend_language_scanner.c"
 yy442:
                YYDEBUG(442, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(443, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1272 "Zend/zend_language_scanner.l"
+#line 1278 "Zend/zend_language_scanner.l"
                {
        return T_PAAMAYIM_NEKUDOTAYIM;
 }
-#line 4841 "Zend/zend_language_scanner.c"
+#line 4847 "Zend/zend_language_scanner.c"
 yy444:
                YYDEBUG(444, *YYCURSOR);
                ++YYCURSOR;
@@ -4859,32 +4865,32 @@ yy446:
                ++YYCURSOR;
                YYDEBUG(447, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1456 "Zend/zend_language_scanner.l"
+#line 1462 "Zend/zend_language_scanner.l"
                {
        return T_MINUS_EQUAL;
 }
-#line 4867 "Zend/zend_language_scanner.c"
+#line 4873 "Zend/zend_language_scanner.c"
 yy448:
                YYDEBUG(448, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(449, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1424 "Zend/zend_language_scanner.l"
+#line 1430 "Zend/zend_language_scanner.l"
                {
        return T_DEC;
 }
-#line 4877 "Zend/zend_language_scanner.c"
+#line 4883 "Zend/zend_language_scanner.c"
 yy450:
                YYDEBUG(450, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(451, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1246 "Zend/zend_language_scanner.l"
+#line 1252 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_PROPERTY);
        return T_OBJECT_OPERATOR;
 }
-#line 4888 "Zend/zend_language_scanner.c"
+#line 4894 "Zend/zend_language_scanner.c"
 yy452:
                YYDEBUG(452, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4929,11 +4935,11 @@ yy457:
                }
                YYDEBUG(458, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1396 "Zend/zend_language_scanner.l"
+#line 1402 "Zend/zend_language_scanner.l"
                {
        return T_PUBLIC;
 }
-#line 4937 "Zend/zend_language_scanner.c"
+#line 4943 "Zend/zend_language_scanner.c"
 yy459:
                YYDEBUG(459, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4988,11 +4994,11 @@ yy466:
                }
                YYDEBUG(467, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1392 "Zend/zend_language_scanner.l"
+#line 1398 "Zend/zend_language_scanner.l"
                {
        return T_PROTECTED;
 }
-#line 4996 "Zend/zend_language_scanner.c"
+#line 5002 "Zend/zend_language_scanner.c"
 yy468:
                YYDEBUG(468, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5022,11 +5028,11 @@ yy472:
                }
                YYDEBUG(473, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1388 "Zend/zend_language_scanner.l"
+#line 1394 "Zend/zend_language_scanner.l"
                {
        return T_PRIVATE;
 }
-#line 5030 "Zend/zend_language_scanner.c"
+#line 5036 "Zend/zend_language_scanner.c"
 yy474:
                YYDEBUG(474, *YYCURSOR);
                ++YYCURSOR;
@@ -5035,11 +5041,11 @@ yy474:
                }
                YYDEBUG(475, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1222 "Zend/zend_language_scanner.l"
+#line 1228 "Zend/zend_language_scanner.l"
                {
        return T_PRINT;
 }
-#line 5043 "Zend/zend_language_scanner.c"
+#line 5049 "Zend/zend_language_scanner.c"
 yy476:
                YYDEBUG(476, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5064,11 +5070,11 @@ yy479:
                }
                YYDEBUG(480, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1214 "Zend/zend_language_scanner.l"
+#line 1220 "Zend/zend_language_scanner.l"
                {
        return T_GOTO;
 }
-#line 5072 "Zend/zend_language_scanner.c"
+#line 5078 "Zend/zend_language_scanner.c"
 yy481:
                YYDEBUG(481, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5092,11 +5098,11 @@ yy484:
                }
                YYDEBUG(485, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1360 "Zend/zend_language_scanner.l"
+#line 1366 "Zend/zend_language_scanner.l"
                {
        return T_GLOBAL;
 }
-#line 5100 "Zend/zend_language_scanner.c"
+#line 5106 "Zend/zend_language_scanner.c"
 yy486:
                YYDEBUG(486, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5133,11 +5139,11 @@ yy492:
                }
                YYDEBUG(493, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1206 "Zend/zend_language_scanner.l"
+#line 1212 "Zend/zend_language_scanner.l"
                {
        return T_BREAK;
 }
-#line 5141 "Zend/zend_language_scanner.c"
+#line 5147 "Zend/zend_language_scanner.c"
 yy494:
                YYDEBUG(494, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5177,11 +5183,11 @@ yy500:
                }
                YYDEBUG(501, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1190 "Zend/zend_language_scanner.l"
+#line 1196 "Zend/zend_language_scanner.l"
                {
        return T_SWITCH;
 }
-#line 5185 "Zend/zend_language_scanner.c"
+#line 5191 "Zend/zend_language_scanner.c"
 yy502:
                YYDEBUG(502, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5205,11 +5211,11 @@ yy505:
                }
                YYDEBUG(506, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1376 "Zend/zend_language_scanner.l"
+#line 1382 "Zend/zend_language_scanner.l"
                {
        return T_STATIC;
 }
-#line 5213 "Zend/zend_language_scanner.c"
+#line 5219 "Zend/zend_language_scanner.c"
 yy507:
                YYDEBUG(507, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5236,11 +5242,11 @@ yy510:
                }
                YYDEBUG(511, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1186 "Zend/zend_language_scanner.l"
+#line 1192 "Zend/zend_language_scanner.l"
                {
        return T_AS;
 }
-#line 5244 "Zend/zend_language_scanner.c"
+#line 5250 "Zend/zend_language_scanner.c"
 yy512:
                YYDEBUG(512, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5259,11 +5265,11 @@ yy514:
                }
                YYDEBUG(515, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1412 "Zend/zend_language_scanner.l"
+#line 1418 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY;
 }
-#line 5267 "Zend/zend_language_scanner.c"
+#line 5273 "Zend/zend_language_scanner.c"
 yy516:
                YYDEBUG(516, *YYCURSOR);
                ++YYCURSOR;
@@ -5272,11 +5278,11 @@ yy516:
                }
                YYDEBUG(517, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1516 "Zend/zend_language_scanner.l"
+#line 1522 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_AND;
 }
-#line 5280 "Zend/zend_language_scanner.c"
+#line 5286 "Zend/zend_language_scanner.c"
 yy518:
                YYDEBUG(518, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5310,11 +5316,11 @@ yy523:
                }
                YYDEBUG(524, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1380 "Zend/zend_language_scanner.l"
+#line 1386 "Zend/zend_language_scanner.l"
                {
        return T_ABSTRACT;
 }
-#line 5318 "Zend/zend_language_scanner.c"
+#line 5324 "Zend/zend_language_scanner.c"
 yy525:
                YYDEBUG(525, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5338,11 +5344,11 @@ yy528:
                }
                YYDEBUG(529, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1146 "Zend/zend_language_scanner.l"
+#line 1152 "Zend/zend_language_scanner.l"
                {
        return T_WHILE;
 }
-#line 5346 "Zend/zend_language_scanner.c"
+#line 5352 "Zend/zend_language_scanner.c"
 yy530:
                YYDEBUG(530, *YYCURSOR);
                ++YYCURSOR;
@@ -5351,11 +5357,11 @@ yy530:
                }
                YYDEBUG(531, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1130 "Zend/zend_language_scanner.l"
+#line 1136 "Zend/zend_language_scanner.l"
                {
        return T_IF;
 }
-#line 5359 "Zend/zend_language_scanner.c"
+#line 5365 "Zend/zend_language_scanner.c"
 yy532:
                YYDEBUG(532, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5407,11 +5413,11 @@ yy537:
                }
                YYDEBUG(538, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1364 "Zend/zend_language_scanner.l"
+#line 1370 "Zend/zend_language_scanner.l"
                {
        return T_ISSET;
 }
-#line 5415 "Zend/zend_language_scanner.c"
+#line 5421 "Zend/zend_language_scanner.c"
 yy539:
                YYDEBUG(539, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5465,11 +5471,11 @@ yy545:
 yy546:
                YYDEBUG(546, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1332 "Zend/zend_language_scanner.l"
+#line 1338 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE;
 }
-#line 5473 "Zend/zend_language_scanner.c"
+#line 5479 "Zend/zend_language_scanner.c"
 yy547:
                YYDEBUG(547, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5498,11 +5504,11 @@ yy551:
                }
                YYDEBUG(552, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1336 "Zend/zend_language_scanner.l"
+#line 1342 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE_ONCE;
 }
-#line 5506 "Zend/zend_language_scanner.c"
+#line 5512 "Zend/zend_language_scanner.c"
 yy553:
                YYDEBUG(553, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5536,11 +5542,11 @@ yy558:
                }
                YYDEBUG(559, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1230 "Zend/zend_language_scanner.l"
+#line 1236 "Zend/zend_language_scanner.l"
                {
        return T_INTERFACE;
 }
-#line 5544 "Zend/zend_language_scanner.c"
+#line 5550 "Zend/zend_language_scanner.c"
 yy560:
                YYDEBUG(560, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5590,11 +5596,11 @@ yy566:
                }
                YYDEBUG(567, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1356 "Zend/zend_language_scanner.l"
+#line 1362 "Zend/zend_language_scanner.l"
                {
         return T_INSTEADOF;
 }
-#line 5598 "Zend/zend_language_scanner.c"
+#line 5604 "Zend/zend_language_scanner.c"
 yy568:
                YYDEBUG(568, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5623,11 +5629,11 @@ yy572:
                }
                YYDEBUG(573, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1182 "Zend/zend_language_scanner.l"
+#line 1188 "Zend/zend_language_scanner.l"
                {
        return T_INSTANCEOF;
 }
-#line 5631 "Zend/zend_language_scanner.c"
+#line 5637 "Zend/zend_language_scanner.c"
 yy574:
                YYDEBUG(574, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5671,11 +5677,11 @@ yy581:
                }
                YYDEBUG(582, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1242 "Zend/zend_language_scanner.l"
+#line 1248 "Zend/zend_language_scanner.l"
                {
        return T_IMPLEMENTS;
 }
-#line 5679 "Zend/zend_language_scanner.c"
+#line 5685 "Zend/zend_language_scanner.c"
 yy583:
                YYDEBUG(583, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5703,11 +5709,11 @@ yy584:
                }
                YYDEBUG(586, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1114 "Zend/zend_language_scanner.l"
+#line 1120 "Zend/zend_language_scanner.l"
                {
        return T_TRY;
 }
-#line 5711 "Zend/zend_language_scanner.c"
+#line 5717 "Zend/zend_language_scanner.c"
 yy587:
                YYDEBUG(587, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5726,11 +5732,11 @@ yy589:
                }
                YYDEBUG(590, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1234 "Zend/zend_language_scanner.l"
+#line 1240 "Zend/zend_language_scanner.l"
                {
        return T_TRAIT;
 }
-#line 5734 "Zend/zend_language_scanner.c"
+#line 5740 "Zend/zend_language_scanner.c"
 yy591:
                YYDEBUG(591, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5749,11 +5755,11 @@ yy593:
                }
                YYDEBUG(594, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1126 "Zend/zend_language_scanner.l"
+#line 1132 "Zend/zend_language_scanner.l"
                {
        return T_THROW;
 }
-#line 5757 "Zend/zend_language_scanner.c"
+#line 5763 "Zend/zend_language_scanner.c"
 yy595:
                YYDEBUG(595, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5777,11 +5783,11 @@ yy598:
                }
                YYDEBUG(599, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1110 "Zend/zend_language_scanner.l"
+#line 1116 "Zend/zend_language_scanner.l"
                {
        return T_YIELD;
 }
-#line 5785 "Zend/zend_language_scanner.c"
+#line 5791 "Zend/zend_language_scanner.c"
 yy600:
                YYDEBUG(600, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5842,11 +5848,11 @@ yy606:
 yy607:
                YYDEBUG(607, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1340 "Zend/zend_language_scanner.l"
+#line 1346 "Zend/zend_language_scanner.l"
                {
        return T_REQUIRE;
 }
-#line 5850 "Zend/zend_language_scanner.c"
+#line 5856 "Zend/zend_language_scanner.c"
 yy608:
                YYDEBUG(608, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5875,11 +5881,11 @@ yy612:
                }
                YYDEBUG(613, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1344 "Zend/zend_language_scanner.l"
+#line 1350 "Zend/zend_language_scanner.l"
                {
        return T_REQUIRE_ONCE;
 }
-#line 5883 "Zend/zend_language_scanner.c"
+#line 5889 "Zend/zend_language_scanner.c"
 yy614:
                YYDEBUG(614, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5898,11 +5904,11 @@ yy616:
                }
                YYDEBUG(617, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1106 "Zend/zend_language_scanner.l"
+#line 1112 "Zend/zend_language_scanner.l"
                {
        return T_RETURN;
 }
-#line 5906 "Zend/zend_language_scanner.c"
+#line 5912 "Zend/zend_language_scanner.c"
 yy618:
                YYDEBUG(618, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5992,11 +5998,11 @@ yy627:
                }
                YYDEBUG(628, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1210 "Zend/zend_language_scanner.l"
+#line 1216 "Zend/zend_language_scanner.l"
                {
        return T_CONTINUE;
 }
-#line 6000 "Zend/zend_language_scanner.c"
+#line 6006 "Zend/zend_language_scanner.c"
 yy629:
                YYDEBUG(629, *YYCURSOR);
                ++YYCURSOR;
@@ -6005,11 +6011,11 @@ yy629:
                }
                YYDEBUG(630, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1102 "Zend/zend_language_scanner.l"
+#line 1108 "Zend/zend_language_scanner.l"
                {
        return T_CONST;
 }
-#line 6013 "Zend/zend_language_scanner.c"
+#line 6019 "Zend/zend_language_scanner.c"
 yy631:
                YYDEBUG(631, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6034,11 +6040,11 @@ yy634:
                }
                YYDEBUG(635, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1292 "Zend/zend_language_scanner.l"
+#line 1298 "Zend/zend_language_scanner.l"
                {
        return T_CLONE;
 }
-#line 6042 "Zend/zend_language_scanner.c"
+#line 6048 "Zend/zend_language_scanner.c"
 yy636:
                YYDEBUG(636, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6052,11 +6058,11 @@ yy637:
                }
                YYDEBUG(638, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1226 "Zend/zend_language_scanner.l"
+#line 1232 "Zend/zend_language_scanner.l"
                {
        return T_CLASS;
 }
-#line 6060 "Zend/zend_language_scanner.c"
+#line 6066 "Zend/zend_language_scanner.c"
 yy639:
                YYDEBUG(639, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6102,11 +6108,11 @@ yy646:
                }
                YYDEBUG(647, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1416 "Zend/zend_language_scanner.l"
+#line 1422 "Zend/zend_language_scanner.l"
                {
  return T_CALLABLE;
 }
-#line 6110 "Zend/zend_language_scanner.c"
+#line 6116 "Zend/zend_language_scanner.c"
 yy648:
                YYDEBUG(648, *YYCURSOR);
                ++YYCURSOR;
@@ -6115,11 +6121,11 @@ yy648:
                }
                YYDEBUG(649, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1198 "Zend/zend_language_scanner.l"
+#line 1204 "Zend/zend_language_scanner.l"
                {
        return T_CASE;
 }
-#line 6123 "Zend/zend_language_scanner.c"
+#line 6129 "Zend/zend_language_scanner.c"
 yy650:
                YYDEBUG(650, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6133,11 +6139,11 @@ yy651:
                }
                YYDEBUG(652, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1118 "Zend/zend_language_scanner.l"
+#line 1124 "Zend/zend_language_scanner.l"
                {
        return T_CATCH;
 }
-#line 6141 "Zend/zend_language_scanner.c"
+#line 6147 "Zend/zend_language_scanner.c"
 yy653:
                YYDEBUG(653, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6188,11 +6194,11 @@ yy661:
                }
                YYDEBUG(662, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1098 "Zend/zend_language_scanner.l"
+#line 1104 "Zend/zend_language_scanner.l"
                {
        return T_FUNCTION;
 }
-#line 6196 "Zend/zend_language_scanner.c"
+#line 6202 "Zend/zend_language_scanner.c"
 yy663:
                YYDEBUG(663, *YYCURSOR);
                ++YYCURSOR;
@@ -6216,11 +6222,11 @@ yy663:
 yy664:
                YYDEBUG(664, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1158 "Zend/zend_language_scanner.l"
+#line 1164 "Zend/zend_language_scanner.l"
                {
        return T_FOR;
 }
-#line 6224 "Zend/zend_language_scanner.c"
+#line 6230 "Zend/zend_language_scanner.c"
 yy665:
                YYDEBUG(665, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6244,11 +6250,11 @@ yy668:
                }
                YYDEBUG(669, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1166 "Zend/zend_language_scanner.l"
+#line 1172 "Zend/zend_language_scanner.l"
                {
        return T_FOREACH;
 }
-#line 6252 "Zend/zend_language_scanner.c"
+#line 6258 "Zend/zend_language_scanner.c"
 yy670:
                YYDEBUG(670, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6282,11 +6288,11 @@ yy672:
 yy673:
                YYDEBUG(673, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1384 "Zend/zend_language_scanner.l"
+#line 1390 "Zend/zend_language_scanner.l"
                {
        return T_FINAL;
 }
-#line 6290 "Zend/zend_language_scanner.c"
+#line 6296 "Zend/zend_language_scanner.c"
 yy674:
                YYDEBUG(674, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6300,11 +6306,11 @@ yy675:
                }
                YYDEBUG(676, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1122 "Zend/zend_language_scanner.l"
+#line 1128 "Zend/zend_language_scanner.l"
                {
        return T_FINALLY;
 }
-#line 6308 "Zend/zend_language_scanner.c"
+#line 6314 "Zend/zend_language_scanner.c"
 yy677:
                YYDEBUG(677, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6335,11 +6341,11 @@ yy679:
                }
                YYDEBUG(680, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1154 "Zend/zend_language_scanner.l"
+#line 1160 "Zend/zend_language_scanner.l"
                {
        return T_DO;
 }
-#line 6343 "Zend/zend_language_scanner.c"
+#line 6349 "Zend/zend_language_scanner.c"
 yy681:
                YYDEBUG(681, *YYCURSOR);
                ++YYCURSOR;
@@ -6348,11 +6354,11 @@ yy681:
                }
                YYDEBUG(682, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1094 "Zend/zend_language_scanner.l"
+#line 1100 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
 }
-#line 6356 "Zend/zend_language_scanner.c"
+#line 6362 "Zend/zend_language_scanner.c"
 yy683:
                YYDEBUG(683, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6387,11 +6393,11 @@ yy688:
                }
                YYDEBUG(689, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1202 "Zend/zend_language_scanner.l"
+#line 1208 "Zend/zend_language_scanner.l"
                {
        return T_DEFAULT;
 }
-#line 6395 "Zend/zend_language_scanner.c"
+#line 6401 "Zend/zend_language_scanner.c"
 yy690:
                YYDEBUG(690, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6415,11 +6421,11 @@ yy693:
                }
                YYDEBUG(694, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1174 "Zend/zend_language_scanner.l"
+#line 1180 "Zend/zend_language_scanner.l"
                {
        return T_DECLARE;
 }
-#line 6423 "Zend/zend_language_scanner.c"
+#line 6429 "Zend/zend_language_scanner.c"
 yy695:
                YYDEBUG(695, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6499,11 +6505,11 @@ yy706:
                }
                YYDEBUG(707, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1238 "Zend/zend_language_scanner.l"
+#line 1244 "Zend/zend_language_scanner.l"
                {
        return T_EXTENDS;
 }
-#line 6507 "Zend/zend_language_scanner.c"
+#line 6513 "Zend/zend_language_scanner.c"
 yy708:
                YYDEBUG(708, *YYCURSOR);
                ++YYCURSOR;
@@ -6512,11 +6518,11 @@ yy708:
                }
                YYDEBUG(709, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1090 "Zend/zend_language_scanner.l"
+#line 1096 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
 }
-#line 6520 "Zend/zend_language_scanner.c"
+#line 6526 "Zend/zend_language_scanner.c"
 yy710:
                YYDEBUG(710, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6530,11 +6536,11 @@ yy711:
                }
                YYDEBUG(712, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1328 "Zend/zend_language_scanner.l"
+#line 1334 "Zend/zend_language_scanner.l"
                {
        return T_EVAL;
 }
-#line 6538 "Zend/zend_language_scanner.c"
+#line 6544 "Zend/zend_language_scanner.c"
 yy713:
                YYDEBUG(713, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6604,11 +6610,11 @@ yy722:
                }
                YYDEBUG(723, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1150 "Zend/zend_language_scanner.l"
+#line 1156 "Zend/zend_language_scanner.l"
                {
        return T_ENDWHILE;
 }
-#line 6612 "Zend/zend_language_scanner.c"
+#line 6618 "Zend/zend_language_scanner.c"
 yy724:
                YYDEBUG(724, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6637,11 +6643,11 @@ yy728:
                }
                YYDEBUG(729, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1194 "Zend/zend_language_scanner.l"
+#line 1200 "Zend/zend_language_scanner.l"
                {
        return T_ENDSWITCH;
 }
-#line 6645 "Zend/zend_language_scanner.c"
+#line 6651 "Zend/zend_language_scanner.c"
 yy730:
                YYDEBUG(730, *YYCURSOR);
                ++YYCURSOR;
@@ -6650,11 +6656,11 @@ yy730:
                }
                YYDEBUG(731, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1138 "Zend/zend_language_scanner.l"
+#line 1144 "Zend/zend_language_scanner.l"
                {
        return T_ENDIF;
 }
-#line 6658 "Zend/zend_language_scanner.c"
+#line 6664 "Zend/zend_language_scanner.c"
 yy732:
                YYDEBUG(732, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6683,11 +6689,11 @@ yy733:
 yy734:
                YYDEBUG(734, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1162 "Zend/zend_language_scanner.l"
+#line 1168 "Zend/zend_language_scanner.l"
                {
        return T_ENDFOR;
 }
-#line 6691 "Zend/zend_language_scanner.c"
+#line 6697 "Zend/zend_language_scanner.c"
 yy735:
                YYDEBUG(735, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6711,11 +6717,11 @@ yy738:
                }
                YYDEBUG(739, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1170 "Zend/zend_language_scanner.l"
+#line 1176 "Zend/zend_language_scanner.l"
                {
        return T_ENDFOREACH;
 }
-#line 6719 "Zend/zend_language_scanner.c"
+#line 6725 "Zend/zend_language_scanner.c"
 yy740:
                YYDEBUG(740, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6749,11 +6755,11 @@ yy745:
                }
                YYDEBUG(746, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1178 "Zend/zend_language_scanner.l"
+#line 1184 "Zend/zend_language_scanner.l"
                {
        return T_ENDDECLARE;
 }
-#line 6757 "Zend/zend_language_scanner.c"
+#line 6763 "Zend/zend_language_scanner.c"
 yy747:
                YYDEBUG(747, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6772,11 +6778,11 @@ yy749:
                }
                YYDEBUG(750, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1368 "Zend/zend_language_scanner.l"
+#line 1374 "Zend/zend_language_scanner.l"
                {
        return T_EMPTY;
 }
-#line 6780 "Zend/zend_language_scanner.c"
+#line 6786 "Zend/zend_language_scanner.c"
 yy751:
                YYDEBUG(751, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6805,11 +6811,11 @@ yy752:
 yy753:
                YYDEBUG(753, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1142 "Zend/zend_language_scanner.l"
+#line 1148 "Zend/zend_language_scanner.l"
                {
        return T_ELSE;
 }
-#line 6813 "Zend/zend_language_scanner.c"
+#line 6819 "Zend/zend_language_scanner.c"
 yy754:
                YYDEBUG(754, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6823,11 +6829,11 @@ yy755:
                }
                YYDEBUG(756, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1134 "Zend/zend_language_scanner.l"
+#line 1140 "Zend/zend_language_scanner.l"
                {
        return T_ELSEIF;
 }
-#line 6831 "Zend/zend_language_scanner.c"
+#line 6837 "Zend/zend_language_scanner.c"
 yy757:
                YYDEBUG(757, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6841,11 +6847,11 @@ yy758:
                }
                YYDEBUG(759, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1218 "Zend/zend_language_scanner.l"
+#line 1224 "Zend/zend_language_scanner.l"
                {
        return T_ECHO;
 }
-#line 6849 "Zend/zend_language_scanner.c"
+#line 6855 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_LOOKING_FOR_PROPERTY:
@@ -6918,12 +6924,12 @@ yy762:
 yy763:
                YYDEBUG(763, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1251 "Zend/zend_language_scanner.l"
+#line 1257 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        return T_WHITESPACE;
 }
-#line 6927 "Zend/zend_language_scanner.c"
+#line 6933 "Zend/zend_language_scanner.c"
 yy764:
                YYDEBUG(764, *YYCURSOR);
                ++YYCURSOR;
@@ -6931,13 +6937,13 @@ yy764:
 yy765:
                YYDEBUG(765, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1266 "Zend/zend_language_scanner.l"
+#line 1272 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state();
        goto restart;
 }
-#line 6941 "Zend/zend_language_scanner.c"
+#line 6947 "Zend/zend_language_scanner.c"
 yy766:
                YYDEBUG(766, *YYCURSOR);
                ++YYCURSOR;
@@ -6946,13 +6952,13 @@ yy766:
 yy767:
                YYDEBUG(767, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1260 "Zend/zend_language_scanner.l"
+#line 1266 "Zend/zend_language_scanner.l"
                {
        yy_pop_state();
        zend_copy_value(zendlval, yytext, yyleng);
        return T_STRING;
 }
-#line 6956 "Zend/zend_language_scanner.c"
+#line 6962 "Zend/zend_language_scanner.c"
 yy768:
                YYDEBUG(768, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6973,11 +6979,11 @@ yy771:
                ++YYCURSOR;
                YYDEBUG(772, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1256 "Zend/zend_language_scanner.l"
+#line 1262 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_OPERATOR;
 }
-#line 6981 "Zend/zend_language_scanner.c"
+#line 6987 "Zend/zend_language_scanner.c"
 yy773:
                YYDEBUG(773, *YYCURSOR);
                ++YYCURSOR;
@@ -7062,14 +7068,14 @@ yy777:
 yy778:
                YYDEBUG(778, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1567 "Zend/zend_language_scanner.l"
+#line 1573 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state();
        yy_push_state(ST_IN_SCRIPTING);
        goto restart;
 }
-#line 7073 "Zend/zend_language_scanner.c"
+#line 7079 "Zend/zend_language_scanner.c"
 yy779:
                YYDEBUG(779, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7094,7 +7100,7 @@ yy783:
                ++YYCURSOR;
                YYDEBUG(784, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1558 "Zend/zend_language_scanner.l"
+#line 1564 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        zend_copy_value(zendlval, yytext, yyleng);
@@ -7102,7 +7108,7 @@ yy783:
        yy_push_state(ST_IN_SCRIPTING);
        return T_STRING_VARNAME;
 }
-#line 7106 "Zend/zend_language_scanner.c"
+#line 7112 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_NOWDOC:
@@ -7113,7 +7119,7 @@ yyc_ST_NOWDOC:
        ++YYCURSOR;
        YYDEBUG(788, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 2280 "Zend/zend_language_scanner.l"
+#line 2286 "Zend/zend_language_scanner.l"
        {
        int newline = 0;
 
@@ -7169,7 +7175,7 @@ nowdoc_scan_done:
        HANDLE_NEWLINES(yytext, yyleng - newline);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 7173 "Zend/zend_language_scanner.c"
+#line 7179 "Zend/zend_language_scanner.c"
 /* *********************************** */
 yyc_ST_VAR_OFFSET:
        {
@@ -7276,7 +7282,7 @@ yy791:
 yy792:
                YYDEBUG(792, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1669 "Zend/zend_language_scanner.l"
+#line 1675 "Zend/zend_language_scanner.l"
                { /* Offset could be treated as a long */
        if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {
                char *end;
@@ -7292,7 +7298,7 @@ string:
        }
        return T_NUM_STRING;
 }
-#line 7296 "Zend/zend_language_scanner.c"
+#line 7302 "Zend/zend_language_scanner.c"
 yy793:
                YYDEBUG(793, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7312,23 +7318,23 @@ yy794:
 yy795:
                YYDEBUG(795, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1829 "Zend/zend_language_scanner.l"
+#line 1835 "Zend/zend_language_scanner.l"
                {
        /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
        return yytext[0];
 }
-#line 7321 "Zend/zend_language_scanner.c"
+#line 7327 "Zend/zend_language_scanner.c"
 yy796:
                YYDEBUG(796, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(797, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1824 "Zend/zend_language_scanner.l"
+#line 1830 "Zend/zend_language_scanner.l"
                {
        yy_pop_state();
        return ']';
 }
-#line 7332 "Zend/zend_language_scanner.c"
+#line 7338 "Zend/zend_language_scanner.c"
 yy798:
                YYDEBUG(798, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7338,7 +7344,7 @@ yy799:
                ++YYCURSOR;
                YYDEBUG(800, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1834 "Zend/zend_language_scanner.l"
+#line 1840 "Zend/zend_language_scanner.l"
                {
        /* Invalid rule to return a more explicit parse error with proper line number */
        yyless(0);
@@ -7346,7 +7352,7 @@ yy799:
        ZVAL_NULL(zendlval);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 7350 "Zend/zend_language_scanner.c"
+#line 7356 "Zend/zend_language_scanner.c"
 yy801:
                YYDEBUG(801, *YYCURSOR);
                ++YYCURSOR;
@@ -7355,18 +7361,18 @@ yy801:
 yy802:
                YYDEBUG(802, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1842 "Zend/zend_language_scanner.l"
+#line 1848 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        return T_STRING;
 }
-#line 7364 "Zend/zend_language_scanner.c"
+#line 7370 "Zend/zend_language_scanner.c"
 yy803:
                YYDEBUG(803, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(804, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2337 "Zend/zend_language_scanner.l"
+#line 2343 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                return 0;
@@ -7375,7 +7381,7 @@ yy803:
        zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
        goto restart;
 }
-#line 7379 "Zend/zend_language_scanner.c"
+#line 7385 "Zend/zend_language_scanner.c"
 yy805:
                YYDEBUG(805, *YYCURSOR);
                ++YYCURSOR;
@@ -7411,12 +7417,12 @@ yy807:
 yy809:
                YYDEBUG(809, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1819 "Zend/zend_language_scanner.l"
+#line 1825 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        return T_VARIABLE;
 }
-#line 7420 "Zend/zend_language_scanner.c"
+#line 7426 "Zend/zend_language_scanner.c"
 yy810:
                YYDEBUG(810, *YYCURSOR);
                ++YYCURSOR;
@@ -7456,12 +7462,12 @@ yy815:
 yy817:
                YYDEBUG(817, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1685 "Zend/zend_language_scanner.l"
+#line 1691 "Zend/zend_language_scanner.l"
                { /* Offset must be treated as a string */
        ZVAL_STRINGL(zendlval, yytext, yyleng);
        return T_NUM_STRING;
 }
-#line 7465 "Zend/zend_language_scanner.c"
+#line 7471 "Zend/zend_language_scanner.c"
 yy818:
                YYDEBUG(818, *YYCURSOR);
                ++YYCURSOR;
@@ -7484,6 +7490,6 @@ yy820:
                goto yy817;
        }
 }
-#line 2346 "Zend/zend_language_scanner.l"
+#line 2352 "Zend/zend_language_scanner.l"
 
 }
index 6d2a737f8e5e9a833fd2952b396ea4d2db0c3a80..38e817f84b9c8881b4fe66f7ecf01830c66435d2 100644 (file)
@@ -586,6 +586,9 @@ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type)
                if (compiler_result != 0) { /* parser error */
                        zend_bailout();
                }
+               if (zend_ast_process) {
+                       zend_ast_process(CG(ast));
+               }
                zend_compile_top_stmt(CG(ast));
                zend_ast_destroy(CG(ast));
                zend_arena_destroy(CG(ast_arena));
@@ -747,6 +750,9 @@ zend_op_array *compile_string(zval *source_string, char *filename)
 
                        zend_stack_push(&CG(context_stack), (void *) &CG(context));
                        zend_init_compiler_context();
+                       if (zend_ast_process) {
+                               zend_ast_process(CG(ast));
+                       }
                        zend_compile_top_stmt(CG(ast));
                        zend_do_end_compilation();
                        zend_emit_final_return(NULL);