]> granicus.if.org Git - php/commitdiff
add sanity checks for ZEND_MMAP_AHEAD and reduce the value from 32 to 16 (lowest...
authorNuno Lopes <nlopess@php.net>
Fri, 4 Apr 2008 15:01:23 +0000 (15:01 +0000)
committerNuno Lopes <nlopess@php.net>
Fri, 4 Apr 2008 15:01:23 +0000 (15:01 +0000)
Zend/zend_ini_scanner.c
Zend/zend_ini_scanner.l
Zend/zend_ini_scanner_defs.h
Zend/zend_language_scanner.c
Zend/zend_language_scanner.l
Zend/zend_language_scanner_defs.h
Zend/zend_stream.h

index da29b2ebb0d8e708b397a6e89a62d7a1dbacdc45..54bda10ba03aa359697e4e15a345bff25d9ffdcf 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.4.dev on Sat Mar 22 18:41:39 2008 */
+/* Generated by re2c 0.13.4.dev on Fri Apr  4 15:52:51 2008 */
 #line 1 "Zend/zend_ini_scanner.l"
 /*
    +----------------------------------------------------------------------+
 
 /* $Id$ */
 
+#include <errno.h>
+#include "zend.h"
+#include "zend_globals.h"
+#include <zend_ini_parser.h>
+#include "zend_ini_scanner.h"
 
 #if 0
 # define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c)
 #define yyless(x)    YYCURSOR = yytext + x
 /* #define yymore()     goto yymore_restart */
 
+/* perform sanity check. If this message is triggered you should
+   increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */
+#define YYMAXFILL 6
+#if ZEND_MMAP_AHEAD < YYMAXFILL
+# error ZEND_MMAP_AHEAD should be greater than or equal to YYMAXFILL
+#endif
+
+
 /* How it works (for the core ini directives):
  * ===========================================
  *
  *
  */
 
-#include <errno.h>
-#include "zend.h"
-#include "zend_globals.h"
-#include <zend_ini_parser.h>
-#include "zend_ini_scanner.h"
-
 /* Globals Macros */
 #define SCNG   INI_SCNG
 #ifdef ZTS
@@ -296,7 +303,7 @@ restart:
        }
 
 
-#line 300 "Zend/zend_ini_scanner.c"
+#line 307 "Zend/zend_ini_scanner.c"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
@@ -473,11 +480,11 @@ yy2:
                ++YYCURSOR;
                YYDEBUG(3, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 487 "Zend/zend_ini_scanner.l"
+#line 494 "Zend/zend_ini_scanner.l"
                {
        return 0;
 }
-#line 481 "Zend/zend_ini_scanner.c"
+#line 488 "Zend/zend_ini_scanner.c"
 yy4:
                YYDEBUG(4, *YYCURSOR);
                yyaccept = 0;
@@ -486,24 +493,24 @@ yy4:
 yy5:
                YYDEBUG(5, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 466 "Zend/zend_ini_scanner.l"
+#line 473 "Zend/zend_ini_scanner.l"
                {
        /* eat whitespace */
        goto restart;
 }
-#line 495 "Zend/zend_ini_scanner.c"
+#line 502 "Zend/zend_ini_scanner.c"
 yy6:
                YYDEBUG(6, *YYCURSOR);
                ++YYCURSOR;
 yy7:
                YYDEBUG(7, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 471 "Zend/zend_ini_scanner.l"
+#line 478 "Zend/zend_ini_scanner.l"
                {
        SCNG(lineno)++;
        return END_OF_LINE;
 }
-#line 507 "Zend/zend_ini_scanner.c"
+#line 514 "Zend/zend_ini_scanner.c"
 yy8:
                YYDEBUG(8, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -514,11 +521,11 @@ yy9:
                ++YYCURSOR;
                YYDEBUG(10, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 425 "Zend/zend_ini_scanner.l"
+#line 432 "Zend/zend_ini_scanner.l"
                { /* Disallow these chars outside option values */
        return yytext[0];
 }
-#line 522 "Zend/zend_ini_scanner.c"
+#line 529 "Zend/zend_ini_scanner.c"
 yy11:
                YYDEBUG(11, *YYCURSOR);
                ++YYCURSOR;
@@ -527,11 +534,11 @@ yy11:
 yy12:
                YYDEBUG(12, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 384 "Zend/zend_ini_scanner.l"
+#line 391 "Zend/zend_ini_scanner.l"
                { /* Get option name */
        RETURN_TOKEN(TC_LABEL, yytext, yyleng);
 }
-#line 535 "Zend/zend_ini_scanner.c"
+#line 542 "Zend/zend_ini_scanner.c"
 yy13:
                YYDEBUG(13, *YYCURSOR);
                yyaccept = 1;
@@ -545,7 +552,7 @@ yy14:
 yy15:
                YYDEBUG(15, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 388 "Zend/zend_ini_scanner.l"
+#line 395 "Zend/zend_ini_scanner.l"
                { /* Start option value */
        if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) {
                yy_push_state(ST_RAW TSRMLS_CC);
@@ -554,7 +561,7 @@ yy15:
        }
        return '=';
 }
-#line 558 "Zend/zend_ini_scanner.c"
+#line 565 "Zend/zend_ini_scanner.c"
 yy16:
                YYDEBUG(16, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -610,7 +617,7 @@ yy21:
                ++YYCURSOR;
                YYDEBUG(22, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 322 "Zend/zend_ini_scanner.l"
+#line 329 "Zend/zend_ini_scanner.l"
                { /* Section start */
        /* Enter section data lookup state */
        if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) {
@@ -620,7 +627,7 @@ yy21:
        }
        return TC_SECTION;
 }
-#line 624 "Zend/zend_ini_scanner.c"
+#line 631 "Zend/zend_ini_scanner.c"
 yy23:
                YYDEBUG(23, *YYCURSOR);
                ++YYCURSOR;
@@ -650,7 +657,7 @@ yy26:
                }
                YYDEBUG(28, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 347 "Zend/zend_ini_scanner.l"
+#line 354 "Zend/zend_ini_scanner.l"
                { /* Start of option with offset */
        /* Eat trailing whitespace and [ */
        EAT_TRAILING_WHITESPACE_EX('[');
@@ -660,7 +667,7 @@ yy26:
 
        RETURN_TOKEN(TC_OFFSET, yytext, yyleng);
 }
-#line 664 "Zend/zend_ini_scanner.c"
+#line 671 "Zend/zend_ini_scanner.c"
 yy29:
                YYDEBUG(29, *YYCURSOR);
                ++YYCURSOR;
@@ -672,11 +679,11 @@ yy29:
 yy30:
                YYDEBUG(30, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 376 "Zend/zend_ini_scanner.l"
+#line 383 "Zend/zend_ini_scanner.l"
                { /* TRUE value (when used outside option value/offset this causes parse error!) */
        RETURN_TOKEN(BOOL_TRUE, "1", 1);
 }
-#line 680 "Zend/zend_ini_scanner.c"
+#line 687 "Zend/zend_ini_scanner.c"
 yy31:
                YYDEBUG(31, *YYCURSOR);
                ++YYCURSOR;
@@ -714,11 +721,11 @@ yy36:
 yy37:
                YYDEBUG(37, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 380 "Zend/zend_ini_scanner.l"
+#line 387 "Zend/zend_ini_scanner.l"
                { /* FALSE value (when used outside option value/offset this causes parse error!)*/
        RETURN_TOKEN(BOOL_FALSE, "", 0);
 }
-#line 722 "Zend/zend_ini_scanner.c"
+#line 729 "Zend/zend_ini_scanner.c"
 yy38:
                YYDEBUG(38, *YYCURSOR);
                ++YYCURSOR;
@@ -813,13 +820,13 @@ yy51:
 yy52:
                YYDEBUG(52, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 476 "Zend/zend_ini_scanner.l"
+#line 483 "Zend/zend_ini_scanner.l"
                { /* Comment */
        BEGIN(INITIAL);
        SCNG(lineno)++;
        return END_OF_LINE;
 }
-#line 823 "Zend/zend_ini_scanner.c"
+#line 830 "Zend/zend_ini_scanner.c"
 yy53:
                YYDEBUG(53, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -913,12 +920,12 @@ yyc_ST_DOUBLE_QUOTES:
 yy61:
                YYDEBUG(61, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 452 "Zend/zend_ini_scanner.l"
+#line 459 "Zend/zend_ini_scanner.l"
                { /* Escape double quoted string contents */
        zend_ini_escape_string(ini_lval, yytext, yyleng, '"' TSRMLS_CC);
        return TC_QUOTED_STRING;
 }
-#line 922 "Zend/zend_ini_scanner.c"
+#line 929 "Zend/zend_ini_scanner.c"
 yy62:
                YYDEBUG(62, *YYCURSOR);
                ++YYCURSOR;
@@ -927,12 +934,12 @@ yy62:
 yy63:
                YYDEBUG(63, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 457 "Zend/zend_ini_scanner.l"
+#line 464 "Zend/zend_ini_scanner.l"
                { /* Double quoted '"' string ends */
        yy_pop_state(TSRMLS_C);
        return '"';
 }
-#line 936 "Zend/zend_ini_scanner.c"
+#line 943 "Zend/zend_ini_scanner.c"
 yy64:
                YYDEBUG(64, *YYCURSOR);
                ++YYCURSOR;
@@ -956,11 +963,11 @@ yy64:
 yy65:
                YYDEBUG(65, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 487 "Zend/zend_ini_scanner.l"
+#line 494 "Zend/zend_ini_scanner.l"
                {
        return 0;
 }
-#line 964 "Zend/zend_ini_scanner.c"
+#line 971 "Zend/zend_ini_scanner.c"
 yy66:
                YYDEBUG(66, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1054,12 +1061,12 @@ yy78:
                ++YYCURSOR;
                YYDEBUG(79, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 362 "Zend/zend_ini_scanner.l"
+#line 369 "Zend/zend_ini_scanner.l"
                { /* Variable start */
        yy_push_state(ST_VARNAME TSRMLS_CC);
        return TC_DOLLAR_CURLY;
 }
-#line 1063 "Zend/zend_ini_scanner.c"
+#line 1070 "Zend/zend_ini_scanner.c"
 yy80:
                YYDEBUG(80, *YYCURSOR);
                ++YYCURSOR;
@@ -1158,11 +1165,11 @@ yy84:
 yy85:
                YYDEBUG(85, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 443 "Zend/zend_ini_scanner.l"
+#line 450 "Zend/zend_ini_scanner.l"
                { /* Get rest as section/offset value */
        RETURN_TOKEN(TC_STRING, yytext, yyleng);
 }
-#line 1166 "Zend/zend_ini_scanner.c"
+#line 1173 "Zend/zend_ini_scanner.c"
 yy86:
                YYDEBUG(86, *YYCURSOR);
                yyaccept = 0;
@@ -1179,23 +1186,23 @@ yy87:
 yy88:
                YYDEBUG(88, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 487 "Zend/zend_ini_scanner.l"
+#line 494 "Zend/zend_ini_scanner.l"
                {
        return 0;
 }
-#line 1187 "Zend/zend_ini_scanner.c"
+#line 1194 "Zend/zend_ini_scanner.c"
 yy89:
                YYDEBUG(89, *YYCURSOR);
                ++YYCURSOR;
 yy90:
                YYDEBUG(90, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 447 "Zend/zend_ini_scanner.l"
+#line 454 "Zend/zend_ini_scanner.l"
                { /* Double quoted '"' string start */
        yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
        return '"';
 }
-#line 1199 "Zend/zend_ini_scanner.c"
+#line 1206 "Zend/zend_ini_scanner.c"
 yy91:
                YYDEBUG(91, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1268,11 +1275,11 @@ yy95:
 yy96:
                YYDEBUG(96, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 421 "Zend/zend_ini_scanner.l"
+#line 428 "Zend/zend_ini_scanner.l"
                { /* Get number option value as string */
        RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
 }
-#line 1276 "Zend/zend_ini_scanner.c"
+#line 1283 "Zend/zend_ini_scanner.c"
 yy97:
                YYDEBUG(97, *YYCURSOR);
                yyaccept = 3;
@@ -1298,11 +1305,11 @@ yy97:
 yy98:
                YYDEBUG(98, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 417 "Zend/zend_ini_scanner.l"
+#line 424 "Zend/zend_ini_scanner.l"
                { /* Get constant option value */
        RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
 }
-#line 1306 "Zend/zend_ini_scanner.c"
+#line 1313 "Zend/zend_ini_scanner.c"
 yy99:
                YYDEBUG(99, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1313,12 +1320,12 @@ yy100:
 yy101:
                YYDEBUG(101, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 357 "Zend/zend_ini_scanner.l"
+#line 364 "Zend/zend_ini_scanner.l"
                { /* End of section or an option offset */
        BEGIN(INITIAL);
        return ']';
 }
-#line 1322 "Zend/zend_ini_scanner.c"
+#line 1329 "Zend/zend_ini_scanner.c"
 yy102:
                YYDEBUG(102, *YYCURSOR);
                yyaccept = 0;
@@ -1617,7 +1624,7 @@ yy123:
                ++YYCURSOR;
                YYDEBUG(126, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 332 "Zend/zend_ini_scanner.l"
+#line 339 "Zend/zend_ini_scanner.l"
                { /* Raw string */
        /* Eat leading and trailing single quotes */
        if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
@@ -1626,18 +1633,18 @@ yy123:
        }
        RETURN_TOKEN(TC_RAW, yytext, yyleng);
 }
-#line 1630 "Zend/zend_ini_scanner.c"
+#line 1637 "Zend/zend_ini_scanner.c"
 yy127:
                YYDEBUG(127, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(128, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 362 "Zend/zend_ini_scanner.l"
+#line 369 "Zend/zend_ini_scanner.l"
                { /* Variable start */
        yy_push_state(ST_VARNAME TSRMLS_CC);
        return TC_DOLLAR_CURLY;
 }
-#line 1641 "Zend/zend_ini_scanner.c"
+#line 1648 "Zend/zend_ini_scanner.c"
 yy129:
                YYDEBUG(129, *YYCURSOR);
                yyaccept = 0;
@@ -1744,7 +1751,7 @@ yy135:
 yy136:
                YYDEBUG(136, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 397 "Zend/zend_ini_scanner.l"
+#line 404 "Zend/zend_ini_scanner.l"
                { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
        /* Eat leading and trailing double quotes */
        if (yytext[0] == '"' && yytext[yyleng - 1] == '"') {
@@ -1754,7 +1761,7 @@ yy136:
        }
        RETURN_TOKEN(TC_RAW, yytext, yyleng);
 }
-#line 1758 "Zend/zend_ini_scanner.c"
+#line 1765 "Zend/zend_ini_scanner.c"
 yy137:
                YYDEBUG(137, *YYCURSOR);
                yyaccept = 0;
@@ -1776,13 +1783,13 @@ yy138:
 yy139:
                YYDEBUG(139, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 411 "Zend/zend_ini_scanner.l"
+#line 418 "Zend/zend_ini_scanner.l"
                { /* End of option value */
        BEGIN(INITIAL);
        SCNG(lineno)++;
        return END_OF_LINE;
 }
-#line 1786 "Zend/zend_ini_scanner.c"
+#line 1793 "Zend/zend_ini_scanner.c"
 yy140:
                YYDEBUG(140, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1796,12 +1803,12 @@ yy141:
 yy142:
                YYDEBUG(142, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 482 "Zend/zend_ini_scanner.l"
+#line 489 "Zend/zend_ini_scanner.l"
                { /* End of option value (if EOF is reached before EOL */
        BEGIN(INITIAL);
        return 0;
 }
-#line 1805 "Zend/zend_ini_scanner.c"
+#line 1812 "Zend/zend_ini_scanner.c"
 yy143:
                YYDEBUG(143, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1823,13 +1830,13 @@ yy146:
 yy147:
                YYDEBUG(147, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 476 "Zend/zend_ini_scanner.l"
+#line 483 "Zend/zend_ini_scanner.l"
                { /* Comment */
        BEGIN(INITIAL);
        SCNG(lineno)++;
        return END_OF_LINE;
 }
-#line 1833 "Zend/zend_ini_scanner.c"
+#line 1840 "Zend/zend_ini_scanner.c"
 yy148:
                YYDEBUG(148, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1931,21 +1938,21 @@ yyc_ST_SECTION_RAW:
 yy158:
                YYDEBUG(158, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 407 "Zend/zend_ini_scanner.l"
+#line 414 "Zend/zend_ini_scanner.l"
                { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
        RETURN_TOKEN(TC_RAW, yytext, yyleng);
 }
-#line 1939 "Zend/zend_ini_scanner.c"
+#line 1946 "Zend/zend_ini_scanner.c"
 yy159:
                YYDEBUG(159, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(160, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 487 "Zend/zend_ini_scanner.l"
+#line 494 "Zend/zend_ini_scanner.l"
                {
        return 0;
 }
-#line 1949 "Zend/zend_ini_scanner.c"
+#line 1956 "Zend/zend_ini_scanner.c"
 yy161:
                YYDEBUG(161, *YYCURSOR);
                ++YYCURSOR;
@@ -1954,13 +1961,13 @@ yy161:
 yy162:
                YYDEBUG(162, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 341 "Zend/zend_ini_scanner.l"
+#line 348 "Zend/zend_ini_scanner.l"
                { /* End of section */
        BEGIN(INITIAL);
        SCNG(lineno)++;
        return ']';
 }
-#line 1964 "Zend/zend_ini_scanner.c"
+#line 1971 "Zend/zend_ini_scanner.c"
 yy163:
                YYDEBUG(163, *YYCURSOR);
                ++YYCURSOR;
@@ -2081,11 +2088,11 @@ yy171:
 yy172:
                YYDEBUG(172, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 443 "Zend/zend_ini_scanner.l"
+#line 450 "Zend/zend_ini_scanner.l"
                { /* Get rest as section/offset value */
        RETURN_TOKEN(TC_STRING, yytext, yyleng);
 }
-#line 2089 "Zend/zend_ini_scanner.c"
+#line 2096 "Zend/zend_ini_scanner.c"
 yy173:
                YYDEBUG(173, *YYCURSOR);
                yyaccept = 0;
@@ -2104,23 +2111,23 @@ yy174:
 yy175:
                YYDEBUG(175, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 487 "Zend/zend_ini_scanner.l"
+#line 494 "Zend/zend_ini_scanner.l"
                {
        return 0;
 }
-#line 2112 "Zend/zend_ini_scanner.c"
+#line 2119 "Zend/zend_ini_scanner.c"
 yy176:
                YYDEBUG(176, *YYCURSOR);
                ++YYCURSOR;
 yy177:
                YYDEBUG(177, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 447 "Zend/zend_ini_scanner.l"
+#line 454 "Zend/zend_ini_scanner.l"
                { /* Double quoted '"' string start */
        yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
        return '"';
 }
-#line 2124 "Zend/zend_ini_scanner.c"
+#line 2131 "Zend/zend_ini_scanner.c"
 yy178:
                YYDEBUG(178, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2193,11 +2200,11 @@ yy182:
 yy183:
                YYDEBUG(183, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 421 "Zend/zend_ini_scanner.l"
+#line 428 "Zend/zend_ini_scanner.l"
                { /* Get number option value as string */
        RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
 }
-#line 2201 "Zend/zend_ini_scanner.c"
+#line 2208 "Zend/zend_ini_scanner.c"
 yy184:
                YYDEBUG(184, *YYCURSOR);
                yyaccept = 3;
@@ -2223,11 +2230,11 @@ yy184:
 yy185:
                YYDEBUG(185, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 417 "Zend/zend_ini_scanner.l"
+#line 424 "Zend/zend_ini_scanner.l"
                { /* Get constant option value */
        RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
 }
-#line 2231 "Zend/zend_ini_scanner.c"
+#line 2238 "Zend/zend_ini_scanner.c"
 yy186:
                YYDEBUG(186, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2240,13 +2247,13 @@ yy187:
 yy188:
                YYDEBUG(188, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 341 "Zend/zend_ini_scanner.l"
+#line 348 "Zend/zend_ini_scanner.l"
                { /* End of section */
        BEGIN(INITIAL);
        SCNG(lineno)++;
        return ']';
 }
-#line 2250 "Zend/zend_ini_scanner.c"
+#line 2257 "Zend/zend_ini_scanner.c"
 yy189:
                YYDEBUG(189, *YYCURSOR);
                ++YYCURSOR;
@@ -2567,7 +2574,7 @@ yy214:
                ++YYCURSOR;
                YYDEBUG(217, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 332 "Zend/zend_ini_scanner.l"
+#line 339 "Zend/zend_ini_scanner.l"
                { /* Raw string */
        /* Eat leading and trailing single quotes */
        if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
@@ -2576,18 +2583,18 @@ yy214:
        }
        RETURN_TOKEN(TC_RAW, yytext, yyleng);
 }
-#line 2580 "Zend/zend_ini_scanner.c"
+#line 2587 "Zend/zend_ini_scanner.c"
 yy218:
                YYDEBUG(218, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(219, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 362 "Zend/zend_ini_scanner.l"
+#line 369 "Zend/zend_ini_scanner.l"
                { /* Variable start */
        yy_push_state(ST_VARNAME TSRMLS_CC);
        return TC_DOLLAR_CURLY;
 }
-#line 2591 "Zend/zend_ini_scanner.c"
+#line 2598 "Zend/zend_ini_scanner.c"
 yy220:
                YYDEBUG(220, *YYCURSOR);
                yyaccept = 0;
@@ -2766,12 +2773,12 @@ yy225:
 yy226:
                YYDEBUG(226, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 482 "Zend/zend_ini_scanner.l"
+#line 489 "Zend/zend_ini_scanner.l"
                { /* End of option value (if EOF is reached before EOL */
        BEGIN(INITIAL);
        return 0;
 }
-#line 2775 "Zend/zend_ini_scanner.c"
+#line 2782 "Zend/zend_ini_scanner.c"
 yy227:
                YYDEBUG(227, *YYCURSOR);
                yyaccept = 0;
@@ -2780,11 +2787,11 @@ yy227:
 yy228:
                YYDEBUG(228, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 439 "Zend/zend_ini_scanner.l"
+#line 446 "Zend/zend_ini_scanner.l"
                { /* Get everything else as option/offset value */
        RETURN_TOKEN(TC_STRING, yytext, yyleng);
 }
-#line 2788 "Zend/zend_ini_scanner.c"
+#line 2795 "Zend/zend_ini_scanner.c"
 yy229:
                YYDEBUG(229, *YYCURSOR);
                yyaccept = 1;
@@ -2793,24 +2800,24 @@ yy229:
 yy230:
                YYDEBUG(230, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 462 "Zend/zend_ini_scanner.l"
+#line 469 "Zend/zend_ini_scanner.l"
                {
        RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng);
 }
-#line 2801 "Zend/zend_ini_scanner.c"
+#line 2808 "Zend/zend_ini_scanner.c"
 yy231:
                YYDEBUG(231, *YYCURSOR);
                ++YYCURSOR;
 yy232:
                YYDEBUG(232, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 411 "Zend/zend_ini_scanner.l"
+#line 418 "Zend/zend_ini_scanner.l"
                { /* End of option value */
        BEGIN(INITIAL);
        SCNG(lineno)++;
        return END_OF_LINE;
 }
-#line 2814 "Zend/zend_ini_scanner.c"
+#line 2821 "Zend/zend_ini_scanner.c"
 yy233:
                YYDEBUG(233, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2824,23 +2831,23 @@ yy234:
 yy235:
                YYDEBUG(235, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 429 "Zend/zend_ini_scanner.l"
+#line 436 "Zend/zend_ini_scanner.l"
                { /* Boolean operators */
        return yytext[0];
 }
-#line 2832 "Zend/zend_ini_scanner.c"
+#line 2839 "Zend/zend_ini_scanner.c"
 yy236:
                YYDEBUG(236, *YYCURSOR);
                ++YYCURSOR;
 yy237:
                YYDEBUG(237, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 447 "Zend/zend_ini_scanner.l"
+#line 454 "Zend/zend_ini_scanner.l"
                { /* Double quoted '"' string start */
        yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
        return '"';
 }
-#line 2844 "Zend/zend_ini_scanner.c"
+#line 2851 "Zend/zend_ini_scanner.c"
 yy238:
                YYDEBUG(238, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2927,11 +2934,11 @@ yy242:
 yy243:
                YYDEBUG(243, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 421 "Zend/zend_ini_scanner.l"
+#line 428 "Zend/zend_ini_scanner.l"
                { /* Get number option value as string */
        RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
 }
-#line 2935 "Zend/zend_ini_scanner.c"
+#line 2942 "Zend/zend_ini_scanner.c"
 yy244:
                YYDEBUG(244, *YYCURSOR);
                yyaccept = 2;
@@ -2942,13 +2949,13 @@ yy245:
                ++YYCURSOR;
                YYDEBUG(246, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 433 "Zend/zend_ini_scanner.l"
+#line 440 "Zend/zend_ini_scanner.l"
                { /* Make = used in option value to trigger error */
        yyless(0);
        BEGIN(INITIAL);
        return END_OF_LINE;
 }
-#line 2952 "Zend/zend_ini_scanner.c"
+#line 2959 "Zend/zend_ini_scanner.c"
 yy247:
                YYDEBUG(247, *YYCURSOR);
                yyaccept = 4;
@@ -2984,11 +2991,11 @@ yy247:
 yy248:
                YYDEBUG(248, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 417 "Zend/zend_ini_scanner.l"
+#line 424 "Zend/zend_ini_scanner.l"
                { /* Get constant option value */
        RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
 }
-#line 2992 "Zend/zend_ini_scanner.c"
+#line 2999 "Zend/zend_ini_scanner.c"
 yy249:
                YYDEBUG(249, *YYCURSOR);
                yyaccept = 4;
@@ -3489,11 +3496,11 @@ yy264:
 yy265:
                YYDEBUG(265, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 376 "Zend/zend_ini_scanner.l"
+#line 383 "Zend/zend_ini_scanner.l"
                { /* TRUE value (when used outside option value/offset this causes parse error!) */
        RETURN_TOKEN(BOOL_TRUE, "1", 1);
 }
-#line 3497 "Zend/zend_ini_scanner.c"
+#line 3504 "Zend/zend_ini_scanner.c"
 yy266:
                YYDEBUG(266, *YYCURSOR);
                ++YYCURSOR;
@@ -3693,11 +3700,11 @@ yy271:
 yy272:
                YYDEBUG(272, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 380 "Zend/zend_ini_scanner.l"
+#line 387 "Zend/zend_ini_scanner.l"
                { /* FALSE value (when used outside option value/offset this causes parse error!)*/
        RETURN_TOKEN(BOOL_FALSE, "", 0);
 }
-#line 3701 "Zend/zend_ini_scanner.c"
+#line 3708 "Zend/zend_ini_scanner.c"
 yy273:
                YYDEBUG(273, *YYCURSOR);
                ++YYCURSOR;
@@ -4073,13 +4080,13 @@ yy284:
 yy285:
                YYDEBUG(285, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 476 "Zend/zend_ini_scanner.l"
+#line 483 "Zend/zend_ini_scanner.l"
                { /* Comment */
        BEGIN(INITIAL);
        SCNG(lineno)++;
        return END_OF_LINE;
 }
-#line 4083 "Zend/zend_ini_scanner.c"
+#line 4090 "Zend/zend_ini_scanner.c"
 yy286:
                YYDEBUG(286, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4291,7 +4298,7 @@ yy295:
                ++YYCURSOR;
                YYDEBUG(298, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 332 "Zend/zend_ini_scanner.l"
+#line 339 "Zend/zend_ini_scanner.l"
                { /* Raw string */
        /* Eat leading and trailing single quotes */
        if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
@@ -4300,18 +4307,18 @@ yy295:
        }
        RETURN_TOKEN(TC_RAW, yytext, yyleng);
 }
-#line 4304 "Zend/zend_ini_scanner.c"
+#line 4311 "Zend/zend_ini_scanner.c"
 yy299:
                YYDEBUG(299, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(300, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 362 "Zend/zend_ini_scanner.l"
+#line 369 "Zend/zend_ini_scanner.l"
                { /* Variable start */
        yy_push_state(ST_VARNAME TSRMLS_CC);
        return TC_DOLLAR_CURLY;
 }
-#line 4315 "Zend/zend_ini_scanner.c"
+#line 4322 "Zend/zend_ini_scanner.c"
 yy301:
                YYDEBUG(301, *YYCURSOR);
                ++YYCURSOR;
@@ -4417,11 +4424,11 @@ yy310:
                ++YYCURSOR;
                YYDEBUG(311, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 487 "Zend/zend_ini_scanner.l"
+#line 494 "Zend/zend_ini_scanner.l"
                {
        return 0;
 }
-#line 4425 "Zend/zend_ini_scanner.c"
+#line 4432 "Zend/zend_ini_scanner.c"
 yy312:
                YYDEBUG(312, *YYCURSOR);
                ++YYCURSOR;
@@ -4430,22 +4437,22 @@ yy312:
 yy313:
                YYDEBUG(313, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 367 "Zend/zend_ini_scanner.l"
+#line 374 "Zend/zend_ini_scanner.l"
                { /* Variable name */
        RETURN_TOKEN(TC_VARNAME, yytext, yyleng);
 }
-#line 4438 "Zend/zend_ini_scanner.c"
+#line 4445 "Zend/zend_ini_scanner.c"
 yy314:
                YYDEBUG(314, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(315, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 371 "Zend/zend_ini_scanner.l"
+#line 378 "Zend/zend_ini_scanner.l"
                { /* Variable end */
        yy_pop_state(TSRMLS_C);
        return '}';
 }
-#line 4449 "Zend/zend_ini_scanner.c"
+#line 4456 "Zend/zend_ini_scanner.c"
 yy316:
                YYDEBUG(316, *YYCURSOR);
                ++YYCURSOR;
@@ -4459,6 +4466,6 @@ yy317:
                goto yy313;
        }
 }
-#line 491 "Zend/zend_ini_scanner.l"
+#line 498 "Zend/zend_ini_scanner.l"
 
 }
index 0653127af3cf94d1134710c92fafe2c2466266b7..b30b24f83afc2caefae7650cb1b655a835cb23f5 100644 (file)
 
 /* $Id$ */
 
+#include <errno.h>
+#include "zend.h"
+#include "zend_globals.h"
+#include <zend_ini_parser.h>
+#include "zend_ini_scanner.h"
 
 #if 0
 # define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c)
 #define yyless(x)    YYCURSOR = yytext + x
 /* #define yymore()     goto yymore_restart */
 
+/* perform sanity check. If this message is triggered you should
+   increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */
+/*!max:re2c */
+#if ZEND_MMAP_AHEAD < YYMAXFILL
+# error ZEND_MMAP_AHEAD should be greater than or equal to YYMAXFILL
+#endif
+
+
 /* How it works (for the core ini directives):
  * ===========================================
  *
  *
  */
 
-#include <errno.h>
-#include "zend.h"
-#include "zend_globals.h"
-#include <zend_ini_parser.h>
-#include "zend_ini_scanner.h"
-
 /* Globals Macros */
 #define SCNG   INI_SCNG
 #ifdef ZTS
index 4682d08e3de87acecba784d10bb0e849b9746519..3ab36cfa26fd00427a0a66efcc76a9b9e92fbc8f 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.4.dev on Sat Mar 22 18:41:39 2008 */
+/* Generated by re2c 0.13.4.dev on Fri Apr  4 15:52:51 2008 */
 #line 3 "Zend/zend_ini_scanner_defs.h"
 
 enum YYCONDTYPE {
index 859ddb42fd36e3bdae1e3bacea9d2a0e41e29939..315f8e5ab7cf2df22cf2211393ad176cba0aedeb 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.4.dev on Wed Mar 26 23:08:45 2008 */
+/* Generated by re2c 0.13.4.dev on Fri Apr  4 15:52:47 2008 */
 #line 1 "Zend/zend_language_scanner.l"
 /*
    +----------------------------------------------------------------------+
 #define yyless(x)    YYCURSOR = yytext + x
 #define yymore()     goto yymore_restart
 
+/* perform sanity check. If this message is triggered you should
+   increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */
+#define YYMAXFILL 16
+#if ZEND_MMAP_AHEAD < YYMAXFILL
+# error ZEND_MMAP_AHEAD should be greater than or equal to YYMAXFILL
+#endif
+
 #ifdef HAVE_STDARG_H
 # include <stdarg.h>
 #endif
@@ -358,9 +365,9 @@ zend_op_array *compile_filename(int type, zval *filename TSRMLS_DC)
 ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_DC)
 {
        /* enforce two trailing NULLs for flex... */
-       STR_REALLOC(str->value.str.val, str->value.str.len+2);
+       str->value.str.val = safe_erealloc(str->value.str.val, 1, str->value.str.len, ZEND_MMAP_AHEAD);
 
-       str->value.str.val[str->value.str.len+1]=0;
+       memset(str->value.str.val + str->value.str.len, 0, ZEND_MMAP_AHEAD);
 
        SCNG(yy_in)=NULL;
 
@@ -600,7 +607,7 @@ yymore_restart:
        }
 
 
-#line 604 "Zend/zend_language_scanner.c"
+#line 611 "Zend/zend_language_scanner.c"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
@@ -724,7 +731,7 @@ yyc_INITIAL:
 yy3:
                YYDEBUG(3, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1390 "Zend/zend_language_scanner.l"
+#line 1397 "Zend/zend_language_scanner.l"
                {
 
        while (1) {
@@ -755,7 +762,7 @@ inline_char_handler:
        HANDLE_NEWLINES(yytext, yyleng);
        return T_INLINE_HTML;
 }
-#line 759 "Zend/zend_language_scanner.c"
+#line 766 "Zend/zend_language_scanner.c"
 yy4:
                YYDEBUG(4, *YYCURSOR);
                yyaccept = 0;
@@ -782,7 +789,7 @@ yy8:
 yy9:
                YYDEBUG(9, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1381 "Zend/zend_language_scanner.l"
+#line 1388 "Zend/zend_language_scanner.l"
                {
        if ((YYCTYPE*)yytext == SCNG(yy_start)) {
                /* ignore first line when it's started with a # */
@@ -791,7 +798,7 @@ yy9:
                goto inline_char_handler;
        }
 }
-#line 795 "Zend/zend_language_scanner.c"
+#line 802 "Zend/zend_language_scanner.c"
 yy10:
                YYDEBUG(10, *YYCURSOR);
                yyaccept = 1;
@@ -817,7 +824,7 @@ yy12:
 yy13:
                YYDEBUG(13, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1365 "Zend/zend_language_scanner.l"
+#line 1372 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        if (CG(short_tags)) {
@@ -833,14 +840,14 @@ yy13:
                return T_INLINE_HTML;
        }
 }
-#line 837 "Zend/zend_language_scanner.c"
+#line 844 "Zend/zend_language_scanner.c"
 yy14:
                YYDEBUG(14, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy50;
                YYDEBUG(15, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1339 "Zend/zend_language_scanner.l"
+#line 1346 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -855,7 +862,7 @@ yy14:
                return T_INLINE_HTML;
        }
 }
-#line 859 "Zend/zend_language_scanner.c"
+#line 866 "Zend/zend_language_scanner.c"
 yy16:
                YYDEBUG(16, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1045,7 +1052,7 @@ yy42:
                ++YYCURSOR;
                YYDEBUG(45, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1297 "Zend/zend_language_scanner.l"
+#line 1304 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1054,7 +1061,7 @@ yy42:
        BEGIN(ST_IN_SCRIPTING);
        return T_OPEN_TAG;
 }
-#line 1058 "Zend/zend_language_scanner.c"
+#line 1065 "Zend/zend_language_scanner.c"
 yy46:
                YYDEBUG(46, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1081,7 +1088,7 @@ yy50:
                ++YYCURSOR;
                YYDEBUG(51, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1307 "Zend/zend_language_scanner.l"
+#line 1314 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1096,13 +1103,13 @@ yy50:
                return T_INLINE_HTML;
        }
 }
-#line 1100 "Zend/zend_language_scanner.c"
+#line 1107 "Zend/zend_language_scanner.c"
 yy52:
                YYDEBUG(52, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(53, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1323 "Zend/zend_language_scanner.l"
+#line 1330 "Zend/zend_language_scanner.l"
                {
        if (CG(short_tags)) {
                zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1117,7 +1124,7 @@ yy52:
                return T_INLINE_HTML;
        }
 }
-#line 1121 "Zend/zend_language_scanner.c"
+#line 1128 "Zend/zend_language_scanner.c"
 yy54:
                YYDEBUG(54, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1144,7 +1151,7 @@ yy57:
 yy58:
                YYDEBUG(58, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1355 "Zend/zend_language_scanner.l"
+#line 1362 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
@@ -1153,7 +1160,7 @@ yy58:
        BEGIN(ST_IN_SCRIPTING);
        return T_OPEN_TAG;
 }
-#line 1157 "Zend/zend_language_scanner.c"
+#line 1164 "Zend/zend_language_scanner.c"
 yy59:
                YYDEBUG(59, *YYCURSOR);
                ++YYCURSOR;
@@ -1257,12 +1264,12 @@ yy65:
 yy66:
                YYDEBUG(66, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1782 "Zend/zend_language_scanner.l"
+#line 1789 "Zend/zend_language_scanner.l"
                {
        zend_scan_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 1266 "Zend/zend_language_scanner.c"
+#line 1273 "Zend/zend_language_scanner.c"
 yy67:
                YYDEBUG(67, *YYCURSOR);
                ++YYCURSOR;
@@ -1274,12 +1281,12 @@ yy68:
                ++YYCURSOR;
                YYDEBUG(69, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1914 "Zend/zend_language_scanner.l"
+#line 1921 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '`';
 }
-#line 1283 "Zend/zend_language_scanner.c"
+#line 1290 "Zend/zend_language_scanner.c"
 yy70:
                YYDEBUG(70, *YYCURSOR);
                ++YYCURSOR;
@@ -1363,13 +1370,13 @@ yy74:
 yy76:
                YYDEBUG(76, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1787 "Zend/zend_language_scanner.l"
+#line 1794 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        zend_scan_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 1373 "Zend/zend_language_scanner.c"
+#line 1380 "Zend/zend_language_scanner.c"
 yy77:
                YYDEBUG(77, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1393,14 +1400,14 @@ yy80:
                ++YYCURSOR;
                YYDEBUG(81, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1755 "Zend/zend_language_scanner.l"
+#line 1762 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        yyless(1);
        return T_CURLY_OPEN;
 }
-#line 1404 "Zend/zend_language_scanner.c"
+#line 1411 "Zend/zend_language_scanner.c"
 yy82:
                YYDEBUG(82, *YYCURSOR);
                yyaccept = 2;
@@ -1416,24 +1423,24 @@ yy82:
 yy84:
                YYDEBUG(84, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1443 "Zend/zend_language_scanner.l"
+#line 1450 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 1426 "Zend/zend_language_scanner.c"
+#line 1433 "Zend/zend_language_scanner.c"
 yy85:
                YYDEBUG(85, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(86, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1089 "Zend/zend_language_scanner.l"
+#line 1096 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 1437 "Zend/zend_language_scanner.c"
+#line 1444 "Zend/zend_language_scanner.c"
 yy87:
                YYDEBUG(87, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1444,7 +1451,7 @@ yy88:
                ++YYCURSOR;
                YYDEBUG(89, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1435 "Zend/zend_language_scanner.l"
+#line 1442 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -1452,7 +1459,7 @@ yy88:
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 1456 "Zend/zend_language_scanner.c"
+#line 1463 "Zend/zend_language_scanner.c"
 yy90:
                YYDEBUG(90, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1470,7 +1477,7 @@ yy91:
                ++YYCURSOR;
                YYDEBUG(92, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1425 "Zend/zend_language_scanner.l"
+#line 1432 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -1478,7 +1485,7 @@ yy91:
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 1482 "Zend/zend_language_scanner.c"
+#line 1489 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_COMMENT:
@@ -1535,34 +1542,34 @@ yy95:
                }
                YYDEBUG(97, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1547 "Zend/zend_language_scanner.l"
+#line 1554 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 1543 "Zend/zend_language_scanner.c"
+#line 1550 "Zend/zend_language_scanner.c"
 yy98:
                YYDEBUG(98, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '/') goto yy100;
                YYDEBUG(99, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1565 "Zend/zend_language_scanner.l"
+#line 1572 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 1554 "Zend/zend_language_scanner.c"
+#line 1561 "Zend/zend_language_scanner.c"
 yy100:
                YYDEBUG(100, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(101, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1559 "Zend/zend_language_scanner.l"
+#line 1566 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        BEGIN(ST_IN_SCRIPTING);
        return T_COMMENT;
 }
-#line 1566 "Zend/zend_language_scanner.c"
+#line 1573 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_DOC_COMMENT:
@@ -1619,28 +1626,28 @@ yy104:
                }
                YYDEBUG(106, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1547 "Zend/zend_language_scanner.l"
+#line 1554 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 1627 "Zend/zend_language_scanner.c"
+#line 1634 "Zend/zend_language_scanner.c"
 yy107:
                YYDEBUG(107, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '/') goto yy109;
                YYDEBUG(108, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1565 "Zend/zend_language_scanner.l"
+#line 1572 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 1638 "Zend/zend_language_scanner.c"
+#line 1645 "Zend/zend_language_scanner.c"
 yy109:
                YYDEBUG(109, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(110, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1551 "Zend/zend_language_scanner.l"
+#line 1558 "Zend/zend_language_scanner.l"
                {
        CG(doc_comment) = estrndup(yytext, yyleng);
        CG(doc_comment_len) = yyleng;
@@ -1648,7 +1655,7 @@ yy109:
        BEGIN(ST_IN_SCRIPTING);
        return T_DOC_COMMENT;
 }
-#line 1652 "Zend/zend_language_scanner.c"
+#line 1659 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_DOUBLE_QUOTES:
@@ -1750,12 +1757,12 @@ yy116:
 yy117:
                YYDEBUG(117, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1763 "Zend/zend_language_scanner.l"
+#line 1770 "Zend/zend_language_scanner.l"
                {
        zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 1759 "Zend/zend_language_scanner.c"
+#line 1766 "Zend/zend_language_scanner.c"
 yy118:
                YYDEBUG(118, *YYCURSOR);
                ++YYCURSOR;
@@ -1767,12 +1774,12 @@ yy119:
                ++YYCURSOR;
                YYDEBUG(120, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1908 "Zend/zend_language_scanner.l"
+#line 1915 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '"';
 }
-#line 1776 "Zend/zend_language_scanner.c"
+#line 1783 "Zend/zend_language_scanner.c"
 yy121:
                YYDEBUG(121, *YYCURSOR);
                ++YYCURSOR;
@@ -1859,14 +1866,14 @@ yy125:
 yy127:
                YYDEBUG(127, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1774 "Zend/zend_language_scanner.l"
+#line 1781 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        if (yytext[yyleng-1] == '"') --yyleng;
        zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 1870 "Zend/zend_language_scanner.c"
+#line 1877 "Zend/zend_language_scanner.c"
 yy128:
                YYDEBUG(128, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1890,14 +1897,14 @@ yy131:
                ++YYCURSOR;
                YYDEBUG(132, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1755 "Zend/zend_language_scanner.l"
+#line 1762 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        yyless(1);
        return T_CURLY_OPEN;
 }
-#line 1901 "Zend/zend_language_scanner.c"
+#line 1908 "Zend/zend_language_scanner.c"
 yy133:
                YYDEBUG(133, *YYCURSOR);
                yyaccept = 2;
@@ -1913,24 +1920,24 @@ yy133:
 yy135:
                YYDEBUG(135, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1443 "Zend/zend_language_scanner.l"
+#line 1450 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 1923 "Zend/zend_language_scanner.c"
+#line 1930 "Zend/zend_language_scanner.c"
 yy136:
                YYDEBUG(136, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(137, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1089 "Zend/zend_language_scanner.l"
+#line 1096 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 1934 "Zend/zend_language_scanner.c"
+#line 1941 "Zend/zend_language_scanner.c"
 yy138:
                YYDEBUG(138, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1941,7 +1948,7 @@ yy139:
                ++YYCURSOR;
                YYDEBUG(140, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1435 "Zend/zend_language_scanner.l"
+#line 1442 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -1949,7 +1956,7 @@ yy139:
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 1953 "Zend/zend_language_scanner.c"
+#line 1960 "Zend/zend_language_scanner.c"
 yy141:
                YYDEBUG(141, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1967,7 +1974,7 @@ yy142:
                ++YYCURSOR;
                YYDEBUG(143, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1425 "Zend/zend_language_scanner.l"
+#line 1432 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -1975,7 +1982,7 @@ yy142:
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 1979 "Zend/zend_language_scanner.c"
+#line 1986 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_END_HEREDOC:
@@ -1986,7 +1993,7 @@ yyc_ST_END_HEREDOC:
        ++YYCURSOR;
        YYDEBUG(147, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 1743 "Zend/zend_language_scanner.l"
+#line 1750 "Zend/zend_language_scanner.l"
        {
        zendlval->value.str.val = CG(heredoc);
        zendlval->value.str.len = CG(heredoc_len);
@@ -1997,7 +2004,7 @@ yyc_ST_END_HEREDOC:
        BEGIN(ST_IN_SCRIPTING);
        return T_END_HEREDOC;
 }
-#line 2001 "Zend/zend_language_scanner.c"
+#line 2008 "Zend/zend_language_scanner.c"
 /* *********************************** */
 yyc_ST_END_NOWDOC:
        YYDEBUG(148, *YYCURSOR);
@@ -2007,7 +2014,7 @@ yyc_ST_END_NOWDOC:
        ++YYCURSOR;
        YYDEBUG(151, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 1895 "Zend/zend_language_scanner.l"
+#line 1902 "Zend/zend_language_scanner.l"
        {
        Z_STRVAL_P(zendlval) = CG(heredoc);
        Z_STRLEN_P(zendlval) = CG(heredoc_len);
@@ -2018,7 +2025,7 @@ yyc_ST_END_NOWDOC:
        BEGIN(ST_IN_SCRIPTING);
        return T_END_NOWDOC;
 }
-#line 2022 "Zend/zend_language_scanner.c"
+#line 2029 "Zend/zend_language_scanner.c"
 /* *********************************** */
 yyc_ST_HEREDOC:
        {
@@ -2075,12 +2082,12 @@ yyc_ST_HEREDOC:
 yy154:
                YYDEBUG(154, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1801 "Zend/zend_language_scanner.l"
+#line 1808 "Zend/zend_language_scanner.l"
                {
        zend_scan_escape_string(zendlval, yytext, yyleng, 0 TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 2084 "Zend/zend_language_scanner.c"
+#line 2091 "Zend/zend_language_scanner.c"
 yy155:
                YYDEBUG(155, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2366,13 +2373,13 @@ yy173:
 yy175:
                YYDEBUG(175, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1806 "Zend/zend_language_scanner.l"
+#line 1813 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        zend_scan_escape_string(zendlval, yytext, yyleng, 0 TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 2376 "Zend/zend_language_scanner.c"
+#line 2383 "Zend/zend_language_scanner.c"
 yy176:
                YYDEBUG(176, *YYCURSOR);
                yyaccept = 1;
@@ -2471,7 +2478,7 @@ yy182:
                ++YYCURSOR;
                YYDEBUG(183, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1709 "Zend/zend_language_scanner.l"
+#line 1716 "Zend/zend_language_scanner.l"
                {
        char *end = yytext + yyleng - 1;
 
@@ -2505,7 +2512,7 @@ yy182:
                yymore();
        }
 }
-#line 2509 "Zend/zend_language_scanner.c"
+#line 2516 "Zend/zend_language_scanner.c"
 yy184:
                YYDEBUG(184, *YYCURSOR);
                yyaccept = 1;
@@ -2743,14 +2750,14 @@ yy203:
                ++YYCURSOR;
                YYDEBUG(204, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1755 "Zend/zend_language_scanner.l"
+#line 1762 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        yyless(1);
        return T_CURLY_OPEN;
 }
-#line 2754 "Zend/zend_language_scanner.c"
+#line 2761 "Zend/zend_language_scanner.c"
 yy205:
                YYDEBUG(205, *YYCURSOR);
                yyaccept = 2;
@@ -2778,24 +2785,24 @@ yy205:
 yy207:
                YYDEBUG(207, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1443 "Zend/zend_language_scanner.l"
+#line 1450 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 2788 "Zend/zend_language_scanner.c"
+#line 2795 "Zend/zend_language_scanner.c"
 yy208:
                YYDEBUG(208, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(209, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1089 "Zend/zend_language_scanner.l"
+#line 1096 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 2799 "Zend/zend_language_scanner.c"
+#line 2806 "Zend/zend_language_scanner.c"
 yy210:
                YYDEBUG(210, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2806,7 +2813,7 @@ yy211:
                ++YYCURSOR;
                YYDEBUG(212, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1435 "Zend/zend_language_scanner.l"
+#line 1442 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -2814,7 +2821,7 @@ yy211:
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 2818 "Zend/zend_language_scanner.c"
+#line 2825 "Zend/zend_language_scanner.c"
 yy213:
                YYDEBUG(213, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2832,7 +2839,7 @@ yy214:
                ++YYCURSOR;
                YYDEBUG(215, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1425 "Zend/zend_language_scanner.l"
+#line 1432 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -2840,7 +2847,7 @@ yy214:
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 2844 "Zend/zend_language_scanner.c"
+#line 2851 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_IN_SCRIPTING:
@@ -3055,13 +3062,13 @@ yy218:
 yy219:
                YYDEBUG(219, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1467 "Zend/zend_language_scanner.l"
+#line 1474 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
        return T_STRING;
 }
-#line 3065 "Zend/zend_language_scanner.c"
+#line 3072 "Zend/zend_language_scanner.c"
 yy220:
                YYDEBUG(220, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3308,11 +3315,11 @@ yy232:
 yy233:
                YYDEBUG(233, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1078 "Zend/zend_language_scanner.l"
+#line 1085 "Zend/zend_language_scanner.l"
                {
        return yytext[0];
 }
-#line 3316 "Zend/zend_language_scanner.c"
+#line 3323 "Zend/zend_language_scanner.c"
 yy234:
                YYDEBUG(234, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3545,18 +3552,18 @@ yy258:
                ++YYCURSOR;
                YYDEBUG(259, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1083 "Zend/zend_language_scanner.l"
+#line 1090 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return '{';
 }
-#line 3554 "Zend/zend_language_scanner.c"
+#line 3561 "Zend/zend_language_scanner.c"
 yy260:
                YYDEBUG(260, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(261, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1095 "Zend/zend_language_scanner.l"
+#line 1102 "Zend/zend_language_scanner.l"
                {
        RESET_DOC_COMMENT();
        /* This is a temporary fix which is dependant on flex and it's implementation */
@@ -3565,7 +3572,7 @@ yy260:
        }
        return '}';
 }
-#line 3569 "Zend/zend_language_scanner.c"
+#line 3576 "Zend/zend_language_scanner.c"
 yy262:
                YYDEBUG(262, *YYCURSOR);
                yyaccept = 2;
@@ -3588,7 +3595,7 @@ yy262:
 yy263:
                YYDEBUG(263, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1122 "Zend/zend_language_scanner.l"
+#line 1129 "Zend/zend_language_scanner.l"
                {
        if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
                zendlval->value.lval = strtol(yytext, NULL, 0);
@@ -3609,7 +3616,7 @@ yy263:
        zendlval->type = IS_LONG;
        return T_LNUMBER;
 }
-#line 3613 "Zend/zend_language_scanner.c"
+#line 3620 "Zend/zend_language_scanner.c"
 yy264:
                YYDEBUG(264, *YYCURSOR);
                yyaccept = 2;
@@ -3639,7 +3646,7 @@ yy266:
 yy267:
                YYDEBUG(267, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1474 "Zend/zend_language_scanner.l"
+#line 1481 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
@@ -3647,19 +3654,19 @@ yy267:
        HANDLE_NEWLINES(yytext, yyleng);
        return T_WHITESPACE;
 }
-#line 3651 "Zend/zend_language_scanner.c"
+#line 3658 "Zend/zend_language_scanner.c"
 yy268:
                YYDEBUG(268, *YYCURSOR);
                ++YYCURSOR;
 yy269:
                YYDEBUG(269, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1483 "Zend/zend_language_scanner.l"
+#line 1490 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_ONE_LINE_COMMENT);
        yymore();
 }
-#line 3663 "Zend/zend_language_scanner.c"
+#line 3670 "Zend/zend_language_scanner.c"
 yy270:
                YYDEBUG(270, *YYCURSOR);
                yyaccept = 3;
@@ -3668,12 +3675,12 @@ yy270:
 yy271:
                YYDEBUG(271, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1646 "Zend/zend_language_scanner.l"
+#line 1653 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_DOUBLE_QUOTES);
        return '"';
 }
-#line 3677 "Zend/zend_language_scanner.c"
+#line 3684 "Zend/zend_language_scanner.c"
 yy272:
                YYDEBUG(272, *YYCURSOR);
                yyaccept = 4;
@@ -3682,23 +3689,23 @@ yy272:
 yy273:
                YYDEBUG(273, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1920 "Zend/zend_language_scanner.l"
+#line 1927 "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 3691 "Zend/zend_language_scanner.c"
+#line 3698 "Zend/zend_language_scanner.c"
 yy274:
                YYDEBUG(274, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(275, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1669 "Zend/zend_language_scanner.l"
+#line 1676 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_BACKQUOTE);
        return '`';
 }
-#line 3702 "Zend/zend_language_scanner.c"
+#line 3709 "Zend/zend_language_scanner.c"
 yy276:
                YYDEBUG(276, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3724,7 +3731,7 @@ yy280:
                ++YYCURSOR;
                YYDEBUG(281, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1602 "Zend/zend_language_scanner.l"
+#line 1609 "Zend/zend_language_scanner.l"
                {
        register char *s, *t;
        char *end;
@@ -3767,7 +3774,7 @@ yy280:
 
        return T_CONSTANT_ENCAPSED_STRING;
 }
-#line 3771 "Zend/zend_language_scanner.c"
+#line 3778 "Zend/zend_language_scanner.c"
 yy282:
                YYDEBUG(282, *YYCURSOR);
                ++YYCURSOR;
@@ -3864,14 +3871,14 @@ yy290:
                ++YYCURSOR;
                YYDEBUG(291, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1594 "Zend/zend_language_scanner.l"
+#line 1601 "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 3875 "Zend/zend_language_scanner.c"
+#line 3882 "Zend/zend_language_scanner.c"
 yy292:
                YYDEBUG(292, *YYCURSOR);
                ++YYCURSOR;
@@ -3915,13 +3922,13 @@ yy297:
 yy299:
                YYDEBUG(299, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1183 "Zend/zend_language_scanner.l"
+#line 1190 "Zend/zend_language_scanner.l"
                {
        zendlval->value.dval = zend_strtod(yytext, NULL);
        zendlval->type = IS_DOUBLE;
        return T_DNUMBER;
 }
-#line 3925 "Zend/zend_language_scanner.c"
+#line 3932 "Zend/zend_language_scanner.c"
 yy300:
                YYDEBUG(300, *YYCURSOR);
                yyaccept = 2;
@@ -3983,7 +3990,7 @@ yy307:
                }
                YYDEBUG(309, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1143 "Zend/zend_language_scanner.l"
+#line 1150 "Zend/zend_language_scanner.l"
                {
        char *hex = yytext + 2; /* Skip "0x" */
        int len = yyleng - 2;
@@ -4004,7 +4011,7 @@ yy307:
                return T_DNUMBER;
        }
 }
-#line 4008 "Zend/zend_language_scanner.c"
+#line 4015 "Zend/zend_language_scanner.c"
 yy310:
                YYDEBUG(310, *YYCURSOR);
                ++YYCURSOR;
@@ -4013,7 +4020,7 @@ yy310:
 yy311:
                YYDEBUG(311, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1569 "Zend/zend_language_scanner.l"
+#line 1576 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
@@ -4021,7 +4028,7 @@ yy311:
        BEGIN(INITIAL);
        return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
 }
-#line 4025 "Zend/zend_language_scanner.c"
+#line 4032 "Zend/zend_language_scanner.c"
 yy312:
                YYDEBUG(312, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4055,13 +4062,13 @@ yy314:
 yy316:
                YYDEBUG(316, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1443 "Zend/zend_language_scanner.l"
+#line 1450 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 4065 "Zend/zend_language_scanner.c"
+#line 4072 "Zend/zend_language_scanner.c"
 yy317:
                YYDEBUG(317, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4075,11 +4082,11 @@ yy318:
                }
                YYDEBUG(319, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1066 "Zend/zend_language_scanner.l"
+#line 1073 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_XOR;
 }
-#line 4083 "Zend/zend_language_scanner.c"
+#line 4090 "Zend/zend_language_scanner.c"
 yy320:
                YYDEBUG(320, *YYCURSOR);
                ++YYCURSOR;
@@ -4088,61 +4095,61 @@ yy320:
                }
                YYDEBUG(321, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1058 "Zend/zend_language_scanner.l"
+#line 1065 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_OR;
 }
-#line 4096 "Zend/zend_language_scanner.c"
+#line 4103 "Zend/zend_language_scanner.c"
 yy322:
                YYDEBUG(322, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(323, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1046 "Zend/zend_language_scanner.l"
+#line 1053 "Zend/zend_language_scanner.l"
                {
        return T_XOR_EQUAL;
 }
-#line 4106 "Zend/zend_language_scanner.c"
+#line 4113 "Zend/zend_language_scanner.c"
 yy324:
                YYDEBUG(324, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(325, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1050 "Zend/zend_language_scanner.l"
+#line 1057 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_OR;
 }
-#line 4116 "Zend/zend_language_scanner.c"
+#line 4123 "Zend/zend_language_scanner.c"
 yy326:
                YYDEBUG(326, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(327, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1042 "Zend/zend_language_scanner.l"
+#line 1049 "Zend/zend_language_scanner.l"
                {
        return T_OR_EQUAL;
 }
-#line 4126 "Zend/zend_language_scanner.c"
+#line 4133 "Zend/zend_language_scanner.c"
 yy328:
                YYDEBUG(328, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(329, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1054 "Zend/zend_language_scanner.l"
+#line 1061 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_AND;
 }
-#line 4136 "Zend/zend_language_scanner.c"
+#line 4143 "Zend/zend_language_scanner.c"
 yy330:
                YYDEBUG(330, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(331, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1038 "Zend/zend_language_scanner.l"
+#line 1045 "Zend/zend_language_scanner.l"
                {
        return T_AND_EQUAL;
 }
-#line 4146 "Zend/zend_language_scanner.c"
+#line 4153 "Zend/zend_language_scanner.c"
 yy332:
                YYDEBUG(332, *YYCURSOR);
                ++YYCURSOR;
@@ -4151,7 +4158,7 @@ yy332:
 yy333:
                YYDEBUG(333, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1578 "Zend/zend_language_scanner.l"
+#line 1585 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                BEGIN(INITIAL);
@@ -4164,17 +4171,17 @@ yy333:
                return yytext[0];
        }
 }
-#line 4168 "Zend/zend_language_scanner.c"
+#line 4175 "Zend/zend_language_scanner.c"
 yy334:
                YYDEBUG(334, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(335, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1026 "Zend/zend_language_scanner.l"
+#line 1033 "Zend/zend_language_scanner.l"
                {
        return T_MOD_EQUAL;
 }
-#line 4178 "Zend/zend_language_scanner.c"
+#line 4185 "Zend/zend_language_scanner.c"
 yy336:
                YYDEBUG(336, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4205,11 +4212,11 @@ yy340:
                ++YYCURSOR;
                YYDEBUG(341, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1022 "Zend/zend_language_scanner.l"
+#line 1029 "Zend/zend_language_scanner.l"
                {
        return T_CONCAT_EQUAL;
 }
-#line 4213 "Zend/zend_language_scanner.c"
+#line 4220 "Zend/zend_language_scanner.c"
 yy342:
                YYDEBUG(342, *YYCURSOR);
                yyaccept = 6;
@@ -4218,13 +4225,13 @@ yy342:
 yy343:
                YYDEBUG(343, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1540 "Zend/zend_language_scanner.l"
+#line 1547 "Zend/zend_language_scanner.l"
                {
        CG(comment_start_line) = CG(zend_lineno);
        BEGIN(ST_COMMENT);
        yymore();
 }
-#line 4228 "Zend/zend_language_scanner.c"
+#line 4235 "Zend/zend_language_scanner.c"
 yy344:
                YYDEBUG(344, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4234,11 +4241,11 @@ yy345:
                ++YYCURSOR;
                YYDEBUG(346, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1018 "Zend/zend_language_scanner.l"
+#line 1025 "Zend/zend_language_scanner.l"
                {
        return T_DIV_EQUAL;
 }
-#line 4242 "Zend/zend_language_scanner.c"
+#line 4249 "Zend/zend_language_scanner.c"
 yy347:
                YYDEBUG(347, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4265,55 +4272,55 @@ yy348:
 yy350:
                YYDEBUG(350, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1533 "Zend/zend_language_scanner.l"
+#line 1540 "Zend/zend_language_scanner.l"
                {
        CG(comment_start_line) = CG(zend_lineno);
        RESET_DOC_COMMENT();
        BEGIN(ST_DOC_COMMENT);
        yymore();
 }
-#line 4276 "Zend/zend_language_scanner.c"
+#line 4283 "Zend/zend_language_scanner.c"
 yy351:
                YYDEBUG(351, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(352, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1014 "Zend/zend_language_scanner.l"
+#line 1021 "Zend/zend_language_scanner.l"
                {
        return T_MUL_EQUAL;
 }
-#line 4286 "Zend/zend_language_scanner.c"
+#line 4293 "Zend/zend_language_scanner.c"
 yy353:
                YYDEBUG(353, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy357;
                YYDEBUG(354, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1074 "Zend/zend_language_scanner.l"
+#line 1081 "Zend/zend_language_scanner.l"
                {
        return T_SR;
 }
-#line 4297 "Zend/zend_language_scanner.c"
+#line 4304 "Zend/zend_language_scanner.c"
 yy355:
                YYDEBUG(355, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(356, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1002 "Zend/zend_language_scanner.l"
+#line 1009 "Zend/zend_language_scanner.l"
                {
        return T_IS_GREATER_OR_EQUAL;
 }
-#line 4307 "Zend/zend_language_scanner.c"
+#line 4314 "Zend/zend_language_scanner.c"
 yy357:
                YYDEBUG(357, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(358, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1034 "Zend/zend_language_scanner.l"
+#line 1041 "Zend/zend_language_scanner.l"
                {
        return T_SR_EQUAL;
 }
-#line 4317 "Zend/zend_language_scanner.c"
+#line 4324 "Zend/zend_language_scanner.c"
 yy359:
                YYDEBUG(359, *YYCURSOR);
                yyaccept = 7;
@@ -4324,11 +4331,11 @@ yy359:
 yy360:
                YYDEBUG(360, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1070 "Zend/zend_language_scanner.l"
+#line 1077 "Zend/zend_language_scanner.l"
                {
        return T_SL;
 }
-#line 4332 "Zend/zend_language_scanner.c"
+#line 4339 "Zend/zend_language_scanner.c"
 yy361:
                YYDEBUG(361, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4340,22 +4347,22 @@ yy362:
                ++YYCURSOR;
                YYDEBUG(363, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 998 "Zend/zend_language_scanner.l"
+#line 1005 "Zend/zend_language_scanner.l"
                {
        return T_IS_SMALLER_OR_EQUAL;
 }
-#line 4348 "Zend/zend_language_scanner.c"
+#line 4355 "Zend/zend_language_scanner.c"
 yy364:
                YYDEBUG(364, *YYCURSOR);
                ++YYCURSOR;
 yy365:
                YYDEBUG(365, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 994 "Zend/zend_language_scanner.l"
+#line 1001 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_EQUAL;
 }
-#line 4359 "Zend/zend_language_scanner.c"
+#line 4366 "Zend/zend_language_scanner.c"
 yy366:
                YYDEBUG(366, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4406,11 +4413,11 @@ yy373:
                ++YYCURSOR;
                YYDEBUG(374, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1030 "Zend/zend_language_scanner.l"
+#line 1037 "Zend/zend_language_scanner.l"
                {
        return T_SL_EQUAL;
 }
-#line 4414 "Zend/zend_language_scanner.c"
+#line 4421 "Zend/zend_language_scanner.c"
 yy375:
                YYDEBUG(375, *YYCURSOR);
                ++YYCURSOR;
@@ -4477,7 +4484,7 @@ yy380:
 yy381:
                YYDEBUG(381, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1652 "Zend/zend_language_scanner.l"
+#line 1659 "Zend/zend_language_scanner.l"
                {
        char *s;
        int bprefix = (yytext[0] != '<') ? 1 : 0;
@@ -4493,7 +4500,7 @@ yy381:
        BEGIN(ST_START_HEREDOC);
        return T_START_HEREDOC;
 }
-#line 4497 "Zend/zend_language_scanner.c"
+#line 4504 "Zend/zend_language_scanner.c"
 yy382:
                YYDEBUG(382, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4535,7 +4542,7 @@ yy386:
 yy387:
                YYDEBUG(387, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1815 "Zend/zend_language_scanner.l"
+#line 1822 "Zend/zend_language_scanner.l"
                {
        int bprefix = (yytext[0] != '<') ? 1 : 0;
        char *s;
@@ -4552,7 +4559,7 @@ yy387:
        BEGIN(ST_START_NOWDOC);
        return T_START_NOWDOC;
 }
-#line 4556 "Zend/zend_language_scanner.c"
+#line 4563 "Zend/zend_language_scanner.c"
 yy388:
                YYDEBUG(388, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4566,31 +4573,31 @@ yy389:
                ++YYCURSOR;
                YYDEBUG(391, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 986 "Zend/zend_language_scanner.l"
+#line 993 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_IDENTICAL;
 }
-#line 4574 "Zend/zend_language_scanner.c"
+#line 4581 "Zend/zend_language_scanner.c"
 yy392:
                YYDEBUG(392, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(393, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1006 "Zend/zend_language_scanner.l"
+#line 1013 "Zend/zend_language_scanner.l"
                {
        return T_PLUS_EQUAL;
 }
-#line 4584 "Zend/zend_language_scanner.c"
+#line 4591 "Zend/zend_language_scanner.c"
 yy394:
                YYDEBUG(394, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(395, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 974 "Zend/zend_language_scanner.l"
+#line 981 "Zend/zend_language_scanner.l"
                {
        return T_INC;
 }
-#line 4594 "Zend/zend_language_scanner.c"
+#line 4601 "Zend/zend_language_scanner.c"
 yy396:
                YYDEBUG(396, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4609,42 +4616,42 @@ yy398:
                }
                YYDEBUG(399, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 966 "Zend/zend_language_scanner.l"
+#line 973 "Zend/zend_language_scanner.l"
                {
        return T_LIST;
 }
-#line 4617 "Zend/zend_language_scanner.c"
+#line 4624 "Zend/zend_language_scanner.c"
 yy400:
                YYDEBUG(400, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy404;
                YYDEBUG(401, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 990 "Zend/zend_language_scanner.l"
+#line 997 "Zend/zend_language_scanner.l"
                {
        return T_IS_EQUAL;
 }
-#line 4628 "Zend/zend_language_scanner.c"
+#line 4635 "Zend/zend_language_scanner.c"
 yy402:
                YYDEBUG(402, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(403, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 962 "Zend/zend_language_scanner.l"
+#line 969 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_ARROW;
 }
-#line 4638 "Zend/zend_language_scanner.c"
+#line 4645 "Zend/zend_language_scanner.c"
 yy404:
                YYDEBUG(404, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(405, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 982 "Zend/zend_language_scanner.l"
+#line 989 "Zend/zend_language_scanner.l"
                {
        return T_IS_IDENTICAL;
 }
-#line 4648 "Zend/zend_language_scanner.c"
+#line 4655 "Zend/zend_language_scanner.c"
 yy406:
                YYDEBUG(406, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4736,7 +4743,7 @@ yy413:
                }
                YYDEBUG(424, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1287 "Zend/zend_language_scanner.l"
+#line 1294 "Zend/zend_language_scanner.l"
                {
        if (CG(current_namespace)) {
                *zendlval = *CG(current_namespace);
@@ -4746,7 +4753,7 @@ yy413:
        }
        return T_NS_C;
 }
-#line 4750 "Zend/zend_language_scanner.c"
+#line 4757 "Zend/zend_language_scanner.c"
 yy425:
                YYDEBUG(425, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4764,7 +4771,7 @@ yy425:
                }
                YYDEBUG(429, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1260 "Zend/zend_language_scanner.l"
+#line 1267 "Zend/zend_language_scanner.l"
                {
        char *filename = zend_get_compiled_filename(TSRMLS_C);
        const size_t filename_len = strlen(filename);
@@ -4791,7 +4798,7 @@ yy425:
        zendlval->type = IS_STRING;
        return T_DIR;
 }
-#line 4795 "Zend/zend_language_scanner.c"
+#line 4802 "Zend/zend_language_scanner.c"
 yy430:
                YYDEBUG(430, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4812,13 +4819,13 @@ yy430:
                }
                YYDEBUG(435, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1242 "Zend/zend_language_scanner.l"
+#line 1249 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = CG(zend_lineno);
        zendlval->type = IS_LONG;
        return T_LINE;
 }
-#line 4822 "Zend/zend_language_scanner.c"
+#line 4829 "Zend/zend_language_scanner.c"
 yy436:
                YYDEBUG(436, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4845,7 +4852,7 @@ yy436:
                }
                YYDEBUG(443, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1221 "Zend/zend_language_scanner.l"
+#line 1228 "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;
@@ -4866,7 +4873,7 @@ yy436:
        zendlval->type = IS_STRING;
        return T_METHOD_C;
 }
-#line 4870 "Zend/zend_language_scanner.c"
+#line 4877 "Zend/zend_language_scanner.c"
 yy444:
                YYDEBUG(444, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4904,7 +4911,7 @@ yy445:
                }
                YYDEBUG(454, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1205 "Zend/zend_language_scanner.l"
+#line 1212 "Zend/zend_language_scanner.l"
                {
        char *func_name = NULL;
 
@@ -4920,7 +4927,7 @@ yy445:
        zendlval->type = IS_STRING;
        return T_FUNC_C;
 }
-#line 4924 "Zend/zend_language_scanner.c"
+#line 4931 "Zend/zend_language_scanner.c"
 yy455:
                YYDEBUG(455, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4938,7 +4945,7 @@ yy455:
                }
                YYDEBUG(459, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1248 "Zend/zend_language_scanner.l"
+#line 1255 "Zend/zend_language_scanner.l"
                {
        char *filename = zend_get_compiled_filename(TSRMLS_C);
 
@@ -4950,7 +4957,7 @@ yy455:
        zendlval->type = IS_STRING;
        return T_FILE;
 }
-#line 4954 "Zend/zend_language_scanner.c"
+#line 4961 "Zend/zend_language_scanner.c"
 yy460:
                YYDEBUG(460, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4974,7 +4981,7 @@ yy460:
                }
                YYDEBUG(466, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1189 "Zend/zend_language_scanner.l"
+#line 1196 "Zend/zend_language_scanner.l"
                {
        char *class_name = NULL;
 
@@ -4990,7 +4997,7 @@ yy460:
        zendlval->type = IS_STRING;
        return T_CLASS_C;
 }
-#line 4994 "Zend/zend_language_scanner.c"
+#line 5001 "Zend/zend_language_scanner.c"
 yy467:
                YYDEBUG(467, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5052,11 +5059,11 @@ yy478:
                }
                YYDEBUG(479, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 930 "Zend/zend_language_scanner.l"
+#line 937 "Zend/zend_language_scanner.l"
                {
        return T_HALT_COMPILER;
 }
-#line 5060 "Zend/zend_language_scanner.c"
+#line 5067 "Zend/zend_language_scanner.c"
 yy480:
                YYDEBUG(480, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5076,11 +5083,11 @@ yy482:
                }
                YYDEBUG(483, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 914 "Zend/zend_language_scanner.l"
+#line 921 "Zend/zend_language_scanner.l"
                {
        return T_USE;
 }
-#line 5084 "Zend/zend_language_scanner.c"
+#line 5091 "Zend/zend_language_scanner.c"
 yy484:
                YYDEBUG(484, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5099,11 +5106,11 @@ yy486:
                }
                YYDEBUG(487, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 958 "Zend/zend_language_scanner.l"
+#line 965 "Zend/zend_language_scanner.l"
                {
        return T_UNSET;
 }
-#line 5107 "Zend/zend_language_scanner.c"
+#line 5114 "Zend/zend_language_scanner.c"
 yy488:
                YYDEBUG(488, *YYCURSOR);
                ++YYCURSOR;
@@ -5275,11 +5282,11 @@ yy503:
                ++YYCURSOR;
                YYDEBUG(505, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 858 "Zend/zend_language_scanner.l"
+#line 865 "Zend/zend_language_scanner.l"
                {
        return T_INT_CAST;
 }
-#line 5283 "Zend/zend_language_scanner.c"
+#line 5290 "Zend/zend_language_scanner.c"
 yy506:
                YYDEBUG(506, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5323,11 +5330,11 @@ yy511:
                ++YYCURSOR;
                YYDEBUG(514, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 862 "Zend/zend_language_scanner.l"
+#line 869 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_CAST;
 }
-#line 5331 "Zend/zend_language_scanner.c"
+#line 5338 "Zend/zend_language_scanner.c"
 yy515:
                YYDEBUG(515, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5397,11 +5404,11 @@ yy525:
                ++YYCURSOR;
                YYDEBUG(528, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 866 "Zend/zend_language_scanner.l"
+#line 873 "Zend/zend_language_scanner.l"
                {
        return T_STRING_CAST;
 }
-#line 5405 "Zend/zend_language_scanner.c"
+#line 5412 "Zend/zend_language_scanner.c"
 yy529:
                YYDEBUG(529, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5434,11 +5441,11 @@ yy532:
                ++YYCURSOR;
                YYDEBUG(535, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 874 "Zend/zend_language_scanner.l"
+#line 881 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY_CAST;
 }
-#line 5442 "Zend/zend_language_scanner.c"
+#line 5449 "Zend/zend_language_scanner.c"
 yy536:
                YYDEBUG(536, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5476,11 +5483,11 @@ yy540:
                ++YYCURSOR;
                YYDEBUG(543, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 878 "Zend/zend_language_scanner.l"
+#line 885 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_CAST;
 }
-#line 5484 "Zend/zend_language_scanner.c"
+#line 5491 "Zend/zend_language_scanner.c"
 yy544:
                YYDEBUG(544, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5521,11 +5528,11 @@ yy549:
                ++YYCURSOR;
                YYDEBUG(551, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 882 "Zend/zend_language_scanner.l"
+#line 889 "Zend/zend_language_scanner.l"
                {
        return T_BOOL_CAST;
 }
-#line 5529 "Zend/zend_language_scanner.c"
+#line 5536 "Zend/zend_language_scanner.c"
 yy552:
                YYDEBUG(552, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5569,11 +5576,11 @@ yy557:
                ++YYCURSOR;
                YYDEBUG(560, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 870 "Zend/zend_language_scanner.l"
+#line 877 "Zend/zend_language_scanner.l"
                {
        return T_STRING_CAST;
 }
-#line 5577 "Zend/zend_language_scanner.c"
+#line 5584 "Zend/zend_language_scanner.c"
 yy561:
                YYDEBUG(561, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5606,11 +5613,11 @@ yy564:
                ++YYCURSOR;
                YYDEBUG(567, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 886 "Zend/zend_language_scanner.l"
+#line 893 "Zend/zend_language_scanner.l"
                {
        return T_UNSET_CAST;
 }
-#line 5614 "Zend/zend_language_scanner.c"
+#line 5621 "Zend/zend_language_scanner.c"
 yy568:
                YYDEBUG(568, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5624,11 +5631,11 @@ yy569:
                }
                YYDEBUG(570, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 854 "Zend/zend_language_scanner.l"
+#line 861 "Zend/zend_language_scanner.l"
                {
        return T_VAR;
 }
-#line 5632 "Zend/zend_language_scanner.c"
+#line 5639 "Zend/zend_language_scanner.c"
 yy571:
                YYDEBUG(571, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5648,11 +5655,11 @@ yy573:
                }
                YYDEBUG(574, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 846 "Zend/zend_language_scanner.l"
+#line 853 "Zend/zend_language_scanner.l"
                {
        return T_NEW;
 }
-#line 5656 "Zend/zend_language_scanner.c"
+#line 5663 "Zend/zend_language_scanner.c"
 yy575:
                YYDEBUG(575, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5691,52 +5698,52 @@ yy581:
                }
                YYDEBUG(582, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 910 "Zend/zend_language_scanner.l"
+#line 917 "Zend/zend_language_scanner.l"
                {
        return T_NAMESPACE;
 }
-#line 5699 "Zend/zend_language_scanner.c"
+#line 5706 "Zend/zend_language_scanner.c"
 yy583:
                YYDEBUG(583, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(584, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 842 "Zend/zend_language_scanner.l"
+#line 849 "Zend/zend_language_scanner.l"
                {
        return T_PAAMAYIM_NEKUDOTAYIM;
 }
-#line 5709 "Zend/zend_language_scanner.c"
+#line 5716 "Zend/zend_language_scanner.c"
 yy585:
                YYDEBUG(585, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(586, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1010 "Zend/zend_language_scanner.l"
+#line 1017 "Zend/zend_language_scanner.l"
                {
        return T_MINUS_EQUAL;
 }
-#line 5719 "Zend/zend_language_scanner.c"
+#line 5726 "Zend/zend_language_scanner.c"
 yy587:
                YYDEBUG(587, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(588, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 978 "Zend/zend_language_scanner.l"
+#line 985 "Zend/zend_language_scanner.l"
                {
        return T_DEC;
 }
-#line 5729 "Zend/zend_language_scanner.c"
+#line 5736 "Zend/zend_language_scanner.c"
 yy589:
                YYDEBUG(589, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(590, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 815 "Zend/zend_language_scanner.l"
+#line 822 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
        return T_OBJECT_OPERATOR;
 }
-#line 5740 "Zend/zend_language_scanner.c"
+#line 5747 "Zend/zend_language_scanner.c"
 yy591:
                YYDEBUG(591, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5781,11 +5788,11 @@ yy596:
                }
                YYDEBUG(597, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 954 "Zend/zend_language_scanner.l"
+#line 961 "Zend/zend_language_scanner.l"
                {
        return T_PUBLIC;
 }
-#line 5789 "Zend/zend_language_scanner.c"
+#line 5796 "Zend/zend_language_scanner.c"
 yy598:
                YYDEBUG(598, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5840,11 +5847,11 @@ yy605:
                }
                YYDEBUG(606, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 950 "Zend/zend_language_scanner.l"
+#line 957 "Zend/zend_language_scanner.l"
                {
        return T_PROTECTED;
 }
-#line 5848 "Zend/zend_language_scanner.c"
+#line 5855 "Zend/zend_language_scanner.c"
 yy607:
                YYDEBUG(607, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5874,11 +5881,11 @@ yy611:
                }
                YYDEBUG(612, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 946 "Zend/zend_language_scanner.l"
+#line 953 "Zend/zend_language_scanner.l"
                {
        return T_PRIVATE;
 }
-#line 5882 "Zend/zend_language_scanner.c"
+#line 5889 "Zend/zend_language_scanner.c"
 yy613:
                YYDEBUG(613, *YYCURSOR);
                ++YYCURSOR;
@@ -5887,11 +5894,11 @@ yy613:
                }
                YYDEBUG(614, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 795 "Zend/zend_language_scanner.l"
+#line 802 "Zend/zend_language_scanner.l"
                {
        return T_PRINT;
 }
-#line 5895 "Zend/zend_language_scanner.c"
+#line 5902 "Zend/zend_language_scanner.c"
 yy615:
                YYDEBUG(615, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5916,11 +5923,11 @@ yy618:
                }
                YYDEBUG(619, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 787 "Zend/zend_language_scanner.l"
+#line 794 "Zend/zend_language_scanner.l"
                {
        return T_GOTO;
 }
-#line 5924 "Zend/zend_language_scanner.c"
+#line 5931 "Zend/zend_language_scanner.c"
 yy620:
                YYDEBUG(620, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5944,11 +5951,11 @@ yy623:
                }
                YYDEBUG(624, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 918 "Zend/zend_language_scanner.l"
+#line 925 "Zend/zend_language_scanner.l"
                {
        return T_GLOBAL;
 }
-#line 5952 "Zend/zend_language_scanner.c"
+#line 5959 "Zend/zend_language_scanner.c"
 yy625:
                YYDEBUG(625, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5982,11 +5989,11 @@ yy630:
                }
                YYDEBUG(631, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 779 "Zend/zend_language_scanner.l"
+#line 786 "Zend/zend_language_scanner.l"
                {
        return T_BREAK;
 }
-#line 5990 "Zend/zend_language_scanner.c"
+#line 5997 "Zend/zend_language_scanner.c"
 yy632:
                YYDEBUG(632, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6026,11 +6033,11 @@ yy638:
                }
                YYDEBUG(639, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 763 "Zend/zend_language_scanner.l"
+#line 770 "Zend/zend_language_scanner.l"
                {
        return T_SWITCH;
 }
-#line 6034 "Zend/zend_language_scanner.c"
+#line 6041 "Zend/zend_language_scanner.c"
 yy640:
                YYDEBUG(640, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6054,11 +6061,11 @@ yy643:
                }
                YYDEBUG(644, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 934 "Zend/zend_language_scanner.l"
+#line 941 "Zend/zend_language_scanner.l"
                {
        return T_STATIC;
 }
-#line 6062 "Zend/zend_language_scanner.c"
+#line 6069 "Zend/zend_language_scanner.c"
 yy645:
                YYDEBUG(645, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6085,11 +6092,11 @@ yy648:
                }
                YYDEBUG(649, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 759 "Zend/zend_language_scanner.l"
+#line 766 "Zend/zend_language_scanner.l"
                {
        return T_AS;
 }
-#line 6093 "Zend/zend_language_scanner.c"
+#line 6100 "Zend/zend_language_scanner.c"
 yy650:
                YYDEBUG(650, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6108,11 +6115,11 @@ yy652:
                }
                YYDEBUG(653, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 970 "Zend/zend_language_scanner.l"
+#line 977 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY;
 }
-#line 6116 "Zend/zend_language_scanner.c"
+#line 6123 "Zend/zend_language_scanner.c"
 yy654:
                YYDEBUG(654, *YYCURSOR);
                ++YYCURSOR;
@@ -6121,11 +6128,11 @@ yy654:
                }
                YYDEBUG(655, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1062 "Zend/zend_language_scanner.l"
+#line 1069 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_AND;
 }
-#line 6129 "Zend/zend_language_scanner.c"
+#line 6136 "Zend/zend_language_scanner.c"
 yy656:
                YYDEBUG(656, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6159,11 +6166,11 @@ yy661:
                }
                YYDEBUG(662, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 938 "Zend/zend_language_scanner.l"
+#line 945 "Zend/zend_language_scanner.l"
                {
        return T_ABSTRACT;
 }
-#line 6167 "Zend/zend_language_scanner.c"
+#line 6174 "Zend/zend_language_scanner.c"
 yy663:
                YYDEBUG(663, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6187,11 +6194,11 @@ yy666:
                }
                YYDEBUG(667, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 719 "Zend/zend_language_scanner.l"
+#line 726 "Zend/zend_language_scanner.l"
                {
        return T_WHILE;
 }
-#line 6195 "Zend/zend_language_scanner.c"
+#line 6202 "Zend/zend_language_scanner.c"
 yy668:
                YYDEBUG(668, *YYCURSOR);
                ++YYCURSOR;
@@ -6200,11 +6207,11 @@ yy668:
                }
                YYDEBUG(669, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 703 "Zend/zend_language_scanner.l"
+#line 710 "Zend/zend_language_scanner.l"
                {
        return T_IF;
 }
-#line 6208 "Zend/zend_language_scanner.c"
+#line 6215 "Zend/zend_language_scanner.c"
 yy670:
                YYDEBUG(670, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6256,11 +6263,11 @@ yy675:
                }
                YYDEBUG(676, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 922 "Zend/zend_language_scanner.l"
+#line 929 "Zend/zend_language_scanner.l"
                {
        return T_ISSET;
 }
-#line 6264 "Zend/zend_language_scanner.c"
+#line 6271 "Zend/zend_language_scanner.c"
 yy677:
                YYDEBUG(677, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6314,11 +6321,11 @@ yy683:
 yy684:
                YYDEBUG(684, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 894 "Zend/zend_language_scanner.l"
+#line 901 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE;
 }
-#line 6322 "Zend/zend_language_scanner.c"
+#line 6329 "Zend/zend_language_scanner.c"
 yy685:
                YYDEBUG(685, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6347,11 +6354,11 @@ yy689:
                }
                YYDEBUG(690, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 898 "Zend/zend_language_scanner.l"
+#line 905 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE_ONCE;
 }
-#line 6355 "Zend/zend_language_scanner.c"
+#line 6362 "Zend/zend_language_scanner.c"
 yy691:
                YYDEBUG(691, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6385,11 +6392,11 @@ yy696:
                }
                YYDEBUG(697, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 803 "Zend/zend_language_scanner.l"
+#line 810 "Zend/zend_language_scanner.l"
                {
        return T_INTERFACE;
 }
-#line 6393 "Zend/zend_language_scanner.c"
+#line 6400 "Zend/zend_language_scanner.c"
 yy698:
                YYDEBUG(698, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6428,11 +6435,11 @@ yy704:
                }
                YYDEBUG(705, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 755 "Zend/zend_language_scanner.l"
+#line 762 "Zend/zend_language_scanner.l"
                {
        return T_INSTANCEOF;
 }
-#line 6436 "Zend/zend_language_scanner.c"
+#line 6443 "Zend/zend_language_scanner.c"
 yy706:
                YYDEBUG(706, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6476,11 +6483,11 @@ yy713:
                }
                YYDEBUG(714, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 811 "Zend/zend_language_scanner.l"
+#line 818 "Zend/zend_language_scanner.l"
                {
        return T_IMPLEMENTS;
 }
-#line 6484 "Zend/zend_language_scanner.c"
+#line 6491 "Zend/zend_language_scanner.c"
 yy715:
                YYDEBUG(715, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6500,11 +6507,11 @@ yy717:
                }
                YYDEBUG(718, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 691 "Zend/zend_language_scanner.l"
+#line 698 "Zend/zend_language_scanner.l"
                {
        return T_TRY;
 }
-#line 6508 "Zend/zend_language_scanner.c"
+#line 6515 "Zend/zend_language_scanner.c"
 yy719:
                YYDEBUG(719, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6523,11 +6530,11 @@ yy721:
                }
                YYDEBUG(722, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 699 "Zend/zend_language_scanner.l"
+#line 706 "Zend/zend_language_scanner.l"
                {
        return T_THROW;
 }
-#line 6531 "Zend/zend_language_scanner.c"
+#line 6538 "Zend/zend_language_scanner.c"
 yy723:
                YYDEBUG(723, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6588,11 +6595,11 @@ yy729:
 yy730:
                YYDEBUG(730, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 902 "Zend/zend_language_scanner.l"
+#line 909 "Zend/zend_language_scanner.l"
                {
        return T_REQUIRE;
 }
-#line 6596 "Zend/zend_language_scanner.c"
+#line 6603 "Zend/zend_language_scanner.c"
 yy731:
                YYDEBUG(731, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6621,11 +6628,11 @@ yy735:
                }
                YYDEBUG(736, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 906 "Zend/zend_language_scanner.l"
+#line 913 "Zend/zend_language_scanner.l"
                {
        return T_REQUIRE_ONCE;
 }
-#line 6629 "Zend/zend_language_scanner.c"
+#line 6636 "Zend/zend_language_scanner.c"
 yy737:
                YYDEBUG(737, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6644,11 +6651,11 @@ yy739:
                }
                YYDEBUG(740, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 687 "Zend/zend_language_scanner.l"
+#line 694 "Zend/zend_language_scanner.l"
                {
        return T_RETURN;
 }
-#line 6652 "Zend/zend_language_scanner.c"
+#line 6659 "Zend/zend_language_scanner.c"
 yy741:
                YYDEBUG(741, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6729,11 +6736,11 @@ yy750:
                }
                YYDEBUG(751, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 783 "Zend/zend_language_scanner.l"
+#line 790 "Zend/zend_language_scanner.l"
                {
        return T_CONTINUE;
 }
-#line 6737 "Zend/zend_language_scanner.c"
+#line 6744 "Zend/zend_language_scanner.c"
 yy752:
                YYDEBUG(752, *YYCURSOR);
                ++YYCURSOR;
@@ -6742,11 +6749,11 @@ yy752:
                }
                YYDEBUG(753, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 683 "Zend/zend_language_scanner.l"
+#line 690 "Zend/zend_language_scanner.l"
                {
        return T_CONST;
 }
-#line 6750 "Zend/zend_language_scanner.c"
+#line 6757 "Zend/zend_language_scanner.c"
 yy754:
                YYDEBUG(754, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6771,11 +6778,11 @@ yy757:
                }
                YYDEBUG(758, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 850 "Zend/zend_language_scanner.l"
+#line 857 "Zend/zend_language_scanner.l"
                {
        return T_CLONE;
 }
-#line 6779 "Zend/zend_language_scanner.c"
+#line 6786 "Zend/zend_language_scanner.c"
 yy759:
                YYDEBUG(759, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6789,11 +6796,11 @@ yy760:
                }
                YYDEBUG(761, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 799 "Zend/zend_language_scanner.l"
+#line 806 "Zend/zend_language_scanner.l"
                {
        return T_CLASS;
 }
-#line 6797 "Zend/zend_language_scanner.c"
+#line 6804 "Zend/zend_language_scanner.c"
 yy762:
                YYDEBUG(762, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6813,11 +6820,11 @@ yy764:
                }
                YYDEBUG(765, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 771 "Zend/zend_language_scanner.l"
+#line 778 "Zend/zend_language_scanner.l"
                {
        return T_CASE;
 }
-#line 6821 "Zend/zend_language_scanner.c"
+#line 6828 "Zend/zend_language_scanner.c"
 yy766:
                YYDEBUG(766, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6831,11 +6838,11 @@ yy767:
                }
                YYDEBUG(768, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 695 "Zend/zend_language_scanner.l"
+#line 702 "Zend/zend_language_scanner.l"
                {
        return T_CATCH;
 }
-#line 6839 "Zend/zend_language_scanner.c"
+#line 6846 "Zend/zend_language_scanner.c"
 yy769:
                YYDEBUG(769, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6886,11 +6893,11 @@ yy777:
                }
                YYDEBUG(778, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 679 "Zend/zend_language_scanner.l"
+#line 686 "Zend/zend_language_scanner.l"
                {
        return T_FUNCTION;
 }
-#line 6894 "Zend/zend_language_scanner.c"
+#line 6901 "Zend/zend_language_scanner.c"
 yy779:
                YYDEBUG(779, *YYCURSOR);
                ++YYCURSOR;
@@ -6914,11 +6921,11 @@ yy779:
 yy780:
                YYDEBUG(780, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 731 "Zend/zend_language_scanner.l"
+#line 738 "Zend/zend_language_scanner.l"
                {
        return T_FOR;
 }
-#line 6922 "Zend/zend_language_scanner.c"
+#line 6929 "Zend/zend_language_scanner.c"
 yy781:
                YYDEBUG(781, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6942,11 +6949,11 @@ yy784:
                }
                YYDEBUG(785, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 739 "Zend/zend_language_scanner.l"
+#line 746 "Zend/zend_language_scanner.l"
                {
        return T_FOREACH;
 }
-#line 6950 "Zend/zend_language_scanner.c"
+#line 6957 "Zend/zend_language_scanner.c"
 yy786:
                YYDEBUG(786, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6965,11 +6972,11 @@ yy788:
                }
                YYDEBUG(789, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 942 "Zend/zend_language_scanner.l"
+#line 949 "Zend/zend_language_scanner.l"
                {
        return T_FINAL;
 }
-#line 6973 "Zend/zend_language_scanner.c"
+#line 6980 "Zend/zend_language_scanner.c"
 yy790:
                YYDEBUG(790, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7000,11 +7007,11 @@ yy792:
                }
                YYDEBUG(793, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 727 "Zend/zend_language_scanner.l"
+#line 734 "Zend/zend_language_scanner.l"
                {
        return T_DO;
 }
-#line 7008 "Zend/zend_language_scanner.c"
+#line 7015 "Zend/zend_language_scanner.c"
 yy794:
                YYDEBUG(794, *YYCURSOR);
                ++YYCURSOR;
@@ -7013,11 +7020,11 @@ yy794:
                }
                YYDEBUG(795, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 675 "Zend/zend_language_scanner.l"
+#line 682 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
 }
-#line 7021 "Zend/zend_language_scanner.c"
+#line 7028 "Zend/zend_language_scanner.c"
 yy796:
                YYDEBUG(796, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7052,11 +7059,11 @@ yy801:
                }
                YYDEBUG(802, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 775 "Zend/zend_language_scanner.l"
+#line 782 "Zend/zend_language_scanner.l"
                {
        return T_DEFAULT;
 }
-#line 7060 "Zend/zend_language_scanner.c"
+#line 7067 "Zend/zend_language_scanner.c"
 yy803:
                YYDEBUG(803, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7080,11 +7087,11 @@ yy806:
                }
                YYDEBUG(807, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 747 "Zend/zend_language_scanner.l"
+#line 754 "Zend/zend_language_scanner.l"
                {
        return T_DECLARE;
 }
-#line 7088 "Zend/zend_language_scanner.c"
+#line 7095 "Zend/zend_language_scanner.c"
 yy808:
                YYDEBUG(808, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7164,11 +7171,11 @@ yy819:
                }
                YYDEBUG(820, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 807 "Zend/zend_language_scanner.l"
+#line 814 "Zend/zend_language_scanner.l"
                {
        return T_EXTENDS;
 }
-#line 7172 "Zend/zend_language_scanner.c"
+#line 7179 "Zend/zend_language_scanner.c"
 yy821:
                YYDEBUG(821, *YYCURSOR);
                ++YYCURSOR;
@@ -7177,11 +7184,11 @@ yy821:
                }
                YYDEBUG(822, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 671 "Zend/zend_language_scanner.l"
+#line 678 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
 }
-#line 7185 "Zend/zend_language_scanner.c"
+#line 7192 "Zend/zend_language_scanner.c"
 yy823:
                YYDEBUG(823, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7195,11 +7202,11 @@ yy824:
                }
                YYDEBUG(825, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 890 "Zend/zend_language_scanner.l"
+#line 897 "Zend/zend_language_scanner.l"
                {
        return T_EVAL;
 }
-#line 7203 "Zend/zend_language_scanner.c"
+#line 7210 "Zend/zend_language_scanner.c"
 yy826:
                YYDEBUG(826, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7269,11 +7276,11 @@ yy835:
                }
                YYDEBUG(836, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 723 "Zend/zend_language_scanner.l"
+#line 730 "Zend/zend_language_scanner.l"
                {
        return T_ENDWHILE;
 }
-#line 7277 "Zend/zend_language_scanner.c"
+#line 7284 "Zend/zend_language_scanner.c"
 yy837:
                YYDEBUG(837, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7302,11 +7309,11 @@ yy841:
                }
                YYDEBUG(842, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 767 "Zend/zend_language_scanner.l"
+#line 774 "Zend/zend_language_scanner.l"
                {
        return T_ENDSWITCH;
 }
-#line 7310 "Zend/zend_language_scanner.c"
+#line 7317 "Zend/zend_language_scanner.c"
 yy843:
                YYDEBUG(843, *YYCURSOR);
                ++YYCURSOR;
@@ -7315,11 +7322,11 @@ yy843:
                }
                YYDEBUG(844, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 711 "Zend/zend_language_scanner.l"
+#line 718 "Zend/zend_language_scanner.l"
                {
        return T_ENDIF;
 }
-#line 7323 "Zend/zend_language_scanner.c"
+#line 7330 "Zend/zend_language_scanner.c"
 yy845:
                YYDEBUG(845, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7348,11 +7355,11 @@ yy846:
 yy847:
                YYDEBUG(847, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 735 "Zend/zend_language_scanner.l"
+#line 742 "Zend/zend_language_scanner.l"
                {
        return T_ENDFOR;
 }
-#line 7356 "Zend/zend_language_scanner.c"
+#line 7363 "Zend/zend_language_scanner.c"
 yy848:
                YYDEBUG(848, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7376,11 +7383,11 @@ yy851:
                }
                YYDEBUG(852, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 743 "Zend/zend_language_scanner.l"
+#line 750 "Zend/zend_language_scanner.l"
                {
        return T_ENDFOREACH;
 }
-#line 7384 "Zend/zend_language_scanner.c"
+#line 7391 "Zend/zend_language_scanner.c"
 yy853:
                YYDEBUG(853, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7414,11 +7421,11 @@ yy858:
                }
                YYDEBUG(859, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 751 "Zend/zend_language_scanner.l"
+#line 758 "Zend/zend_language_scanner.l"
                {
        return T_ENDDECLARE;
 }
-#line 7422 "Zend/zend_language_scanner.c"
+#line 7429 "Zend/zend_language_scanner.c"
 yy860:
                YYDEBUG(860, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7437,11 +7444,11 @@ yy862:
                }
                YYDEBUG(863, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 926 "Zend/zend_language_scanner.l"
+#line 933 "Zend/zend_language_scanner.l"
                {
        return T_EMPTY;
 }
-#line 7445 "Zend/zend_language_scanner.c"
+#line 7452 "Zend/zend_language_scanner.c"
 yy864:
                YYDEBUG(864, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7470,11 +7477,11 @@ yy865:
 yy866:
                YYDEBUG(866, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 715 "Zend/zend_language_scanner.l"
+#line 722 "Zend/zend_language_scanner.l"
                {
        return T_ELSE;
 }
-#line 7478 "Zend/zend_language_scanner.c"
+#line 7485 "Zend/zend_language_scanner.c"
 yy867:
                YYDEBUG(867, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7488,11 +7495,11 @@ yy868:
                }
                YYDEBUG(869, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 707 "Zend/zend_language_scanner.l"
+#line 714 "Zend/zend_language_scanner.l"
                {
        return T_ELSEIF;
 }
-#line 7496 "Zend/zend_language_scanner.c"
+#line 7503 "Zend/zend_language_scanner.c"
 yy870:
                YYDEBUG(870, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7506,11 +7513,11 @@ yy871:
                }
                YYDEBUG(872, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 791 "Zend/zend_language_scanner.l"
+#line 798 "Zend/zend_language_scanner.l"
                {
        return T_ECHO;
 }
-#line 7514 "Zend/zend_language_scanner.c"
+#line 7521 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_LOOKING_FOR_PROPERTY:
@@ -7581,13 +7588,13 @@ yyc_ST_LOOKING_FOR_PROPERTY:
 yy876:
                YYDEBUG(876, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 836 "Zend/zend_language_scanner.l"
+#line 843 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state(TSRMLS_C);
        goto restart;
 }
-#line 7591 "Zend/zend_language_scanner.c"
+#line 7598 "Zend/zend_language_scanner.c"
 yy877:
                YYDEBUG(877, *YYCURSOR);
                ++YYCURSOR;
@@ -7596,12 +7603,12 @@ yy877:
 yy878:
                YYDEBUG(878, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 824 "Zend/zend_language_scanner.l"
+#line 831 "Zend/zend_language_scanner.l"
                {
        /* do nothing */
        goto restart;
 }
-#line 7605 "Zend/zend_language_scanner.c"
+#line 7612 "Zend/zend_language_scanner.c"
 yy879:
                YYDEBUG(879, *YYCURSOR);
                ++YYCURSOR;
@@ -7610,14 +7617,14 @@ yy879:
 yy880:
                YYDEBUG(880, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 829 "Zend/zend_language_scanner.l"
+#line 836 "Zend/zend_language_scanner.l"
                {
        yy_pop_state(TSRMLS_C);
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
        return T_STRING;
 }
-#line 7621 "Zend/zend_language_scanner.c"
+#line 7628 "Zend/zend_language_scanner.c"
 yy881:
                YYDEBUG(881, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7649,11 +7656,11 @@ yy886:
                ++YYCURSOR;
                YYDEBUG(887, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 820 "Zend/zend_language_scanner.l"
+#line 827 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_OPERATOR;
 }
-#line 7657 "Zend/zend_language_scanner.c"
+#line 7664 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_LOOKING_FOR_VARNAME:
@@ -7712,7 +7719,7 @@ yy890:
 yy891:
                YYDEBUG(891, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1105 "Zend/zend_language_scanner.l"
+#line 1112 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
@@ -7720,20 +7727,20 @@ yy891:
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return T_STRING_VARNAME;
 }
-#line 7724 "Zend/zend_language_scanner.c"
+#line 7731 "Zend/zend_language_scanner.c"
 yy892:
                YYDEBUG(892, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(893, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1114 "Zend/zend_language_scanner.l"
+#line 1121 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state(TSRMLS_C);
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        goto restart;
 }
-#line 7737 "Zend/zend_language_scanner.c"
+#line 7744 "Zend/zend_language_scanner.c"
 yy894:
                YYDEBUG(894, *YYCURSOR);
                ++YYCURSOR;
@@ -8195,7 +8202,7 @@ yy931:
                ++YYCURSOR;
                YYDEBUG(932, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1858 "Zend/zend_language_scanner.l"
+#line 1865 "Zend/zend_language_scanner.l"
                {
        char *end = yytext + yyleng - 1;
 
@@ -8232,7 +8239,7 @@ yy931:
                yymore();
        }
 }
-#line 8236 "Zend/zend_language_scanner.c"
+#line 8243 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_ONE_LINE_COMMENT:
@@ -8289,11 +8296,11 @@ yy935:
 yy936:
                YYDEBUG(936, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1488 "Zend/zend_language_scanner.l"
+#line 1495 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 8297 "Zend/zend_language_scanner.c"
+#line 8304 "Zend/zend_language_scanner.c"
 yy937:
                YYDEBUG(937, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8316,7 +8323,7 @@ yy939:
 yy941:
                YYDEBUG(941, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1492 "Zend/zend_language_scanner.l"
+#line 1499 "Zend/zend_language_scanner.l"
                {
        switch (yytext[yyleng-1]) {
                case '?': case '%': case '>':
@@ -8334,7 +8341,7 @@ yy941:
                        return T_COMMENT;
        }
 }
-#line 8338 "Zend/zend_language_scanner.c"
+#line 8345 "Zend/zend_language_scanner.c"
 yy942:
                YYDEBUG(942, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8347,7 +8354,7 @@ yy943:
                ++YYCURSOR;
                YYDEBUG(945, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1510 "Zend/zend_language_scanner.l"
+#line 1517 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
@@ -8356,7 +8363,7 @@ yy943:
        CG(zend_lineno)++;
        return T_COMMENT;
 }
-#line 8360 "Zend/zend_language_scanner.c"
+#line 8367 "Zend/zend_language_scanner.c"
 yy946:
                YYDEBUG(946, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8366,7 +8373,7 @@ yy947:
                ++YYCURSOR;
                YYDEBUG(948, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1519 "Zend/zend_language_scanner.l"
+#line 1526 "Zend/zend_language_scanner.l"
                {
     if (CG(asp_tags) || yytext[yyleng-2] != '%') { /* asp comment? */
                zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -8380,7 +8387,7 @@ yy947:
                yymore();
        }
 }
-#line 8384 "Zend/zend_language_scanner.c"
+#line 8391 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_START_HEREDOC:
@@ -8437,13 +8444,13 @@ yy951:
 yy952:
                YYDEBUG(952, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1675 "Zend/zend_language_scanner.l"
+#line 1682 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        BEGIN(ST_HEREDOC);
        goto restart;
 }
-#line 8447 "Zend/zend_language_scanner.c"
+#line 8454 "Zend/zend_language_scanner.c"
 yy953:
                YYDEBUG(953, *YYCURSOR);
                yyaccept = 0;
@@ -8488,7 +8495,7 @@ yy958:
                ++YYCURSOR;
                YYDEBUG(959, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1681 "Zend/zend_language_scanner.l"
+#line 1688 "Zend/zend_language_scanner.l"
                {
        int label_len = yyleng - 1;
 
@@ -8510,7 +8517,7 @@ yy958:
                yymore();
        }
 }
-#line 8514 "Zend/zend_language_scanner.c"
+#line 8521 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_START_NOWDOC:
@@ -8567,13 +8574,13 @@ yy962:
 yy963:
                YYDEBUG(963, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1832 "Zend/zend_language_scanner.l"
+#line 1839 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        BEGIN(ST_NOWDOC);
        goto restart;
 }
-#line 8577 "Zend/zend_language_scanner.c"
+#line 8584 "Zend/zend_language_scanner.c"
 yy964:
                YYDEBUG(964, *YYCURSOR);
                yyaccept = 0;
@@ -8618,7 +8625,7 @@ yy969:
                ++YYCURSOR;
                YYDEBUG(970, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1838 "Zend/zend_language_scanner.l"
+#line 1845 "Zend/zend_language_scanner.l"
                {
        int label_len = yyleng - 1;
 
@@ -8638,7 +8645,7 @@ yy969:
                yymore();
        }
 }
-#line 8642 "Zend/zend_language_scanner.c"
+#line 8649 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_VAR_OFFSET:
@@ -8739,7 +8746,7 @@ yy973:
 yy974:
                YYDEBUG(974, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1164 "Zend/zend_language_scanner.l"
+#line 1171 "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);
@@ -8751,7 +8758,7 @@ yy974:
        }
        return T_NUM_STRING;
 }
-#line 8755 "Zend/zend_language_scanner.c"
+#line 8762 "Zend/zend_language_scanner.c"
 yy975:
                YYDEBUG(975, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8771,23 +8778,23 @@ yy976:
 yy977:
                YYDEBUG(977, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1454 "Zend/zend_language_scanner.l"
+#line 1461 "Zend/zend_language_scanner.l"
                {
        /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
        return yytext[0];
 }
-#line 8780 "Zend/zend_language_scanner.c"
+#line 8787 "Zend/zend_language_scanner.c"
 yy978:
                YYDEBUG(978, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(979, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1449 "Zend/zend_language_scanner.l"
+#line 1456 "Zend/zend_language_scanner.l"
                {
        yy_pop_state(TSRMLS_C);
        return ']';
 }
-#line 8791 "Zend/zend_language_scanner.c"
+#line 8798 "Zend/zend_language_scanner.c"
 yy980:
                YYDEBUG(980, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8797,7 +8804,7 @@ yy981:
                ++YYCURSOR;
                YYDEBUG(982, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1459 "Zend/zend_language_scanner.l"
+#line 1466 "Zend/zend_language_scanner.l"
                {
        /* Invalid rule to return a more explicit parse error with proper line number */
        yyless(0);
@@ -8805,7 +8812,7 @@ yy981:
        ZVAL_EMPTY_STRING(zendlval); /* Empty since it won't be used */
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 8809 "Zend/zend_language_scanner.c"
+#line 8816 "Zend/zend_language_scanner.c"
 yy983:
                YYDEBUG(983, *YYCURSOR);
                ++YYCURSOR;
@@ -8814,24 +8821,24 @@ yy983:
 yy984:
                YYDEBUG(984, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1467 "Zend/zend_language_scanner.l"
+#line 1474 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
        return T_STRING;
 }
-#line 8824 "Zend/zend_language_scanner.c"
+#line 8831 "Zend/zend_language_scanner.c"
 yy985:
                YYDEBUG(985, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(986, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1920 "Zend/zend_language_scanner.l"
+#line 1927 "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 8835 "Zend/zend_language_scanner.c"
+#line 8842 "Zend/zend_language_scanner.c"
 yy987:
                YYDEBUG(987, *YYCURSOR);
                ++YYCURSOR;
@@ -8867,13 +8874,13 @@ yy989:
 yy991:
                YYDEBUG(991, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1443 "Zend/zend_language_scanner.l"
+#line 1450 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 8877 "Zend/zend_language_scanner.c"
+#line 8884 "Zend/zend_language_scanner.c"
 yy992:
                YYDEBUG(992, *YYCURSOR);
                ++YYCURSOR;
@@ -8905,14 +8912,14 @@ yy996:
 yy998:
                YYDEBUG(998, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1176 "Zend/zend_language_scanner.l"
+#line 1183 "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 8916 "Zend/zend_language_scanner.c"
+#line 8923 "Zend/zend_language_scanner.c"
 yy999:
                YYDEBUG(999, *YYCURSOR);
                ++YYCURSOR;
@@ -8925,6 +8932,6 @@ yy999:
                goto yy998;
        }
 }
-#line 1925 "Zend/zend_language_scanner.l"
+#line 1932 "Zend/zend_language_scanner.l"
 
 }
index be2be3694c4fb97970b20a537988ec27b0ac3f19..182538dc1ff5e2c5eca2b4726e7f39d1fff7cf11 100644 (file)
 #define yyless(x)    YYCURSOR = yytext + x
 #define yymore()     goto yymore_restart
 
+/* perform sanity check. If this message is triggered you should
+   increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */
+/*!max:re2c */
+#if ZEND_MMAP_AHEAD < YYMAXFILL
+# error ZEND_MMAP_AHEAD should be greater than or equal to YYMAXFILL
+#endif
+
 #ifdef HAVE_STDARG_H
 # include <stdarg.h>
 #endif
@@ -356,9 +363,9 @@ zend_op_array *compile_filename(int type, zval *filename TSRMLS_DC)
 ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_DC)
 {
        /* enforce two trailing NULLs for flex... */
-       STR_REALLOC(str->value.str.val, str->value.str.len+2);
+       str->value.str.val = safe_erealloc(str->value.str.val, 1, str->value.str.len, ZEND_MMAP_AHEAD);
 
-       str->value.str.val[str->value.str.len+1]=0;
+       memset(str->value.str.val + str->value.str.len, 0, ZEND_MMAP_AHEAD);
 
        SCNG(yy_in)=NULL;
 
index c6ce2554ac7eb4bd94081c4f2032a8e0351aadc2..bc7739cdc35dc6782b3cea54813f7a46c38862c1 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.4.dev on Wed Mar 26 23:08:45 2008 */
+/* Generated by re2c 0.13.4.dev on Fri Apr  4 15:52:47 2008 */
 #line 3 "Zend/zend_language_scanner_defs.h"
 
 enum YYCONDTYPE {
index fa84dec90b2cf3e42816427e1bb8a0edaa2f7257..5bb61c9a1e4335117e32d35c2b3af2eef9774abb 100644 (file)
@@ -31,7 +31,7 @@ typedef size_t (*zend_stream_fsizer_t)(void* handle TSRMLS_DC);
 typedef size_t (*zend_stream_reader_t)(void* handle, char *buf, size_t len TSRMLS_DC);
 typedef void   (*zend_stream_closer_t)(void* handle TSRMLS_DC);
 
-#define ZEND_MMAP_AHEAD 32
+#define ZEND_MMAP_AHEAD 16
 
 typedef enum {
        ZEND_HANDLE_FILENAME,