]> granicus.if.org Git - php/commitdiff
Restore end check for "escape" strings (not needed for single-quoted strings as they...
authorMatt Wilmas <mattwil@php.net>
Sat, 10 May 2008 09:15:17 +0000 (09:15 +0000)
committerMatt Wilmas <mattwil@php.net>
Sat, 10 May 2008 09:15:17 +0000 (09:15 +0000)
Zend/zend_language_scanner.c
Zend/zend_language_scanner.l

index 66893f86d01b8443586e542545b52c9c28f8c316..72ec60a795b29c72d16c8063cb072b3a8dbbfd29 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.4 on Fri May 09 05:04:01 2008 */
+/* Generated by re2c 0.13.4 on Sat May 10 04:04:00 2008 */
 #line 1 "Zend/zend_language_scanner.l"
 /*
    +----------------------------------------------------------------------+
@@ -988,6 +988,10 @@ static int zend_scan_unicode_escape_string(zval *zendlval, char *str, int len, U
                if (*s==0x5C /*'\\'*/) {
                        s++;
                        c = *s;
+                       if (s >= end) {
+                               *t++ = 0x5C; /*'\\'*/
+                               break;
+                       }
 
                        min_digits = 0;
                        codepoint = 0;
@@ -1188,6 +1192,10 @@ static void zend_scan_binary_escape_string(zval *zendlval, char *str, int len, c
        while (s<end) {
                if (*s=='\\') {
                        s++;
+                       if (s >= end) {
+                               *t++ = '\\';
+                               break;
+                       }
 
                        switch(*s) {
                                case 'n':
@@ -1330,7 +1338,7 @@ yymore_restart:
        }
 
 
-#line 1334 "Zend/zend_language_scanner.c"
+#line 1342 "Zend/zend_language_scanner.c"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
@@ -1454,7 +1462,7 @@ yyc_INITIAL:
 yy3:
                YYDEBUG(3, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2157 "Zend/zend_language_scanner.l"
+#line 2165 "Zend/zend_language_scanner.l"
                {
 
        while (1) {
@@ -1485,7 +1493,7 @@ inline_char_handler:
        HANDLE_NEWLINES(yytext, yyleng);
        return T_INLINE_HTML;
 }
-#line 1489 "Zend/zend_language_scanner.c"
+#line 1497 "Zend/zend_language_scanner.c"
 yy4:
                YYDEBUG(4, *YYCURSOR);
                yyaccept = 0;
@@ -1512,7 +1520,7 @@ yy8:
 yy9:
                YYDEBUG(9, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2148 "Zend/zend_language_scanner.l"
+#line 2156 "Zend/zend_language_scanner.l"
                {
        if ((YYCTYPE*)yytext == SCNG(yy_start)) {
                /* ignore first line when it's started with a # */
@@ -1521,7 +1529,7 @@ yy9:
                goto inline_char_handler;
        }
 }
-#line 1525 "Zend/zend_language_scanner.c"
+#line 1533 "Zend/zend_language_scanner.c"
 yy10:
                YYDEBUG(10, *YYCURSOR);
                yyaccept = 1;
@@ -1547,7 +1555,7 @@ yy12:
 yy13:
                YYDEBUG(13, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2132 "Zend/zend_language_scanner.l"
+#line 2140 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        if (CG(short_tags)) {
@@ -1563,14 +1571,14 @@ yy13:
                return T_INLINE_HTML;
        }
 }
-#line 1567 "Zend/zend_language_scanner.c"
+#line 1575 "Zend/zend_language_scanner.c"
 yy14:
                YYDEBUG(14, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy50;
                YYDEBUG(15, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2106 "Zend/zend_language_scanner.l"
+#line 2114 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1585,7 +1593,7 @@ yy14:
                return T_INLINE_HTML;
        }
 }
-#line 1589 "Zend/zend_language_scanner.c"
+#line 1597 "Zend/zend_language_scanner.c"
 yy16:
                YYDEBUG(16, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1775,7 +1783,7 @@ yy42:
                ++YYCURSOR;
                YYDEBUG(45, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2065 "Zend/zend_language_scanner.l"
+#line 2073 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1784,7 +1792,7 @@ yy42:
        BEGIN(ST_IN_SCRIPTING);
        return T_OPEN_TAG;
 }
-#line 1788 "Zend/zend_language_scanner.c"
+#line 1796 "Zend/zend_language_scanner.c"
 yy46:
                YYDEBUG(46, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1811,7 +1819,7 @@ yy50:
                ++YYCURSOR;
                YYDEBUG(51, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2074 "Zend/zend_language_scanner.l"
+#line 2082 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1826,13 +1834,13 @@ yy50:
                return T_INLINE_HTML;
        }
 }
-#line 1830 "Zend/zend_language_scanner.c"
+#line 1838 "Zend/zend_language_scanner.c"
 yy52:
                YYDEBUG(52, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(53, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2090 "Zend/zend_language_scanner.l"
+#line 2098 "Zend/zend_language_scanner.l"
                {
        if (CG(short_tags)) {
                Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1847,7 +1855,7 @@ yy52:
                return T_INLINE_HTML;
        }
 }
-#line 1851 "Zend/zend_language_scanner.c"
+#line 1859 "Zend/zend_language_scanner.c"
 yy54:
                YYDEBUG(54, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1874,7 +1882,7 @@ yy57:
 yy58:
                YYDEBUG(58, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2122 "Zend/zend_language_scanner.l"
+#line 2130 "Zend/zend_language_scanner.l"
                {
        Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
        Z_STRLEN_P(zendlval) = yyleng;
@@ -1883,7 +1891,7 @@ yy58:
        BEGIN(ST_IN_SCRIPTING);
        return T_OPEN_TAG;
 }
-#line 1887 "Zend/zend_language_scanner.c"
+#line 1895 "Zend/zend_language_scanner.c"
 yy59:
                YYDEBUG(59, *YYCURSOR);
                ++YYCURSOR;
@@ -1974,13 +1982,13 @@ yy63:
 yy64:
                YYDEBUG(64, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2564 "Zend/zend_language_scanner.l"
+#line 2572 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return T_CURLY_OPEN;
 }
-#line 1984 "Zend/zend_language_scanner.c"
+#line 1992 "Zend/zend_language_scanner.c"
 yy65:
                YYDEBUG(65, *YYCURSOR);
                yyaccept = 1;
@@ -1998,7 +2006,7 @@ yy66:
 yy67:
                YYDEBUG(67, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2599 "Zend/zend_language_scanner.l"
+#line 2607 "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);
@@ -2007,7 +2015,7 @@ yy67:
                return T_ENCAPSED_AND_WHITESPACE;
        }
 }
-#line 2011 "Zend/zend_language_scanner.c"
+#line 2019 "Zend/zend_language_scanner.c"
 yy68:
                YYDEBUG(68, *YYCURSOR);
                ++YYCURSOR;
@@ -2019,12 +2027,12 @@ yy69:
                ++YYCURSOR;
                YYDEBUG(70, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2762 "Zend/zend_language_scanner.l"
+#line 2770 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '`';
 }
-#line 2028 "Zend/zend_language_scanner.c"
+#line 2036 "Zend/zend_language_scanner.c"
 yy71:
                YYDEBUG(71, *YYCURSOR);
                ++YYCURSOR;
@@ -2112,7 +2120,7 @@ yy75:
 yy77:
                YYDEBUG(77, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2608 "Zend/zend_language_scanner.l"
+#line 2616 "Zend/zend_language_scanner.l"
                {
        yyleng--;
        yyless(yyleng);
@@ -2124,7 +2132,7 @@ yy77:
                return T_ENCAPSED_AND_WHITESPACE;
        }
 }
-#line 2128 "Zend/zend_language_scanner.c"
+#line 2136 "Zend/zend_language_scanner.c"
 yy78:
                YYDEBUG(78, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2158,7 +2166,7 @@ yy81:
 yy83:
                YYDEBUG(83, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2221 "Zend/zend_language_scanner.l"
+#line 2229 "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;
@@ -2168,18 +2176,18 @@ yy83:
        }
        return T_VARIABLE;
 }
-#line 2172 "Zend/zend_language_scanner.c"
+#line 2180 "Zend/zend_language_scanner.c"
 yy84:
                YYDEBUG(84, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(85, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1830 "Zend/zend_language_scanner.l"
+#line 1838 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 2183 "Zend/zend_language_scanner.c"
+#line 2191 "Zend/zend_language_scanner.c"
 yy86:
                YYDEBUG(86, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2190,7 +2198,7 @@ yy87:
                ++YYCURSOR;
                YYDEBUG(88, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2207 "Zend/zend_language_scanner.l"
+#line 2215 "Zend/zend_language_scanner.l"
                {
        yyleng--;
        yyless(yyleng);
@@ -2204,7 +2212,7 @@ yy87:
        }
        return T_VARIABLE;
 }
-#line 2208 "Zend/zend_language_scanner.c"
+#line 2216 "Zend/zend_language_scanner.c"
 yy89:
                YYDEBUG(89, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2222,7 +2230,7 @@ yy90:
                ++YYCURSOR;
                YYDEBUG(91, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2191 "Zend/zend_language_scanner.l"
+#line 2199 "Zend/zend_language_scanner.l"
                {
        yyleng -= 3;
        yyless(yyleng);
@@ -2236,7 +2244,7 @@ yy90:
        }
        return T_VARIABLE;
 }
-#line 2240 "Zend/zend_language_scanner.c"
+#line 2248 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_COMMENT:
@@ -2293,34 +2301,34 @@ yy94:
                }
                YYDEBUG(96, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2330 "Zend/zend_language_scanner.l"
+#line 2338 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 2301 "Zend/zend_language_scanner.c"
+#line 2309 "Zend/zend_language_scanner.c"
 yy97:
                YYDEBUG(97, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '/') goto yy99;
                YYDEBUG(98, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2353 "Zend/zend_language_scanner.l"
+#line 2361 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 2312 "Zend/zend_language_scanner.c"
+#line 2320 "Zend/zend_language_scanner.c"
 yy99:
                YYDEBUG(99, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(100, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2347 "Zend/zend_language_scanner.l"
+#line 2355 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        BEGIN(ST_IN_SCRIPTING);
        return T_COMMENT;
 }
-#line 2324 "Zend/zend_language_scanner.c"
+#line 2332 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_DOC_COMMENT:
@@ -2377,28 +2385,28 @@ yy103:
                }
                YYDEBUG(105, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2330 "Zend/zend_language_scanner.l"
+#line 2338 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 2385 "Zend/zend_language_scanner.c"
+#line 2393 "Zend/zend_language_scanner.c"
 yy106:
                YYDEBUG(106, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '/') goto yy108;
                YYDEBUG(107, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2353 "Zend/zend_language_scanner.l"
+#line 2361 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 2396 "Zend/zend_language_scanner.c"
+#line 2404 "Zend/zend_language_scanner.c"
 yy108:
                YYDEBUG(108, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(109, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2334 "Zend/zend_language_scanner.l"
+#line 2342 "Zend/zend_language_scanner.l"
                {
        zval temp;
 
@@ -2411,7 +2419,7 @@ yy108:
        BEGIN(ST_IN_SCRIPTING);
        return T_DOC_COMMENT;
 }
-#line 2415 "Zend/zend_language_scanner.c"
+#line 2423 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_DOUBLE_QUOTES:
@@ -2498,13 +2506,13 @@ yy113:
 yy114:
                YYDEBUG(114, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2564 "Zend/zend_language_scanner.l"
+#line 2572 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return T_CURLY_OPEN;
 }
-#line 2508 "Zend/zend_language_scanner.c"
+#line 2516 "Zend/zend_language_scanner.c"
 yy115:
                YYDEBUG(115, *YYCURSOR);
                yyaccept = 1;
@@ -2523,7 +2531,7 @@ yy116:
 yy117:
                YYDEBUG(117, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2571 "Zend/zend_language_scanner.l"
+#line 2579 "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);
@@ -2532,7 +2540,7 @@ yy117:
                return T_ENCAPSED_AND_WHITESPACE;
        }
 }
-#line 2536 "Zend/zend_language_scanner.c"
+#line 2544 "Zend/zend_language_scanner.c"
 yy118:
                YYDEBUG(118, *YYCURSOR);
                ++YYCURSOR;
@@ -2544,12 +2552,12 @@ yy119:
                ++YYCURSOR;
                YYDEBUG(120, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2756 "Zend/zend_language_scanner.l"
+#line 2764 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '"';
 }
-#line 2553 "Zend/zend_language_scanner.c"
+#line 2561 "Zend/zend_language_scanner.c"
 yy121:
                YYDEBUG(121, *YYCURSOR);
                ++YYCURSOR;
@@ -2640,7 +2648,7 @@ yy125:
 yy127:
                YYDEBUG(127, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2586 "Zend/zend_language_scanner.l"
+#line 2594 "Zend/zend_language_scanner.l"
                {
        yyleng--;
        yyless(yyleng);
@@ -2652,7 +2660,7 @@ yy127:
                return T_ENCAPSED_AND_WHITESPACE;
        }
 }
-#line 2656 "Zend/zend_language_scanner.c"
+#line 2664 "Zend/zend_language_scanner.c"
 yy128:
                YYDEBUG(128, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2686,7 +2694,7 @@ yy131:
 yy133:
                YYDEBUG(133, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2221 "Zend/zend_language_scanner.l"
+#line 2229 "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;
@@ -2696,18 +2704,18 @@ yy133:
        }
        return T_VARIABLE;
 }
-#line 2700 "Zend/zend_language_scanner.c"
+#line 2708 "Zend/zend_language_scanner.c"
 yy134:
                YYDEBUG(134, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(135, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1830 "Zend/zend_language_scanner.l"
+#line 1838 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 2711 "Zend/zend_language_scanner.c"
+#line 2719 "Zend/zend_language_scanner.c"
 yy136:
                YYDEBUG(136, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2718,7 +2726,7 @@ yy137:
                ++YYCURSOR;
                YYDEBUG(138, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2207 "Zend/zend_language_scanner.l"
+#line 2215 "Zend/zend_language_scanner.l"
                {
        yyleng--;
        yyless(yyleng);
@@ -2732,7 +2740,7 @@ yy137:
        }
        return T_VARIABLE;
 }
-#line 2736 "Zend/zend_language_scanner.c"
+#line 2744 "Zend/zend_language_scanner.c"
 yy139:
                YYDEBUG(139, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2750,7 +2758,7 @@ yy140:
                ++YYCURSOR;
                YYDEBUG(141, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2191 "Zend/zend_language_scanner.l"
+#line 2199 "Zend/zend_language_scanner.l"
                {
        yyleng -= 3;
        yyless(yyleng);
@@ -2764,7 +2772,7 @@ yy140:
        }
        return T_VARIABLE;
 }
-#line 2768 "Zend/zend_language_scanner.c"
+#line 2776 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_END_HEREDOC:
@@ -2775,7 +2783,7 @@ yyc_ST_END_HEREDOC:
        ++YYCURSOR;
        YYDEBUG(145, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 2553 "Zend/zend_language_scanner.l"
+#line 2561 "Zend/zend_language_scanner.l"
        {
        SCNG(yy_text) = Z_STRVAL_P(zendlval) = CG(heredoc);
        SCNG(yy_leng) = Z_STRLEN_P(zendlval) = CG(heredoc_len);
@@ -2784,7 +2792,7 @@ yyc_ST_END_HEREDOC:
        BEGIN(ST_IN_SCRIPTING);
        return T_END_HEREDOC;
 }
-#line 2788 "Zend/zend_language_scanner.c"
+#line 2796 "Zend/zend_language_scanner.c"
 /* *********************************** */
 yyc_ST_END_NOWDOC:
        YYDEBUG(146, *YYCURSOR);
@@ -2794,7 +2802,7 @@ yyc_ST_END_NOWDOC:
        ++YYCURSOR;
        YYDEBUG(149, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 2745 "Zend/zend_language_scanner.l"
+#line 2753 "Zend/zend_language_scanner.l"
        {
        SCNG(yy_text) = Z_STRVAL_P(zendlval) = CG(heredoc);
        SCNG(yy_leng) = Z_STRLEN_P(zendlval) = CG(heredoc_len);
@@ -2803,7 +2811,7 @@ yyc_ST_END_NOWDOC:
        BEGIN(ST_IN_SCRIPTING);
        return T_END_NOWDOC;
 }
-#line 2807 "Zend/zend_language_scanner.c"
+#line 2815 "Zend/zend_language_scanner.c"
 /* *********************************** */
 yyc_ST_HEREDOC:
        {
@@ -2860,7 +2868,7 @@ yyc_ST_HEREDOC:
 yy152:
                YYDEBUG(152, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2628 "Zend/zend_language_scanner.l"
+#line 2636 "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 +2877,7 @@ yy152:
                return T_ENCAPSED_AND_WHITESPACE;
        }
 }
-#line 2873 "Zend/zend_language_scanner.c"
+#line 2881 "Zend/zend_language_scanner.c"
 yy153:
                YYDEBUG(153, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2915,13 +2923,13 @@ yy154:
 yy155:
                YYDEBUG(155, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2564 "Zend/zend_language_scanner.l"
+#line 2572 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return T_CURLY_OPEN;
 }
-#line 2925 "Zend/zend_language_scanner.c"
+#line 2933 "Zend/zend_language_scanner.c"
 yy156:
                YYDEBUG(156, *YYCURSOR);
                yyaccept = 0;
@@ -3172,7 +3180,7 @@ yy172:
 yy174:
                YYDEBUG(174, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2637 "Zend/zend_language_scanner.l"
+#line 2645 "Zend/zend_language_scanner.l"
                {
        yyleng--;
        yyless(yyleng);
@@ -3184,7 +3192,7 @@ yy174:
                return T_ENCAPSED_AND_WHITESPACE;
        }
 }
-#line 3188 "Zend/zend_language_scanner.c"
+#line 3196 "Zend/zend_language_scanner.c"
 yy175:
                YYDEBUG(175, *YYCURSOR);
                yyaccept = 2;
@@ -3283,7 +3291,7 @@ yy181:
                ++YYCURSOR;
                YYDEBUG(182, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2508 "Zend/zend_language_scanner.l"
+#line 2516 "Zend/zend_language_scanner.l"
                {
        char *end = yytext + yyleng - 1;
 
@@ -3328,7 +3336,7 @@ yy181:
                yymore();
        }
 }
-#line 3332 "Zend/zend_language_scanner.c"
+#line 3340 "Zend/zend_language_scanner.c"
 yy183:
                YYDEBUG(183, *YYCURSOR);
                yyaccept = 2;
@@ -3588,7 +3596,7 @@ yy202:
 yy204:
                YYDEBUG(204, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2221 "Zend/zend_language_scanner.l"
+#line 2229 "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;
@@ -3598,18 +3606,18 @@ yy204:
        }
        return T_VARIABLE;
 }
-#line 3602 "Zend/zend_language_scanner.c"
+#line 3610 "Zend/zend_language_scanner.c"
 yy205:
                YYDEBUG(205, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(206, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1830 "Zend/zend_language_scanner.l"
+#line 1838 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 3613 "Zend/zend_language_scanner.c"
+#line 3621 "Zend/zend_language_scanner.c"
 yy207:
                YYDEBUG(207, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3620,7 +3628,7 @@ yy208:
                ++YYCURSOR;
                YYDEBUG(209, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2207 "Zend/zend_language_scanner.l"
+#line 2215 "Zend/zend_language_scanner.l"
                {
        yyleng--;
        yyless(yyleng);
@@ -3634,7 +3642,7 @@ yy208:
        }
        return T_VARIABLE;
 }
-#line 3638 "Zend/zend_language_scanner.c"
+#line 3646 "Zend/zend_language_scanner.c"
 yy210:
                YYDEBUG(210, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3652,7 +3660,7 @@ yy211:
                ++YYCURSOR;
                YYDEBUG(212, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2191 "Zend/zend_language_scanner.l"
+#line 2199 "Zend/zend_language_scanner.l"
                {
        yyleng -= 3;
        yyless(yyleng);
@@ -3666,7 +3674,7 @@ yy211:
        }
        return T_VARIABLE;
 }
-#line 3670 "Zend/zend_language_scanner.c"
+#line 3678 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_IN_SCRIPTING:
@@ -3881,7 +3889,7 @@ yy215:
 yy216:
                YYDEBUG(216, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2250 "Zend/zend_language_scanner.l"
+#line 2258 "Zend/zend_language_scanner.l"
                {
        if (!zend_copy_scanner_string(zendlval, yytext, yyleng, UG(unicode)?IS_UNICODE:IS_STRING, SCNG(output_conv) TSRMLS_CC)) {
                return 0;
@@ -3891,7 +3899,7 @@ yy216:
        }
        return T_STRING;
 }
-#line 3895 "Zend/zend_language_scanner.c"
+#line 3903 "Zend/zend_language_scanner.c"
 yy217:
                YYDEBUG(217, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4138,11 +4146,11 @@ yy229:
 yy230:
                YYDEBUG(230, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1819 "Zend/zend_language_scanner.l"
+#line 1827 "Zend/zend_language_scanner.l"
                {
        return yytext[0];
 }
-#line 4146 "Zend/zend_language_scanner.c"
+#line 4154 "Zend/zend_language_scanner.c"
 yy231:
                YYDEBUG(231, *YYCURSOR);
                ++YYCURSOR;
@@ -4151,7 +4159,7 @@ yy231:
 yy232:
                YYDEBUG(232, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1550 "Zend/zend_language_scanner.l"
+#line 1558 "Zend/zend_language_scanner.l"
                {
        Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
        Z_STRLEN_P(zendlval) = yyleng;
@@ -4159,7 +4167,7 @@ yy232:
        HANDLE_NEWLINES(yytext, yyleng);
        return T_WHITESPACE;
 }
-#line 4163 "Zend/zend_language_scanner.c"
+#line 4171 "Zend/zend_language_scanner.c"
 yy233:
                YYDEBUG(233, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4392,18 +4400,18 @@ yy257:
                ++YYCURSOR;
                YYDEBUG(258, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1824 "Zend/zend_language_scanner.l"
+#line 1832 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return '{';
 }
-#line 4401 "Zend/zend_language_scanner.c"
+#line 4409 "Zend/zend_language_scanner.c"
 yy259:
                YYDEBUG(259, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(260, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1836 "Zend/zend_language_scanner.l"
+#line 1844 "Zend/zend_language_scanner.l"
                {
        RESET_DOC_COMMENT();
        if (!zend_stack_is_empty(&SCNG(state_stack))) {
@@ -4411,7 +4419,7 @@ yy259:
        }
        return '}';
 }
-#line 4415 "Zend/zend_language_scanner.c"
+#line 4423 "Zend/zend_language_scanner.c"
 yy261:
                YYDEBUG(261, *YYCURSOR);
                yyaccept = 2;
@@ -4434,7 +4442,7 @@ yy261:
 yy262:
                YYDEBUG(262, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1866 "Zend/zend_language_scanner.l"
+#line 1874 "Zend/zend_language_scanner.l"
                {
        if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
                Z_LVAL_P(zendlval) = strtol(yytext, NULL, 0);
@@ -4455,7 +4463,7 @@ yy262:
        Z_TYPE_P(zendlval) = IS_LONG;
        return T_LNUMBER;
 }
-#line 4459 "Zend/zend_language_scanner.c"
+#line 4467 "Zend/zend_language_scanner.c"
 yy263:
                YYDEBUG(263, *YYCURSOR);
                yyaccept = 2;
@@ -4483,12 +4491,12 @@ yy265:
 yy266:
                YYDEBUG(266, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2268 "Zend/zend_language_scanner.l"
+#line 2276 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_ONE_LINE_COMMENT);
        yymore();
 }
-#line 4492 "Zend/zend_language_scanner.c"
+#line 4500 "Zend/zend_language_scanner.c"
 yy267:
                YYDEBUG(267, *YYCURSOR);
                yyaccept = 3;
@@ -4497,12 +4505,12 @@ yy267:
 yy268:
                YYDEBUG(268, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2415 "Zend/zend_language_scanner.l"
+#line 2423 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_DOUBLE_QUOTES);
        return '"';
 }
-#line 4506 "Zend/zend_language_scanner.c"
+#line 4514 "Zend/zend_language_scanner.c"
 yy269:
                YYDEBUG(269, *YYCURSOR);
                yyaccept = 4;
@@ -4511,23 +4519,23 @@ yy269:
 yy270:
                YYDEBUG(270, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2768 "Zend/zend_language_scanner.l"
+#line 2776 "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 4520 "Zend/zend_language_scanner.c"
+#line 4528 "Zend/zend_language_scanner.c"
 yy271:
                YYDEBUG(271, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(272, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2467 "Zend/zend_language_scanner.l"
+#line 2475 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_BACKQUOTE);
        return '`';
 }
-#line 4531 "Zend/zend_language_scanner.c"
+#line 4539 "Zend/zend_language_scanner.c"
 yy273:
                YYDEBUG(273, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4553,7 +4561,7 @@ yy277:
                ++YYCURSOR;
                YYDEBUG(278, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2399 "Zend/zend_language_scanner.l"
+#line 2407 "Zend/zend_language_scanner.l"
                {
        if (UG(unicode)) {
                return zend_scan_unicode_single_string(zendlval TSRMLS_CC);
@@ -4562,7 +4570,7 @@ yy277:
                return T_CONSTANT_ENCAPSED_STRING;
        }
 }
-#line 4566 "Zend/zend_language_scanner.c"
+#line 4574 "Zend/zend_language_scanner.c"
 yy279:
                YYDEBUG(279, *YYCURSOR);
                ++YYCURSOR;
@@ -4663,7 +4671,7 @@ yy287:
                ++YYCURSOR;
                YYDEBUG(288, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2383 "Zend/zend_language_scanner.l"
+#line 2391 "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);
@@ -4672,7 +4680,7 @@ yy287:
                return T_CONSTANT_ENCAPSED_STRING;
        }
 }
-#line 4676 "Zend/zend_language_scanner.c"
+#line 4684 "Zend/zend_language_scanner.c"
 yy289:
                YYDEBUG(289, *YYCURSOR);
                ++YYCURSOR;
@@ -4705,13 +4713,13 @@ yy292:
 yy294:
                YYDEBUG(294, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1927 "Zend/zend_language_scanner.l"
+#line 1935 "Zend/zend_language_scanner.l"
                {
        Z_DVAL_P(zendlval) = zend_strtod(yytext, NULL);
        Z_TYPE_P(zendlval) = IS_DOUBLE;
        return T_DNUMBER;
 }
-#line 4715 "Zend/zend_language_scanner.c"
+#line 4723 "Zend/zend_language_scanner.c"
 yy295:
                YYDEBUG(295, *YYCURSOR);
                yyaccept = 2;
@@ -4773,7 +4781,7 @@ yy302:
                }
                YYDEBUG(304, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1887 "Zend/zend_language_scanner.l"
+#line 1895 "Zend/zend_language_scanner.l"
                {
        char *hex = yytext + 2; /* Skip "0x" */
        int len = yyleng - 2;
@@ -4794,7 +4802,7 @@ yy302:
                return T_DNUMBER;
        }
 }
-#line 4798 "Zend/zend_language_scanner.c"
+#line 4806 "Zend/zend_language_scanner.c"
 yy305:
                YYDEBUG(305, *YYCURSOR);
                ++YYCURSOR;
@@ -4803,7 +4811,7 @@ yy305:
 yy306:
                YYDEBUG(306, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2357 "Zend/zend_language_scanner.l"
+#line 2365 "Zend/zend_language_scanner.l"
                {
        Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
        Z_STRLEN_P(zendlval) = yyleng;
@@ -4811,7 +4819,7 @@ yy306:
        BEGIN(INITIAL);
        return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
 }
-#line 4815 "Zend/zend_language_scanner.c"
+#line 4823 "Zend/zend_language_scanner.c"
 yy307:
                YYDEBUG(307, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4845,7 +4853,7 @@ yy309:
 yy311:
                YYDEBUG(311, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2221 "Zend/zend_language_scanner.l"
+#line 2229 "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;
@@ -4855,7 +4863,7 @@ yy311:
        }
        return T_VARIABLE;
 }
-#line 4859 "Zend/zend_language_scanner.c"
+#line 4867 "Zend/zend_language_scanner.c"
 yy312:
                YYDEBUG(312, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4869,11 +4877,11 @@ yy313:
                }
                YYDEBUG(314, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1807 "Zend/zend_language_scanner.l"
+#line 1815 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_XOR;
 }
-#line 4877 "Zend/zend_language_scanner.c"
+#line 4885 "Zend/zend_language_scanner.c"
 yy315:
                YYDEBUG(315, *YYCURSOR);
                ++YYCURSOR;
@@ -4882,61 +4890,61 @@ yy315:
                }
                YYDEBUG(316, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1799 "Zend/zend_language_scanner.l"
+#line 1807 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_OR;
 }
-#line 4890 "Zend/zend_language_scanner.c"
+#line 4898 "Zend/zend_language_scanner.c"
 yy317:
                YYDEBUG(317, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(318, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1787 "Zend/zend_language_scanner.l"
+#line 1795 "Zend/zend_language_scanner.l"
                {
        return T_XOR_EQUAL;
 }
-#line 4900 "Zend/zend_language_scanner.c"
+#line 4908 "Zend/zend_language_scanner.c"
 yy319:
                YYDEBUG(319, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(320, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1791 "Zend/zend_language_scanner.l"
+#line 1799 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_OR;
 }
-#line 4910 "Zend/zend_language_scanner.c"
+#line 4918 "Zend/zend_language_scanner.c"
 yy321:
                YYDEBUG(321, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(322, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1783 "Zend/zend_language_scanner.l"
+#line 1791 "Zend/zend_language_scanner.l"
                {
        return T_OR_EQUAL;
 }
-#line 4920 "Zend/zend_language_scanner.c"
+#line 4928 "Zend/zend_language_scanner.c"
 yy323:
                YYDEBUG(323, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(324, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1795 "Zend/zend_language_scanner.l"
+#line 1803 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_AND;
 }
-#line 4930 "Zend/zend_language_scanner.c"
+#line 4938 "Zend/zend_language_scanner.c"
 yy325:
                YYDEBUG(325, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(326, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1779 "Zend/zend_language_scanner.l"
+#line 1787 "Zend/zend_language_scanner.l"
                {
        return T_AND_EQUAL;
 }
-#line 4940 "Zend/zend_language_scanner.c"
+#line 4948 "Zend/zend_language_scanner.c"
 yy327:
                YYDEBUG(327, *YYCURSOR);
                ++YYCURSOR;
@@ -4945,7 +4953,7 @@ yy327:
 yy328:
                YYDEBUG(328, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2366 "Zend/zend_language_scanner.l"
+#line 2374 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                BEGIN(INITIAL);
@@ -4959,17 +4967,17 @@ yy328:
                return yytext[0];
        }
 }
-#line 4963 "Zend/zend_language_scanner.c"
+#line 4971 "Zend/zend_language_scanner.c"
 yy329:
                YYDEBUG(329, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(330, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1767 "Zend/zend_language_scanner.l"
+#line 1775 "Zend/zend_language_scanner.l"
                {
        return T_MOD_EQUAL;
 }
-#line 4973 "Zend/zend_language_scanner.c"
+#line 4981 "Zend/zend_language_scanner.c"
 yy331:
                YYDEBUG(331, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5000,11 +5008,11 @@ yy335:
                ++YYCURSOR;
                YYDEBUG(336, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1763 "Zend/zend_language_scanner.l"
+#line 1771 "Zend/zend_language_scanner.l"
                {
        return T_CONCAT_EQUAL;
 }
-#line 5008 "Zend/zend_language_scanner.c"
+#line 5016 "Zend/zend_language_scanner.c"
 yy337:
                YYDEBUG(337, *YYCURSOR);
                yyaccept = 6;
@@ -5013,12 +5021,12 @@ yy337:
 yy338:
                YYDEBUG(338, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2324 "Zend/zend_language_scanner.l"
+#line 2332 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_COMMENT);
        yymore();
 }
-#line 5022 "Zend/zend_language_scanner.c"
+#line 5030 "Zend/zend_language_scanner.c"
 yy339:
                YYDEBUG(339, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5028,11 +5036,11 @@ yy340:
                ++YYCURSOR;
                YYDEBUG(341, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1759 "Zend/zend_language_scanner.l"
+#line 1767 "Zend/zend_language_scanner.l"
                {
        return T_DIV_EQUAL;
 }
-#line 5036 "Zend/zend_language_scanner.c"
+#line 5044 "Zend/zend_language_scanner.c"
 yy342:
                YYDEBUG(342, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5051,54 +5059,54 @@ yy343:
                }
                YYDEBUG(345, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2318 "Zend/zend_language_scanner.l"
+#line 2326 "Zend/zend_language_scanner.l"
                {
        RESET_DOC_COMMENT();
        BEGIN(ST_DOC_COMMENT);
        yymore();
 }
-#line 5061 "Zend/zend_language_scanner.c"
+#line 5069 "Zend/zend_language_scanner.c"
 yy346:
                YYDEBUG(346, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(347, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1755 "Zend/zend_language_scanner.l"
+#line 1763 "Zend/zend_language_scanner.l"
                {
        return T_MUL_EQUAL;
 }
-#line 5071 "Zend/zend_language_scanner.c"
+#line 5079 "Zend/zend_language_scanner.c"
 yy348:
                YYDEBUG(348, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy352;
                YYDEBUG(349, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1815 "Zend/zend_language_scanner.l"
+#line 1823 "Zend/zend_language_scanner.l"
                {
        return T_SR;
 }
-#line 5082 "Zend/zend_language_scanner.c"
+#line 5090 "Zend/zend_language_scanner.c"
 yy350:
                YYDEBUG(350, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(351, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1743 "Zend/zend_language_scanner.l"
+#line 1751 "Zend/zend_language_scanner.l"
                {
        return T_IS_GREATER_OR_EQUAL;
 }
-#line 5092 "Zend/zend_language_scanner.c"
+#line 5100 "Zend/zend_language_scanner.c"
 yy352:
                YYDEBUG(352, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(353, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1775 "Zend/zend_language_scanner.l"
+#line 1783 "Zend/zend_language_scanner.l"
                {
        return T_SR_EQUAL;
 }
-#line 5102 "Zend/zend_language_scanner.c"
+#line 5110 "Zend/zend_language_scanner.c"
 yy354:
                YYDEBUG(354, *YYCURSOR);
                yyaccept = 7;
@@ -5109,11 +5117,11 @@ yy354:
 yy355:
                YYDEBUG(355, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1811 "Zend/zend_language_scanner.l"
+#line 1819 "Zend/zend_language_scanner.l"
                {
        return T_SL;
 }
-#line 5117 "Zend/zend_language_scanner.c"
+#line 5125 "Zend/zend_language_scanner.c"
 yy356:
                YYDEBUG(356, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5125,22 +5133,22 @@ yy357:
                ++YYCURSOR;
                YYDEBUG(358, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1739 "Zend/zend_language_scanner.l"
+#line 1747 "Zend/zend_language_scanner.l"
                {
        return T_IS_SMALLER_OR_EQUAL;
 }
-#line 5133 "Zend/zend_language_scanner.c"
+#line 5141 "Zend/zend_language_scanner.c"
 yy359:
                YYDEBUG(359, *YYCURSOR);
                ++YYCURSOR;
 yy360:
                YYDEBUG(360, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1735 "Zend/zend_language_scanner.l"
+#line 1743 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_EQUAL;
 }
-#line 5144 "Zend/zend_language_scanner.c"
+#line 5152 "Zend/zend_language_scanner.c"
 yy361:
                YYDEBUG(361, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5191,11 +5199,11 @@ yy368:
                ++YYCURSOR;
                YYDEBUG(369, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1771 "Zend/zend_language_scanner.l"
+#line 1779 "Zend/zend_language_scanner.l"
                {
        return T_SL_EQUAL;
 }
-#line 5199 "Zend/zend_language_scanner.c"
+#line 5207 "Zend/zend_language_scanner.c"
 yy370:
                YYDEBUG(370, *YYCURSOR);
                ++YYCURSOR;
@@ -5302,7 +5310,7 @@ yy379:
 yy380:
                YYDEBUG(380, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2446 "Zend/zend_language_scanner.l"
+#line 2454 "Zend/zend_language_scanner.l"
                {
        char *s;
 
@@ -5322,7 +5330,7 @@ yy380:
        BEGIN(ST_START_HEREDOC);
        return T_START_HEREDOC;
 }
-#line 5326 "Zend/zend_language_scanner.c"
+#line 5334 "Zend/zend_language_scanner.c"
 yy381:
                YYDEBUG(381, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5364,7 +5372,7 @@ yy385:
 yy386:
                YYDEBUG(386, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2652 "Zend/zend_language_scanner.l"
+#line 2660 "Zend/zend_language_scanner.l"
                {
        int bprefix = (yytext[0] != '<') ? 1 : 0;
        char *s;
@@ -5383,7 +5391,7 @@ yy386:
        BEGIN(ST_START_NOWDOC);
        return T_START_NOWDOC;
 }
-#line 5387 "Zend/zend_language_scanner.c"
+#line 5395 "Zend/zend_language_scanner.c"
 yy387:
                YYDEBUG(387, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5397,31 +5405,31 @@ yy388:
                ++YYCURSOR;
                YYDEBUG(390, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1727 "Zend/zend_language_scanner.l"
+#line 1735 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_IDENTICAL;
 }
-#line 5405 "Zend/zend_language_scanner.c"
+#line 5413 "Zend/zend_language_scanner.c"
 yy391:
                YYDEBUG(391, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(392, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1747 "Zend/zend_language_scanner.l"
+#line 1755 "Zend/zend_language_scanner.l"
                {
        return T_PLUS_EQUAL;
 }
-#line 5415 "Zend/zend_language_scanner.c"
+#line 5423 "Zend/zend_language_scanner.c"
 yy393:
                YYDEBUG(393, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(394, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1715 "Zend/zend_language_scanner.l"
+#line 1723 "Zend/zend_language_scanner.l"
                {
        return T_INC;
 }
-#line 5425 "Zend/zend_language_scanner.c"
+#line 5433 "Zend/zend_language_scanner.c"
 yy395:
                YYDEBUG(395, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5440,42 +5448,42 @@ yy397:
                }
                YYDEBUG(398, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1707 "Zend/zend_language_scanner.l"
+#line 1715 "Zend/zend_language_scanner.l"
                {
        return T_LIST;
 }
-#line 5448 "Zend/zend_language_scanner.c"
+#line 5456 "Zend/zend_language_scanner.c"
 yy399:
                YYDEBUG(399, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy403;
                YYDEBUG(400, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1731 "Zend/zend_language_scanner.l"
+#line 1739 "Zend/zend_language_scanner.l"
                {
        return T_IS_EQUAL;
 }
-#line 5459 "Zend/zend_language_scanner.c"
+#line 5467 "Zend/zend_language_scanner.c"
 yy401:
                YYDEBUG(401, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(402, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1703 "Zend/zend_language_scanner.l"
+#line 1711 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_ARROW;
 }
-#line 5469 "Zend/zend_language_scanner.c"
+#line 5477 "Zend/zend_language_scanner.c"
 yy403:
                YYDEBUG(403, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(404, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1723 "Zend/zend_language_scanner.l"
+#line 1731 "Zend/zend_language_scanner.l"
                {
        return T_IS_IDENTICAL;
 }
-#line 5479 "Zend/zend_language_scanner.c"
+#line 5487 "Zend/zend_language_scanner.c"
 yy405:
                YYDEBUG(405, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5567,7 +5575,7 @@ yy412:
                }
                YYDEBUG(423, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2055 "Zend/zend_language_scanner.l"
+#line 2063 "Zend/zend_language_scanner.l"
                {
        if (CG(current_namespace)) {
                *zendlval = *CG(current_namespace);
@@ -5577,7 +5585,7 @@ yy412:
        }
        return T_NS_C;
 }
-#line 5581 "Zend/zend_language_scanner.c"
+#line 5589 "Zend/zend_language_scanner.c"
 yy424:
                YYDEBUG(424, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5595,7 +5603,7 @@ yy424:
                }
                YYDEBUG(428, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2028 "Zend/zend_language_scanner.l"
+#line 2036 "Zend/zend_language_scanner.l"
                {
        char *filename = zend_get_compiled_filename(TSRMLS_C);
        const size_t filename_len = strlen(filename);
@@ -5622,7 +5630,7 @@ yy424:
        zendlval->type = IS_STRING;
        return T_DIR;
 }
-#line 5626 "Zend/zend_language_scanner.c"
+#line 5634 "Zend/zend_language_scanner.c"
 yy429:
                YYDEBUG(429, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5643,13 +5651,13 @@ yy429:
                }
                YYDEBUG(434, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2012 "Zend/zend_language_scanner.l"
+#line 2020 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = CG(zend_lineno);
        Z_TYPE_P(zendlval) = IS_LONG;
        return T_LINE;
 }
-#line 5653 "Zend/zend_language_scanner.c"
+#line 5661 "Zend/zend_language_scanner.c"
 yy435:
                YYDEBUG(435, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5676,7 +5684,7 @@ yy435:
                }
                YYDEBUG(442, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1963 "Zend/zend_language_scanner.l"
+#line 1971 "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;
@@ -5725,7 +5733,7 @@ yy435:
        }
        return T_METHOD_C;
 }
-#line 5729 "Zend/zend_language_scanner.c"
+#line 5737 "Zend/zend_language_scanner.c"
 yy443:
                YYDEBUG(443, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5763,7 +5771,7 @@ yy444:
                }
                YYDEBUG(453, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1948 "Zend/zend_language_scanner.l"
+#line 1956 "Zend/zend_language_scanner.l"
                {
        zstr func_name = NULL_ZSTR;
 
@@ -5778,7 +5786,7 @@ yy444:
        }
        return T_FUNC_C;
 }
-#line 5782 "Zend/zend_language_scanner.c"
+#line 5790 "Zend/zend_language_scanner.c"
 yy454:
                YYDEBUG(454, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5796,7 +5804,7 @@ yy454:
                }
                YYDEBUG(458, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2018 "Zend/zend_language_scanner.l"
+#line 2026 "Zend/zend_language_scanner.l"
                {
        char *filename = zend_get_compiled_filename(TSRMLS_C);
 
@@ -5806,7 +5814,7 @@ yy454:
        ZVAL_RT_STRING(zendlval, filename, 1);
        return T_FILE;
 }
-#line 5810 "Zend/zend_language_scanner.c"
+#line 5818 "Zend/zend_language_scanner.c"
 yy459:
                YYDEBUG(459, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5830,7 +5838,7 @@ yy459:
                }
                YYDEBUG(465, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1933 "Zend/zend_language_scanner.l"
+#line 1941 "Zend/zend_language_scanner.l"
                {
        zstr class_name = NULL_ZSTR;
 
@@ -5845,7 +5853,7 @@ yy459:
        }
        return T_CLASS_C;
 }
-#line 5849 "Zend/zend_language_scanner.c"
+#line 5857 "Zend/zend_language_scanner.c"
 yy466:
                YYDEBUG(466, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5907,11 +5915,11 @@ yy477:
                }
                YYDEBUG(478, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1671 "Zend/zend_language_scanner.l"
+#line 1679 "Zend/zend_language_scanner.l"
                {
        return T_HALT_COMPILER;
 }
-#line 5915 "Zend/zend_language_scanner.c"
+#line 5923 "Zend/zend_language_scanner.c"
 yy479:
                YYDEBUG(479, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5931,11 +5939,11 @@ yy481:
                }
                YYDEBUG(482, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1655 "Zend/zend_language_scanner.l"
+#line 1663 "Zend/zend_language_scanner.l"
                {
        return T_USE;
 }
-#line 5939 "Zend/zend_language_scanner.c"
+#line 5947 "Zend/zend_language_scanner.c"
 yy483:
                YYDEBUG(483, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5954,11 +5962,11 @@ yy485:
                }
                YYDEBUG(486, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1699 "Zend/zend_language_scanner.l"
+#line 1707 "Zend/zend_language_scanner.l"
                {
        return T_UNSET;
 }
-#line 5962 "Zend/zend_language_scanner.c"
+#line 5970 "Zend/zend_language_scanner.c"
 yy487:
                YYDEBUG(487, *YYCURSOR);
                ++YYCURSOR;
@@ -6130,11 +6138,11 @@ yy502:
                ++YYCURSOR;
                YYDEBUG(504, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1595 "Zend/zend_language_scanner.l"
+#line 1603 "Zend/zend_language_scanner.l"
                {
        return T_INT_CAST;
 }
-#line 6138 "Zend/zend_language_scanner.c"
+#line 6146 "Zend/zend_language_scanner.c"
 yy505:
                YYDEBUG(505, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6178,11 +6186,11 @@ yy510:
                ++YYCURSOR;
                YYDEBUG(513, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1599 "Zend/zend_language_scanner.l"
+#line 1607 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_CAST;
 }
-#line 6186 "Zend/zend_language_scanner.c"
+#line 6194 "Zend/zend_language_scanner.c"
 yy514:
                YYDEBUG(514, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6252,11 +6260,11 @@ yy524:
                ++YYCURSOR;
                YYDEBUG(527, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1603 "Zend/zend_language_scanner.l"
+#line 1611 "Zend/zend_language_scanner.l"
                {
        return T_STRING_CAST;
 }
-#line 6260 "Zend/zend_language_scanner.c"
+#line 6268 "Zend/zend_language_scanner.c"
 yy528:
                YYDEBUG(528, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6289,11 +6297,11 @@ yy531:
                ++YYCURSOR;
                YYDEBUG(534, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1615 "Zend/zend_language_scanner.l"
+#line 1623 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY_CAST;
 }
-#line 6297 "Zend/zend_language_scanner.c"
+#line 6305 "Zend/zend_language_scanner.c"
 yy535:
                YYDEBUG(535, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6331,11 +6339,11 @@ yy539:
                ++YYCURSOR;
                YYDEBUG(542, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1619 "Zend/zend_language_scanner.l"
+#line 1627 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_CAST;
 }
-#line 6339 "Zend/zend_language_scanner.c"
+#line 6347 "Zend/zend_language_scanner.c"
 yy543:
                YYDEBUG(543, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6376,11 +6384,11 @@ yy548:
                ++YYCURSOR;
                YYDEBUG(550, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1623 "Zend/zend_language_scanner.l"
+#line 1631 "Zend/zend_language_scanner.l"
                {
        return T_BOOL_CAST;
 }
-#line 6384 "Zend/zend_language_scanner.c"
+#line 6392 "Zend/zend_language_scanner.c"
 yy551:
                YYDEBUG(551, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6424,11 +6432,11 @@ yy556:
                ++YYCURSOR;
                YYDEBUG(559, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1611 "Zend/zend_language_scanner.l"
+#line 1619 "Zend/zend_language_scanner.l"
                {
        return T_BINARY_CAST;
 }
-#line 6432 "Zend/zend_language_scanner.c"
+#line 6440 "Zend/zend_language_scanner.c"
 yy560:
                YYDEBUG(560, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6485,11 +6493,11 @@ yy566:
                ++YYCURSOR;
                YYDEBUG(569, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1607 "Zend/zend_language_scanner.l"
+#line 1615 "Zend/zend_language_scanner.l"
                {
        return T_UNICODE_CAST;
 }
-#line 6493 "Zend/zend_language_scanner.c"
+#line 6501 "Zend/zend_language_scanner.c"
 yy570:
                YYDEBUG(570, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6512,11 +6520,11 @@ yy571:
                ++YYCURSOR;
                YYDEBUG(574, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1627 "Zend/zend_language_scanner.l"
+#line 1635 "Zend/zend_language_scanner.l"
                {
        return T_UNSET_CAST;
 }
-#line 6520 "Zend/zend_language_scanner.c"
+#line 6528 "Zend/zend_language_scanner.c"
 yy575:
                YYDEBUG(575, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6530,11 +6538,11 @@ yy576:
                }
                YYDEBUG(577, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1591 "Zend/zend_language_scanner.l"
+#line 1599 "Zend/zend_language_scanner.l"
                {
        return T_VAR;
 }
-#line 6538 "Zend/zend_language_scanner.c"
+#line 6546 "Zend/zend_language_scanner.c"
 yy578:
                YYDEBUG(578, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6554,11 +6562,11 @@ yy580:
                }
                YYDEBUG(581, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1583 "Zend/zend_language_scanner.l"
+#line 1591 "Zend/zend_language_scanner.l"
                {
        return T_NEW;
 }
-#line 6562 "Zend/zend_language_scanner.c"
+#line 6570 "Zend/zend_language_scanner.c"
 yy582:
                YYDEBUG(582, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6597,21 +6605,21 @@ yy588:
                }
                YYDEBUG(589, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1651 "Zend/zend_language_scanner.l"
+#line 1659 "Zend/zend_language_scanner.l"
                {
        return T_NAMESPACE;
 }
-#line 6605 "Zend/zend_language_scanner.c"
+#line 6613 "Zend/zend_language_scanner.c"
 yy590:
                YYDEBUG(590, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(591, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1579 "Zend/zend_language_scanner.l"
+#line 1587 "Zend/zend_language_scanner.l"
                {
        return T_PAAMAYIM_NEKUDOTAYIM;
 }
-#line 6615 "Zend/zend_language_scanner.c"
+#line 6623 "Zend/zend_language_scanner.c"
 yy592:
                YYDEBUG(592, *YYCURSOR);
                ++YYCURSOR;
@@ -6633,32 +6641,32 @@ yy594:
                ++YYCURSOR;
                YYDEBUG(595, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1751 "Zend/zend_language_scanner.l"
+#line 1759 "Zend/zend_language_scanner.l"
                {
        return T_MINUS_EQUAL;
 }
-#line 6641 "Zend/zend_language_scanner.c"
+#line 6649 "Zend/zend_language_scanner.c"
 yy596:
                YYDEBUG(596, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(597, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1719 "Zend/zend_language_scanner.l"
+#line 1727 "Zend/zend_language_scanner.l"
                {
        return T_DEC;
 }
-#line 6651 "Zend/zend_language_scanner.c"
+#line 6659 "Zend/zend_language_scanner.c"
 yy598:
                YYDEBUG(598, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(599, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1545 "Zend/zend_language_scanner.l"
+#line 1553 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
        return T_OBJECT_OPERATOR;
 }
-#line 6662 "Zend/zend_language_scanner.c"
+#line 6670 "Zend/zend_language_scanner.c"
 yy600:
                YYDEBUG(600, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6703,11 +6711,11 @@ yy605:
                }
                YYDEBUG(606, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1695 "Zend/zend_language_scanner.l"
+#line 1703 "Zend/zend_language_scanner.l"
                {
        return T_PUBLIC;
 }
-#line 6711 "Zend/zend_language_scanner.c"
+#line 6719 "Zend/zend_language_scanner.c"
 yy607:
                YYDEBUG(607, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6762,11 +6770,11 @@ yy614:
                }
                YYDEBUG(615, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1691 "Zend/zend_language_scanner.l"
+#line 1699 "Zend/zend_language_scanner.l"
                {
        return T_PROTECTED;
 }
-#line 6770 "Zend/zend_language_scanner.c"
+#line 6778 "Zend/zend_language_scanner.c"
 yy616:
                YYDEBUG(616, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6796,11 +6804,11 @@ yy620:
                }
                YYDEBUG(621, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1687 "Zend/zend_language_scanner.l"
+#line 1695 "Zend/zend_language_scanner.l"
                {
        return T_PRIVATE;
 }
-#line 6804 "Zend/zend_language_scanner.c"
+#line 6812 "Zend/zend_language_scanner.c"
 yy622:
                YYDEBUG(622, *YYCURSOR);
                ++YYCURSOR;
@@ -6809,11 +6817,11 @@ yy622:
                }
                YYDEBUG(623, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1525 "Zend/zend_language_scanner.l"
+#line 1533 "Zend/zend_language_scanner.l"
                {
        return T_PRINT;
 }
-#line 6817 "Zend/zend_language_scanner.c"
+#line 6825 "Zend/zend_language_scanner.c"
 yy624:
                YYDEBUG(624, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6838,11 +6846,11 @@ yy627:
                }
                YYDEBUG(628, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1517 "Zend/zend_language_scanner.l"
+#line 1525 "Zend/zend_language_scanner.l"
                {
        return T_GOTO;
 }
-#line 6846 "Zend/zend_language_scanner.c"
+#line 6854 "Zend/zend_language_scanner.c"
 yy629:
                YYDEBUG(629, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6866,11 +6874,11 @@ yy632:
                }
                YYDEBUG(633, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1659 "Zend/zend_language_scanner.l"
+#line 1667 "Zend/zend_language_scanner.l"
                {
        return T_GLOBAL;
 }
-#line 6874 "Zend/zend_language_scanner.c"
+#line 6882 "Zend/zend_language_scanner.c"
 yy634:
                YYDEBUG(634, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6884,12 +6892,12 @@ yy635:
 yy636:
                YYDEBUG(636, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2420 "Zend/zend_language_scanner.l"
+#line 2428 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_DOUBLE_QUOTES);
        return T_BINARY_DOUBLE;
 }
-#line 6893 "Zend/zend_language_scanner.c"
+#line 6901 "Zend/zend_language_scanner.c"
 yy637:
                YYDEBUG(637, *YYCURSOR);
                ++YYCURSOR;
@@ -6922,11 +6930,11 @@ yy642:
                }
                YYDEBUG(643, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1509 "Zend/zend_language_scanner.l"
+#line 1517 "Zend/zend_language_scanner.l"
                {
        return T_BREAK;
 }
-#line 6930 "Zend/zend_language_scanner.c"
+#line 6938 "Zend/zend_language_scanner.c"
 yy644:
                YYDEBUG(644, *YYCURSOR);
                ++YYCURSOR;
@@ -6938,12 +6946,12 @@ yy645:
                ++YYCURSOR;
                YYDEBUG(646, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2409 "Zend/zend_language_scanner.l"
+#line 2417 "Zend/zend_language_scanner.l"
                {
        zend_scan_binary_single_string(zendlval, yytext+2, yyleng-3 TSRMLS_CC);
        return T_CONSTANT_ENCAPSED_STRING;
 }
-#line 6947 "Zend/zend_language_scanner.c"
+#line 6955 "Zend/zend_language_scanner.c"
 yy647:
                YYDEBUG(647, *YYCURSOR);
                ++YYCURSOR;
@@ -7017,12 +7025,12 @@ yy654:
                ++YYCURSOR;
                YYDEBUG(655, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2393 "Zend/zend_language_scanner.l"
+#line 2401 "Zend/zend_language_scanner.l"
                {
        zend_scan_binary_escape_string(zendlval, yytext+2, yyleng-3, '"' TSRMLS_CC);
        return T_CONSTANT_ENCAPSED_STRING;
 }
-#line 7026 "Zend/zend_language_scanner.c"
+#line 7034 "Zend/zend_language_scanner.c"
 yy656:
                YYDEBUG(656, *YYCURSOR);
                ++YYCURSOR;
@@ -7131,7 +7139,7 @@ yy666:
 yy667:
                YYDEBUG(667, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2425 "Zend/zend_language_scanner.l"
+#line 2433 "Zend/zend_language_scanner.l"
                {
        char *s;
 
@@ -7151,7 +7159,7 @@ yy667:
        BEGIN(ST_START_HEREDOC);
        return T_BINARY_HEREDOC;
 }
-#line 7155 "Zend/zend_language_scanner.c"
+#line 7163 "Zend/zend_language_scanner.c"
 yy668:
                YYDEBUG(668, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7191,11 +7199,11 @@ yy674:
                }
                YYDEBUG(675, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1493 "Zend/zend_language_scanner.l"
+#line 1501 "Zend/zend_language_scanner.l"
                {
        return T_SWITCH;
 }
-#line 7199 "Zend/zend_language_scanner.c"
+#line 7207 "Zend/zend_language_scanner.c"
 yy676:
                YYDEBUG(676, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7219,11 +7227,11 @@ yy679:
                }
                YYDEBUG(680, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1675 "Zend/zend_language_scanner.l"
+#line 1683 "Zend/zend_language_scanner.l"
                {
        return T_STATIC;
 }
-#line 7227 "Zend/zend_language_scanner.c"
+#line 7235 "Zend/zend_language_scanner.c"
 yy681:
                YYDEBUG(681, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7250,11 +7258,11 @@ yy684:
                }
                YYDEBUG(685, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1489 "Zend/zend_language_scanner.l"
+#line 1497 "Zend/zend_language_scanner.l"
                {
        return T_AS;
 }
-#line 7258 "Zend/zend_language_scanner.c"
+#line 7266 "Zend/zend_language_scanner.c"
 yy686:
                YYDEBUG(686, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7273,11 +7281,11 @@ yy688:
                }
                YYDEBUG(689, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1711 "Zend/zend_language_scanner.l"
+#line 1719 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY;
 }
-#line 7281 "Zend/zend_language_scanner.c"
+#line 7289 "Zend/zend_language_scanner.c"
 yy690:
                YYDEBUG(690, *YYCURSOR);
                ++YYCURSOR;
@@ -7286,11 +7294,11 @@ yy690:
                }
                YYDEBUG(691, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1803 "Zend/zend_language_scanner.l"
+#line 1811 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_AND;
 }
-#line 7294 "Zend/zend_language_scanner.c"
+#line 7302 "Zend/zend_language_scanner.c"
 yy692:
                YYDEBUG(692, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7324,11 +7332,11 @@ yy697:
                }
                YYDEBUG(698, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1679 "Zend/zend_language_scanner.l"
+#line 1687 "Zend/zend_language_scanner.l"
                {
        return T_ABSTRACT;
 }
-#line 7332 "Zend/zend_language_scanner.c"
+#line 7340 "Zend/zend_language_scanner.c"
 yy699:
                YYDEBUG(699, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7352,11 +7360,11 @@ yy702:
                }
                YYDEBUG(703, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1449 "Zend/zend_language_scanner.l"
+#line 1457 "Zend/zend_language_scanner.l"
                {
        return T_WHILE;
 }
-#line 7360 "Zend/zend_language_scanner.c"
+#line 7368 "Zend/zend_language_scanner.c"
 yy704:
                YYDEBUG(704, *YYCURSOR);
                ++YYCURSOR;
@@ -7365,11 +7373,11 @@ yy704:
                }
                YYDEBUG(705, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1433 "Zend/zend_language_scanner.l"
+#line 1441 "Zend/zend_language_scanner.l"
                {
        return T_IF;
 }
-#line 7373 "Zend/zend_language_scanner.c"
+#line 7381 "Zend/zend_language_scanner.c"
 yy706:
                YYDEBUG(706, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7421,11 +7429,11 @@ yy711:
                }
                YYDEBUG(712, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1663 "Zend/zend_language_scanner.l"
+#line 1671 "Zend/zend_language_scanner.l"
                {
        return T_ISSET;
 }
-#line 7429 "Zend/zend_language_scanner.c"
+#line 7437 "Zend/zend_language_scanner.c"
 yy713:
                YYDEBUG(713, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7479,11 +7487,11 @@ yy719:
 yy720:
                YYDEBUG(720, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1635 "Zend/zend_language_scanner.l"
+#line 1643 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE;
 }
-#line 7487 "Zend/zend_language_scanner.c"
+#line 7495 "Zend/zend_language_scanner.c"
 yy721:
                YYDEBUG(721, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7512,11 +7520,11 @@ yy725:
                }
                YYDEBUG(726, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1639 "Zend/zend_language_scanner.l"
+#line 1647 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE_ONCE;
 }
-#line 7520 "Zend/zend_language_scanner.c"
+#line 7528 "Zend/zend_language_scanner.c"
 yy727:
                YYDEBUG(727, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7550,11 +7558,11 @@ yy732:
                }
                YYDEBUG(733, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1533 "Zend/zend_language_scanner.l"
+#line 1541 "Zend/zend_language_scanner.l"
                {
        return T_INTERFACE;
 }
-#line 7558 "Zend/zend_language_scanner.c"
+#line 7566 "Zend/zend_language_scanner.c"
 yy734:
                YYDEBUG(734, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7593,11 +7601,11 @@ yy740:
                }
                YYDEBUG(741, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1485 "Zend/zend_language_scanner.l"
+#line 1493 "Zend/zend_language_scanner.l"
                {
        return T_INSTANCEOF;
 }
-#line 7601 "Zend/zend_language_scanner.c"
+#line 7609 "Zend/zend_language_scanner.c"
 yy742:
                YYDEBUG(742, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7641,11 +7649,11 @@ yy749:
                }
                YYDEBUG(750, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1541 "Zend/zend_language_scanner.l"
+#line 1549 "Zend/zend_language_scanner.l"
                {
        return T_IMPLEMENTS;
 }
-#line 7649 "Zend/zend_language_scanner.c"
+#line 7657 "Zend/zend_language_scanner.c"
 yy751:
                YYDEBUG(751, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7665,11 +7673,11 @@ yy753:
                }
                YYDEBUG(754, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1421 "Zend/zend_language_scanner.l"
+#line 1429 "Zend/zend_language_scanner.l"
                {
        return T_TRY;
 }
-#line 7673 "Zend/zend_language_scanner.c"
+#line 7681 "Zend/zend_language_scanner.c"
 yy755:
                YYDEBUG(755, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7688,11 +7696,11 @@ yy757:
                }
                YYDEBUG(758, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1429 "Zend/zend_language_scanner.l"
+#line 1437 "Zend/zend_language_scanner.l"
                {
        return T_THROW;
 }
-#line 7696 "Zend/zend_language_scanner.c"
+#line 7704 "Zend/zend_language_scanner.c"
 yy759:
                YYDEBUG(759, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7753,11 +7761,11 @@ yy765:
 yy766:
                YYDEBUG(766, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1643 "Zend/zend_language_scanner.l"
+#line 1651 "Zend/zend_language_scanner.l"
                {
        return T_REQUIRE;
 }
-#line 7761 "Zend/zend_language_scanner.c"
+#line 7769 "Zend/zend_language_scanner.c"
 yy767:
                YYDEBUG(767, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7786,11 +7794,11 @@ yy771:
                }
                YYDEBUG(772, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1647 "Zend/zend_language_scanner.l"
+#line 1655 "Zend/zend_language_scanner.l"
                {
        return T_REQUIRE_ONCE;
 }
-#line 7794 "Zend/zend_language_scanner.c"
+#line 7802 "Zend/zend_language_scanner.c"
 yy773:
                YYDEBUG(773, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7809,11 +7817,11 @@ yy775:
                }
                YYDEBUG(776, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1417 "Zend/zend_language_scanner.l"
+#line 1425 "Zend/zend_language_scanner.l"
                {
        return T_RETURN;
 }
-#line 7817 "Zend/zend_language_scanner.c"
+#line 7825 "Zend/zend_language_scanner.c"
 yy777:
                YYDEBUG(777, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7894,11 +7902,11 @@ yy786:
                }
                YYDEBUG(787, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1513 "Zend/zend_language_scanner.l"
+#line 1521 "Zend/zend_language_scanner.l"
                {
        return T_CONTINUE;
 }
-#line 7902 "Zend/zend_language_scanner.c"
+#line 7910 "Zend/zend_language_scanner.c"
 yy788:
                YYDEBUG(788, *YYCURSOR);
                ++YYCURSOR;
@@ -7907,11 +7915,11 @@ yy788:
                }
                YYDEBUG(789, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1413 "Zend/zend_language_scanner.l"
+#line 1421 "Zend/zend_language_scanner.l"
                {
        return T_CONST;
 }
-#line 7915 "Zend/zend_language_scanner.c"
+#line 7923 "Zend/zend_language_scanner.c"
 yy790:
                YYDEBUG(790, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7936,11 +7944,11 @@ yy793:
                }
                YYDEBUG(794, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1587 "Zend/zend_language_scanner.l"
+#line 1595 "Zend/zend_language_scanner.l"
                {
        return T_CLONE;
 }
-#line 7944 "Zend/zend_language_scanner.c"
+#line 7952 "Zend/zend_language_scanner.c"
 yy795:
                YYDEBUG(795, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7954,11 +7962,11 @@ yy796:
                }
                YYDEBUG(797, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1529 "Zend/zend_language_scanner.l"
+#line 1537 "Zend/zend_language_scanner.l"
                {
        return T_CLASS;
 }
-#line 7962 "Zend/zend_language_scanner.c"
+#line 7970 "Zend/zend_language_scanner.c"
 yy798:
                YYDEBUG(798, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7978,11 +7986,11 @@ yy800:
                }
                YYDEBUG(801, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1501 "Zend/zend_language_scanner.l"
+#line 1509 "Zend/zend_language_scanner.l"
                {
        return T_CASE;
 }
-#line 7986 "Zend/zend_language_scanner.c"
+#line 7994 "Zend/zend_language_scanner.c"
 yy802:
                YYDEBUG(802, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -7996,11 +8004,11 @@ yy803:
                }
                YYDEBUG(804, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1425 "Zend/zend_language_scanner.l"
+#line 1433 "Zend/zend_language_scanner.l"
                {
        return T_CATCH;
 }
-#line 8004 "Zend/zend_language_scanner.c"
+#line 8012 "Zend/zend_language_scanner.c"
 yy805:
                YYDEBUG(805, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8051,11 +8059,11 @@ yy813:
                }
                YYDEBUG(814, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1409 "Zend/zend_language_scanner.l"
+#line 1417 "Zend/zend_language_scanner.l"
                {
        return T_FUNCTION;
 }
-#line 8059 "Zend/zend_language_scanner.c"
+#line 8067 "Zend/zend_language_scanner.c"
 yy815:
                YYDEBUG(815, *YYCURSOR);
                ++YYCURSOR;
@@ -8079,11 +8087,11 @@ yy815:
 yy816:
                YYDEBUG(816, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1461 "Zend/zend_language_scanner.l"
+#line 1469 "Zend/zend_language_scanner.l"
                {
        return T_FOR;
 }
-#line 8087 "Zend/zend_language_scanner.c"
+#line 8095 "Zend/zend_language_scanner.c"
 yy817:
                YYDEBUG(817, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8107,11 +8115,11 @@ yy820:
                }
                YYDEBUG(821, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1469 "Zend/zend_language_scanner.l"
+#line 1477 "Zend/zend_language_scanner.l"
                {
        return T_FOREACH;
 }
-#line 8115 "Zend/zend_language_scanner.c"
+#line 8123 "Zend/zend_language_scanner.c"
 yy822:
                YYDEBUG(822, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8130,11 +8138,11 @@ yy824:
                }
                YYDEBUG(825, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1683 "Zend/zend_language_scanner.l"
+#line 1691 "Zend/zend_language_scanner.l"
                {
        return T_FINAL;
 }
-#line 8138 "Zend/zend_language_scanner.c"
+#line 8146 "Zend/zend_language_scanner.c"
 yy826:
                YYDEBUG(826, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8165,11 +8173,11 @@ yy828:
                }
                YYDEBUG(829, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1457 "Zend/zend_language_scanner.l"
+#line 1465 "Zend/zend_language_scanner.l"
                {
        return T_DO;
 }
-#line 8173 "Zend/zend_language_scanner.c"
+#line 8181 "Zend/zend_language_scanner.c"
 yy830:
                YYDEBUG(830, *YYCURSOR);
                ++YYCURSOR;
@@ -8178,11 +8186,11 @@ yy830:
                }
                YYDEBUG(831, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1405 "Zend/zend_language_scanner.l"
+#line 1413 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
 }
-#line 8186 "Zend/zend_language_scanner.c"
+#line 8194 "Zend/zend_language_scanner.c"
 yy832:
                YYDEBUG(832, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8217,11 +8225,11 @@ yy837:
                }
                YYDEBUG(838, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1505 "Zend/zend_language_scanner.l"
+#line 1513 "Zend/zend_language_scanner.l"
                {
        return T_DEFAULT;
 }
-#line 8225 "Zend/zend_language_scanner.c"
+#line 8233 "Zend/zend_language_scanner.c"
 yy839:
                YYDEBUG(839, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8245,11 +8253,11 @@ yy842:
                }
                YYDEBUG(843, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1477 "Zend/zend_language_scanner.l"
+#line 1485 "Zend/zend_language_scanner.l"
                {
        return T_DECLARE;
 }
-#line 8253 "Zend/zend_language_scanner.c"
+#line 8261 "Zend/zend_language_scanner.c"
 yy844:
                YYDEBUG(844, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8329,11 +8337,11 @@ yy855:
                }
                YYDEBUG(856, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1537 "Zend/zend_language_scanner.l"
+#line 1545 "Zend/zend_language_scanner.l"
                {
        return T_EXTENDS;
 }
-#line 8337 "Zend/zend_language_scanner.c"
+#line 8345 "Zend/zend_language_scanner.c"
 yy857:
                YYDEBUG(857, *YYCURSOR);
                ++YYCURSOR;
@@ -8342,11 +8350,11 @@ yy857:
                }
                YYDEBUG(858, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1401 "Zend/zend_language_scanner.l"
+#line 1409 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
 }
-#line 8350 "Zend/zend_language_scanner.c"
+#line 8358 "Zend/zend_language_scanner.c"
 yy859:
                YYDEBUG(859, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8360,11 +8368,11 @@ yy860:
                }
                YYDEBUG(861, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1631 "Zend/zend_language_scanner.l"
+#line 1639 "Zend/zend_language_scanner.l"
                {
        return T_EVAL;
 }
-#line 8368 "Zend/zend_language_scanner.c"
+#line 8376 "Zend/zend_language_scanner.c"
 yy862:
                YYDEBUG(862, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8434,11 +8442,11 @@ yy871:
                }
                YYDEBUG(872, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1453 "Zend/zend_language_scanner.l"
+#line 1461 "Zend/zend_language_scanner.l"
                {
        return T_ENDWHILE;
 }
-#line 8442 "Zend/zend_language_scanner.c"
+#line 8450 "Zend/zend_language_scanner.c"
 yy873:
                YYDEBUG(873, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8467,11 +8475,11 @@ yy877:
                }
                YYDEBUG(878, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1497 "Zend/zend_language_scanner.l"
+#line 1505 "Zend/zend_language_scanner.l"
                {
        return T_ENDSWITCH;
 }
-#line 8475 "Zend/zend_language_scanner.c"
+#line 8483 "Zend/zend_language_scanner.c"
 yy879:
                YYDEBUG(879, *YYCURSOR);
                ++YYCURSOR;
@@ -8480,11 +8488,11 @@ yy879:
                }
                YYDEBUG(880, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1441 "Zend/zend_language_scanner.l"
+#line 1449 "Zend/zend_language_scanner.l"
                {
        return T_ENDIF;
 }
-#line 8488 "Zend/zend_language_scanner.c"
+#line 8496 "Zend/zend_language_scanner.c"
 yy881:
                YYDEBUG(881, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8513,11 +8521,11 @@ yy882:
 yy883:
                YYDEBUG(883, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1465 "Zend/zend_language_scanner.l"
+#line 1473 "Zend/zend_language_scanner.l"
                {
        return T_ENDFOR;
 }
-#line 8521 "Zend/zend_language_scanner.c"
+#line 8529 "Zend/zend_language_scanner.c"
 yy884:
                YYDEBUG(884, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8541,11 +8549,11 @@ yy887:
                }
                YYDEBUG(888, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1473 "Zend/zend_language_scanner.l"
+#line 1481 "Zend/zend_language_scanner.l"
                {
        return T_ENDFOREACH;
 }
-#line 8549 "Zend/zend_language_scanner.c"
+#line 8557 "Zend/zend_language_scanner.c"
 yy889:
                YYDEBUG(889, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8579,11 +8587,11 @@ yy894:
                }
                YYDEBUG(895, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1481 "Zend/zend_language_scanner.l"
+#line 1489 "Zend/zend_language_scanner.l"
                {
        return T_ENDDECLARE;
 }
-#line 8587 "Zend/zend_language_scanner.c"
+#line 8595 "Zend/zend_language_scanner.c"
 yy896:
                YYDEBUG(896, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8602,11 +8610,11 @@ yy898:
                }
                YYDEBUG(899, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1667 "Zend/zend_language_scanner.l"
+#line 1675 "Zend/zend_language_scanner.l"
                {
        return T_EMPTY;
 }
-#line 8610 "Zend/zend_language_scanner.c"
+#line 8618 "Zend/zend_language_scanner.c"
 yy900:
                YYDEBUG(900, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8635,11 +8643,11 @@ yy901:
 yy902:
                YYDEBUG(902, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1445 "Zend/zend_language_scanner.l"
+#line 1453 "Zend/zend_language_scanner.l"
                {
        return T_ELSE;
 }
-#line 8643 "Zend/zend_language_scanner.c"
+#line 8651 "Zend/zend_language_scanner.c"
 yy903:
                YYDEBUG(903, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8653,11 +8661,11 @@ yy904:
                }
                YYDEBUG(905, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1437 "Zend/zend_language_scanner.l"
+#line 1445 "Zend/zend_language_scanner.l"
                {
        return T_ELSEIF;
 }
-#line 8661 "Zend/zend_language_scanner.c"
+#line 8669 "Zend/zend_language_scanner.c"
 yy906:
                YYDEBUG(906, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8671,11 +8679,11 @@ yy907:
                }
                YYDEBUG(908, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1521 "Zend/zend_language_scanner.l"
+#line 1529 "Zend/zend_language_scanner.l"
                {
        return T_ECHO;
 }
-#line 8679 "Zend/zend_language_scanner.c"
+#line 8687 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_LOOKING_FOR_PROPERTY:
@@ -8748,7 +8756,7 @@ yy911:
 yy912:
                YYDEBUG(912, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1550 "Zend/zend_language_scanner.l"
+#line 1558 "Zend/zend_language_scanner.l"
                {
        Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
        Z_STRLEN_P(zendlval) = yyleng;
@@ -8756,7 +8764,7 @@ yy912:
        HANDLE_NEWLINES(yytext, yyleng);
        return T_WHITESPACE;
 }
-#line 8760 "Zend/zend_language_scanner.c"
+#line 8768 "Zend/zend_language_scanner.c"
 yy913:
                YYDEBUG(913, *YYCURSOR);
                ++YYCURSOR;
@@ -8764,13 +8772,13 @@ yy913:
 yy914:
                YYDEBUG(914, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1573 "Zend/zend_language_scanner.l"
+#line 1581 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state(TSRMLS_C);
        goto restart;
 }
-#line 8774 "Zend/zend_language_scanner.c"
+#line 8782 "Zend/zend_language_scanner.c"
 yy915:
                YYDEBUG(915, *YYCURSOR);
                ++YYCURSOR;
@@ -8779,7 +8787,7 @@ yy915:
 yy916:
                YYDEBUG(916, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1562 "Zend/zend_language_scanner.l"
+#line 1570 "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)) {
@@ -8790,7 +8798,7 @@ yy916:
        }
        return T_STRING;
 }
-#line 8794 "Zend/zend_language_scanner.c"
+#line 8802 "Zend/zend_language_scanner.c"
 yy917:
                YYDEBUG(917, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -8811,11 +8819,11 @@ yy920:
                ++YYCURSOR;
                YYDEBUG(921, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1558 "Zend/zend_language_scanner.l"
+#line 1566 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_OPERATOR;
 }
-#line 8819 "Zend/zend_language_scanner.c"
+#line 8827 "Zend/zend_language_scanner.c"
 yy922:
                YYDEBUG(922, *YYCURSOR);
                ++YYCURSOR;
@@ -8885,7 +8893,7 @@ yy926:
 yy927:
                YYDEBUG(927, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1845 "Zend/zend_language_scanner.l"
+#line 1853 "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;
@@ -8897,20 +8905,20 @@ yy927:
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return T_STRING_VARNAME;
 }
-#line 8901 "Zend/zend_language_scanner.c"
+#line 8909 "Zend/zend_language_scanner.c"
 yy928:
                YYDEBUG(928, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(929, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1858 "Zend/zend_language_scanner.l"
+#line 1866 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state(TSRMLS_C);
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        goto restart;
 }
-#line 8914 "Zend/zend_language_scanner.c"
+#line 8922 "Zend/zend_language_scanner.c"
 yy930:
                YYDEBUG(930, *YYCURSOR);
                ++YYCURSOR;
@@ -9372,7 +9380,7 @@ yy967:
                ++YYCURSOR;
                YYDEBUG(968, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2701 "Zend/zend_language_scanner.l"
+#line 2709 "Zend/zend_language_scanner.l"
                {
        char *end = yytext + yyleng - 1;
 
@@ -9416,7 +9424,7 @@ yy967:
                yymore();
        }
 }
-#line 9420 "Zend/zend_language_scanner.c"
+#line 9428 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_ONE_LINE_COMMENT:
@@ -9473,11 +9481,11 @@ yy971:
 yy972:
                YYDEBUG(972, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2273 "Zend/zend_language_scanner.l"
+#line 2281 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 9481 "Zend/zend_language_scanner.c"
+#line 9489 "Zend/zend_language_scanner.c"
 yy973:
                YYDEBUG(973, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -9500,7 +9508,7 @@ yy975:
 yy977:
                YYDEBUG(977, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2277 "Zend/zend_language_scanner.l"
+#line 2285 "Zend/zend_language_scanner.l"
                {
        switch (yytext[yyleng-1]) {
                case '?': case '%': case '>':
@@ -9518,7 +9526,7 @@ yy977:
                        return T_COMMENT;
        }
 }
-#line 9522 "Zend/zend_language_scanner.c"
+#line 9530 "Zend/zend_language_scanner.c"
 yy978:
                YYDEBUG(978, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -9531,7 +9539,7 @@ yy979:
                ++YYCURSOR;
                YYDEBUG(981, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2295 "Zend/zend_language_scanner.l"
+#line 2303 "Zend/zend_language_scanner.l"
                {
        Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
        Z_STRLEN_P(zendlval) = yyleng;
@@ -9540,7 +9548,7 @@ yy979:
        CG(zend_lineno)++;
        return T_COMMENT;
 }
-#line 9544 "Zend/zend_language_scanner.c"
+#line 9552 "Zend/zend_language_scanner.c"
 yy982:
                YYDEBUG(982, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -9550,7 +9558,7 @@ yy983:
                ++YYCURSOR;
                YYDEBUG(984, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2304 "Zend/zend_language_scanner.l"
+#line 2312 "Zend/zend_language_scanner.l"
                {
     if (CG(asp_tags) || yytext[yyleng-2] != '%') { /* asp comment? */
                Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -9564,7 +9572,7 @@ yy983:
                yymore();
        }
 }
-#line 9568 "Zend/zend_language_scanner.c"
+#line 9576 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_START_HEREDOC:
@@ -9621,13 +9629,13 @@ yy987:
 yy988:
                YYDEBUG(988, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2473 "Zend/zend_language_scanner.l"
+#line 2481 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        BEGIN(ST_HEREDOC);
        goto restart;
 }
-#line 9631 "Zend/zend_language_scanner.c"
+#line 9639 "Zend/zend_language_scanner.c"
 yy989:
                YYDEBUG(989, *YYCURSOR);
                yyaccept = 0;
@@ -9672,7 +9680,7 @@ yy994:
                ++YYCURSOR;
                YYDEBUG(995, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2479 "Zend/zend_language_scanner.l"
+#line 2487 "Zend/zend_language_scanner.l"
                {
        int label_len = yyleng - 1;
 
@@ -9695,7 +9703,7 @@ yy994:
                yymore();
        }
 }
-#line 9699 "Zend/zend_language_scanner.c"
+#line 9707 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_START_NOWDOC:
@@ -9752,13 +9760,13 @@ yy998:
 yy999:
                YYDEBUG(999, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2671 "Zend/zend_language_scanner.l"
+#line 2679 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        BEGIN(ST_NOWDOC);
        goto restart;
 }
-#line 9762 "Zend/zend_language_scanner.c"
+#line 9770 "Zend/zend_language_scanner.c"
 yy1000:
                YYDEBUG(1000, *YYCURSOR);
                yyaccept = 0;
@@ -9803,7 +9811,7 @@ yy1005:
                ++YYCURSOR;
                YYDEBUG(1006, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2677 "Zend/zend_language_scanner.l"
+#line 2685 "Zend/zend_language_scanner.l"
                {
        int label_len = yyleng - 1;
 
@@ -9827,7 +9835,7 @@ yy1005:
                yymore();
        }
 }
-#line 9831 "Zend/zend_language_scanner.c"
+#line 9839 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_VAR_OFFSET:
@@ -9928,7 +9936,7 @@ yy1009:
 yy1010:
                YYDEBUG(1010, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1908 "Zend/zend_language_scanner.l"
+#line 1916 "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);
@@ -9940,7 +9948,7 @@ yy1010:
        }
        return T_NUM_STRING;
 }
-#line 9944 "Zend/zend_language_scanner.c"
+#line 9952 "Zend/zend_language_scanner.c"
 yy1011:
                YYDEBUG(1011, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -9960,23 +9968,23 @@ yy1012:
 yy1013:
                YYDEBUG(1013, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2236 "Zend/zend_language_scanner.l"
+#line 2244 "Zend/zend_language_scanner.l"
                {
        /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
        return yytext[0];
 }
-#line 9969 "Zend/zend_language_scanner.c"
+#line 9977 "Zend/zend_language_scanner.c"
 yy1014:
                YYDEBUG(1014, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(1015, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2231 "Zend/zend_language_scanner.l"
+#line 2239 "Zend/zend_language_scanner.l"
                {
        yy_pop_state(TSRMLS_C);
        return ']';
 }
-#line 9980 "Zend/zend_language_scanner.c"
+#line 9988 "Zend/zend_language_scanner.c"
 yy1016:
                YYDEBUG(1016, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -9986,7 +9994,7 @@ yy1017:
                ++YYCURSOR;
                YYDEBUG(1018, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2241 "Zend/zend_language_scanner.l"
+#line 2249 "Zend/zend_language_scanner.l"
                {
        /* Invalid rule to return a more explicit parse error with proper line number */
        yyless(0);
@@ -9995,7 +10003,7 @@ yy1017:
        ZVAL_EMPTY_TEXT(zendlval); /* Empty since it won't be used */
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 9999 "Zend/zend_language_scanner.c"
+#line 10007 "Zend/zend_language_scanner.c"
 yy1019:
                YYDEBUG(1019, *YYCURSOR);
                ++YYCURSOR;
@@ -10004,25 +10012,25 @@ yy1019:
 yy1020:
                YYDEBUG(1020, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2260 "Zend/zend_language_scanner.l"
+#line 2268 "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 10015 "Zend/zend_language_scanner.c"
+#line 10023 "Zend/zend_language_scanner.c"
 yy1021:
                YYDEBUG(1021, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(1022, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2768 "Zend/zend_language_scanner.l"
+#line 2776 "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 10026 "Zend/zend_language_scanner.c"
+#line 10034 "Zend/zend_language_scanner.c"
 yy1023:
                YYDEBUG(1023, *YYCURSOR);
                ++YYCURSOR;
@@ -10058,7 +10066,7 @@ yy1025:
 yy1027:
                YYDEBUG(1027, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2221 "Zend/zend_language_scanner.l"
+#line 2229 "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;
@@ -10068,7 +10076,7 @@ yy1027:
        }
        return T_VARIABLE;
 }
-#line 10072 "Zend/zend_language_scanner.c"
+#line 10080 "Zend/zend_language_scanner.c"
 yy1028:
                YYDEBUG(1028, *YYCURSOR);
                ++YYCURSOR;
@@ -10100,14 +10108,14 @@ yy1032:
 yy1034:
                YYDEBUG(1034, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1920 "Zend/zend_language_scanner.l"
+#line 1928 "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 10111 "Zend/zend_language_scanner.c"
+#line 10119 "Zend/zend_language_scanner.c"
 yy1035:
                YYDEBUG(1035, *YYCURSOR);
                ++YYCURSOR;
@@ -10120,6 +10128,6 @@ yy1035:
                goto yy1034;
        }
 }
-#line 2773 "Zend/zend_language_scanner.l"
+#line 2781 "Zend/zend_language_scanner.l"
 
 }
index 341f463184552b58504fc6b77f7a88279fb8ba69..651ab3e230f4b297b911edf36a8c49707902a75b 100644 (file)
@@ -986,6 +986,10 @@ static int zend_scan_unicode_escape_string(zval *zendlval, char *str, int len, U
                if (*s==0x5C /*'\\'*/) {
                        s++;
                        c = *s;
+                       if (s >= end) {
+                               *t++ = 0x5C; /*'\\'*/
+                               break;
+                       }
 
                        min_digits = 0;
                        codepoint = 0;
@@ -1186,6 +1190,10 @@ static void zend_scan_binary_escape_string(zval *zendlval, char *str, int len, c
        while (s<end) {
                if (*s=='\\') {
                        s++;
+                       if (s >= end) {
+                               *t++ = '\\';
+                               break;
+                       }
 
                        switch(*s) {
                                case 'n':