]> granicus.if.org Git - php/commitdiff
MFB: add sanity check for ZEND_MMAP_AHEAD
authorNuno Lopes <nlopess@php.net>
Fri, 4 Apr 2008 15:13:32 +0000 (15:13 +0000)
committerNuno Lopes <nlopess@php.net>
Fri, 4 Apr 2008 15:13:32 +0000 (15:13 +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 551696f75159af19ee5d5e42253f7dceade4d39c..d6e0e79e9664d4bef259076a0f4484962ef4a9b0 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.4.dev on Wed Mar 26 15:14:24 2008 */
+/* Generated by re2c 0.13.4.dev on Fri Apr  4 16:10:13 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 488 "Zend/zend_ini_scanner.l"
+#line 495 "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 467 "Zend/zend_ini_scanner.l"
+#line 474 "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 472 "Zend/zend_ini_scanner.l"
+#line 479 "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 426 "Zend/zend_ini_scanner.l"
+#line 433 "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 385 "Zend/zend_ini_scanner.l"
+#line 392 "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 389 "Zend/zend_ini_scanner.l"
+#line 396 "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 323 "Zend/zend_ini_scanner.l"
+#line 330 "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 348 "Zend/zend_ini_scanner.l"
+#line 355 "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 377 "Zend/zend_ini_scanner.l"
+#line 384 "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 381 "Zend/zend_ini_scanner.l"
+#line 388 "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 477 "Zend/zend_ini_scanner.l"
+#line 484 "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 453 "Zend/zend_ini_scanner.l"
+#line 460 "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 458 "Zend/zend_ini_scanner.l"
+#line 465 "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 488 "Zend/zend_ini_scanner.l"
+#line 495 "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 363 "Zend/zend_ini_scanner.l"
+#line 370 "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 444 "Zend/zend_ini_scanner.l"
+#line 451 "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 488 "Zend/zend_ini_scanner.l"
+#line 495 "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 448 "Zend/zend_ini_scanner.l"
+#line 455 "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 422 "Zend/zend_ini_scanner.l"
+#line 429 "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 418 "Zend/zend_ini_scanner.l"
+#line 425 "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 358 "Zend/zend_ini_scanner.l"
+#line 365 "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 333 "Zend/zend_ini_scanner.l"
+#line 340 "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 363 "Zend/zend_ini_scanner.l"
+#line 370 "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 398 "Zend/zend_ini_scanner.l"
+#line 405 "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 412 "Zend/zend_ini_scanner.l"
+#line 419 "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 483 "Zend/zend_ini_scanner.l"
+#line 490 "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 477 "Zend/zend_ini_scanner.l"
+#line 484 "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 408 "Zend/zend_ini_scanner.l"
+#line 415 "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 488 "Zend/zend_ini_scanner.l"
+#line 495 "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 342 "Zend/zend_ini_scanner.l"
+#line 349 "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 444 "Zend/zend_ini_scanner.l"
+#line 451 "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 488 "Zend/zend_ini_scanner.l"
+#line 495 "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 448 "Zend/zend_ini_scanner.l"
+#line 455 "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 422 "Zend/zend_ini_scanner.l"
+#line 429 "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 418 "Zend/zend_ini_scanner.l"
+#line 425 "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 342 "Zend/zend_ini_scanner.l"
+#line 349 "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 333 "Zend/zend_ini_scanner.l"
+#line 340 "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 363 "Zend/zend_ini_scanner.l"
+#line 370 "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 483 "Zend/zend_ini_scanner.l"
+#line 490 "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 440 "Zend/zend_ini_scanner.l"
+#line 447 "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 463 "Zend/zend_ini_scanner.l"
+#line 470 "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 412 "Zend/zend_ini_scanner.l"
+#line 419 "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 430 "Zend/zend_ini_scanner.l"
+#line 437 "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 448 "Zend/zend_ini_scanner.l"
+#line 455 "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 422 "Zend/zend_ini_scanner.l"
+#line 429 "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 434 "Zend/zend_ini_scanner.l"
+#line 441 "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 418 "Zend/zend_ini_scanner.l"
+#line 425 "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 377 "Zend/zend_ini_scanner.l"
+#line 384 "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 381 "Zend/zend_ini_scanner.l"
+#line 388 "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 477 "Zend/zend_ini_scanner.l"
+#line 484 "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 333 "Zend/zend_ini_scanner.l"
+#line 340 "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 363 "Zend/zend_ini_scanner.l"
+#line 370 "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 488 "Zend/zend_ini_scanner.l"
+#line 495 "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 368 "Zend/zend_ini_scanner.l"
+#line 375 "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 372 "Zend/zend_ini_scanner.l"
+#line 379 "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 492 "Zend/zend_ini_scanner.l"
+#line 499 "Zend/zend_ini_scanner.l"
 
 }
index 1b4022bc74aab0e3d2c4f3d527ffc55c5d245d27..96c47d3141ef47a47bdf11e69ebecbec88b1fe77 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 7d59fdc7609dc5128a2b042ee1dca5e9a29179ff..51fbe6bb3a2d347207b31a158f2d572e46d4b264 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.4.dev on Wed Mar 26 15:14:24 2008 */
+/* Generated by re2c 0.13.4.dev on Fri Apr  4 16:10:13 2008 */
 #line 3 "Zend/zend_ini_scanner_defs.h"
 
 enum YYCONDTYPE {
index 9eb9b38c692b8395f2f13f8daeb0441cdc26f84b..1305ad1d1d394d29a58af0a5615da675a161cca7 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.4.dev on Wed Mar 26 15:13:41 2008 */
+/* Generated by re2c 0.13.4.dev on Fri Apr  4 16:08:19 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
@@ -835,10 +842,8 @@ ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_D
                encoding = ucnv_getName(ZEND_U_CONVERTER(UG(runtime_encoding_conv)), &status);
        }
 
-       /* enforce two trailing NULLs for flex... */
-       STR_REALLOC(Z_STRVAL_P(str), Z_STRLEN_P(str)+2);
-
-       Z_STRVAL_P(str)[Z_STRLEN_P(str)+1]=0;
+       str->value.str.val = safe_erealloc(str->value.str.val, 1, str->value.str.len, ZEND_MMAP_AHEAD);
+       memset(str->value.str.val + str->value.str.len, 0, ZEND_MMAP_AHEAD);
 
        SCNG(yy_in)=NULL;
 
@@ -1334,7 +1339,7 @@ yymore_restart:
        }
 
 
-#line 1338 "Zend/zend_language_scanner.c"
+#line 1343 "Zend/zend_language_scanner.c"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
@@ -1458,7 +1463,7 @@ yyc_INITIAL:
 yy3:
                YYDEBUG(3, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2159 "Zend/zend_language_scanner.l"
+#line 2164 "Zend/zend_language_scanner.l"
                {
 
        while (1) {
@@ -1489,7 +1494,7 @@ inline_char_handler:
        HANDLE_NEWLINES(yytext, yyleng);
        return T_INLINE_HTML;
 }
-#line 1493 "Zend/zend_language_scanner.c"
+#line 1498 "Zend/zend_language_scanner.c"
 yy4:
                YYDEBUG(4, *YYCURSOR);
                yyaccept = 0;
@@ -1516,7 +1521,7 @@ yy8:
 yy9:
                YYDEBUG(9, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2150 "Zend/zend_language_scanner.l"
+#line 2155 "Zend/zend_language_scanner.l"
                {
        if ((YYCTYPE*)yytext == SCNG(yy_start)) {
                /* ignore first line when it's started with a # */
@@ -1525,7 +1530,7 @@ yy9:
                goto inline_char_handler;
        }
 }
-#line 1529 "Zend/zend_language_scanner.c"
+#line 1534 "Zend/zend_language_scanner.c"
 yy10:
                YYDEBUG(10, *YYCURSOR);
                yyaccept = 1;
@@ -1551,7 +1556,7 @@ yy12:
 yy13:
                YYDEBUG(13, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2134 "Zend/zend_language_scanner.l"
+#line 2139 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        if (CG(short_tags)) {
@@ -1567,14 +1572,14 @@ yy13:
                return T_INLINE_HTML;
        }
 }
-#line 1571 "Zend/zend_language_scanner.c"
+#line 1576 "Zend/zend_language_scanner.c"
 yy14:
                YYDEBUG(14, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy50;
                YYDEBUG(15, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2108 "Zend/zend_language_scanner.l"
+#line 2113 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1589,7 +1594,7 @@ yy14:
                return T_INLINE_HTML;
        }
 }
-#line 1593 "Zend/zend_language_scanner.c"
+#line 1598 "Zend/zend_language_scanner.c"
 yy16:
                YYDEBUG(16, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1779,7 +1784,7 @@ yy42:
                ++YYCURSOR;
                YYDEBUG(45, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2067 "Zend/zend_language_scanner.l"
+#line 2072 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1788,7 +1793,7 @@ yy42:
        BEGIN(ST_IN_SCRIPTING);
        return T_OPEN_TAG;
 }
-#line 1792 "Zend/zend_language_scanner.c"
+#line 1797 "Zend/zend_language_scanner.c"
 yy46:
                YYDEBUG(46, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1815,7 +1820,7 @@ yy50:
                ++YYCURSOR;
                YYDEBUG(51, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2076 "Zend/zend_language_scanner.l"
+#line 2081 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1830,13 +1835,13 @@ yy50:
                return T_INLINE_HTML;
        }
 }
-#line 1834 "Zend/zend_language_scanner.c"
+#line 1839 "Zend/zend_language_scanner.c"
 yy52:
                YYDEBUG(52, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(53, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2092 "Zend/zend_language_scanner.l"
+#line 2097 "Zend/zend_language_scanner.l"
                {
        if (CG(short_tags)) {
                Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1851,7 +1856,7 @@ yy52:
                return T_INLINE_HTML;
        }
 }
-#line 1855 "Zend/zend_language_scanner.c"
+#line 1860 "Zend/zend_language_scanner.c"
 yy54:
                YYDEBUG(54, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1878,7 +1883,7 @@ yy57:
 yy58:
                YYDEBUG(58, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2124 "Zend/zend_language_scanner.l"
+#line 2129 "Zend/zend_language_scanner.l"
                {
        Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
        Z_STRLEN_P(zendlval) = yyleng;
@@ -1887,7 +1892,7 @@ yy58:
        BEGIN(ST_IN_SCRIPTING);
        return T_OPEN_TAG;
 }
-#line 1891 "Zend/zend_language_scanner.c"
+#line 1896 "Zend/zend_language_scanner.c"
 yy59:
                YYDEBUG(59, *YYCURSOR);
                ++YYCURSOR;
@@ -1991,7 +1996,7 @@ yy65:
 yy66:
                YYDEBUG(66, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2591 "Zend/zend_language_scanner.l"
+#line 2596 "Zend/zend_language_scanner.l"
                {
        if (CG(literal_type) == IS_UNICODE) {
                return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0x60 /*'`'*/, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
@@ -2000,7 +2005,7 @@ yy66:
                return T_ENCAPSED_AND_WHITESPACE;
        }
 }
-#line 2004 "Zend/zend_language_scanner.c"
+#line 2009 "Zend/zend_language_scanner.c"
 yy67:
                YYDEBUG(67, *YYCURSOR);
                ++YYCURSOR;
@@ -2012,12 +2017,12 @@ yy68:
                ++YYCURSOR;
                YYDEBUG(69, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2748 "Zend/zend_language_scanner.l"
+#line 2753 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '`';
 }
-#line 2021 "Zend/zend_language_scanner.c"
+#line 2026 "Zend/zend_language_scanner.c"
 yy70:
                YYDEBUG(70, *YYCURSOR);
                ++YYCURSOR;
@@ -2101,7 +2106,7 @@ yy74:
 yy76:
                YYDEBUG(76, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2600 "Zend/zend_language_scanner.l"
+#line 2605 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
 
@@ -2112,7 +2117,7 @@ yy76:
                return T_ENCAPSED_AND_WHITESPACE;
        }
 }
-#line 2116 "Zend/zend_language_scanner.c"
+#line 2121 "Zend/zend_language_scanner.c"
 yy77:
                YYDEBUG(77, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2136,14 +2141,14 @@ yy80:
                ++YYCURSOR;
                YYDEBUG(81, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2555 "Zend/zend_language_scanner.l"
+#line 2560 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        yyless(1);
        return T_CURLY_OPEN;
 }
-#line 2147 "Zend/zend_language_scanner.c"
+#line 2152 "Zend/zend_language_scanner.c"
 yy82:
                YYDEBUG(82, *YYCURSOR);
                yyaccept = 2;
@@ -2159,7 +2164,7 @@ yy82:
 yy84:
                YYDEBUG(84, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2221 "Zend/zend_language_scanner.l"
+#line 2226 "Zend/zend_language_scanner.l"
                {
        if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
                return 0;
@@ -2169,18 +2174,18 @@ yy84:
        }
        return T_VARIABLE;
 }
-#line 2173 "Zend/zend_language_scanner.c"
+#line 2178 "Zend/zend_language_scanner.c"
 yy85:
                YYDEBUG(85, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(86, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1831 "Zend/zend_language_scanner.l"
+#line 1836 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 2184 "Zend/zend_language_scanner.c"
+#line 2189 "Zend/zend_language_scanner.c"
 yy87:
                YYDEBUG(87, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2191,7 +2196,7 @@ yy88:
                ++YYCURSOR;
                YYDEBUG(89, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2208 "Zend/zend_language_scanner.l"
+#line 2213 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -2204,7 +2209,7 @@ yy88:
        }
        return T_VARIABLE;
 }
-#line 2208 "Zend/zend_language_scanner.c"
+#line 2213 "Zend/zend_language_scanner.c"
 yy90:
                YYDEBUG(90, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2222,7 +2227,7 @@ yy91:
                ++YYCURSOR;
                YYDEBUG(92, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2193 "Zend/zend_language_scanner.l"
+#line 2198 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -2235,7 +2240,7 @@ yy91:
        }
        return T_VARIABLE;
 }
-#line 2239 "Zend/zend_language_scanner.c"
+#line 2244 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_COMMENT:
@@ -2292,34 +2297,34 @@ yy95:
                }
                YYDEBUG(97, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2340 "Zend/zend_language_scanner.l"
+#line 2345 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 2300 "Zend/zend_language_scanner.c"
+#line 2305 "Zend/zend_language_scanner.c"
 yy98:
                YYDEBUG(98, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '/') goto yy100;
                YYDEBUG(99, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2363 "Zend/zend_language_scanner.l"
+#line 2368 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 2311 "Zend/zend_language_scanner.c"
+#line 2316 "Zend/zend_language_scanner.c"
 yy100:
                YYDEBUG(100, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(101, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2357 "Zend/zend_language_scanner.l"
+#line 2362 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        BEGIN(ST_IN_SCRIPTING);
        return T_COMMENT;
 }
-#line 2323 "Zend/zend_language_scanner.c"
+#line 2328 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_DOC_COMMENT:
@@ -2376,28 +2381,28 @@ yy104:
                }
                YYDEBUG(106, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2340 "Zend/zend_language_scanner.l"
+#line 2345 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 2384 "Zend/zend_language_scanner.c"
+#line 2389 "Zend/zend_language_scanner.c"
 yy107:
                YYDEBUG(107, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '/') goto yy109;
                YYDEBUG(108, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2363 "Zend/zend_language_scanner.l"
+#line 2368 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 2395 "Zend/zend_language_scanner.c"
+#line 2400 "Zend/zend_language_scanner.c"
 yy109:
                YYDEBUG(109, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(110, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2344 "Zend/zend_language_scanner.l"
+#line 2349 "Zend/zend_language_scanner.l"
                {
        zval temp;
 
@@ -2410,7 +2415,7 @@ yy109:
        BEGIN(ST_IN_SCRIPTING);
        return T_DOC_COMMENT;
 }
-#line 2414 "Zend/zend_language_scanner.c"
+#line 2419 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_DOUBLE_QUOTES:
@@ -2512,7 +2517,7 @@ yy116:
 yy117:
                YYDEBUG(117, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2563 "Zend/zend_language_scanner.l"
+#line 2568 "Zend/zend_language_scanner.l"
                {
        if (CG(literal_type) == IS_UNICODE) {
                return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0x22 /*'"'*/, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
@@ -2521,7 +2526,7 @@ yy117:
                return T_ENCAPSED_AND_WHITESPACE;
        }
 }
-#line 2525 "Zend/zend_language_scanner.c"
+#line 2530 "Zend/zend_language_scanner.c"
 yy118:
                YYDEBUG(118, *YYCURSOR);
                ++YYCURSOR;
@@ -2533,12 +2538,12 @@ yy119:
                ++YYCURSOR;
                YYDEBUG(120, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2742 "Zend/zend_language_scanner.l"
+#line 2747 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '"';
 }
-#line 2542 "Zend/zend_language_scanner.c"
+#line 2547 "Zend/zend_language_scanner.c"
 yy121:
                YYDEBUG(121, *YYCURSOR);
                ++YYCURSOR;
@@ -2625,7 +2630,7 @@ yy125:
 yy127:
                YYDEBUG(127, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2578 "Zend/zend_language_scanner.l"
+#line 2583 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        if (yytext[yyleng-1] == '"') --yyleng;
@@ -2637,7 +2642,7 @@ yy127:
                return T_ENCAPSED_AND_WHITESPACE;
        }
 }
-#line 2641 "Zend/zend_language_scanner.c"
+#line 2646 "Zend/zend_language_scanner.c"
 yy128:
                YYDEBUG(128, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2661,14 +2666,14 @@ yy131:
                ++YYCURSOR;
                YYDEBUG(132, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2555 "Zend/zend_language_scanner.l"
+#line 2560 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        yyless(1);
        return T_CURLY_OPEN;
 }
-#line 2672 "Zend/zend_language_scanner.c"
+#line 2677 "Zend/zend_language_scanner.c"
 yy133:
                YYDEBUG(133, *YYCURSOR);
                yyaccept = 2;
@@ -2684,7 +2689,7 @@ yy133:
 yy135:
                YYDEBUG(135, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2221 "Zend/zend_language_scanner.l"
+#line 2226 "Zend/zend_language_scanner.l"
                {
        if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
                return 0;
@@ -2694,18 +2699,18 @@ yy135:
        }
        return T_VARIABLE;
 }
-#line 2698 "Zend/zend_language_scanner.c"
+#line 2703 "Zend/zend_language_scanner.c"
 yy136:
                YYDEBUG(136, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(137, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1831 "Zend/zend_language_scanner.l"
+#line 1836 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 2709 "Zend/zend_language_scanner.c"
+#line 2714 "Zend/zend_language_scanner.c"
 yy138:
                YYDEBUG(138, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2716,7 +2721,7 @@ yy139:
                ++YYCURSOR;
                YYDEBUG(140, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2208 "Zend/zend_language_scanner.l"
+#line 2213 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -2729,7 +2734,7 @@ yy139:
        }
        return T_VARIABLE;
 }
-#line 2733 "Zend/zend_language_scanner.c"
+#line 2738 "Zend/zend_language_scanner.c"
 yy141:
                YYDEBUG(141, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2747,7 +2752,7 @@ yy142:
                ++YYCURSOR;
                YYDEBUG(143, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2193 "Zend/zend_language_scanner.l"
+#line 2198 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -2760,7 +2765,7 @@ yy142:
        }
        return T_VARIABLE;
 }
-#line 2764 "Zend/zend_language_scanner.c"
+#line 2769 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_END_HEREDOC:
@@ -2771,7 +2776,7 @@ yyc_ST_END_HEREDOC:
        ++YYCURSOR;
        YYDEBUG(147, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 2543 "Zend/zend_language_scanner.l"
+#line 2548 "Zend/zend_language_scanner.l"
        {
        Z_STRVAL_P(zendlval) = CG(heredoc);
        Z_STRLEN_P(zendlval) = CG(heredoc_len);
@@ -2782,7 +2787,7 @@ yyc_ST_END_HEREDOC:
        BEGIN(ST_IN_SCRIPTING);
        return T_END_HEREDOC;
 }
-#line 2786 "Zend/zend_language_scanner.c"
+#line 2791 "Zend/zend_language_scanner.c"
 /* *********************************** */
 yyc_ST_END_NOWDOC:
        YYDEBUG(148, *YYCURSOR);
@@ -2792,7 +2797,7 @@ yyc_ST_END_NOWDOC:
        ++YYCURSOR;
        YYDEBUG(151, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 2729 "Zend/zend_language_scanner.l"
+#line 2734 "Zend/zend_language_scanner.l"
        {
        Z_STRVAL_P(zendlval) = CG(heredoc);
        Z_STRLEN_P(zendlval) = CG(heredoc_len);
@@ -2803,7 +2808,7 @@ yyc_ST_END_NOWDOC:
        BEGIN(ST_IN_SCRIPTING);
        return T_END_NOWDOC;
 }
-#line 2807 "Zend/zend_language_scanner.c"
+#line 2812 "Zend/zend_language_scanner.c"
 /* *********************************** */
 yyc_ST_HEREDOC:
        {
@@ -2860,7 +2865,7 @@ yyc_ST_HEREDOC:
 yy154:
                YYDEBUG(154, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2619 "Zend/zend_language_scanner.l"
+#line 2624 "Zend/zend_language_scanner.l"
                {
        if (CG(literal_type) == IS_UNICODE) {
                return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
@@ -2869,7 +2874,7 @@ yy154:
                return T_ENCAPSED_AND_WHITESPACE;
        }
 }
-#line 2873 "Zend/zend_language_scanner.c"
+#line 2878 "Zend/zend_language_scanner.c"
 yy155:
                YYDEBUG(155, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3155,7 +3160,7 @@ yy173:
 yy175:
                YYDEBUG(175, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2628 "Zend/zend_language_scanner.l"
+#line 2633 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
 
@@ -3166,7 +3171,7 @@ yy175:
                return T_ENCAPSED_AND_WHITESPACE;
        }
 }
-#line 3170 "Zend/zend_language_scanner.c"
+#line 3175 "Zend/zend_language_scanner.c"
 yy176:
                YYDEBUG(176, *YYCURSOR);
                yyaccept = 1;
@@ -3265,7 +3270,7 @@ yy182:
                ++YYCURSOR;
                YYDEBUG(183, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2504 "Zend/zend_language_scanner.l"
+#line 2509 "Zend/zend_language_scanner.l"
                {
        char *end = yytext + yyleng - 1;
 
@@ -3304,7 +3309,7 @@ yy182:
                yymore();
        }
 }
-#line 3308 "Zend/zend_language_scanner.c"
+#line 3313 "Zend/zend_language_scanner.c"
 yy184:
                YYDEBUG(184, *YYCURSOR);
                yyaccept = 1;
@@ -3542,14 +3547,14 @@ yy203:
                ++YYCURSOR;
                YYDEBUG(204, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2555 "Zend/zend_language_scanner.l"
+#line 2560 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        yyless(1);
        return T_CURLY_OPEN;
 }
-#line 3553 "Zend/zend_language_scanner.c"
+#line 3558 "Zend/zend_language_scanner.c"
 yy205:
                YYDEBUG(205, *YYCURSOR);
                yyaccept = 2;
@@ -3577,7 +3582,7 @@ yy205:
 yy207:
                YYDEBUG(207, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2221 "Zend/zend_language_scanner.l"
+#line 2226 "Zend/zend_language_scanner.l"
                {
        if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
                return 0;
@@ -3587,18 +3592,18 @@ yy207:
        }
        return T_VARIABLE;
 }
-#line 3591 "Zend/zend_language_scanner.c"
+#line 3596 "Zend/zend_language_scanner.c"
 yy208:
                YYDEBUG(208, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(209, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1831 "Zend/zend_language_scanner.l"
+#line 1836 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 3602 "Zend/zend_language_scanner.c"
+#line 3607 "Zend/zend_language_scanner.c"
 yy210:
                YYDEBUG(210, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3609,7 +3614,7 @@ yy211:
                ++YYCURSOR;
                YYDEBUG(212, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2208 "Zend/zend_language_scanner.l"
+#line 2213 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -3622,7 +3627,7 @@ yy211:
        }
        return T_VARIABLE;
 }
-#line 3626 "Zend/zend_language_scanner.c"
+#line 3631 "Zend/zend_language_scanner.c"
 yy213:
                YYDEBUG(213, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3640,7 +3645,7 @@ yy214:
                ++YYCURSOR;
                YYDEBUG(215, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2193 "Zend/zend_language_scanner.l"
+#line 2198 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -3653,7 +3658,7 @@ yy214:
        }
        return T_VARIABLE;
 }
-#line 3657 "Zend/zend_language_scanner.c"
+#line 3662 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_IN_SCRIPTING:
@@ -3868,7 +3873,7 @@ yy218:
 yy219:
                YYDEBUG(219, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2249 "Zend/zend_language_scanner.l"
+#line 2254 "Zend/zend_language_scanner.l"
                {
        if (!zend_copy_scanner_string(zendlval, yytext, yyleng, UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
                return 0;
@@ -3878,7 +3883,7 @@ yy219:
        }
        return T_STRING;
 }
-#line 3882 "Zend/zend_language_scanner.c"
+#line 3887 "Zend/zend_language_scanner.c"
 yy220:
                YYDEBUG(220, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4125,11 +4130,11 @@ yy232:
 yy233:
                YYDEBUG(233, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1820 "Zend/zend_language_scanner.l"
+#line 1825 "Zend/zend_language_scanner.l"
                {
        return yytext[0];
 }
-#line 4133 "Zend/zend_language_scanner.c"
+#line 4138 "Zend/zend_language_scanner.c"
 yy234:
                YYDEBUG(234, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4362,18 +4367,18 @@ yy258:
                ++YYCURSOR;
                YYDEBUG(259, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1825 "Zend/zend_language_scanner.l"
+#line 1830 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return '{';
 }
-#line 4371 "Zend/zend_language_scanner.c"
+#line 4376 "Zend/zend_language_scanner.c"
 yy260:
                YYDEBUG(260, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(261, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1837 "Zend/zend_language_scanner.l"
+#line 1842 "Zend/zend_language_scanner.l"
                {
        RESET_DOC_COMMENT();
        /* This is a temporary fix which is dependant on flex and it's implementation */
@@ -4382,7 +4387,7 @@ yy260:
        }
        return '}';
 }
-#line 4386 "Zend/zend_language_scanner.c"
+#line 4391 "Zend/zend_language_scanner.c"
 yy262:
                YYDEBUG(262, *YYCURSOR);
                yyaccept = 2;
@@ -4405,7 +4410,7 @@ yy262:
 yy263:
                YYDEBUG(263, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1868 "Zend/zend_language_scanner.l"
+#line 1873 "Zend/zend_language_scanner.l"
                {
     if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
         zendlval->value.lval = strtol(yytext, NULL, 0);
@@ -4426,7 +4431,7 @@ yy263:
     zendlval->type = IS_LONG;
     return T_LNUMBER;
 }
-#line 4430 "Zend/zend_language_scanner.c"
+#line 4435 "Zend/zend_language_scanner.c"
 yy264:
                YYDEBUG(264, *YYCURSOR);
                yyaccept = 2;
@@ -4456,7 +4461,7 @@ yy266:
 yy267:
                YYDEBUG(267, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2267 "Zend/zend_language_scanner.l"
+#line 2272 "Zend/zend_language_scanner.l"
                {
        Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
        Z_STRLEN_P(zendlval) = yyleng;
@@ -4464,19 +4469,19 @@ yy267:
        HANDLE_NEWLINES(yytext, yyleng);
        return T_WHITESPACE;
 }
-#line 4468 "Zend/zend_language_scanner.c"
+#line 4473 "Zend/zend_language_scanner.c"
 yy268:
                YYDEBUG(268, *YYCURSOR);
                ++YYCURSOR;
 yy269:
                YYDEBUG(269, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2276 "Zend/zend_language_scanner.l"
+#line 2281 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_ONE_LINE_COMMENT);
        yymore();
 }
-#line 4480 "Zend/zend_language_scanner.c"
+#line 4485 "Zend/zend_language_scanner.c"
 yy270:
                YYDEBUG(270, *YYCURSOR);
                yyaccept = 3;
@@ -4485,12 +4490,12 @@ yy270:
 yy271:
                YYDEBUG(271, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2424 "Zend/zend_language_scanner.l"
+#line 2429 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_DOUBLE_QUOTES);
        return '"';
 }
-#line 4494 "Zend/zend_language_scanner.c"
+#line 4499 "Zend/zend_language_scanner.c"
 yy272:
                YYDEBUG(272, *YYCURSOR);
                yyaccept = 4;
@@ -4499,23 +4504,23 @@ yy272:
 yy273:
                YYDEBUG(273, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2754 "Zend/zend_language_scanner.l"
+#line 2759 "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 4508 "Zend/zend_language_scanner.c"
+#line 4513 "Zend/zend_language_scanner.c"
 yy274:
                YYDEBUG(274, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(275, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2464 "Zend/zend_language_scanner.l"
+#line 2469 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_BACKQUOTE);
        return '`';
 }
-#line 4519 "Zend/zend_language_scanner.c"
+#line 4524 "Zend/zend_language_scanner.c"
 yy276:
                YYDEBUG(276, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4541,7 +4546,7 @@ yy280:
                ++YYCURSOR;
                YYDEBUG(281, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2408 "Zend/zend_language_scanner.l"
+#line 2413 "Zend/zend_language_scanner.l"
                {
        if (UG(unicode)) {
                return zend_scan_unicode_single_string(zendlval TSRMLS_CC);
@@ -4550,7 +4555,7 @@ yy280:
                return T_CONSTANT_ENCAPSED_STRING;
        }
 }
-#line 4554 "Zend/zend_language_scanner.c"
+#line 4559 "Zend/zend_language_scanner.c"
 yy282:
                YYDEBUG(282, *YYCURSOR);
                ++YYCURSOR;
@@ -4651,7 +4656,7 @@ yy290:
                ++YYCURSOR;
                YYDEBUG(291, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2392 "Zend/zend_language_scanner.l"
+#line 2397 "Zend/zend_language_scanner.l"
                {
        if (UG(unicode)) {
                return zend_scan_unicode_escape_string(zendlval, yytext+1, yyleng-2, 0x22 /*'"'*/, T_CONSTANT_ENCAPSED_STRING TSRMLS_CC);
@@ -4660,7 +4665,7 @@ yy290:
                return T_CONSTANT_ENCAPSED_STRING;
        }
 }
-#line 4664 "Zend/zend_language_scanner.c"
+#line 4669 "Zend/zend_language_scanner.c"
 yy292:
                YYDEBUG(292, *YYCURSOR);
                ++YYCURSOR;
@@ -4704,13 +4709,13 @@ yy297:
 yy299:
                YYDEBUG(299, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1929 "Zend/zend_language_scanner.l"
+#line 1934 "Zend/zend_language_scanner.l"
                {
        Z_DVAL_P(zendlval) = zend_strtod(yytext, NULL);
        Z_TYPE_P(zendlval) = IS_DOUBLE;
        return T_DNUMBER;
 }
-#line 4714 "Zend/zend_language_scanner.c"
+#line 4719 "Zend/zend_language_scanner.c"
 yy300:
                YYDEBUG(300, *YYCURSOR);
                yyaccept = 2;
@@ -4772,7 +4777,7 @@ yy307:
                }
                YYDEBUG(309, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1889 "Zend/zend_language_scanner.l"
+#line 1894 "Zend/zend_language_scanner.l"
                {
     char *hex = yytext + 2; /* Skip "0x" */
     int len = yyleng - 2;
@@ -4793,7 +4798,7 @@ yy307:
         return T_DNUMBER;
     }
 }
-#line 4797 "Zend/zend_language_scanner.c"
+#line 4802 "Zend/zend_language_scanner.c"
 yy310:
                YYDEBUG(310, *YYCURSOR);
                ++YYCURSOR;
@@ -4802,7 +4807,7 @@ yy310:
 yy311:
                YYDEBUG(311, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2367 "Zend/zend_language_scanner.l"
+#line 2372 "Zend/zend_language_scanner.l"
                {
        Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
        Z_STRLEN_P(zendlval) = yyleng;
@@ -4810,7 +4815,7 @@ yy311:
        BEGIN(INITIAL);
        return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
 }
-#line 4814 "Zend/zend_language_scanner.c"
+#line 4819 "Zend/zend_language_scanner.c"
 yy312:
                YYDEBUG(312, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4844,7 +4849,7 @@ yy314:
 yy316:
                YYDEBUG(316, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2221 "Zend/zend_language_scanner.l"
+#line 2226 "Zend/zend_language_scanner.l"
                {
        if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
                return 0;
@@ -4854,7 +4859,7 @@ yy316:
        }
        return T_VARIABLE;
 }
-#line 4858 "Zend/zend_language_scanner.c"
+#line 4863 "Zend/zend_language_scanner.c"
 yy317:
                YYDEBUG(317, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4868,11 +4873,11 @@ yy318:
                }
                YYDEBUG(319, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1808 "Zend/zend_language_scanner.l"
+#line 1813 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_XOR;
 }
-#line 4876 "Zend/zend_language_scanner.c"
+#line 4881 "Zend/zend_language_scanner.c"
 yy320:
                YYDEBUG(320, *YYCURSOR);
                ++YYCURSOR;
@@ -4881,61 +4886,61 @@ yy320:
                }
                YYDEBUG(321, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1800 "Zend/zend_language_scanner.l"
+#line 1805 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_OR;
 }
-#line 4889 "Zend/zend_language_scanner.c"
+#line 4894 "Zend/zend_language_scanner.c"
 yy322:
                YYDEBUG(322, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(323, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1788 "Zend/zend_language_scanner.l"
+#line 1793 "Zend/zend_language_scanner.l"
                {
        return T_XOR_EQUAL;
 }
-#line 4899 "Zend/zend_language_scanner.c"
+#line 4904 "Zend/zend_language_scanner.c"
 yy324:
                YYDEBUG(324, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(325, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1792 "Zend/zend_language_scanner.l"
+#line 1797 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_OR;
 }
-#line 4909 "Zend/zend_language_scanner.c"
+#line 4914 "Zend/zend_language_scanner.c"
 yy326:
                YYDEBUG(326, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(327, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1784 "Zend/zend_language_scanner.l"
+#line 1789 "Zend/zend_language_scanner.l"
                {
        return T_OR_EQUAL;
 }
-#line 4919 "Zend/zend_language_scanner.c"
+#line 4924 "Zend/zend_language_scanner.c"
 yy328:
                YYDEBUG(328, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(329, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1796 "Zend/zend_language_scanner.l"
+#line 1801 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_AND;
 }
-#line 4929 "Zend/zend_language_scanner.c"
+#line 4934 "Zend/zend_language_scanner.c"
 yy330:
                YYDEBUG(330, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(331, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1780 "Zend/zend_language_scanner.l"
+#line 1785 "Zend/zend_language_scanner.l"
                {
        return T_AND_EQUAL;
 }
-#line 4939 "Zend/zend_language_scanner.c"
+#line 4944 "Zend/zend_language_scanner.c"
 yy332:
                YYDEBUG(332, *YYCURSOR);
                ++YYCURSOR;
@@ -4944,7 +4949,7 @@ yy332:
 yy333:
                YYDEBUG(333, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2376 "Zend/zend_language_scanner.l"
+#line 2381 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                BEGIN(INITIAL);
@@ -4957,17 +4962,17 @@ yy333:
                return yytext[0];
        }
 }
-#line 4961 "Zend/zend_language_scanner.c"
+#line 4966 "Zend/zend_language_scanner.c"
 yy334:
                YYDEBUG(334, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(335, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1768 "Zend/zend_language_scanner.l"
+#line 1773 "Zend/zend_language_scanner.l"
                {
        return T_MOD_EQUAL;
 }
-#line 4971 "Zend/zend_language_scanner.c"
+#line 4976 "Zend/zend_language_scanner.c"
 yy336:
                YYDEBUG(336, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4998,11 +5003,11 @@ yy340:
                ++YYCURSOR;
                YYDEBUG(341, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1764 "Zend/zend_language_scanner.l"
+#line 1769 "Zend/zend_language_scanner.l"
                {
        return T_CONCAT_EQUAL;
 }
-#line 5006 "Zend/zend_language_scanner.c"
+#line 5011 "Zend/zend_language_scanner.c"
 yy342:
                YYDEBUG(342, *YYCURSOR);
                yyaccept = 6;
@@ -5011,13 +5016,13 @@ yy342:
 yy343:
                YYDEBUG(343, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2333 "Zend/zend_language_scanner.l"
+#line 2338 "Zend/zend_language_scanner.l"
                {
        CG(comment_start_line) = CG(zend_lineno);
        BEGIN(ST_COMMENT);
        yymore();
 }
-#line 5021 "Zend/zend_language_scanner.c"
+#line 5026 "Zend/zend_language_scanner.c"
 yy344:
                YYDEBUG(344, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5027,11 +5032,11 @@ yy345:
                ++YYCURSOR;
                YYDEBUG(346, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1760 "Zend/zend_language_scanner.l"
+#line 1765 "Zend/zend_language_scanner.l"
                {
        return T_DIV_EQUAL;
 }
-#line 5035 "Zend/zend_language_scanner.c"
+#line 5040 "Zend/zend_language_scanner.c"
 yy347:
                YYDEBUG(347, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5058,55 +5063,55 @@ yy348:
 yy350:
                YYDEBUG(350, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2326 "Zend/zend_language_scanner.l"
+#line 2331 "Zend/zend_language_scanner.l"
                {
        CG(comment_start_line) = CG(zend_lineno);
        RESET_DOC_COMMENT();
        BEGIN(ST_DOC_COMMENT);
        yymore();
 }
-#line 5069 "Zend/zend_language_scanner.c"
+#line 5074 "Zend/zend_language_scanner.c"
 yy351:
                YYDEBUG(351, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(352, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1756 "Zend/zend_language_scanner.l"
+#line 1761 "Zend/zend_language_scanner.l"
                {
        return T_MUL_EQUAL;
 }
-#line 5079 "Zend/zend_language_scanner.c"
+#line 5084 "Zend/zend_language_scanner.c"
 yy353:
                YYDEBUG(353, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy357;
                YYDEBUG(354, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1816 "Zend/zend_language_scanner.l"
+#line 1821 "Zend/zend_language_scanner.l"
                {
        return T_SR;
 }
-#line 5090 "Zend/zend_language_scanner.c"
+#line 5095 "Zend/zend_language_scanner.c"
 yy355:
                YYDEBUG(355, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(356, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1744 "Zend/zend_language_scanner.l"
+#line 1749 "Zend/zend_language_scanner.l"
                {
        return T_IS_GREATER_OR_EQUAL;
 }
-#line 5100 "Zend/zend_language_scanner.c"
+#line 5105 "Zend/zend_language_scanner.c"
 yy357:
                YYDEBUG(357, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(358, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1776 "Zend/zend_language_scanner.l"
+#line 1781 "Zend/zend_language_scanner.l"
                {
        return T_SR_EQUAL;
 }
-#line 5110 "Zend/zend_language_scanner.c"
+#line 5115 "Zend/zend_language_scanner.c"
 yy359:
                YYDEBUG(359, *YYCURSOR);
                yyaccept = 7;
@@ -5117,11 +5122,11 @@ yy359:
 yy360:
                YYDEBUG(360, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1812 "Zend/zend_language_scanner.l"
+#line 1817 "Zend/zend_language_scanner.l"
                {
        return T_SL;
 }
-#line 5125 "Zend/zend_language_scanner.c"
+#line 5130 "Zend/zend_language_scanner.c"
 yy361:
                YYDEBUG(361, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5133,22 +5138,22 @@ yy362:
                ++YYCURSOR;
                YYDEBUG(363, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1740 "Zend/zend_language_scanner.l"
+#line 1745 "Zend/zend_language_scanner.l"
                {
        return T_IS_SMALLER_OR_EQUAL;
 }
-#line 5141 "Zend/zend_language_scanner.c"
+#line 5146 "Zend/zend_language_scanner.c"
 yy364:
                YYDEBUG(364, *YYCURSOR);
                ++YYCURSOR;
 yy365:
                YYDEBUG(365, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1736 "Zend/zend_language_scanner.l"
+#line 1741 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_EQUAL;
 }
-#line 5152 "Zend/zend_language_scanner.c"
+#line 5157 "Zend/zend_language_scanner.c"
 yy366:
                YYDEBUG(366, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5199,11 +5204,11 @@ yy373:
                ++YYCURSOR;
                YYDEBUG(374, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1772 "Zend/zend_language_scanner.l"
+#line 1777 "Zend/zend_language_scanner.l"
                {
        return T_SL_EQUAL;
 }
-#line 5207 "Zend/zend_language_scanner.c"
+#line 5212 "Zend/zend_language_scanner.c"
 yy375:
                YYDEBUG(375, *YYCURSOR);
                ++YYCURSOR;
@@ -5271,7 +5276,7 @@ yy380:
 yy381:
                YYDEBUG(381, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2449 "Zend/zend_language_scanner.l"
+#line 2454 "Zend/zend_language_scanner.l"
                {
        char *s;
        CG(zend_lineno)++;
@@ -5285,7 +5290,7 @@ yy381:
        BEGIN(ST_START_HEREDOC);
        return T_START_HEREDOC;
 }
-#line 5289 "Zend/zend_language_scanner.c"
+#line 5294 "Zend/zend_language_scanner.c"
 yy382:
                YYDEBUG(382, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5327,7 +5332,7 @@ yy386:
 yy387:
                YYDEBUG(387, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2642 "Zend/zend_language_scanner.l"
+#line 2647 "Zend/zend_language_scanner.l"
                {
        int bprefix = (yytext[0] != '<') ? 1 : 0;
        char *s;
@@ -5346,7 +5351,7 @@ yy387:
        BEGIN(ST_START_NOWDOC);
        return T_START_NOWDOC;
 }
-#line 5350 "Zend/zend_language_scanner.c"
+#line 5355 "Zend/zend_language_scanner.c"
 yy388:
                YYDEBUG(388, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5360,31 +5365,31 @@ yy389:
                ++YYCURSOR;
                YYDEBUG(391, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1728 "Zend/zend_language_scanner.l"
+#line 1733 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_IDENTICAL;
 }
-#line 5368 "Zend/zend_language_scanner.c"
+#line 5373 "Zend/zend_language_scanner.c"
 yy392:
                YYDEBUG(392, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(393, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1748 "Zend/zend_language_scanner.l"
+#line 1753 "Zend/zend_language_scanner.l"
                {
        return T_PLUS_EQUAL;
 }
-#line 5378 "Zend/zend_language_scanner.c"
+#line 5383 "Zend/zend_language_scanner.c"
 yy394:
                YYDEBUG(394, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(395, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1716 "Zend/zend_language_scanner.l"
+#line 1721 "Zend/zend_language_scanner.l"
                {
        return T_INC;
 }
-#line 5388 "Zend/zend_language_scanner.c"
+#line 5393 "Zend/zend_language_scanner.c"
 yy396:
                YYDEBUG(396, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5403,42 +5408,42 @@ yy398:
                }
                YYDEBUG(399, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1708 "Zend/zend_language_scanner.l"
+#line 1713 "Zend/zend_language_scanner.l"
                {
        return T_LIST;
 }
-#line 5411 "Zend/zend_language_scanner.c"
+#line 5416 "Zend/zend_language_scanner.c"
 yy400:
                YYDEBUG(400, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy404;
                YYDEBUG(401, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1732 "Zend/zend_language_scanner.l"
+#line 1737 "Zend/zend_language_scanner.l"
                {
        return T_IS_EQUAL;
 }
-#line 5422 "Zend/zend_language_scanner.c"
+#line 5427 "Zend/zend_language_scanner.c"
 yy402:
                YYDEBUG(402, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(403, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1704 "Zend/zend_language_scanner.l"
+#line 1709 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_ARROW;
 }
-#line 5432 "Zend/zend_language_scanner.c"
+#line 5437 "Zend/zend_language_scanner.c"
 yy404:
                YYDEBUG(404, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(405, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1724 "Zend/zend_language_scanner.l"
+#line 1729 "Zend/zend_language_scanner.l"
                {
        return T_IS_IDENTICAL;
 }
-#line 5442 "Zend/zend_language_scanner.c"
+#line 5447 "Zend/zend_language_scanner.c"
 yy406:
                YYDEBUG(406, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5530,7 +5535,7 @@ yy413:
                }
                YYDEBUG(424, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2057 "Zend/zend_language_scanner.l"
+#line 2062 "Zend/zend_language_scanner.l"
                {
        if (CG(current_namespace)) {
                *zendlval = *CG(current_namespace);
@@ -5540,7 +5545,7 @@ yy413:
        }
        return T_NS_C;
 }
-#line 5544 "Zend/zend_language_scanner.c"
+#line 5549 "Zend/zend_language_scanner.c"
 yy425:
                YYDEBUG(425, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5558,7 +5563,7 @@ yy425:
                }
                YYDEBUG(429, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2030 "Zend/zend_language_scanner.l"
+#line 2035 "Zend/zend_language_scanner.l"
                {
        char *filename = zend_get_compiled_filename(TSRMLS_C);
        const size_t filename_len = strlen(filename);
@@ -5585,7 +5590,7 @@ yy425:
        zendlval->type = IS_STRING;
        return T_DIR;
 }
-#line 5589 "Zend/zend_language_scanner.c"
+#line 5594 "Zend/zend_language_scanner.c"
 yy430:
                YYDEBUG(430, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5606,13 +5611,13 @@ yy430:
                }
                YYDEBUG(435, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2014 "Zend/zend_language_scanner.l"
+#line 2019 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = CG(zend_lineno);
        Z_TYPE_P(zendlval) = IS_LONG;
        return T_LINE;
 }
-#line 5616 "Zend/zend_language_scanner.c"
+#line 5621 "Zend/zend_language_scanner.c"
 yy436:
                YYDEBUG(436, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5639,7 +5644,7 @@ yy436:
                }
                YYDEBUG(443, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1965 "Zend/zend_language_scanner.l"
+#line 1970 "Zend/zend_language_scanner.l"
                {
        zstr class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL_ZSTR;
        zstr func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL_ZSTR;
@@ -5688,7 +5693,7 @@ yy436:
        }
        return T_METHOD_C;
 }
-#line 5692 "Zend/zend_language_scanner.c"
+#line 5697 "Zend/zend_language_scanner.c"
 yy444:
                YYDEBUG(444, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5726,7 +5731,7 @@ yy445:
                }
                YYDEBUG(454, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1950 "Zend/zend_language_scanner.l"
+#line 1955 "Zend/zend_language_scanner.l"
                {
        zstr func_name = NULL_ZSTR;
 
@@ -5741,7 +5746,7 @@ yy445:
        }
        return T_FUNC_C;
 }
-#line 5745 "Zend/zend_language_scanner.c"
+#line 5750 "Zend/zend_language_scanner.c"
 yy455:
                YYDEBUG(455, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5759,7 +5764,7 @@ yy455:
                }
                YYDEBUG(459, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2020 "Zend/zend_language_scanner.l"
+#line 2025 "Zend/zend_language_scanner.l"
                {
        char *filename = zend_get_compiled_filename(TSRMLS_C);
 
@@ -5769,7 +5774,7 @@ yy455:
        ZVAL_RT_STRING(zendlval, filename, 1);
        return T_FILE;
 }
-#line 5773 "Zend/zend_language_scanner.c"
+#line 5778 "Zend/zend_language_scanner.c"
 yy460:
                YYDEBUG(460, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5793,7 +5798,7 @@ yy460:
                }
                YYDEBUG(466, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1935 "Zend/zend_language_scanner.l"
+#line 1940 "Zend/zend_language_scanner.l"
                {
        zstr class_name = NULL_ZSTR;
 
@@ -5808,7 +5813,7 @@ yy460:
        }
        return T_CLASS_C;
 }
-#line 5812 "Zend/zend_language_scanner.c"
+#line 5817 "Zend/zend_language_scanner.c"
 yy467:
                YYDEBUG(467, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5870,11 +5875,11 @@ yy478:
                }
                YYDEBUG(479, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1672 "Zend/zend_language_scanner.l"
+#line 1677 "Zend/zend_language_scanner.l"
                {
        return T_HALT_COMPILER;
 }
-#line 5878 "Zend/zend_language_scanner.c"
+#line 5883 "Zend/zend_language_scanner.c"
 yy480:
                YYDEBUG(480, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5894,11 +5899,11 @@ yy482:
                }
                YYDEBUG(483, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1656 "Zend/zend_language_scanner.l"
+#line 1661 "Zend/zend_language_scanner.l"
                {
        return T_USE;
 }
-#line 5902 "Zend/zend_language_scanner.c"
+#line 5907 "Zend/zend_language_scanner.c"
 yy484:
                YYDEBUG(484, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5917,11 +5922,11 @@ yy486:
                }
                YYDEBUG(487, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1700 "Zend/zend_language_scanner.l"
+#line 1705 "Zend/zend_language_scanner.l"
                {
        return T_UNSET;
 }
-#line 5925 "Zend/zend_language_scanner.c"
+#line 5930 "Zend/zend_language_scanner.c"
 yy488:
                YYDEBUG(488, *YYCURSOR);
                ++YYCURSOR;
@@ -6093,11 +6098,11 @@ yy503:
                ++YYCURSOR;
                YYDEBUG(505, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1596 "Zend/zend_language_scanner.l"
+#line 1601 "Zend/zend_language_scanner.l"
                {
        return T_INT_CAST;
 }
-#line 6101 "Zend/zend_language_scanner.c"
+#line 6106 "Zend/zend_language_scanner.c"
 yy506:
                YYDEBUG(506, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6141,11 +6146,11 @@ yy511:
                ++YYCURSOR;
                YYDEBUG(514, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1600 "Zend/zend_language_scanner.l"
+#line 1605 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_CAST;
 }
-#line 6149 "Zend/zend_language_scanner.c"
+#line 6154 "Zend/zend_language_scanner.c"
 yy515:
                YYDEBUG(515, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6215,11 +6220,11 @@ yy525:
                ++YYCURSOR;
                YYDEBUG(528, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1604 "Zend/zend_language_scanner.l"
+#line 1609 "Zend/zend_language_scanner.l"
                {
        return T_STRING_CAST;
 }
-#line 6223 "Zend/zend_language_scanner.c"
+#line 6228 "Zend/zend_language_scanner.c"
 yy529:
                YYDEBUG(529, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6252,11 +6257,11 @@ yy532:
                ++YYCURSOR;
                YYDEBUG(535, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1616 "Zend/zend_language_scanner.l"
+#line 1621 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY_CAST;
 }
-#line 6260 "Zend/zend_language_scanner.c"
+#line 6265 "Zend/zend_language_scanner.c"
 yy536:
                YYDEBUG(536, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6294,11 +6299,11 @@ yy540:
                ++YYCURSOR;
                YYDEBUG(543, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1620 "Zend/zend_language_scanner.l"
+#line 1625 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_CAST;
 }
-#line 6302 "Zend/zend_language_scanner.c"
+#line 6307 "Zend/zend_language_scanner.c"
 yy544:
                YYDEBUG(544, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6339,11 +6344,11 @@ yy549:
                ++YYCURSOR;
                YYDEBUG(551, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1624 "Zend/zend_language_scanner.l"
+#line 1629 "Zend/zend_language_scanner.l"
                {
        return T_BOOL_CAST;
 }
-#line 6347 "Zend/zend_language_scanner.c"
+#line 6352 "Zend/zend_language_scanner.c"
 yy552:
                YYDEBUG(552, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6387,11 +6392,11 @@ yy557:
                ++YYCURSOR;
                YYDEBUG(560, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1612 "Zend/zend_language_scanner.l"
+#line 1617 "Zend/zend_language_scanner.l"
                {
        return T_BINARY_CAST;
 }
-#line 6395 "Zend/zend_language_scanner.c"
+#line 6400 "Zend/zend_language_scanner.c"
 yy561:
                YYDEBUG(561, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6448,11 +6453,11 @@ yy567:
                ++YYCURSOR;
                YYDEBUG(570, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1608 "Zend/zend_language_scanner.l"
+#line 1613 "Zend/zend_language_scanner.l"
                {
        return T_UNICODE_CAST;
 }
-#line 6456 "Zend/zend_language_scanner.c"
+#line 6461 "Zend/zend_language_scanner.c"
 yy571:
                YYDEBUG(571, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6475,11 +6480,11 @@ yy572:
                ++YYCURSOR;
                YYDEBUG(575, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1628 "Zend/zend_language_scanner.l"
+#line 1633 "Zend/zend_language_scanner.l"
                {
        return T_UNSET_CAST;
 }
-#line 6483 "Zend/zend_language_scanner.c"
+#line 6488 "Zend/zend_language_scanner.c"
 yy576:
                YYDEBUG(576, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6493,11 +6498,11 @@ yy577:
                }
                YYDEBUG(578, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1592 "Zend/zend_language_scanner.l"
+#line 1597 "Zend/zend_language_scanner.l"
                {
        return T_VAR;
 }
-#line 6501 "Zend/zend_language_scanner.c"
+#line 6506 "Zend/zend_language_scanner.c"
 yy579:
                YYDEBUG(579, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6517,11 +6522,11 @@ yy581:
                }
                YYDEBUG(582, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1584 "Zend/zend_language_scanner.l"
+#line 1589 "Zend/zend_language_scanner.l"
                {
        return T_NEW;
 }
-#line 6525 "Zend/zend_language_scanner.c"
+#line 6530 "Zend/zend_language_scanner.c"
 yy583:
                YYDEBUG(583, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6560,52 +6565,52 @@ yy589:
                }
                YYDEBUG(590, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1652 "Zend/zend_language_scanner.l"
+#line 1657 "Zend/zend_language_scanner.l"
                {
        return T_NAMESPACE;
 }
-#line 6568 "Zend/zend_language_scanner.c"
+#line 6573 "Zend/zend_language_scanner.c"
 yy591:
                YYDEBUG(591, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(592, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1580 "Zend/zend_language_scanner.l"
+#line 1585 "Zend/zend_language_scanner.l"
                {
        return T_PAAMAYIM_NEKUDOTAYIM;
 }
-#line 6578 "Zend/zend_language_scanner.c"
+#line 6583 "Zend/zend_language_scanner.c"
 yy593:
                YYDEBUG(593, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(594, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1752 "Zend/zend_language_scanner.l"
+#line 1757 "Zend/zend_language_scanner.l"
                {
        return T_MINUS_EQUAL;
 }
-#line 6588 "Zend/zend_language_scanner.c"
+#line 6593 "Zend/zend_language_scanner.c"
 yy595:
                YYDEBUG(595, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(596, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1720 "Zend/zend_language_scanner.l"
+#line 1725 "Zend/zend_language_scanner.l"
                {
        return T_DEC;
 }
-#line 6598 "Zend/zend_language_scanner.c"
+#line 6603 "Zend/zend_language_scanner.c"
 yy597:
                YYDEBUG(597, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(598, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1549 "Zend/zend_language_scanner.l"
+#line 1554 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
        return T_OBJECT_OPERATOR;
 }
-#line 6609 "Zend/zend_language_scanner.c"
+#line 6614 "Zend/zend_language_scanner.c"
 yy599:
                YYDEBUG(599, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6650,11 +6655,11 @@ yy604:
                }
                YYDEBUG(605, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1696 "Zend/zend_language_scanner.l"
+#line 1701 "Zend/zend_language_scanner.l"
                {
        return T_PUBLIC;
 }
-#line 6658 "Zend/zend_language_scanner.c"
+#line 6663 "Zend/zend_language_scanner.c"
 yy606:
                YYDEBUG(606, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6709,11 +6714,11 @@ yy613:
                }
                YYDEBUG(614, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1692 "Zend/zend_language_scanner.l"
+#line 1697 "Zend/zend_language_scanner.l"
                {
        return T_PROTECTED;
 }
-#line 6717 "Zend/zend_language_scanner.c"
+#line 6722 "Zend/zend_language_scanner.c"
 yy615:
                YYDEBUG(615, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6743,11 +6748,11 @@ yy619:
                }
                YYDEBUG(620, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1688 "Zend/zend_language_scanner.l"
+#line 1693 "Zend/zend_language_scanner.l"
                {
        return T_PRIVATE;
 }
-#line 6751 "Zend/zend_language_scanner.c"
+#line 6756 "Zend/zend_language_scanner.c"
 yy621:
                YYDEBUG(621, *YYCURSOR);
                ++YYCURSOR;
@@ -6756,11 +6761,11 @@ yy621:
                }
                YYDEBUG(622, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1529 "Zend/zend_language_scanner.l"
+#line 1534 "Zend/zend_language_scanner.l"
                {
        return T_PRINT;
 }
-#line 6764 "Zend/zend_language_scanner.c"
+#line 6769 "Zend/zend_language_scanner.c"
 yy623:
                YYDEBUG(623, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6785,11 +6790,11 @@ yy626:
                }
                YYDEBUG(627, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1521 "Zend/zend_language_scanner.l"
+#line 1526 "Zend/zend_language_scanner.l"
                {
        return T_GOTO;
 }
-#line 6793 "Zend/zend_language_scanner.c"
+#line 6798 "Zend/zend_language_scanner.c"
 yy628:
                YYDEBUG(628, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6813,11 +6818,11 @@ yy631:
                }
                YYDEBUG(632, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1660 "Zend/zend_language_scanner.l"
+#line 1665 "Zend/zend_language_scanner.l"
                {
        return T_GLOBAL;
 }
-#line 6821 "Zend/zend_language_scanner.c"
+#line 6826 "Zend/zend_language_scanner.c"
 yy633:
                YYDEBUG(633, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6831,12 +6836,12 @@ yy634:
 yy635:
                YYDEBUG(635, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2429 "Zend/zend_language_scanner.l"
+#line 2434 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_DOUBLE_QUOTES);
        return T_BINARY_DOUBLE;
 }
-#line 6840 "Zend/zend_language_scanner.c"
+#line 6845 "Zend/zend_language_scanner.c"
 yy636:
                YYDEBUG(636, *YYCURSOR);
                ++YYCURSOR;
@@ -6869,11 +6874,11 @@ yy641:
                }
                YYDEBUG(642, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1513 "Zend/zend_language_scanner.l"
+#line 1518 "Zend/zend_language_scanner.l"
                {
        return T_BREAK;
 }
-#line 6877 "Zend/zend_language_scanner.c"
+#line 6882 "Zend/zend_language_scanner.c"
 yy643:
                YYDEBUG(643, *YYCURSOR);
                ++YYCURSOR;
@@ -6885,12 +6890,12 @@ yy644:
                ++YYCURSOR;
                YYDEBUG(645, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2418 "Zend/zend_language_scanner.l"
+#line 2423 "Zend/zend_language_scanner.l"
                {
        zend_scan_binary_single_string(zendlval, yytext+2, yyleng-3 TSRMLS_CC);
        return T_CONSTANT_ENCAPSED_STRING;
 }
-#line 6894 "Zend/zend_language_scanner.c"
+#line 6899 "Zend/zend_language_scanner.c"
 yy646:
                YYDEBUG(646, *YYCURSOR);
                ++YYCURSOR;
@@ -6964,12 +6969,12 @@ yy653:
                ++YYCURSOR;
                YYDEBUG(654, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2402 "Zend/zend_language_scanner.l"
+#line 2407 "Zend/zend_language_scanner.l"
                {
        zend_scan_binary_escape_string(zendlval, yytext+2, yyleng-3, '"' TSRMLS_CC);
        return T_CONSTANT_ENCAPSED_STRING;
 }
-#line 6973 "Zend/zend_language_scanner.c"
+#line 6978 "Zend/zend_language_scanner.c"
 yy655:
                YYDEBUG(655, *YYCURSOR);
                ++YYCURSOR;
@@ -7038,7 +7043,7 @@ yy661:
 yy662:
                YYDEBUG(662, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2434 "Zend/zend_language_scanner.l"
+#line 2439 "Zend/zend_language_scanner.l"
                {
        char *s;
        CG(zend_lineno)++;
@@ -7052,7 +7057,7 @@ yy662:
        BEGIN(ST_START_HEREDOC);
        return T_BINARY_HEREDOC;
 }
-#line 7056 "Zend/zend_language_scanner.c"
+#line 7061 "Zend/zend_language_scanner.c"
 yy663:
                YYDEBUG(663, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7092,11 +7097,11 @@ yy669:
                }
                YYDEBUG(670, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1497 "Zend/zend_language_scanner.l"
+#line 1502 "Zend/zend_language_scanner.l"
                {
        return T_SWITCH;
 }
-#line 7100 "Zend/zend_language_scanner.c"
+#line 7105 "Zend/zend_language_scanner.c"
 yy671:
                YYDEBUG(671, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7120,11 +7125,11 @@ yy674:
                }
                YYDEBUG(675, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1676 "Zend/zend_language_scanner.l"
+#line 1681 "Zend/zend_language_scanner.l"
                {
        return T_STATIC;
 }
-#line 7128 "Zend/zend_language_scanner.c"
+#line 7133 "Zend/zend_language_scanner.c"
 yy676:
                YYDEBUG(676, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7151,11 +7156,11 @@ yy679:
                }
                YYDEBUG(680, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1493 "Zend/zend_language_scanner.l"
+#line 1498 "Zend/zend_language_scanner.l"
                {
        return T_AS;
 }
-#line 7159 "Zend/zend_language_scanner.c"
+#line 7164 "Zend/zend_language_scanner.c"
 yy681:
                YYDEBUG(681, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7174,11 +7179,11 @@ yy683:
                }
                YYDEBUG(684, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1712 "Zend/zend_language_scanner.l"
+#line 1717 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY;
 }
-#line 7182 "Zend/zend_language_scanner.c"
+#line 7187 "Zend/zend_language_scanner.c"
 yy685:
                YYDEBUG(685, *YYCURSOR);
                ++YYCURSOR;
@@ -7187,11 +7192,11 @@ yy685:
                }
                YYDEBUG(686, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1804 "Zend/zend_language_scanner.l"
+#line 1809 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_AND;
 }
-#line 7195 "Zend/zend_language_scanner.c"
+#line 7200 "Zend/zend_language_scanner.c"
 yy687:
                YYDEBUG(687, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7225,11 +7230,11 @@ yy692:
                }
                YYDEBUG(693, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1680 "Zend/zend_language_scanner.l"
+#line 1685 "Zend/zend_language_scanner.l"
                {
        return T_ABSTRACT;
 }
-#line 7233 "Zend/zend_language_scanner.c"
+#line 7238 "Zend/zend_language_scanner.c"
 yy694:
                YYDEBUG(694, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7253,11 +7258,11 @@ yy697:
                }
                YYDEBUG(698, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1453 "Zend/zend_language_scanner.l"
+#line 1458 "Zend/zend_language_scanner.l"
                {
        return T_WHILE;
 }
-#line 7261 "Zend/zend_language_scanner.c"
+#line 7266 "Zend/zend_language_scanner.c"
 yy699:
                YYDEBUG(699, *YYCURSOR);
                ++YYCURSOR;
@@ -7266,11 +7271,11 @@ yy699:
                }
                YYDEBUG(700, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1437 "Zend/zend_language_scanner.l"
+#line 1442 "Zend/zend_language_scanner.l"
                {
        return T_IF;
 }
-#line 7274 "Zend/zend_language_scanner.c"
+#line 7279 "Zend/zend_language_scanner.c"
 yy701:
                YYDEBUG(701, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7322,11 +7327,11 @@ yy706:
                }
                YYDEBUG(707, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1664 "Zend/zend_language_scanner.l"
+#line 1669 "Zend/zend_language_scanner.l"
                {
        return T_ISSET;
 }
-#line 7330 "Zend/zend_language_scanner.c"
+#line 7335 "Zend/zend_language_scanner.c"
 yy708:
                YYDEBUG(708, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7380,11 +7385,11 @@ yy714:
 yy715:
                YYDEBUG(715, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1636 "Zend/zend_language_scanner.l"
+#line 1641 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE;
 }
-#line 7388 "Zend/zend_language_scanner.c"
+#line 7393 "Zend/zend_language_scanner.c"
 yy716:
                YYDEBUG(716, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7413,11 +7418,11 @@ yy720:
                }
                YYDEBUG(721, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1640 "Zend/zend_language_scanner.l"
+#line 1645 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE_ONCE;
 }
-#line 7421 "Zend/zend_language_scanner.c"
+#line 7426 "Zend/zend_language_scanner.c"
 yy722:
                YYDEBUG(722, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7451,11 +7456,11 @@ yy727:
                }
                YYDEBUG(728, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1537 "Zend/zend_language_scanner.l"
+#line 1542 "Zend/zend_language_scanner.l"
                {
        return T_INTERFACE;
 }
-#line 7459 "Zend/zend_language_scanner.c"
+#line 7464 "Zend/zend_language_scanner.c"
 yy729:
                YYDEBUG(729, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7494,11 +7499,11 @@ yy735:
                }
                YYDEBUG(736, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1489 "Zend/zend_language_scanner.l"
+#line 1494 "Zend/zend_language_scanner.l"
                {
        return T_INSTANCEOF;
 }
-#line 7502 "Zend/zend_language_scanner.c"
+#line 7507 "Zend/zend_language_scanner.c"
 yy737:
                YYDEBUG(737, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7542,11 +7547,11 @@ yy744:
                }
                YYDEBUG(745, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1545 "Zend/zend_language_scanner.l"
+#line 1550 "Zend/zend_language_scanner.l"
                {
        return T_IMPLEMENTS;
 }
-#line 7550 "Zend/zend_language_scanner.c"
+#line 7555 "Zend/zend_language_scanner.c"
 yy746:
                YYDEBUG(746, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7566,11 +7571,11 @@ yy748:
                }
                YYDEBUG(749, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1425 "Zend/zend_language_scanner.l"
+#line 1430 "Zend/zend_language_scanner.l"
                {
        return T_TRY;
 }
-#line 7574 "Zend/zend_language_scanner.c"
+#line 7579 "Zend/zend_language_scanner.c"
 yy750:
                YYDEBUG(750, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7589,11 +7594,11 @@ yy752:
                }
                YYDEBUG(753, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1433 "Zend/zend_language_scanner.l"
+#line 1438 "Zend/zend_language_scanner.l"
                {
        return T_THROW;
 }
-#line 7597 "Zend/zend_language_scanner.c"
+#line 7602 "Zend/zend_language_scanner.c"
 yy754:
                YYDEBUG(754, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7654,11 +7659,11 @@ yy760:
 yy761:
                YYDEBUG(761, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1644 "Zend/zend_language_scanner.l"
+#line 1649 "Zend/zend_language_scanner.l"
                {
        return T_REQUIRE;
 }
-#line 7662 "Zend/zend_language_scanner.c"
+#line 7667 "Zend/zend_language_scanner.c"
 yy762:
                YYDEBUG(762, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7687,11 +7692,11 @@ yy766:
                }
                YYDEBUG(767, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1648 "Zend/zend_language_scanner.l"
+#line 1653 "Zend/zend_language_scanner.l"
                {
        return T_REQUIRE_ONCE;
 }
-#line 7695 "Zend/zend_language_scanner.c"
+#line 7700 "Zend/zend_language_scanner.c"
 yy768:
                YYDEBUG(768, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7710,11 +7715,11 @@ yy770:
                }
                YYDEBUG(771, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1421 "Zend/zend_language_scanner.l"
+#line 1426 "Zend/zend_language_scanner.l"
                {
        return T_RETURN;
 }
-#line 7718 "Zend/zend_language_scanner.c"
+#line 7723 "Zend/zend_language_scanner.c"
 yy772:
                YYDEBUG(772, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7795,11 +7800,11 @@ yy781:
                }
                YYDEBUG(782, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1517 "Zend/zend_language_scanner.l"
+#line 1522 "Zend/zend_language_scanner.l"
                {
        return T_CONTINUE;
 }
-#line 7803 "Zend/zend_language_scanner.c"
+#line 7808 "Zend/zend_language_scanner.c"
 yy783:
                YYDEBUG(783, *YYCURSOR);
                ++YYCURSOR;
@@ -7808,11 +7813,11 @@ yy783:
                }
                YYDEBUG(784, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1417 "Zend/zend_language_scanner.l"
+#line 1422 "Zend/zend_language_scanner.l"
                {
        return T_CONST;
 }
-#line 7816 "Zend/zend_language_scanner.c"
+#line 7821 "Zend/zend_language_scanner.c"
 yy785:
                YYDEBUG(785, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7837,11 +7842,11 @@ yy788:
                }
                YYDEBUG(789, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1588 "Zend/zend_language_scanner.l"
+#line 1593 "Zend/zend_language_scanner.l"
                {
        return T_CLONE;
 }
-#line 7845 "Zend/zend_language_scanner.c"
+#line 7850 "Zend/zend_language_scanner.c"
 yy790:
                YYDEBUG(790, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7855,11 +7860,11 @@ yy791:
                }
                YYDEBUG(792, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1533 "Zend/zend_language_scanner.l"
+#line 1538 "Zend/zend_language_scanner.l"
                {
        return T_CLASS;
 }
-#line 7863 "Zend/zend_language_scanner.c"
+#line 7868 "Zend/zend_language_scanner.c"
 yy793:
                YYDEBUG(793, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7879,11 +7884,11 @@ yy795:
                }
                YYDEBUG(796, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1505 "Zend/zend_language_scanner.l"
+#line 1510 "Zend/zend_language_scanner.l"
                {
        return T_CASE;
 }
-#line 7887 "Zend/zend_language_scanner.c"
+#line 7892 "Zend/zend_language_scanner.c"
 yy797:
                YYDEBUG(797, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7897,11 +7902,11 @@ yy798:
                }
                YYDEBUG(799, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1429 "Zend/zend_language_scanner.l"
+#line 1434 "Zend/zend_language_scanner.l"
                {
        return T_CATCH;
 }
-#line 7905 "Zend/zend_language_scanner.c"
+#line 7910 "Zend/zend_language_scanner.c"
 yy800:
                YYDEBUG(800, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7952,11 +7957,11 @@ yy808:
                }
                YYDEBUG(809, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1413 "Zend/zend_language_scanner.l"
+#line 1418 "Zend/zend_language_scanner.l"
                {
        return T_FUNCTION;
 }
-#line 7960 "Zend/zend_language_scanner.c"
+#line 7965 "Zend/zend_language_scanner.c"
 yy810:
                YYDEBUG(810, *YYCURSOR);
                ++YYCURSOR;
@@ -7980,11 +7985,11 @@ yy810:
 yy811:
                YYDEBUG(811, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1465 "Zend/zend_language_scanner.l"
+#line 1470 "Zend/zend_language_scanner.l"
                {
        return T_FOR;
 }
-#line 7988 "Zend/zend_language_scanner.c"
+#line 7993 "Zend/zend_language_scanner.c"
 yy812:
                YYDEBUG(812, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8008,11 +8013,11 @@ yy815:
                }
                YYDEBUG(816, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1473 "Zend/zend_language_scanner.l"
+#line 1478 "Zend/zend_language_scanner.l"
                {
        return T_FOREACH;
 }
-#line 8016 "Zend/zend_language_scanner.c"
+#line 8021 "Zend/zend_language_scanner.c"
 yy817:
                YYDEBUG(817, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8031,11 +8036,11 @@ yy819:
                }
                YYDEBUG(820, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1684 "Zend/zend_language_scanner.l"
+#line 1689 "Zend/zend_language_scanner.l"
                {
        return T_FINAL;
 }
-#line 8039 "Zend/zend_language_scanner.c"
+#line 8044 "Zend/zend_language_scanner.c"
 yy821:
                YYDEBUG(821, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8066,11 +8071,11 @@ yy823:
                }
                YYDEBUG(824, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1461 "Zend/zend_language_scanner.l"
+#line 1466 "Zend/zend_language_scanner.l"
                {
        return T_DO;
 }
-#line 8074 "Zend/zend_language_scanner.c"
+#line 8079 "Zend/zend_language_scanner.c"
 yy825:
                YYDEBUG(825, *YYCURSOR);
                ++YYCURSOR;
@@ -8079,11 +8084,11 @@ yy825:
                }
                YYDEBUG(826, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1409 "Zend/zend_language_scanner.l"
+#line 1414 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
 }
-#line 8087 "Zend/zend_language_scanner.c"
+#line 8092 "Zend/zend_language_scanner.c"
 yy827:
                YYDEBUG(827, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8118,11 +8123,11 @@ yy832:
                }
                YYDEBUG(833, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1509 "Zend/zend_language_scanner.l"
+#line 1514 "Zend/zend_language_scanner.l"
                {
        return T_DEFAULT;
 }
-#line 8126 "Zend/zend_language_scanner.c"
+#line 8131 "Zend/zend_language_scanner.c"
 yy834:
                YYDEBUG(834, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8146,11 +8151,11 @@ yy837:
                }
                YYDEBUG(838, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1481 "Zend/zend_language_scanner.l"
+#line 1486 "Zend/zend_language_scanner.l"
                {
        return T_DECLARE;
 }
-#line 8154 "Zend/zend_language_scanner.c"
+#line 8159 "Zend/zend_language_scanner.c"
 yy839:
                YYDEBUG(839, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8230,11 +8235,11 @@ yy850:
                }
                YYDEBUG(851, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1541 "Zend/zend_language_scanner.l"
+#line 1546 "Zend/zend_language_scanner.l"
                {
        return T_EXTENDS;
 }
-#line 8238 "Zend/zend_language_scanner.c"
+#line 8243 "Zend/zend_language_scanner.c"
 yy852:
                YYDEBUG(852, *YYCURSOR);
                ++YYCURSOR;
@@ -8243,11 +8248,11 @@ yy852:
                }
                YYDEBUG(853, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1405 "Zend/zend_language_scanner.l"
+#line 1410 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
 }
-#line 8251 "Zend/zend_language_scanner.c"
+#line 8256 "Zend/zend_language_scanner.c"
 yy854:
                YYDEBUG(854, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8261,11 +8266,11 @@ yy855:
                }
                YYDEBUG(856, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1632 "Zend/zend_language_scanner.l"
+#line 1637 "Zend/zend_language_scanner.l"
                {
        return T_EVAL;
 }
-#line 8269 "Zend/zend_language_scanner.c"
+#line 8274 "Zend/zend_language_scanner.c"
 yy857:
                YYDEBUG(857, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8335,11 +8340,11 @@ yy866:
                }
                YYDEBUG(867, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1457 "Zend/zend_language_scanner.l"
+#line 1462 "Zend/zend_language_scanner.l"
                {
        return T_ENDWHILE;
 }
-#line 8343 "Zend/zend_language_scanner.c"
+#line 8348 "Zend/zend_language_scanner.c"
 yy868:
                YYDEBUG(868, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8368,11 +8373,11 @@ yy872:
                }
                YYDEBUG(873, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1501 "Zend/zend_language_scanner.l"
+#line 1506 "Zend/zend_language_scanner.l"
                {
        return T_ENDSWITCH;
 }
-#line 8376 "Zend/zend_language_scanner.c"
+#line 8381 "Zend/zend_language_scanner.c"
 yy874:
                YYDEBUG(874, *YYCURSOR);
                ++YYCURSOR;
@@ -8381,11 +8386,11 @@ yy874:
                }
                YYDEBUG(875, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1445 "Zend/zend_language_scanner.l"
+#line 1450 "Zend/zend_language_scanner.l"
                {
        return T_ENDIF;
 }
-#line 8389 "Zend/zend_language_scanner.c"
+#line 8394 "Zend/zend_language_scanner.c"
 yy876:
                YYDEBUG(876, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8414,11 +8419,11 @@ yy877:
 yy878:
                YYDEBUG(878, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1469 "Zend/zend_language_scanner.l"
+#line 1474 "Zend/zend_language_scanner.l"
                {
        return T_ENDFOR;
 }
-#line 8422 "Zend/zend_language_scanner.c"
+#line 8427 "Zend/zend_language_scanner.c"
 yy879:
                YYDEBUG(879, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8442,11 +8447,11 @@ yy882:
                }
                YYDEBUG(883, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1477 "Zend/zend_language_scanner.l"
+#line 1482 "Zend/zend_language_scanner.l"
                {
        return T_ENDFOREACH;
 }
-#line 8450 "Zend/zend_language_scanner.c"
+#line 8455 "Zend/zend_language_scanner.c"
 yy884:
                YYDEBUG(884, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8480,11 +8485,11 @@ yy889:
                }
                YYDEBUG(890, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1485 "Zend/zend_language_scanner.l"
+#line 1490 "Zend/zend_language_scanner.l"
                {
        return T_ENDDECLARE;
 }
-#line 8488 "Zend/zend_language_scanner.c"
+#line 8493 "Zend/zend_language_scanner.c"
 yy891:
                YYDEBUG(891, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8503,11 +8508,11 @@ yy893:
                }
                YYDEBUG(894, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1668 "Zend/zend_language_scanner.l"
+#line 1673 "Zend/zend_language_scanner.l"
                {
        return T_EMPTY;
 }
-#line 8511 "Zend/zend_language_scanner.c"
+#line 8516 "Zend/zend_language_scanner.c"
 yy895:
                YYDEBUG(895, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8536,11 +8541,11 @@ yy896:
 yy897:
                YYDEBUG(897, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1449 "Zend/zend_language_scanner.l"
+#line 1454 "Zend/zend_language_scanner.l"
                {
        return T_ELSE;
 }
-#line 8544 "Zend/zend_language_scanner.c"
+#line 8549 "Zend/zend_language_scanner.c"
 yy898:
                YYDEBUG(898, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8554,11 +8559,11 @@ yy899:
                }
                YYDEBUG(900, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1441 "Zend/zend_language_scanner.l"
+#line 1446 "Zend/zend_language_scanner.l"
                {
        return T_ELSEIF;
 }
-#line 8562 "Zend/zend_language_scanner.c"
+#line 8567 "Zend/zend_language_scanner.c"
 yy901:
                YYDEBUG(901, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8572,11 +8577,11 @@ yy902:
                }
                YYDEBUG(903, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1525 "Zend/zend_language_scanner.l"
+#line 1530 "Zend/zend_language_scanner.l"
                {
        return T_ECHO;
 }
-#line 8580 "Zend/zend_language_scanner.c"
+#line 8585 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_LOOKING_FOR_PROPERTY:
@@ -8649,12 +8654,12 @@ yy906:
 yy907:
                YYDEBUG(907, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1554 "Zend/zend_language_scanner.l"
+#line 1559 "Zend/zend_language_scanner.l"
                {
        /* do nothing */
        goto restart;
 }
-#line 8658 "Zend/zend_language_scanner.c"
+#line 8663 "Zend/zend_language_scanner.c"
 yy908:
                YYDEBUG(908, *YYCURSOR);
                ++YYCURSOR;
@@ -8662,13 +8667,13 @@ yy908:
 yy909:
                YYDEBUG(909, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1574 "Zend/zend_language_scanner.l"
+#line 1579 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state(TSRMLS_C);
        goto restart;
 }
-#line 8672 "Zend/zend_language_scanner.c"
+#line 8677 "Zend/zend_language_scanner.c"
 yy910:
                YYDEBUG(910, *YYCURSOR);
                ++YYCURSOR;
@@ -8677,7 +8682,7 @@ yy910:
 yy911:
                YYDEBUG(911, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1563 "Zend/zend_language_scanner.l"
+#line 1568 "Zend/zend_language_scanner.l"
                {
        yy_pop_state(TSRMLS_C);
        if (!zend_copy_scanner_string(zendlval, yytext, yyleng, UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
@@ -8688,7 +8693,7 @@ yy911:
        }
        return T_STRING;
 }
-#line 8692 "Zend/zend_language_scanner.c"
+#line 8697 "Zend/zend_language_scanner.c"
 yy912:
                YYDEBUG(912, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8709,11 +8714,11 @@ yy915:
                ++YYCURSOR;
                YYDEBUG(916, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1559 "Zend/zend_language_scanner.l"
+#line 1564 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_OPERATOR;
 }
-#line 8717 "Zend/zend_language_scanner.c"
+#line 8722 "Zend/zend_language_scanner.c"
 yy917:
                YYDEBUG(917, *YYCURSOR);
                ++YYCURSOR;
@@ -8783,7 +8788,7 @@ yy921:
 yy922:
                YYDEBUG(922, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1847 "Zend/zend_language_scanner.l"
+#line 1852 "Zend/zend_language_scanner.l"
                {
        if (!zend_copy_scanner_string(zendlval, yytext, yyleng, UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
                return 0;
@@ -8795,20 +8800,20 @@ yy922:
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return T_STRING_VARNAME;
 }
-#line 8799 "Zend/zend_language_scanner.c"
+#line 8804 "Zend/zend_language_scanner.c"
 yy923:
                YYDEBUG(923, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(924, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1860 "Zend/zend_language_scanner.l"
+#line 1865 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state(TSRMLS_C);
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        goto restart;
 }
-#line 8812 "Zend/zend_language_scanner.c"
+#line 8817 "Zend/zend_language_scanner.c"
 yy925:
                YYDEBUG(925, *YYCURSOR);
                ++YYCURSOR;
@@ -9270,7 +9275,7 @@ yy962:
                ++YYCURSOR;
                YYDEBUG(963, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2691 "Zend/zend_language_scanner.l"
+#line 2696 "Zend/zend_language_scanner.l"
                {
        char *end = yytext + yyleng - 1;
 
@@ -9308,7 +9313,7 @@ yy962:
                yymore();
        }
 }
-#line 9312 "Zend/zend_language_scanner.c"
+#line 9317 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_ONE_LINE_COMMENT:
@@ -9365,11 +9370,11 @@ yy966:
 yy967:
                YYDEBUG(967, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2281 "Zend/zend_language_scanner.l"
+#line 2286 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 9373 "Zend/zend_language_scanner.c"
+#line 9378 "Zend/zend_language_scanner.c"
 yy968:
                YYDEBUG(968, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -9392,7 +9397,7 @@ yy970:
 yy972:
                YYDEBUG(972, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2285 "Zend/zend_language_scanner.l"
+#line 2290 "Zend/zend_language_scanner.l"
                {
        switch (yytext[yyleng-1]) {
                case '?': case '%': case '>':
@@ -9410,7 +9415,7 @@ yy972:
                        return T_COMMENT;
        }
 }
-#line 9414 "Zend/zend_language_scanner.c"
+#line 9419 "Zend/zend_language_scanner.c"
 yy973:
                YYDEBUG(973, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -9423,7 +9428,7 @@ yy974:
                ++YYCURSOR;
                YYDEBUG(976, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2303 "Zend/zend_language_scanner.l"
+#line 2308 "Zend/zend_language_scanner.l"
                {
        Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
        Z_STRLEN_P(zendlval) = yyleng;
@@ -9432,7 +9437,7 @@ yy974:
        CG(zend_lineno)++;
        return T_COMMENT;
 }
-#line 9436 "Zend/zend_language_scanner.c"
+#line 9441 "Zend/zend_language_scanner.c"
 yy977:
                YYDEBUG(977, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -9442,7 +9447,7 @@ yy978:
                ++YYCURSOR;
                YYDEBUG(979, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2312 "Zend/zend_language_scanner.l"
+#line 2317 "Zend/zend_language_scanner.l"
                {
     if (CG(asp_tags) || yytext[yyleng-2] != '%') { /* asp comment? */
                Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -9456,7 +9461,7 @@ yy978:
                yymore();
        }
 }
-#line 9460 "Zend/zend_language_scanner.c"
+#line 9465 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_START_HEREDOC:
@@ -9513,13 +9518,13 @@ yy982:
 yy983:
                YYDEBUG(983, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2470 "Zend/zend_language_scanner.l"
+#line 2475 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        BEGIN(ST_HEREDOC);
        goto restart;
 }
-#line 9523 "Zend/zend_language_scanner.c"
+#line 9528 "Zend/zend_language_scanner.c"
 yy984:
                YYDEBUG(984, *YYCURSOR);
                yyaccept = 0;
@@ -9564,7 +9569,7 @@ yy989:
                ++YYCURSOR;
                YYDEBUG(990, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2476 "Zend/zend_language_scanner.l"
+#line 2481 "Zend/zend_language_scanner.l"
                {
        int label_len = yyleng - 1;
 
@@ -9586,7 +9591,7 @@ yy989:
                yymore();
        }
 }
-#line 9590 "Zend/zend_language_scanner.c"
+#line 9595 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_START_NOWDOC:
@@ -9643,13 +9648,13 @@ yy993:
 yy994:
                YYDEBUG(994, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2661 "Zend/zend_language_scanner.l"
+#line 2666 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        BEGIN(ST_NOWDOC);
        goto restart;
 }
-#line 9653 "Zend/zend_language_scanner.c"
+#line 9658 "Zend/zend_language_scanner.c"
 yy995:
                YYDEBUG(995, *YYCURSOR);
                yyaccept = 0;
@@ -9694,7 +9699,7 @@ yy1000:
                ++YYCURSOR;
                YYDEBUG(1001, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2667 "Zend/zend_language_scanner.l"
+#line 2672 "Zend/zend_language_scanner.l"
                {
        int label_len = yyleng - 1;
 
@@ -9718,7 +9723,7 @@ yy1000:
                yymore();
        }
 }
-#line 9722 "Zend/zend_language_scanner.c"
+#line 9727 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_VAR_OFFSET:
@@ -9819,7 +9824,7 @@ yy1004:
 yy1005:
                YYDEBUG(1005, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1910 "Zend/zend_language_scanner.l"
+#line 1915 "Zend/zend_language_scanner.l"
                { /* Offset could be treated as a long */
        if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {
                Z_LVAL_P(zendlval) = strtol(yytext, NULL, 10);
@@ -9831,7 +9836,7 @@ yy1005:
        }
        return T_NUM_STRING;
 }
-#line 9835 "Zend/zend_language_scanner.c"
+#line 9840 "Zend/zend_language_scanner.c"
 yy1006:
                YYDEBUG(1006, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -9851,23 +9856,23 @@ yy1007:
 yy1008:
                YYDEBUG(1008, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2236 "Zend/zend_language_scanner.l"
+#line 2241 "Zend/zend_language_scanner.l"
                {
        /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
        return yytext[0];
 }
-#line 9860 "Zend/zend_language_scanner.c"
+#line 9865 "Zend/zend_language_scanner.c"
 yy1009:
                YYDEBUG(1009, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(1010, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2231 "Zend/zend_language_scanner.l"
+#line 2236 "Zend/zend_language_scanner.l"
                {
        yy_pop_state(TSRMLS_C);
        return ']';
 }
-#line 9871 "Zend/zend_language_scanner.c"
+#line 9876 "Zend/zend_language_scanner.c"
 yy1011:
                YYDEBUG(1011, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -9877,7 +9882,7 @@ yy1012:
                ++YYCURSOR;
                YYDEBUG(1013, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2241 "Zend/zend_language_scanner.l"
+#line 2246 "Zend/zend_language_scanner.l"
                {
        /* Invalid rule to return a more explicit parse error with proper line number */
        yyless(0);
@@ -9885,7 +9890,7 @@ yy1012:
        ZVAL_EMPTY_TEXT(zendlval); /* Empty since it won't be used */
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 9889 "Zend/zend_language_scanner.c"
+#line 9894 "Zend/zend_language_scanner.c"
 yy1014:
                YYDEBUG(1014, *YYCURSOR);
                ++YYCURSOR;
@@ -9894,25 +9899,25 @@ yy1014:
 yy1015:
                YYDEBUG(1015, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2259 "Zend/zend_language_scanner.l"
+#line 2264 "Zend/zend_language_scanner.l"
                {
        if (!zend_copy_scanner_string(zendlval, yytext, yyleng, CG(literal_type), SCNG(output_conv) TSRMLS_CC)) {
                return 0;
        }
        return T_STRING;
 }
-#line 9905 "Zend/zend_language_scanner.c"
+#line 9910 "Zend/zend_language_scanner.c"
 yy1016:
                YYDEBUG(1016, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(1017, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2754 "Zend/zend_language_scanner.l"
+#line 2759 "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 9916 "Zend/zend_language_scanner.c"
+#line 9921 "Zend/zend_language_scanner.c"
 yy1018:
                YYDEBUG(1018, *YYCURSOR);
                ++YYCURSOR;
@@ -9948,7 +9953,7 @@ yy1020:
 yy1022:
                YYDEBUG(1022, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2221 "Zend/zend_language_scanner.l"
+#line 2226 "Zend/zend_language_scanner.l"
                {
        if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
                return 0;
@@ -9958,7 +9963,7 @@ yy1022:
        }
        return T_VARIABLE;
 }
-#line 9962 "Zend/zend_language_scanner.c"
+#line 9967 "Zend/zend_language_scanner.c"
 yy1023:
                YYDEBUG(1023, *YYCURSOR);
                ++YYCURSOR;
@@ -9990,14 +9995,14 @@ yy1027:
 yy1029:
                YYDEBUG(1029, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1922 "Zend/zend_language_scanner.l"
+#line 1927 "Zend/zend_language_scanner.l"
                { /* Offset must be treated as a string */
        if (!zend_copy_scanner_string(zendlval, yytext, yyleng, CG(literal_type), SCNG(output_conv) TSRMLS_CC)) {
                return 0;
        }
        return T_NUM_STRING;
 }
-#line 10001 "Zend/zend_language_scanner.c"
+#line 10006 "Zend/zend_language_scanner.c"
 yy1030:
                YYDEBUG(1030, *YYCURSOR);
                ++YYCURSOR;
@@ -10010,6 +10015,6 @@ yy1030:
                goto yy1029;
        }
 }
-#line 2759 "Zend/zend_language_scanner.l"
+#line 2764 "Zend/zend_language_scanner.l"
 
 }
index c6248e178ec8e6f87e932e6b42bc23782d0e8cc4..bd590012cd003c4b61b517bc68cd976de6efdad2 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
@@ -833,10 +840,8 @@ ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_D
                encoding = ucnv_getName(ZEND_U_CONVERTER(UG(runtime_encoding_conv)), &status);
        }
 
-       /* enforce two trailing NULLs for flex... */
-       STR_REALLOC(Z_STRVAL_P(str), Z_STRLEN_P(str)+2);
-
-       Z_STRVAL_P(str)[Z_STRLEN_P(str)+1]=0;
+       str->value.str.val = safe_erealloc(str->value.str.val, 1, str->value.str.len, ZEND_MMAP_AHEAD);
+       memset(str->value.str.val + str->value.str.len, 0, ZEND_MMAP_AHEAD);
 
        SCNG(yy_in)=NULL;
 
index 2c6ee7e55d5e60ca451068c84abb2b9518cc6f13..eb45a0bfb663ee37a2ca3217cdfbcb4db2fb8f43 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.4.dev on Wed Mar 26 15:13:41 2008 */
+/* Generated by re2c 0.13.4.dev on Fri Apr  4 16:08:19 2008 */
 #line 3 "Zend/zend_language_scanner_defs.h"
 
 enum YYCONDTYPE {
index ad62f2963a6a9e93a6ab5c59d60696bab8ebe4d1..7563340dc173794d65738ae752dce66476d090e2 100644 (file)
@@ -29,7 +29,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,