]> granicus.if.org Git - php/commitdiff
Merge branch 'pull-request/31'
authorStanislav Malyshev <stas@php.net>
Mon, 20 Aug 2012 04:42:28 +0000 (21:42 -0700)
committerStanislav Malyshev <stas@php.net>
Mon, 20 Aug 2012 04:43:04 +0000 (21:43 -0700)
* pull-request/31:
  Fix lexing of nested heredoc strings in token_get_all()

1  2 
Zend/zend_compile.c
Zend/zend_language_parser.y
Zend/zend_language_scanner.c
Zend/zend_language_scanner.l
Zend/zend_language_scanner_defs.h
ext/tokenizer/tests/bug60097.phpt

Simple merge
Simple merge
index f4289c3800026cce695622fb8fbd8f5bc4b4aed2,8e5cc9f9d6a0074590ca9c780bafa7174f2ce690..b8b4ea95d881bddca581dd1a6ac3a1f50da347f6
@@@ -1,4 -1,4 +1,4 @@@
- /* Generated by re2c 0.13.5 on Tue Jul 24 17:16:42 2012 */
 -/* Generated by re2c 0.13.5 on Sat Mar 31 21:29:29 2012 */
++/* Generated by re2c 0.13.5 on Sun Aug 19 20:57:55 2012 */
  #line 1 "Zend/zend_language_scanner.l"
  /*
     +----------------------------------------------------------------------+
@@@ -998,7 -993,7 +1000,7 @@@ restart
  yymore_restart:
  
  
- #line 1002 "Zend/zend_language_scanner.c"
 -#line 997 "Zend/zend_language_scanner.c"
++#line 1004 "Zend/zend_language_scanner.c"
  {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
@@@ -1097,7 -1092,7 +1099,7 @@@ yyc_INITIAL
  yy3:
                YYDEBUG(3, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1795 "Zend/zend_language_scanner.l"
 -#line 1785 "Zend/zend_language_scanner.l"
++#line 1797 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                return 0;
@@@ -1157,7 -1152,7 +1159,7 @@@ inline_html
        HANDLE_NEWLINES(yytext, yyleng);
        return T_INLINE_HTML;
  }
- #line 1161 "Zend/zend_language_scanner.c"
 -#line 1156 "Zend/zend_language_scanner.c"
++#line 1163 "Zend/zend_language_scanner.c"
  yy4:
                YYDEBUG(4, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1175,7 -1170,7 +1177,7 @@@ yy5
  yy6:
                YYDEBUG(6, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1783 "Zend/zend_language_scanner.l"
 -#line 1773 "Zend/zend_language_scanner.l"
++#line 1785 "Zend/zend_language_scanner.l"
                {
        if (CG(short_tags)) {
                zendlval->value.str.val = yytext; /* no copying - intentional */
                goto inline_char_handler;
        }
  }
- #line 1191 "Zend/zend_language_scanner.c"
 -#line 1186 "Zend/zend_language_scanner.c"
++#line 1193 "Zend/zend_language_scanner.c"
  yy7:
                YYDEBUG(7, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy43;
                YYDEBUG(8, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1760 "Zend/zend_language_scanner.l"
 -#line 1750 "Zend/zend_language_scanner.l"
++#line 1762 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                zendlval->value.str.val = yytext; /* no copying - intentional */
                goto inline_char_handler;
        }
  }
- #line 1210 "Zend/zend_language_scanner.c"
 -#line 1205 "Zend/zend_language_scanner.c"
++#line 1212 "Zend/zend_language_scanner.c"
  yy9:
                YYDEBUG(9, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1392,7 -1387,7 +1394,7 @@@ yy35
                ++YYCURSOR;
                YYDEBUG(38, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1720 "Zend/zend_language_scanner.l"
 -#line 1710 "Zend/zend_language_scanner.l"
++#line 1722 "Zend/zend_language_scanner.l"
                {
        YYCTYPE *bracket = (YYCTYPE*)zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1));
  
        BEGIN(ST_IN_SCRIPTING);
        return T_OPEN_TAG;
  }
- #line 1413 "Zend/zend_language_scanner.c"
 -#line 1408 "Zend/zend_language_scanner.c"
++#line 1415 "Zend/zend_language_scanner.c"
  yy39:
                YYDEBUG(39, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1436,7 -1431,7 +1438,7 @@@ yy43
                ++YYCURSOR;
                YYDEBUG(44, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1738 "Zend/zend_language_scanner.l"
 -#line 1728 "Zend/zend_language_scanner.l"
++#line 1740 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                zendlval->value.str.val = yytext; /* no copying - intentional */
                goto inline_char_handler;
        }
  }
- #line 1452 "Zend/zend_language_scanner.c"
 -#line 1447 "Zend/zend_language_scanner.c"
++#line 1454 "Zend/zend_language_scanner.c"
  yy45:
                YYDEBUG(45, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(46, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1751 "Zend/zend_language_scanner.l"
 -#line 1741 "Zend/zend_language_scanner.l"
++#line 1753 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
        BEGIN(ST_IN_SCRIPTING);
        return T_OPEN_TAG_WITH_ECHO;
  }
- #line 1466 "Zend/zend_language_scanner.c"
 -#line 1461 "Zend/zend_language_scanner.c"
++#line 1468 "Zend/zend_language_scanner.c"
  yy47:
                YYDEBUG(47, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1489,7 -1484,7 +1491,7 @@@ yy50
  yy51:
                YYDEBUG(51, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1773 "Zend/zend_language_scanner.l"
 -#line 1763 "Zend/zend_language_scanner.l"
++#line 1775 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
        BEGIN(ST_IN_SCRIPTING);
        return T_OPEN_TAG;
  }
- #line 1502 "Zend/zend_language_scanner.c"
 -#line 1497 "Zend/zend_language_scanner.c"
++#line 1504 "Zend/zend_language_scanner.c"
  yy52:
                YYDEBUG(52, *YYCURSOR);
                ++YYCURSOR;
@@@ -1569,7 -1564,7 +1571,7 @@@ yyc_ST_BACKQUOTE
  yy56:
                YYDEBUG(56, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2246 "Zend/zend_language_scanner.l"
 -#line 2236 "Zend/zend_language_scanner.l"
++#line 2248 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                return 0;
        zend_scan_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
  }
- #line 1614 "Zend/zend_language_scanner.c"
 -#line 1609 "Zend/zend_language_scanner.c"
++#line 1616 "Zend/zend_language_scanner.c"
  yy57:
                YYDEBUG(57, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1621,12 -1616,12 +1623,12 @@@ yy58
                ++YYCURSOR;
                YYDEBUG(59, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2190 "Zend/zend_language_scanner.l"
 -#line 2180 "Zend/zend_language_scanner.l"
++#line 2192 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '`';
  }
- #line 1630 "Zend/zend_language_scanner.c"
 -#line 1625 "Zend/zend_language_scanner.c"
++#line 1632 "Zend/zend_language_scanner.c"
  yy60:
                YYDEBUG(60, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1636,14 -1631,14 +1638,14 @@@ yy61
                ++YYCURSOR;
                YYDEBUG(62, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2177 "Zend/zend_language_scanner.l"
 -#line 2167 "Zend/zend_language_scanner.l"
++#line 2179 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        yyless(1);
        return T_CURLY_OPEN;
  }
- #line 1647 "Zend/zend_language_scanner.c"
 -#line 1642 "Zend/zend_language_scanner.c"
++#line 1649 "Zend/zend_language_scanner.c"
  yy63:
                YYDEBUG(63, *YYCURSOR);
                yyaccept = 0;
  yy65:
                YYDEBUG(65, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1877 "Zend/zend_language_scanner.l"
 -#line 1867 "Zend/zend_language_scanner.l"
++#line 1879 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
  }
- #line 1669 "Zend/zend_language_scanner.c"
 -#line 1664 "Zend/zend_language_scanner.c"
++#line 1671 "Zend/zend_language_scanner.c"
  yy66:
                YYDEBUG(66, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(67, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1453 "Zend/zend_language_scanner.l"
 -#line 1444 "Zend/zend_language_scanner.l"
++#line 1455 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
  }
- #line 1680 "Zend/zend_language_scanner.c"
 -#line 1675 "Zend/zend_language_scanner.c"
++#line 1682 "Zend/zend_language_scanner.c"
  yy68:
                YYDEBUG(68, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1690,7 -1685,7 +1692,7 @@@ yy70
                ++YYCURSOR;
                YYDEBUG(71, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1869 "Zend/zend_language_scanner.l"
 -#line 1859 "Zend/zend_language_scanner.l"
++#line 1871 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
        zendlval->type = IS_STRING;
        return T_VARIABLE;
  }
- #line 1702 "Zend/zend_language_scanner.c"
 -#line 1697 "Zend/zend_language_scanner.c"
++#line 1704 "Zend/zend_language_scanner.c"
  yy72:
                YYDEBUG(72, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1716,7 -1711,7 +1718,7 @@@ yy73
                ++YYCURSOR;
                YYDEBUG(74, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1859 "Zend/zend_language_scanner.l"
 -#line 1849 "Zend/zend_language_scanner.l"
++#line 1861 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
        zendlval->type = IS_STRING;
        return T_VARIABLE;
  }
- #line 1728 "Zend/zend_language_scanner.c"
 -#line 1723 "Zend/zend_language_scanner.c"
++#line 1730 "Zend/zend_language_scanner.c"
        }
  /* *********************************** */
  yyc_ST_DOUBLE_QUOTES:
@@@ -1792,7 -1787,7 +1794,7 @@@ yy77
  yy78:
                YYDEBUG(78, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2196 "Zend/zend_language_scanner.l"
 -#line 2186 "Zend/zend_language_scanner.l"
++#line 2198 "Zend/zend_language_scanner.l"
                {
        if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
                YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
@@@ -1841,7 -1836,7 +1843,7 @@@ double_quotes_scan_done
        zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
  }
- #line 1845 "Zend/zend_language_scanner.c"
 -#line 1840 "Zend/zend_language_scanner.c"
++#line 1847 "Zend/zend_language_scanner.c"
  yy79:
                YYDEBUG(79, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1852,12 -1847,12 +1854,12 @@@ yy80
                ++YYCURSOR;
                YYDEBUG(81, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2185 "Zend/zend_language_scanner.l"
 -#line 2175 "Zend/zend_language_scanner.l"
++#line 2187 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '"';
  }
- #line 1861 "Zend/zend_language_scanner.c"
 -#line 1856 "Zend/zend_language_scanner.c"
++#line 1863 "Zend/zend_language_scanner.c"
  yy82:
                YYDEBUG(82, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1867,14 -1862,14 +1869,14 @@@ yy83
                ++YYCURSOR;
                YYDEBUG(84, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2177 "Zend/zend_language_scanner.l"
 -#line 2167 "Zend/zend_language_scanner.l"
++#line 2179 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        yyless(1);
        return T_CURLY_OPEN;
  }
- #line 1878 "Zend/zend_language_scanner.c"
 -#line 1873 "Zend/zend_language_scanner.c"
++#line 1880 "Zend/zend_language_scanner.c"
  yy85:
                YYDEBUG(85, *YYCURSOR);
                yyaccept = 0;
  yy87:
                YYDEBUG(87, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1877 "Zend/zend_language_scanner.l"
 -#line 1867 "Zend/zend_language_scanner.l"
++#line 1879 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
  }
- #line 1900 "Zend/zend_language_scanner.c"
 -#line 1895 "Zend/zend_language_scanner.c"
++#line 1902 "Zend/zend_language_scanner.c"
  yy88:
                YYDEBUG(88, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(89, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1453 "Zend/zend_language_scanner.l"
 -#line 1444 "Zend/zend_language_scanner.l"
++#line 1455 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
  }
- #line 1911 "Zend/zend_language_scanner.c"
 -#line 1906 "Zend/zend_language_scanner.c"
++#line 1913 "Zend/zend_language_scanner.c"
  yy90:
                YYDEBUG(90, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1921,7 -1916,7 +1923,7 @@@ yy92
                ++YYCURSOR;
                YYDEBUG(93, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1869 "Zend/zend_language_scanner.l"
 -#line 1859 "Zend/zend_language_scanner.l"
++#line 1871 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
        zendlval->type = IS_STRING;
        return T_VARIABLE;
  }
- #line 1933 "Zend/zend_language_scanner.c"
 -#line 1928 "Zend/zend_language_scanner.c"
++#line 1935 "Zend/zend_language_scanner.c"
  yy94:
                YYDEBUG(94, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1947,7 -1942,7 +1949,7 @@@ yy95
                ++YYCURSOR;
                YYDEBUG(96, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1859 "Zend/zend_language_scanner.l"
 -#line 1849 "Zend/zend_language_scanner.l"
++#line 1861 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
        zendlval->type = IS_STRING;
        return T_VARIABLE;
  }
- #line 1959 "Zend/zend_language_scanner.c"
 -#line 1954 "Zend/zend_language_scanner.c"
++#line 1961 "Zend/zend_language_scanner.c"
        }
  /* *********************************** */
  yyc_ST_END_HEREDOC:
        ++YYCURSOR;
        YYDEBUG(100, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
- #line 2164 "Zend/zend_language_scanner.l"
 -#line 2153 "Zend/zend_language_scanner.l"
++#line 2165 "Zend/zend_language_scanner.l"
        {
-       YYCURSOR += CG(heredoc_len) - 1;
-       yyleng = CG(heredoc_len);
+       zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack));
+       YYCURSOR += heredoc_label->length - 1;
+       yyleng = heredoc_label->length;
+       heredoc_label_dtor(heredoc_label);
+       efree(heredoc_label);
  
-       Z_STRVAL_P(zendlval) = CG(heredoc);
-       Z_STRLEN_P(zendlval) = CG(heredoc_len);
-       CG(heredoc) = NULL;
-       CG(heredoc_len) = 0;
        BEGIN(ST_IN_SCRIPTING);
        return T_END_HEREDOC;
  }
- #line 1982 "Zend/zend_language_scanner.c"
 -#line 1978 "Zend/zend_language_scanner.c"
++#line 1985 "Zend/zend_language_scanner.c"
  /* *********************************** */
  yyc_ST_HEREDOC:
        {
@@@ -2040,7 -2036,7 +2043,7 @@@ yy103
  yy104:
                YYDEBUG(104, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2288 "Zend/zend_language_scanner.l"
 -#line 2278 "Zend/zend_language_scanner.l"
++#line 2290 "Zend/zend_language_scanner.l"
                {
        int newline = 0;
  
@@@ -2111,7 -2109,7 +2116,7 @@@ heredoc_scan_done
        zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0 TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
  }
- #line 2115 "Zend/zend_language_scanner.c"
 -#line 2113 "Zend/zend_language_scanner.c"
++#line 2120 "Zend/zend_language_scanner.c"
  yy105:
                YYDEBUG(105, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -2126,14 -2124,14 +2131,14 @@@ yy107
                ++YYCURSOR;
                YYDEBUG(108, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2177 "Zend/zend_language_scanner.l"
 -#line 2167 "Zend/zend_language_scanner.l"
++#line 2179 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        yyless(1);
        return T_CURLY_OPEN;
  }
- #line 2137 "Zend/zend_language_scanner.c"
 -#line 2135 "Zend/zend_language_scanner.c"
++#line 2142 "Zend/zend_language_scanner.c"
  yy109:
                YYDEBUG(109, *YYCURSOR);
                yyaccept = 0;
  yy111:
                YYDEBUG(111, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1877 "Zend/zend_language_scanner.l"
 -#line 1867 "Zend/zend_language_scanner.l"
++#line 1879 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
  }
- #line 2159 "Zend/zend_language_scanner.c"
 -#line 2157 "Zend/zend_language_scanner.c"
++#line 2164 "Zend/zend_language_scanner.c"
  yy112:
                YYDEBUG(112, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(113, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1453 "Zend/zend_language_scanner.l"
 -#line 1444 "Zend/zend_language_scanner.l"
++#line 1455 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
  }
- #line 2170 "Zend/zend_language_scanner.c"
 -#line 2168 "Zend/zend_language_scanner.c"
++#line 2175 "Zend/zend_language_scanner.c"
  yy114:
                YYDEBUG(114, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -2180,7 -2178,7 +2185,7 @@@ yy116
                ++YYCURSOR;
                YYDEBUG(117, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1869 "Zend/zend_language_scanner.l"
 -#line 1859 "Zend/zend_language_scanner.l"
++#line 1871 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
        zendlval->type = IS_STRING;
        return T_VARIABLE;
  }
- #line 2192 "Zend/zend_language_scanner.c"
 -#line 2190 "Zend/zend_language_scanner.c"
++#line 2197 "Zend/zend_language_scanner.c"
  yy118:
                YYDEBUG(118, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -2206,7 -2204,7 +2211,7 @@@ yy119
                ++YYCURSOR;
                YYDEBUG(120, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1859 "Zend/zend_language_scanner.l"
 -#line 1849 "Zend/zend_language_scanner.l"
++#line 1861 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
        zendlval->type = IS_STRING;
        return T_VARIABLE;
  }
- #line 2218 "Zend/zend_language_scanner.c"
 -#line 2216 "Zend/zend_language_scanner.c"
++#line 2223 "Zend/zend_language_scanner.c"
        }
  /* *********************************** */
  yyc_ST_IN_SCRIPTING:
@@@ -2395,13 -2393,13 +2400,13 @@@ yy123
  yy124:
                YYDEBUG(124, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1900 "Zend/zend_language_scanner.l"
 -#line 1890 "Zend/zend_language_scanner.l"
++#line 1902 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
        return T_STRING;
  }
- #line 2405 "Zend/zend_language_scanner.c"
 -#line 2403 "Zend/zend_language_scanner.c"
++#line 2410 "Zend/zend_language_scanner.c"
  yy125:
                YYDEBUG(125, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -2627,11 -2625,11 +2632,11 @@@ yy137
  yy138:
                YYDEBUG(138, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1442 "Zend/zend_language_scanner.l"
 -#line 1433 "Zend/zend_language_scanner.l"
++#line 1444 "Zend/zend_language_scanner.l"
                {
        return yytext[0];
  }
- #line 2635 "Zend/zend_language_scanner.c"
 -#line 2633 "Zend/zend_language_scanner.c"
++#line 2640 "Zend/zend_language_scanner.c"
  yy139:
                YYDEBUG(139, *YYCURSOR);
                ++YYCURSOR;
  yy140:
                YYDEBUG(140, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1173 "Zend/zend_language_scanner.l"
 -#line 1164 "Zend/zend_language_scanner.l"
++#line 1175 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
        HANDLE_NEWLINES(yytext, yyleng);
        return T_WHITESPACE;
  }
- #line 2652 "Zend/zend_language_scanner.c"
 -#line 2650 "Zend/zend_language_scanner.c"
++#line 2657 "Zend/zend_language_scanner.c"
  yy141:
                YYDEBUG(141, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -2659,11 -2657,11 +2664,11 @@@ yy142
                ++YYCURSOR;
                YYDEBUG(143, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1202 "Zend/zend_language_scanner.l"
 -#line 1193 "Zend/zend_language_scanner.l"
++#line 1204 "Zend/zend_language_scanner.l"
                {
        return T_NS_SEPARATOR;
  }
- #line 2667 "Zend/zend_language_scanner.c"
 -#line 2665 "Zend/zend_language_scanner.c"
++#line 2672 "Zend/zend_language_scanner.c"
  yy144:
                YYDEBUG(144, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -2891,18 -2889,18 +2896,18 @@@ yy167
                ++YYCURSOR;
                YYDEBUG(168, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1447 "Zend/zend_language_scanner.l"
 -#line 1438 "Zend/zend_language_scanner.l"
++#line 1449 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return '{';
  }
- #line 2900 "Zend/zend_language_scanner.c"
 -#line 2898 "Zend/zend_language_scanner.c"
++#line 2905 "Zend/zend_language_scanner.c"
  yy169:
                YYDEBUG(169, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(170, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1459 "Zend/zend_language_scanner.l"
 -#line 1450 "Zend/zend_language_scanner.l"
++#line 1461 "Zend/zend_language_scanner.l"
                {
        RESET_DOC_COMMENT();
        if (!zend_stack_is_empty(&SCNG(state_stack))) {
        }
        return '}';
  }
- #line 2914 "Zend/zend_language_scanner.c"
 -#line 2912 "Zend/zend_language_scanner.c"
++#line 2919 "Zend/zend_language_scanner.c"
  yy171:
                YYDEBUG(171, *YYCURSOR);
                yyaccept = 2;
  yy172:
                YYDEBUG(172, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1510 "Zend/zend_language_scanner.l"
 -#line 1500 "Zend/zend_language_scanner.l"
++#line 1512 "Zend/zend_language_scanner.l"
                {
        if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
                zendlval->value.lval = strtol(yytext, NULL, 0);
        zendlval->type = IS_LONG;
        return T_LNUMBER;
  }
- #line 2963 "Zend/zend_language_scanner.c"
 -#line 2961 "Zend/zend_language_scanner.c"
++#line 2968 "Zend/zend_language_scanner.c"
  yy173:
                YYDEBUG(173, *YYCURSOR);
                yyaccept = 2;
@@@ -2987,7 -2985,7 +2992,7 @@@ yy175
  yy176:
                YYDEBUG(176, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1907 "Zend/zend_language_scanner.l"
 -#line 1897 "Zend/zend_language_scanner.l"
++#line 1909 "Zend/zend_language_scanner.l"
                {
        while (YYCURSOR < YYLIMIT) {
                switch (*YYCURSOR++) {
  
        return T_COMMENT;
  }
- #line 3025 "Zend/zend_language_scanner.c"
 -#line 3023 "Zend/zend_language_scanner.c"
++#line 3030 "Zend/zend_language_scanner.c"
  yy177:
                YYDEBUG(177, *YYCURSOR);
                ++YYCURSOR;
  yy178:
                YYDEBUG(178, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1998 "Zend/zend_language_scanner.l"
 -#line 1988 "Zend/zend_language_scanner.l"
++#line 2000 "Zend/zend_language_scanner.l"
                {
        register char *s, *t;
        char *end;
        }
        return T_CONSTANT_ENCAPSED_STRING;
  }
- #line 3100 "Zend/zend_language_scanner.c"
 -#line 3098 "Zend/zend_language_scanner.c"
++#line 3105 "Zend/zend_language_scanner.c"
  yy179:
                YYDEBUG(179, *YYCURSOR);
                ++YYCURSOR;
  yy180:
                YYDEBUG(180, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2067 "Zend/zend_language_scanner.l"
 -#line 2057 "Zend/zend_language_scanner.l"
++#line 2069 "Zend/zend_language_scanner.l"
                {
        int bprefix = (yytext[0] != '"') ? 1 : 0;
  
        BEGIN(ST_DOUBLE_QUOTES);
        return '"';
  }
- #line 3148 "Zend/zend_language_scanner.c"
 -#line 3146 "Zend/zend_language_scanner.c"
++#line 3153 "Zend/zend_language_scanner.c"
  yy181:
                YYDEBUG(181, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(182, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2158 "Zend/zend_language_scanner.l"
 -#line 2147 "Zend/zend_language_scanner.l"
++#line 2159 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_BACKQUOTE);
        return '`';
  }
- #line 3159 "Zend/zend_language_scanner.c"
 -#line 3157 "Zend/zend_language_scanner.c"
++#line 3164 "Zend/zend_language_scanner.c"
  yy183:
                YYDEBUG(183, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(184, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2416 "Zend/zend_language_scanner.l"
 -#line 2410 "Zend/zend_language_scanner.l"
++#line 2422 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                return 0;
        zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
        goto restart;
  }
- #line 3174 "Zend/zend_language_scanner.c"
 -#line 3172 "Zend/zend_language_scanner.c"
++#line 3179 "Zend/zend_language_scanner.c"
  yy185:
                YYDEBUG(185, *YYCURSOR);
                ++YYCURSOR;
@@@ -3197,13 -3195,13 +3202,13 @@@ yy187
  yy189:
                YYDEBUG(189, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1575 "Zend/zend_language_scanner.l"
 -#line 1565 "Zend/zend_language_scanner.l"
++#line 1577 "Zend/zend_language_scanner.l"
                {
        zendlval->value.dval = zend_strtod(yytext, NULL);
        zendlval->type = IS_DOUBLE;
        return T_DNUMBER;
  }
- #line 3207 "Zend/zend_language_scanner.c"
 -#line 3205 "Zend/zend_language_scanner.c"
++#line 3212 "Zend/zend_language_scanner.c"
  yy190:
                YYDEBUG(190, *YYCURSOR);
                yyaccept = 2;
@@@ -3295,7 -3293,7 +3300,7 @@@ yy199
                }
                YYDEBUG(201, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1485 "Zend/zend_language_scanner.l"
 -#line 1475 "Zend/zend_language_scanner.l"
++#line 1487 "Zend/zend_language_scanner.l"
                {
        char *bin = yytext + 2; /* Skip "0b" */
        int len = yyleng - 2;
                return T_DNUMBER;
        }
  }
- #line 3324 "Zend/zend_language_scanner.c"
 -#line 3322 "Zend/zend_language_scanner.c"
++#line 3329 "Zend/zend_language_scanner.c"
  yy202:
                YYDEBUG(202, *YYCURSOR);
                ++YYCURSOR;
                }
                YYDEBUG(204, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1531 "Zend/zend_language_scanner.l"
 -#line 1521 "Zend/zend_language_scanner.l"
++#line 1533 "Zend/zend_language_scanner.l"
                {
        char *hex = yytext + 2; /* Skip "0x" */
        int len = yyleng - 2;
                return T_DNUMBER;
        }
  }
- #line 3361 "Zend/zend_language_scanner.c"
 -#line 3359 "Zend/zend_language_scanner.c"
++#line 3366 "Zend/zend_language_scanner.c"
  yy205:
                YYDEBUG(205, *YYCURSOR);
                ++YYCURSOR;
  yy206:
                YYDEBUG(206, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1975 "Zend/zend_language_scanner.l"
 -#line 1965 "Zend/zend_language_scanner.l"
++#line 1977 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
        BEGIN(INITIAL);
        return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
  }
- #line 3378 "Zend/zend_language_scanner.c"
 -#line 3376 "Zend/zend_language_scanner.c"
++#line 3383 "Zend/zend_language_scanner.c"
  yy207:
                YYDEBUG(207, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -3408,13 -3406,13 +3413,13 @@@ yy209
  yy211:
                YYDEBUG(211, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1877 "Zend/zend_language_scanner.l"
 -#line 1867 "Zend/zend_language_scanner.l"
++#line 1879 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
  }
- #line 3418 "Zend/zend_language_scanner.c"
 -#line 3416 "Zend/zend_language_scanner.c"
++#line 3423 "Zend/zend_language_scanner.c"
  yy212:
                YYDEBUG(212, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -3428,11 -3426,11 +3433,11 @@@ yy213
                }
                YYDEBUG(214, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1430 "Zend/zend_language_scanner.l"
 -#line 1421 "Zend/zend_language_scanner.l"
++#line 1432 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_XOR;
  }
- #line 3436 "Zend/zend_language_scanner.c"
 -#line 3434 "Zend/zend_language_scanner.c"
++#line 3441 "Zend/zend_language_scanner.c"
  yy215:
                YYDEBUG(215, *YYCURSOR);
                ++YYCURSOR;
                }
                YYDEBUG(216, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1422 "Zend/zend_language_scanner.l"
 -#line 1413 "Zend/zend_language_scanner.l"
++#line 1424 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_OR;
  }
- #line 3449 "Zend/zend_language_scanner.c"
 -#line 3447 "Zend/zend_language_scanner.c"
++#line 3454 "Zend/zend_language_scanner.c"
  yy217:
                YYDEBUG(217, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(218, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1410 "Zend/zend_language_scanner.l"
 -#line 1401 "Zend/zend_language_scanner.l"
++#line 1412 "Zend/zend_language_scanner.l"
                {
        return T_XOR_EQUAL;
  }
- #line 3459 "Zend/zend_language_scanner.c"
 -#line 3457 "Zend/zend_language_scanner.c"
++#line 3464 "Zend/zend_language_scanner.c"
  yy219:
                YYDEBUG(219, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(220, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1414 "Zend/zend_language_scanner.l"
 -#line 1405 "Zend/zend_language_scanner.l"
++#line 1416 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_OR;
  }
- #line 3469 "Zend/zend_language_scanner.c"
 -#line 3467 "Zend/zend_language_scanner.c"
++#line 3474 "Zend/zend_language_scanner.c"
  yy221:
                YYDEBUG(221, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(222, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1406 "Zend/zend_language_scanner.l"
 -#line 1397 "Zend/zend_language_scanner.l"
++#line 1408 "Zend/zend_language_scanner.l"
                {
        return T_OR_EQUAL;
  }
- #line 3479 "Zend/zend_language_scanner.c"
 -#line 3477 "Zend/zend_language_scanner.c"
++#line 3484 "Zend/zend_language_scanner.c"
  yy223:
                YYDEBUG(223, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(224, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1418 "Zend/zend_language_scanner.l"
 -#line 1409 "Zend/zend_language_scanner.l"
++#line 1420 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_AND;
  }
- #line 3489 "Zend/zend_language_scanner.c"
 -#line 3487 "Zend/zend_language_scanner.c"
++#line 3494 "Zend/zend_language_scanner.c"
  yy225:
                YYDEBUG(225, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(226, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1402 "Zend/zend_language_scanner.l"
 -#line 1393 "Zend/zend_language_scanner.l"
++#line 1404 "Zend/zend_language_scanner.l"
                {
        return T_AND_EQUAL;
  }
- #line 3499 "Zend/zend_language_scanner.c"
 -#line 3497 "Zend/zend_language_scanner.c"
++#line 3504 "Zend/zend_language_scanner.c"
  yy227:
                YYDEBUG(227, *YYCURSOR);
                ++YYCURSOR;
  yy228:
                YYDEBUG(228, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1984 "Zend/zend_language_scanner.l"
 -#line 1974 "Zend/zend_language_scanner.l"
++#line 1986 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                BEGIN(INITIAL);
                return yytext[0];
        }
  }
- #line 3521 "Zend/zend_language_scanner.c"
 -#line 3519 "Zend/zend_language_scanner.c"
++#line 3526 "Zend/zend_language_scanner.c"
  yy229:
                YYDEBUG(229, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(230, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1390 "Zend/zend_language_scanner.l"
 -#line 1381 "Zend/zend_language_scanner.l"
++#line 1392 "Zend/zend_language_scanner.l"
                {
        return T_MOD_EQUAL;
  }
- #line 3531 "Zend/zend_language_scanner.c"
 -#line 3529 "Zend/zend_language_scanner.c"
++#line 3536 "Zend/zend_language_scanner.c"
  yy231:
                YYDEBUG(231, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -3558,11 -3556,11 +3563,11 @@@ yy235
                ++YYCURSOR;
                YYDEBUG(236, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1386 "Zend/zend_language_scanner.l"
 -#line 1377 "Zend/zend_language_scanner.l"
++#line 1388 "Zend/zend_language_scanner.l"
                {
        return T_CONCAT_EQUAL;
  }
- #line 3566 "Zend/zend_language_scanner.c"
 -#line 3564 "Zend/zend_language_scanner.c"
++#line 3571 "Zend/zend_language_scanner.c"
  yy237:
                YYDEBUG(237, *YYCURSOR);
                yyaccept = 4;
  yy238:
                YYDEBUG(238, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1941 "Zend/zend_language_scanner.l"
 -#line 1931 "Zend/zend_language_scanner.l"
++#line 1943 "Zend/zend_language_scanner.l"
                {
        int doc_com;
  
  
        return T_COMMENT;
  }
- #line 3609 "Zend/zend_language_scanner.c"
 -#line 3607 "Zend/zend_language_scanner.c"
++#line 3614 "Zend/zend_language_scanner.c"
  yy239:
                YYDEBUG(239, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -3615,11 -3613,11 +3620,11 @@@ yy240
                ++YYCURSOR;
                YYDEBUG(241, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1382 "Zend/zend_language_scanner.l"
 -#line 1373 "Zend/zend_language_scanner.l"
++#line 1384 "Zend/zend_language_scanner.l"
                {
        return T_DIV_EQUAL;
  }
- #line 3623 "Zend/zend_language_scanner.c"
 -#line 3621 "Zend/zend_language_scanner.c"
++#line 3628 "Zend/zend_language_scanner.c"
  yy242:
                YYDEBUG(242, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -3642,42 -3640,42 +3647,42 @@@ yy245
                ++YYCURSOR;
                YYDEBUG(246, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1378 "Zend/zend_language_scanner.l"
 -#line 1369 "Zend/zend_language_scanner.l"
++#line 1380 "Zend/zend_language_scanner.l"
                {
        return T_MUL_EQUAL;
  }
- #line 3650 "Zend/zend_language_scanner.c"
 -#line 3648 "Zend/zend_language_scanner.c"
++#line 3655 "Zend/zend_language_scanner.c"
  yy247:
                YYDEBUG(247, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy251;
                YYDEBUG(248, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1438 "Zend/zend_language_scanner.l"
 -#line 1429 "Zend/zend_language_scanner.l"
++#line 1440 "Zend/zend_language_scanner.l"
                {
        return T_SR;
  }
- #line 3661 "Zend/zend_language_scanner.c"
 -#line 3659 "Zend/zend_language_scanner.c"
++#line 3666 "Zend/zend_language_scanner.c"
  yy249:
                YYDEBUG(249, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(250, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1366 "Zend/zend_language_scanner.l"
 -#line 1357 "Zend/zend_language_scanner.l"
++#line 1368 "Zend/zend_language_scanner.l"
                {
        return T_IS_GREATER_OR_EQUAL;
  }
- #line 3671 "Zend/zend_language_scanner.c"
 -#line 3669 "Zend/zend_language_scanner.c"
++#line 3676 "Zend/zend_language_scanner.c"
  yy251:
                YYDEBUG(251, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(252, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1398 "Zend/zend_language_scanner.l"
 -#line 1389 "Zend/zend_language_scanner.l"
++#line 1400 "Zend/zend_language_scanner.l"
                {
        return T_SR_EQUAL;
  }
- #line 3681 "Zend/zend_language_scanner.c"
 -#line 3679 "Zend/zend_language_scanner.c"
++#line 3686 "Zend/zend_language_scanner.c"
  yy253:
                YYDEBUG(253, *YYCURSOR);
                yyaccept = 5;
  yy254:
                YYDEBUG(254, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1434 "Zend/zend_language_scanner.l"
 -#line 1425 "Zend/zend_language_scanner.l"
++#line 1436 "Zend/zend_language_scanner.l"
                {
        return T_SL;
  }
- #line 3696 "Zend/zend_language_scanner.c"
 -#line 3694 "Zend/zend_language_scanner.c"
++#line 3701 "Zend/zend_language_scanner.c"
  yy255:
                YYDEBUG(255, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -3704,22 -3702,22 +3709,22 @@@ yy256
                ++YYCURSOR;
                YYDEBUG(257, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1362 "Zend/zend_language_scanner.l"
 -#line 1353 "Zend/zend_language_scanner.l"
++#line 1364 "Zend/zend_language_scanner.l"
                {
        return T_IS_SMALLER_OR_EQUAL;
  }
- #line 3712 "Zend/zend_language_scanner.c"
 -#line 3710 "Zend/zend_language_scanner.c"
++#line 3717 "Zend/zend_language_scanner.c"
  yy258:
                YYDEBUG(258, *YYCURSOR);
                ++YYCURSOR;
  yy259:
                YYDEBUG(259, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1358 "Zend/zend_language_scanner.l"
 -#line 1349 "Zend/zend_language_scanner.l"
++#line 1360 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_EQUAL;
  }
- #line 3723 "Zend/zend_language_scanner.c"
 -#line 3721 "Zend/zend_language_scanner.c"
++#line 3728 "Zend/zend_language_scanner.c"
  yy260:
                YYDEBUG(260, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -3770,11 -3768,11 +3775,11 @@@ yy267
                ++YYCURSOR;
                YYDEBUG(268, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1394 "Zend/zend_language_scanner.l"
 -#line 1385 "Zend/zend_language_scanner.l"
++#line 1396 "Zend/zend_language_scanner.l"
                {
        return T_SL_EQUAL;
  }
- #line 3778 "Zend/zend_language_scanner.c"
 -#line 3776 "Zend/zend_language_scanner.c"
++#line 3783 "Zend/zend_language_scanner.c"
  yy269:
                YYDEBUG(269, *YYCURSOR);
                ++YYCURSOR;
@@@ -3879,7 -3877,7 +3884,7 @@@ yy278
  yy279:
                YYDEBUG(279, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2109 "Zend/zend_language_scanner.l"
 -#line 2099 "Zend/zend_language_scanner.l"
++#line 2111 "Zend/zend_language_scanner.l"
                {
        char *s;
        int bprefix = (yytext[0] != '<') ? 1 : 0;
                }
        }
  
+       zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) heredoc_label);
        return T_START_HEREDOC;
  }
- #line 3931 "Zend/zend_language_scanner.c"
 -#line 3928 "Zend/zend_language_scanner.c"
++#line 3935 "Zend/zend_language_scanner.c"
  yy280:
                YYDEBUG(280, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -3967,31 -3964,31 +3971,31 @@@ yy283
                ++YYCURSOR;
                YYDEBUG(285, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1350 "Zend/zend_language_scanner.l"
 -#line 1341 "Zend/zend_language_scanner.l"
++#line 1352 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_IDENTICAL;
  }
- #line 3975 "Zend/zend_language_scanner.c"
 -#line 3972 "Zend/zend_language_scanner.c"
++#line 3979 "Zend/zend_language_scanner.c"
  yy286:
                YYDEBUG(286, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(287, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1370 "Zend/zend_language_scanner.l"
 -#line 1361 "Zend/zend_language_scanner.l"
++#line 1372 "Zend/zend_language_scanner.l"
                {
        return T_PLUS_EQUAL;
  }
- #line 3985 "Zend/zend_language_scanner.c"
 -#line 3982 "Zend/zend_language_scanner.c"
++#line 3989 "Zend/zend_language_scanner.c"
  yy288:
                YYDEBUG(288, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(289, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1338 "Zend/zend_language_scanner.l"
 -#line 1329 "Zend/zend_language_scanner.l"
++#line 1340 "Zend/zend_language_scanner.l"
                {
        return T_INC;
  }
- #line 3995 "Zend/zend_language_scanner.c"
 -#line 3992 "Zend/zend_language_scanner.c"
++#line 3999 "Zend/zend_language_scanner.c"
  yy290:
                YYDEBUG(290, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4010,42 -4007,42 +4014,42 @@@ yy292
                }
                YYDEBUG(293, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1326 "Zend/zend_language_scanner.l"
 -#line 1317 "Zend/zend_language_scanner.l"
++#line 1328 "Zend/zend_language_scanner.l"
                {
        return T_LIST;
  }
- #line 4018 "Zend/zend_language_scanner.c"
 -#line 4015 "Zend/zend_language_scanner.c"
++#line 4022 "Zend/zend_language_scanner.c"
  yy294:
                YYDEBUG(294, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy298;
                YYDEBUG(295, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1354 "Zend/zend_language_scanner.l"
 -#line 1345 "Zend/zend_language_scanner.l"
++#line 1356 "Zend/zend_language_scanner.l"
                {
        return T_IS_EQUAL;
  }
- #line 4029 "Zend/zend_language_scanner.c"
 -#line 4026 "Zend/zend_language_scanner.c"
++#line 4033 "Zend/zend_language_scanner.c"
  yy296:
                YYDEBUG(296, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(297, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1322 "Zend/zend_language_scanner.l"
 -#line 1313 "Zend/zend_language_scanner.l"
++#line 1324 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_ARROW;
  }
- #line 4039 "Zend/zend_language_scanner.c"
 -#line 4036 "Zend/zend_language_scanner.c"
++#line 4043 "Zend/zend_language_scanner.c"
  yy298:
                YYDEBUG(298, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(299, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1346 "Zend/zend_language_scanner.l"
 -#line 1337 "Zend/zend_language_scanner.l"
++#line 1348 "Zend/zend_language_scanner.l"
                {
        return T_IS_IDENTICAL;
  }
- #line 4049 "Zend/zend_language_scanner.c"
 -#line 4046 "Zend/zend_language_scanner.c"
++#line 4053 "Zend/zend_language_scanner.c"
  yy300:
                YYDEBUG(300, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4175,7 -4172,7 +4179,7 @@@ yy316
                }
                YYDEBUG(319, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1710 "Zend/zend_language_scanner.l"
 -#line 1700 "Zend/zend_language_scanner.l"
++#line 1712 "Zend/zend_language_scanner.l"
                {
        if (CG(current_namespace)) {
                *zendlval = *CG(current_namespace);
        }
        return T_NS_C;
  }
- #line 4189 "Zend/zend_language_scanner.c"
 -#line 4186 "Zend/zend_language_scanner.c"
++#line 4193 "Zend/zend_language_scanner.c"
  yy320:
                YYDEBUG(320, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4205,7 -4202,7 +4209,7 @@@ yy321
                }
                YYDEBUG(324, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1683 "Zend/zend_language_scanner.l"
 -#line 1673 "Zend/zend_language_scanner.l"
++#line 1685 "Zend/zend_language_scanner.l"
                {
        char *filename = zend_get_compiled_filename(TSRMLS_C);
        const size_t filename_len = strlen(filename);
        zendlval->type = IS_STRING;
        return T_DIR;
  }
- #line 4236 "Zend/zend_language_scanner.c"
 -#line 4233 "Zend/zend_language_scanner.c"
++#line 4240 "Zend/zend_language_scanner.c"
  yy325:
                YYDEBUG(325, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4257,13 -4254,13 +4261,13 @@@ yy327
                }
                YYDEBUG(330, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1665 "Zend/zend_language_scanner.l"
 -#line 1655 "Zend/zend_language_scanner.l"
++#line 1667 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = CG(zend_lineno);
        zendlval->type = IS_LONG;
        return T_LINE;
  }
- #line 4267 "Zend/zend_language_scanner.c"
 -#line 4264 "Zend/zend_language_scanner.c"
++#line 4271 "Zend/zend_language_scanner.c"
  yy331:
                YYDEBUG(331, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4298,7 -4295,7 +4302,7 @@@ yy335
                }
                YYDEBUG(338, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1644 "Zend/zend_language_scanner.l"
 -#line 1634 "Zend/zend_language_scanner.l"
++#line 1646 "Zend/zend_language_scanner.l"
                {
        const char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL;
        const char *func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL;
        zendlval->type = IS_STRING;
        return T_METHOD_C;
  }
- #line 4323 "Zend/zend_language_scanner.c"
 -#line 4320 "Zend/zend_language_scanner.c"
++#line 4327 "Zend/zend_language_scanner.c"
  yy339:
                YYDEBUG(339, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4370,7 -4367,7 +4374,7 @@@ yy346
                }
                YYDEBUG(349, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1628 "Zend/zend_language_scanner.l"
 -#line 1618 "Zend/zend_language_scanner.l"
++#line 1630 "Zend/zend_language_scanner.l"
                {
        const char *func_name = NULL;
  
        zendlval->type = IS_STRING;
        return T_FUNC_C;
  }
- #line 4390 "Zend/zend_language_scanner.c"
 -#line 4387 "Zend/zend_language_scanner.c"
++#line 4394 "Zend/zend_language_scanner.c"
  yy350:
                YYDEBUG(350, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4406,7 -4403,7 +4410,7 @@@ yy351
                }
                YYDEBUG(354, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1671 "Zend/zend_language_scanner.l"
 -#line 1661 "Zend/zend_language_scanner.l"
++#line 1673 "Zend/zend_language_scanner.l"
                {
        char *filename = zend_get_compiled_filename(TSRMLS_C);
  
        zendlval->type = IS_STRING;
        return T_FILE;
  }
- #line 4422 "Zend/zend_language_scanner.c"
 -#line 4419 "Zend/zend_language_scanner.c"
++#line 4426 "Zend/zend_language_scanner.c"
  yy355:
                YYDEBUG(355, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4448,7 -4445,7 +4452,7 @@@ yy358
                }
                YYDEBUG(361, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1608 "Zend/zend_language_scanner.l"
 -#line 1598 "Zend/zend_language_scanner.l"
++#line 1610 "Zend/zend_language_scanner.l"
                {
        const char *trait_name = NULL;
        
        
        return T_TRAIT_C;
  }
- #line 4472 "Zend/zend_language_scanner.c"
 -#line 4469 "Zend/zend_language_scanner.c"
++#line 4476 "Zend/zend_language_scanner.c"
  yy362:
                YYDEBUG(362, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4498,7 -4495,7 +4502,7 @@@ yy365
                }
                YYDEBUG(368, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1581 "Zend/zend_language_scanner.l"
 -#line 1571 "Zend/zend_language_scanner.l"
++#line 1583 "Zend/zend_language_scanner.l"
                {
        const char *class_name = NULL;
        
        }
        return T_CLASS_C;
  }
- #line 4529 "Zend/zend_language_scanner.c"
 -#line 4526 "Zend/zend_language_scanner.c"
++#line 4533 "Zend/zend_language_scanner.c"
  yy369:
                YYDEBUG(369, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4587,11 -4584,11 +4591,11 @@@ yy380
                }
                YYDEBUG(381, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1290 "Zend/zend_language_scanner.l"
 -#line 1281 "Zend/zend_language_scanner.l"
++#line 1292 "Zend/zend_language_scanner.l"
                {
        return T_HALT_COMPILER;
  }
- #line 4595 "Zend/zend_language_scanner.c"
 -#line 4592 "Zend/zend_language_scanner.c"
++#line 4599 "Zend/zend_language_scanner.c"
  yy382:
                YYDEBUG(382, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4611,11 -4608,11 +4615,11 @@@ yy384
                }
                YYDEBUG(385, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1270 "Zend/zend_language_scanner.l"
 -#line 1261 "Zend/zend_language_scanner.l"
++#line 1272 "Zend/zend_language_scanner.l"
                {
        return T_USE;
  }
- #line 4619 "Zend/zend_language_scanner.c"
 -#line 4616 "Zend/zend_language_scanner.c"
++#line 4623 "Zend/zend_language_scanner.c"
  yy386:
                YYDEBUG(386, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4634,11 -4631,11 +4638,11 @@@ yy388
                }
                YYDEBUG(389, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1318 "Zend/zend_language_scanner.l"
 -#line 1309 "Zend/zend_language_scanner.l"
++#line 1320 "Zend/zend_language_scanner.l"
                {
        return T_UNSET;
  }
- #line 4642 "Zend/zend_language_scanner.c"
 -#line 4639 "Zend/zend_language_scanner.c"
++#line 4646 "Zend/zend_language_scanner.c"
  yy390:
                YYDEBUG(390, *YYCURSOR);
                ++YYCURSOR;
@@@ -4810,11 -4807,11 +4814,11 @@@ yy405
                ++YYCURSOR;
                YYDEBUG(407, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1218 "Zend/zend_language_scanner.l"
 -#line 1209 "Zend/zend_language_scanner.l"
++#line 1220 "Zend/zend_language_scanner.l"
                {
        return T_INT_CAST;
  }
- #line 4818 "Zend/zend_language_scanner.c"
 -#line 4815 "Zend/zend_language_scanner.c"
++#line 4822 "Zend/zend_language_scanner.c"
  yy408:
                YYDEBUG(408, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4858,11 -4855,11 +4862,11 @@@ yy413
                ++YYCURSOR;
                YYDEBUG(416, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1222 "Zend/zend_language_scanner.l"
 -#line 1213 "Zend/zend_language_scanner.l"
++#line 1224 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_CAST;
  }
- #line 4866 "Zend/zend_language_scanner.c"
 -#line 4863 "Zend/zend_language_scanner.c"
++#line 4870 "Zend/zend_language_scanner.c"
  yy417:
                YYDEBUG(417, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4932,11 -4929,11 +4936,11 @@@ yy427
                ++YYCURSOR;
                YYDEBUG(430, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1226 "Zend/zend_language_scanner.l"
 -#line 1217 "Zend/zend_language_scanner.l"
++#line 1228 "Zend/zend_language_scanner.l"
                {
        return T_STRING_CAST;
  }
- #line 4940 "Zend/zend_language_scanner.c"
 -#line 4937 "Zend/zend_language_scanner.c"
++#line 4944 "Zend/zend_language_scanner.c"
  yy431:
                YYDEBUG(431, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4969,11 -4966,11 +4973,11 @@@ yy434
                ++YYCURSOR;
                YYDEBUG(437, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1230 "Zend/zend_language_scanner.l"
 -#line 1221 "Zend/zend_language_scanner.l"
++#line 1232 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY_CAST;
  }
- #line 4977 "Zend/zend_language_scanner.c"
 -#line 4974 "Zend/zend_language_scanner.c"
++#line 4981 "Zend/zend_language_scanner.c"
  yy438:
                YYDEBUG(438, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5011,11 -5008,11 +5015,11 @@@ yy442
                ++YYCURSOR;
                YYDEBUG(445, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1234 "Zend/zend_language_scanner.l"
 -#line 1225 "Zend/zend_language_scanner.l"
++#line 1236 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_CAST;
  }
- #line 5019 "Zend/zend_language_scanner.c"
 -#line 5016 "Zend/zend_language_scanner.c"
++#line 5023 "Zend/zend_language_scanner.c"
  yy446:
                YYDEBUG(446, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5056,11 -5053,11 +5060,11 @@@ yy451
                ++YYCURSOR;
                YYDEBUG(453, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1238 "Zend/zend_language_scanner.l"
 -#line 1229 "Zend/zend_language_scanner.l"
++#line 1240 "Zend/zend_language_scanner.l"
                {
        return T_BOOL_CAST;
  }
- #line 5064 "Zend/zend_language_scanner.c"
 -#line 5061 "Zend/zend_language_scanner.c"
++#line 5068 "Zend/zend_language_scanner.c"
  yy454:
                YYDEBUG(454, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5120,11 -5117,11 +5124,11 @@@ yy462
                ++YYCURSOR;
                YYDEBUG(465, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1242 "Zend/zend_language_scanner.l"
 -#line 1233 "Zend/zend_language_scanner.l"
++#line 1244 "Zend/zend_language_scanner.l"
                {
        return T_UNSET_CAST;
  }
- #line 5128 "Zend/zend_language_scanner.c"
 -#line 5125 "Zend/zend_language_scanner.c"
++#line 5132 "Zend/zend_language_scanner.c"
  yy466:
                YYDEBUG(466, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5138,11 -5135,11 +5142,11 @@@ yy467
                }
                YYDEBUG(468, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1214 "Zend/zend_language_scanner.l"
 -#line 1205 "Zend/zend_language_scanner.l"
++#line 1216 "Zend/zend_language_scanner.l"
                {
        return T_VAR;
  }
- #line 5146 "Zend/zend_language_scanner.c"
 -#line 5143 "Zend/zend_language_scanner.c"
++#line 5150 "Zend/zend_language_scanner.c"
  yy469:
                YYDEBUG(469, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5162,11 -5159,11 +5166,11 @@@ yy471
                }
                YYDEBUG(472, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1206 "Zend/zend_language_scanner.l"
 -#line 1197 "Zend/zend_language_scanner.l"
++#line 1208 "Zend/zend_language_scanner.l"
                {
        return T_NEW;
  }
- #line 5170 "Zend/zend_language_scanner.c"
 -#line 5167 "Zend/zend_language_scanner.c"
++#line 5174 "Zend/zend_language_scanner.c"
  yy473:
                YYDEBUG(473, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5205,21 -5202,21 +5209,21 @@@ yy479
                }
                YYDEBUG(480, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1266 "Zend/zend_language_scanner.l"
 -#line 1257 "Zend/zend_language_scanner.l"
++#line 1268 "Zend/zend_language_scanner.l"
                {
        return T_NAMESPACE;
  }
- #line 5213 "Zend/zend_language_scanner.c"
 -#line 5210 "Zend/zend_language_scanner.c"
++#line 5217 "Zend/zend_language_scanner.c"
  yy481:
                YYDEBUG(481, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(482, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1198 "Zend/zend_language_scanner.l"
 -#line 1189 "Zend/zend_language_scanner.l"
++#line 1200 "Zend/zend_language_scanner.l"
                {
        return T_PAAMAYIM_NEKUDOTAYIM;
  }
- #line 5223 "Zend/zend_language_scanner.c"
 -#line 5220 "Zend/zend_language_scanner.c"
++#line 5227 "Zend/zend_language_scanner.c"
  yy483:
                YYDEBUG(483, *YYCURSOR);
                ++YYCURSOR;
@@@ -5241,32 -5238,32 +5245,32 @@@ yy485
                ++YYCURSOR;
                YYDEBUG(486, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1374 "Zend/zend_language_scanner.l"
 -#line 1365 "Zend/zend_language_scanner.l"
++#line 1376 "Zend/zend_language_scanner.l"
                {
        return T_MINUS_EQUAL;
  }
- #line 5249 "Zend/zend_language_scanner.c"
 -#line 5246 "Zend/zend_language_scanner.c"
++#line 5253 "Zend/zend_language_scanner.c"
  yy487:
                YYDEBUG(487, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(488, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1342 "Zend/zend_language_scanner.l"
 -#line 1333 "Zend/zend_language_scanner.l"
++#line 1344 "Zend/zend_language_scanner.l"
                {
        return T_DEC;
  }
- #line 5259 "Zend/zend_language_scanner.c"
 -#line 5256 "Zend/zend_language_scanner.c"
++#line 5263 "Zend/zend_language_scanner.c"
  yy489:
                YYDEBUG(489, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(490, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1168 "Zend/zend_language_scanner.l"
 -#line 1159 "Zend/zend_language_scanner.l"
++#line 1170 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
        return T_OBJECT_OPERATOR;
  }
- #line 5270 "Zend/zend_language_scanner.c"
 -#line 5267 "Zend/zend_language_scanner.c"
++#line 5274 "Zend/zend_language_scanner.c"
  yy491:
                YYDEBUG(491, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5311,11 -5308,11 +5315,11 @@@ yy496
                }
                YYDEBUG(497, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1314 "Zend/zend_language_scanner.l"
 -#line 1305 "Zend/zend_language_scanner.l"
++#line 1316 "Zend/zend_language_scanner.l"
                {
        return T_PUBLIC;
  }
- #line 5319 "Zend/zend_language_scanner.c"
 -#line 5316 "Zend/zend_language_scanner.c"
++#line 5323 "Zend/zend_language_scanner.c"
  yy498:
                YYDEBUG(498, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5370,11 -5367,11 +5374,11 @@@ yy505
                }
                YYDEBUG(506, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1310 "Zend/zend_language_scanner.l"
 -#line 1301 "Zend/zend_language_scanner.l"
++#line 1312 "Zend/zend_language_scanner.l"
                {
        return T_PROTECTED;
  }
- #line 5378 "Zend/zend_language_scanner.c"
 -#line 5375 "Zend/zend_language_scanner.c"
++#line 5382 "Zend/zend_language_scanner.c"
  yy507:
                YYDEBUG(507, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5404,11 -5401,11 +5408,11 @@@ yy511
                }
                YYDEBUG(512, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1306 "Zend/zend_language_scanner.l"
 -#line 1297 "Zend/zend_language_scanner.l"
++#line 1308 "Zend/zend_language_scanner.l"
                {
        return T_PRIVATE;
  }
- #line 5412 "Zend/zend_language_scanner.c"
 -#line 5409 "Zend/zend_language_scanner.c"
++#line 5416 "Zend/zend_language_scanner.c"
  yy513:
                YYDEBUG(513, *YYCURSOR);
                ++YYCURSOR;
                }
                YYDEBUG(514, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1144 "Zend/zend_language_scanner.l"
 -#line 1135 "Zend/zend_language_scanner.l"
++#line 1146 "Zend/zend_language_scanner.l"
                {
        return T_PRINT;
  }
- #line 5425 "Zend/zend_language_scanner.c"
 -#line 5422 "Zend/zend_language_scanner.c"
++#line 5429 "Zend/zend_language_scanner.c"
  yy515:
                YYDEBUG(515, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5446,11 -5443,11 +5450,11 @@@ yy518
                }
                YYDEBUG(519, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1136 "Zend/zend_language_scanner.l"
 -#line 1127 "Zend/zend_language_scanner.l"
++#line 1138 "Zend/zend_language_scanner.l"
                {
        return T_GOTO;
  }
- #line 5454 "Zend/zend_language_scanner.c"
 -#line 5451 "Zend/zend_language_scanner.c"
++#line 5458 "Zend/zend_language_scanner.c"
  yy520:
                YYDEBUG(520, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5474,11 -5471,11 +5478,11 @@@ yy523
                }
                YYDEBUG(524, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1278 "Zend/zend_language_scanner.l"
 -#line 1269 "Zend/zend_language_scanner.l"
++#line 1280 "Zend/zend_language_scanner.l"
                {
        return T_GLOBAL;
  }
- #line 5482 "Zend/zend_language_scanner.c"
 -#line 5479 "Zend/zend_language_scanner.c"
++#line 5486 "Zend/zend_language_scanner.c"
  yy525:
                YYDEBUG(525, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5515,11 -5512,11 +5519,11 @@@ yy531
                }
                YYDEBUG(532, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1128 "Zend/zend_language_scanner.l"
 -#line 1119 "Zend/zend_language_scanner.l"
++#line 1130 "Zend/zend_language_scanner.l"
                {
        return T_BREAK;
  }
- #line 5523 "Zend/zend_language_scanner.c"
 -#line 5520 "Zend/zend_language_scanner.c"
++#line 5527 "Zend/zend_language_scanner.c"
  yy533:
                YYDEBUG(533, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5559,11 -5556,11 +5563,11 @@@ yy539
                }
                YYDEBUG(540, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1112 "Zend/zend_language_scanner.l"
 -#line 1103 "Zend/zend_language_scanner.l"
++#line 1114 "Zend/zend_language_scanner.l"
                {
        return T_SWITCH;
  }
- #line 5567 "Zend/zend_language_scanner.c"
 -#line 5564 "Zend/zend_language_scanner.c"
++#line 5571 "Zend/zend_language_scanner.c"
  yy541:
                YYDEBUG(541, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5587,11 -5584,11 +5591,11 @@@ yy544
                }
                YYDEBUG(545, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1294 "Zend/zend_language_scanner.l"
 -#line 1285 "Zend/zend_language_scanner.l"
++#line 1296 "Zend/zend_language_scanner.l"
                {
        return T_STATIC;
  }
- #line 5595 "Zend/zend_language_scanner.c"
 -#line 5592 "Zend/zend_language_scanner.c"
++#line 5599 "Zend/zend_language_scanner.c"
  yy546:
                YYDEBUG(546, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5618,11 -5615,11 +5622,11 @@@ yy549
                }
                YYDEBUG(550, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1108 "Zend/zend_language_scanner.l"
 -#line 1099 "Zend/zend_language_scanner.l"
++#line 1110 "Zend/zend_language_scanner.l"
                {
        return T_AS;
  }
- #line 5626 "Zend/zend_language_scanner.c"
 -#line 5623 "Zend/zend_language_scanner.c"
++#line 5630 "Zend/zend_language_scanner.c"
  yy551:
                YYDEBUG(551, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5641,11 -5638,11 +5645,11 @@@ yy553
                }
                YYDEBUG(554, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1330 "Zend/zend_language_scanner.l"
 -#line 1321 "Zend/zend_language_scanner.l"
++#line 1332 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY;
  }
- #line 5649 "Zend/zend_language_scanner.c"
 -#line 5646 "Zend/zend_language_scanner.c"
++#line 5653 "Zend/zend_language_scanner.c"
  yy555:
                YYDEBUG(555, *YYCURSOR);
                ++YYCURSOR;
                }
                YYDEBUG(556, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1426 "Zend/zend_language_scanner.l"
 -#line 1417 "Zend/zend_language_scanner.l"
++#line 1428 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_AND;
  }
- #line 5662 "Zend/zend_language_scanner.c"
 -#line 5659 "Zend/zend_language_scanner.c"
++#line 5666 "Zend/zend_language_scanner.c"
  yy557:
                YYDEBUG(557, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5692,11 -5689,11 +5696,11 @@@ yy562
                }
                YYDEBUG(563, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1298 "Zend/zend_language_scanner.l"
 -#line 1289 "Zend/zend_language_scanner.l"
++#line 1300 "Zend/zend_language_scanner.l"
                {
        return T_ABSTRACT;
  }
- #line 5700 "Zend/zend_language_scanner.c"
 -#line 5697 "Zend/zend_language_scanner.c"
++#line 5704 "Zend/zend_language_scanner.c"
  yy564:
                YYDEBUG(564, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5720,11 -5717,11 +5724,11 @@@ yy567
                }
                YYDEBUG(568, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1068 "Zend/zend_language_scanner.l"
 -#line 1059 "Zend/zend_language_scanner.l"
++#line 1070 "Zend/zend_language_scanner.l"
                {
        return T_WHILE;
  }
- #line 5728 "Zend/zend_language_scanner.c"
 -#line 5725 "Zend/zend_language_scanner.c"
++#line 5732 "Zend/zend_language_scanner.c"
  yy569:
                YYDEBUG(569, *YYCURSOR);
                ++YYCURSOR;
                }
                YYDEBUG(570, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1052 "Zend/zend_language_scanner.l"
 -#line 1043 "Zend/zend_language_scanner.l"
++#line 1054 "Zend/zend_language_scanner.l"
                {
        return T_IF;
  }
- #line 5741 "Zend/zend_language_scanner.c"
 -#line 5738 "Zend/zend_language_scanner.c"
++#line 5745 "Zend/zend_language_scanner.c"
  yy571:
                YYDEBUG(571, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5789,11 -5786,11 +5793,11 @@@ yy576
                }
                YYDEBUG(577, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1282 "Zend/zend_language_scanner.l"
 -#line 1273 "Zend/zend_language_scanner.l"
++#line 1284 "Zend/zend_language_scanner.l"
                {
        return T_ISSET;
  }
- #line 5797 "Zend/zend_language_scanner.c"
 -#line 5794 "Zend/zend_language_scanner.c"
++#line 5801 "Zend/zend_language_scanner.c"
  yy578:
                YYDEBUG(578, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5847,11 -5844,11 +5851,11 @@@ yy584
  yy585:
                YYDEBUG(585, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1250 "Zend/zend_language_scanner.l"
 -#line 1241 "Zend/zend_language_scanner.l"
++#line 1252 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE;
  }
- #line 5855 "Zend/zend_language_scanner.c"
 -#line 5852 "Zend/zend_language_scanner.c"
++#line 5859 "Zend/zend_language_scanner.c"
  yy586:
                YYDEBUG(586, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5880,11 -5877,11 +5884,11 @@@ yy590
                }
                YYDEBUG(591, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1254 "Zend/zend_language_scanner.l"
 -#line 1245 "Zend/zend_language_scanner.l"
++#line 1256 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE_ONCE;
  }
- #line 5888 "Zend/zend_language_scanner.c"
 -#line 5885 "Zend/zend_language_scanner.c"
++#line 5892 "Zend/zend_language_scanner.c"
  yy592:
                YYDEBUG(592, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5918,11 -5915,11 +5922,11 @@@ yy597
                }
                YYDEBUG(598, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1152 "Zend/zend_language_scanner.l"
 -#line 1143 "Zend/zend_language_scanner.l"
++#line 1154 "Zend/zend_language_scanner.l"
                {
        return T_INTERFACE;
  }
- #line 5926 "Zend/zend_language_scanner.c"
 -#line 5923 "Zend/zend_language_scanner.c"
++#line 5930 "Zend/zend_language_scanner.c"
  yy599:
                YYDEBUG(599, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5972,11 -5969,11 +5976,11 @@@ yy605
                }
                YYDEBUG(606, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1274 "Zend/zend_language_scanner.l"
 -#line 1265 "Zend/zend_language_scanner.l"
++#line 1276 "Zend/zend_language_scanner.l"
                {
          return T_INSTEADOF;
  }
- #line 5980 "Zend/zend_language_scanner.c"
 -#line 5977 "Zend/zend_language_scanner.c"
++#line 5984 "Zend/zend_language_scanner.c"
  yy607:
                YYDEBUG(607, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6005,11 -6002,11 +6009,11 @@@ yy611
                }
                YYDEBUG(612, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1104 "Zend/zend_language_scanner.l"
 -#line 1095 "Zend/zend_language_scanner.l"
++#line 1106 "Zend/zend_language_scanner.l"
                {
        return T_INSTANCEOF;
  }
- #line 6013 "Zend/zend_language_scanner.c"
 -#line 6010 "Zend/zend_language_scanner.c"
++#line 6017 "Zend/zend_language_scanner.c"
  yy613:
                YYDEBUG(613, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6053,11 -6050,11 +6057,11 @@@ yy620
                }
                YYDEBUG(621, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1164 "Zend/zend_language_scanner.l"
 -#line 1155 "Zend/zend_language_scanner.l"
++#line 1166 "Zend/zend_language_scanner.l"
                {
        return T_IMPLEMENTS;
  }
- #line 6061 "Zend/zend_language_scanner.c"
 -#line 6058 "Zend/zend_language_scanner.c"
++#line 6065 "Zend/zend_language_scanner.c"
  yy622:
                YYDEBUG(622, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6085,11 -6082,11 +6089,11 @@@ yy623
                }
                YYDEBUG(625, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1036 "Zend/zend_language_scanner.l"
 -#line 1031 "Zend/zend_language_scanner.l"
++#line 1038 "Zend/zend_language_scanner.l"
                {
        return T_TRY;
  }
- #line 6093 "Zend/zend_language_scanner.c"
 -#line 6090 "Zend/zend_language_scanner.c"
++#line 6097 "Zend/zend_language_scanner.c"
  yy626:
                YYDEBUG(626, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6108,11 -6105,11 +6112,11 @@@ yy628
                }
                YYDEBUG(629, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1156 "Zend/zend_language_scanner.l"
 -#line 1147 "Zend/zend_language_scanner.l"
++#line 1158 "Zend/zend_language_scanner.l"
                {
        return T_TRAIT;
  }
- #line 6116 "Zend/zend_language_scanner.c"
 -#line 6113 "Zend/zend_language_scanner.c"
++#line 6120 "Zend/zend_language_scanner.c"
  yy630:
                YYDEBUG(630, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6131,11 -6128,11 +6135,11 @@@ yy632
                }
                YYDEBUG(633, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1048 "Zend/zend_language_scanner.l"
 -#line 1039 "Zend/zend_language_scanner.l"
++#line 1050 "Zend/zend_language_scanner.l"
                {
        return T_THROW;
  }
- #line 6139 "Zend/zend_language_scanner.c"
 -#line 6136 "Zend/zend_language_scanner.c"
++#line 6143 "Zend/zend_language_scanner.c"
  yy634:
                YYDEBUG(634, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6196,11 -6193,11 +6200,11 @@@ yy640
  yy641:
                YYDEBUG(641, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1258 "Zend/zend_language_scanner.l"
 -#line 1249 "Zend/zend_language_scanner.l"
++#line 1260 "Zend/zend_language_scanner.l"
                {
        return T_REQUIRE;
  }
- #line 6204 "Zend/zend_language_scanner.c"
 -#line 6201 "Zend/zend_language_scanner.c"
++#line 6208 "Zend/zend_language_scanner.c"
  yy642:
                YYDEBUG(642, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6229,11 -6226,11 +6233,11 @@@ yy646
                }
                YYDEBUG(647, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1262 "Zend/zend_language_scanner.l"
 -#line 1253 "Zend/zend_language_scanner.l"
++#line 1264 "Zend/zend_language_scanner.l"
                {
        return T_REQUIRE_ONCE;
  }
- #line 6237 "Zend/zend_language_scanner.c"
 -#line 6234 "Zend/zend_language_scanner.c"
++#line 6241 "Zend/zend_language_scanner.c"
  yy648:
                YYDEBUG(648, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6252,11 -6249,11 +6256,11 @@@ yy650
                }
                YYDEBUG(651, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1032 "Zend/zend_language_scanner.l"
 -#line 1027 "Zend/zend_language_scanner.l"
++#line 1034 "Zend/zend_language_scanner.l"
                {
        return T_RETURN;
  }
- #line 6260 "Zend/zend_language_scanner.c"
 -#line 6257 "Zend/zend_language_scanner.c"
++#line 6264 "Zend/zend_language_scanner.c"
  yy652:
                YYDEBUG(652, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6346,11 -6343,11 +6350,11 @@@ yy661
                }
                YYDEBUG(662, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1132 "Zend/zend_language_scanner.l"
 -#line 1123 "Zend/zend_language_scanner.l"
++#line 1134 "Zend/zend_language_scanner.l"
                {
        return T_CONTINUE;
  }
- #line 6354 "Zend/zend_language_scanner.c"
 -#line 6351 "Zend/zend_language_scanner.c"
++#line 6358 "Zend/zend_language_scanner.c"
  yy663:
                YYDEBUG(663, *YYCURSOR);
                ++YYCURSOR;
                }
                YYDEBUG(664, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1028 "Zend/zend_language_scanner.l"
 -#line 1023 "Zend/zend_language_scanner.l"
++#line 1030 "Zend/zend_language_scanner.l"
                {
        return T_CONST;
  }
- #line 6367 "Zend/zend_language_scanner.c"
 -#line 6364 "Zend/zend_language_scanner.c"
++#line 6371 "Zend/zend_language_scanner.c"
  yy665:
                YYDEBUG(665, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6388,11 -6385,11 +6392,11 @@@ yy668
                }
                YYDEBUG(669, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1210 "Zend/zend_language_scanner.l"
 -#line 1201 "Zend/zend_language_scanner.l"
++#line 1212 "Zend/zend_language_scanner.l"
                {
        return T_CLONE;
  }
- #line 6396 "Zend/zend_language_scanner.c"
 -#line 6393 "Zend/zend_language_scanner.c"
++#line 6400 "Zend/zend_language_scanner.c"
  yy670:
                YYDEBUG(670, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6406,11 -6403,11 +6410,11 @@@ yy671
                }
                YYDEBUG(672, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1148 "Zend/zend_language_scanner.l"
 -#line 1139 "Zend/zend_language_scanner.l"
++#line 1150 "Zend/zend_language_scanner.l"
                {
        return T_CLASS;
  }
- #line 6414 "Zend/zend_language_scanner.c"
 -#line 6411 "Zend/zend_language_scanner.c"
++#line 6418 "Zend/zend_language_scanner.c"
  yy673:
                YYDEBUG(673, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6456,11 -6453,11 +6460,11 @@@ yy680
                }
                YYDEBUG(681, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1334 "Zend/zend_language_scanner.l"
 -#line 1325 "Zend/zend_language_scanner.l"
++#line 1336 "Zend/zend_language_scanner.l"
                {
   return T_CALLABLE;
  }
- #line 6464 "Zend/zend_language_scanner.c"
 -#line 6461 "Zend/zend_language_scanner.c"
++#line 6468 "Zend/zend_language_scanner.c"
  yy682:
                YYDEBUG(682, *YYCURSOR);
                ++YYCURSOR;
                }
                YYDEBUG(683, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1120 "Zend/zend_language_scanner.l"
 -#line 1111 "Zend/zend_language_scanner.l"
++#line 1122 "Zend/zend_language_scanner.l"
                {
        return T_CASE;
  }
- #line 6477 "Zend/zend_language_scanner.c"
 -#line 6474 "Zend/zend_language_scanner.c"
++#line 6481 "Zend/zend_language_scanner.c"
  yy684:
                YYDEBUG(684, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6487,11 -6484,11 +6491,11 @@@ yy685
                }
                YYDEBUG(686, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1040 "Zend/zend_language_scanner.l"
 -#line 1035 "Zend/zend_language_scanner.l"
++#line 1042 "Zend/zend_language_scanner.l"
                {
        return T_CATCH;
  }
- #line 6495 "Zend/zend_language_scanner.c"
 -#line 6492 "Zend/zend_language_scanner.c"
++#line 6499 "Zend/zend_language_scanner.c"
  yy687:
                YYDEBUG(687, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6542,11 -6539,11 +6546,11 @@@ yy695
                }
                YYDEBUG(696, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1024 "Zend/zend_language_scanner.l"
 -#line 1019 "Zend/zend_language_scanner.l"
++#line 1026 "Zend/zend_language_scanner.l"
                {
        return T_FUNCTION;
  }
- #line 6550 "Zend/zend_language_scanner.c"
 -#line 6547 "Zend/zend_language_scanner.c"
++#line 6554 "Zend/zend_language_scanner.c"
  yy697:
                YYDEBUG(697, *YYCURSOR);
                ++YYCURSOR;
  yy698:
                YYDEBUG(698, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1080 "Zend/zend_language_scanner.l"
 -#line 1071 "Zend/zend_language_scanner.l"
++#line 1082 "Zend/zend_language_scanner.l"
                {
        return T_FOR;
  }
- #line 6578 "Zend/zend_language_scanner.c"
 -#line 6575 "Zend/zend_language_scanner.c"
++#line 6582 "Zend/zend_language_scanner.c"
  yy699:
                YYDEBUG(699, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6598,11 -6595,11 +6602,11 @@@ yy702
                }
                YYDEBUG(703, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1088 "Zend/zend_language_scanner.l"
 -#line 1079 "Zend/zend_language_scanner.l"
++#line 1090 "Zend/zend_language_scanner.l"
                {
        return T_FOREACH;
  }
- #line 6606 "Zend/zend_language_scanner.c"
 -#line 6603 "Zend/zend_language_scanner.c"
++#line 6610 "Zend/zend_language_scanner.c"
  yy704:
                YYDEBUG(704, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6616,56 -6613,23 +6620,56 @@@ yy705
  yy706:
                YYDEBUG(706, *YYCURSOR);
                ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +              if ((yych = *YYCURSOR) <= '^') {
 +                      if (yych <= '@') {
 +                              if (yych <= '/') goto yy707;
 +                              if (yych <= '9') goto yy185;
 +                      } else {
 +                              if (yych == 'L') goto yy708;
 +                              if (yych <= 'Z') goto yy185;
 +                      }
 +              } else {
 +                      if (yych <= 'k') {
 +                              if (yych != '`') goto yy185;
 +                      } else {
 +                              if (yych <= 'l') goto yy708;
 +                              if (yych <= 'z') goto yy185;
 +                              if (yych >= 0x7F) goto yy185;
 +                      }
                }
 +yy707:
                YYDEBUG(707, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1302 "Zend/zend_language_scanner.l"
 -#line 1293 "Zend/zend_language_scanner.l"
++#line 1304 "Zend/zend_language_scanner.l"
                {
        return T_FINAL;
  }
- #line 6644 "Zend/zend_language_scanner.c"
 -#line 6626 "Zend/zend_language_scanner.c"
++#line 6648 "Zend/zend_language_scanner.c"
  yy708:
                YYDEBUG(708, *YYCURSOR);
                yych = *++YYCURSOR;
- #line 1044 "Zend/zend_language_scanner.l"
 +              if (yych == 'Y') goto yy709;
 +              if (yych != 'y') goto yy186;
 +yy709:
 +              YYDEBUG(709, *YYCURSOR);
 +              ++YYCURSOR;
 +              if (yybm[0+(yych = *YYCURSOR)] & 4) {
 +                      goto yy185;
 +              }
 +              YYDEBUG(710, *YYCURSOR);
 +              yyleng = YYCURSOR - SCNG(yy_text);
- #line 6662 "Zend/zend_language_scanner.c"
++#line 1046 "Zend/zend_language_scanner.l"
 +              {
 +      return T_FINALLY;
 +}
++#line 6666 "Zend/zend_language_scanner.c"
 +yy711:
 +              YYDEBUG(711, *YYCURSOR);
 +              yych = *++YYCURSOR;
                if (yych <= 'F') {
 -                      if (yych == 'C') goto yy714;
 +                      if (yych == 'C') goto yy717;
                        if (yych <= 'E') goto yy186;
 -                      goto yy715;
 +                      goto yy718;
                } else {
                        if (yych <= 'c') {
                                if (yych <= 'b') goto yy186;
@@@ -6687,93 -6651,111 +6691,93 @@@ yy713
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
 -              YYDEBUG(711, *YYCURSOR);
 +              YYDEBUG(714, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1076 "Zend/zend_language_scanner.l"
 -#line 1067 "Zend/zend_language_scanner.l"
++#line 1078 "Zend/zend_language_scanner.l"
                {
        return T_DO;
  }
- #line 6697 "Zend/zend_language_scanner.c"
 -#line 6661 "Zend/zend_language_scanner.c"
 -yy712:
 -              YYDEBUG(712, *YYCURSOR);
++#line 6701 "Zend/zend_language_scanner.c"
 +yy715:
 +              YYDEBUG(715, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
 -              YYDEBUG(713, *YYCURSOR);
 +              YYDEBUG(716, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1020 "Zend/zend_language_scanner.l"
 -#line 1015 "Zend/zend_language_scanner.l"
++#line 1022 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
  }
- #line 6710 "Zend/zend_language_scanner.c"
 -#line 6674 "Zend/zend_language_scanner.c"
 -yy714:
 -              YYDEBUG(714, *YYCURSOR);
++#line 6714 "Zend/zend_language_scanner.c"
 +yy717:
 +              YYDEBUG(717, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy721;
 -              if (yych == 'l') goto yy721;
 +              if (yych == 'L') goto yy724;
 +              if (yych == 'l') goto yy724;
                goto yy186;
 -yy715:
 -              YYDEBUG(715, *YYCURSOR);
 +yy718:
 +              YYDEBUG(718, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy716;
 +              if (yych == 'A') goto yy719;
                if (yych != 'a') goto yy186;
 -yy716:
 -              YYDEBUG(716, *YYCURSOR);
 +yy719:
 +              YYDEBUG(719, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'U') goto yy717;
 +              if (yych == 'U') goto yy720;
                if (yych != 'u') goto yy186;
 -yy717:
 -              YYDEBUG(717, *YYCURSOR);
 +yy720:
 +              YYDEBUG(720, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy718;
 +              if (yych == 'L') goto yy721;
                if (yych != 'l') goto yy186;
 -yy718:
 -              YYDEBUG(718, *YYCURSOR);
 +yy721:
 +              YYDEBUG(721, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy719;
 +              if (yych == 'T') goto yy722;
                if (yych != 't') goto yy186;
 -yy719:
 -              YYDEBUG(719, *YYCURSOR);
 +yy722:
 +              YYDEBUG(722, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
 -              YYDEBUG(720, *YYCURSOR);
 +              YYDEBUG(723, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1124 "Zend/zend_language_scanner.l"
 -#line 1115 "Zend/zend_language_scanner.l"
++#line 1126 "Zend/zend_language_scanner.l"
                {
        return T_DEFAULT;
  }
- #line 6749 "Zend/zend_language_scanner.c"
 -#line 6713 "Zend/zend_language_scanner.c"
 -yy721:
 -              YYDEBUG(721, *YYCURSOR);
++#line 6753 "Zend/zend_language_scanner.c"
 +yy724:
 +              YYDEBUG(724, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy722;
 +              if (yych == 'A') goto yy725;
                if (yych != 'a') goto yy186;
 -yy722:
 -              YYDEBUG(722, *YYCURSOR);
 +yy725:
 +              YYDEBUG(725, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy723;
 +              if (yych == 'R') goto yy726;
                if (yych != 'r') goto yy186;
 -yy723:
 -              YYDEBUG(723, *YYCURSOR);
 +yy726:
 +              YYDEBUG(726, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy724;
 +              if (yych == 'E') goto yy727;
                if (yych != 'e') goto yy186;
 -yy724:
 -              YYDEBUG(724, *YYCURSOR);
 +yy727:
 +              YYDEBUG(727, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
 -              YYDEBUG(725, *YYCURSOR);
 +              YYDEBUG(728, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1096 "Zend/zend_language_scanner.l"
 -#line 1087 "Zend/zend_language_scanner.l"
++#line 1098 "Zend/zend_language_scanner.l"
                {
        return T_DECLARE;
  }
- #line 6777 "Zend/zend_language_scanner.c"
 -#line 6741 "Zend/zend_language_scanner.c"
 -yy726:
 -              YYDEBUG(726, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'H') goto yy788;
 -              if (yych == 'h') goto yy788;
 -              goto yy186;
 -yy727:
 -              YYDEBUG(727, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy782;
 -              if (yych == 's') goto yy782;
 -              goto yy186;
 -yy728:
 -              YYDEBUG(728, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'P') goto yy778;
 -              if (yych == 'p') goto yy778;
 -              goto yy186;
++#line 6781 "Zend/zend_language_scanner.c"
  yy729:
                YYDEBUG(729, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6851,46 -6815,46 +6855,46 @@@ yy740
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
 -              YYDEBUG(738, *YYCURSOR);
 +              YYDEBUG(741, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1160 "Zend/zend_language_scanner.l"
 -#line 1151 "Zend/zend_language_scanner.l"
++#line 1162 "Zend/zend_language_scanner.l"
                {
        return T_EXTENDS;
  }
- #line 6861 "Zend/zend_language_scanner.c"
 -#line 6825 "Zend/zend_language_scanner.c"
 -yy739:
 -              YYDEBUG(739, *YYCURSOR);
++#line 6865 "Zend/zend_language_scanner.c"
 +yy742:
 +              YYDEBUG(742, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
 -              YYDEBUG(740, *YYCURSOR);
 +              YYDEBUG(743, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1016 "Zend/zend_language_scanner.l"
 -#line 1011 "Zend/zend_language_scanner.l"
++#line 1018 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
  }
- #line 6874 "Zend/zend_language_scanner.c"
 -#line 6838 "Zend/zend_language_scanner.c"
 -yy741:
 -              YYDEBUG(741, *YYCURSOR);
++#line 6878 "Zend/zend_language_scanner.c"
 +yy744:
 +              YYDEBUG(744, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy742;
 +              if (yych == 'L') goto yy745;
                if (yych != 'l') goto yy186;
 -yy742:
 -              YYDEBUG(742, *YYCURSOR);
 +yy745:
 +              YYDEBUG(745, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
 -              YYDEBUG(743, *YYCURSOR);
 +              YYDEBUG(746, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1246 "Zend/zend_language_scanner.l"
 -#line 1237 "Zend/zend_language_scanner.l"
++#line 1248 "Zend/zend_language_scanner.l"
                {
        return T_EVAL;
  }
- #line 6892 "Zend/zend_language_scanner.c"
 -#line 6856 "Zend/zend_language_scanner.c"
 -yy744:
 -              YYDEBUG(744, *YYCURSOR);
++#line 6896 "Zend/zend_language_scanner.c"
 +yy747:
 +              YYDEBUG(747, *YYCURSOR);
                yych = *++YYCURSOR;
                YYDEBUG(-1, yych);
                switch (yych) {
@@@ -6956,66 -6920,66 +6960,66 @@@ yy756
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
 -              YYDEBUG(754, *YYCURSOR);
 +              YYDEBUG(757, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1072 "Zend/zend_language_scanner.l"
 -#line 1063 "Zend/zend_language_scanner.l"
++#line 1074 "Zend/zend_language_scanner.l"
                {
        return T_ENDWHILE;
  }
- #line 6966 "Zend/zend_language_scanner.c"
 -#line 6930 "Zend/zend_language_scanner.c"
 -yy755:
 -              YYDEBUG(755, *YYCURSOR);
++#line 6970 "Zend/zend_language_scanner.c"
 +yy758:
 +              YYDEBUG(758, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy756;
 +              if (yych == 'I') goto yy759;
                if (yych != 'i') goto yy186;
 -yy756:
 -              YYDEBUG(756, *YYCURSOR);
 +yy759:
 +              YYDEBUG(759, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy757;
 +              if (yych == 'T') goto yy760;
                if (yych != 't') goto yy186;
 -yy757:
 -              YYDEBUG(757, *YYCURSOR);
 +yy760:
 +              YYDEBUG(760, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy758;
 +              if (yych == 'C') goto yy761;
                if (yych != 'c') goto yy186;
 -yy758:
 -              YYDEBUG(758, *YYCURSOR);
 +yy761:
 +              YYDEBUG(761, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'H') goto yy759;
 +              if (yych == 'H') goto yy762;
                if (yych != 'h') goto yy186;
 -yy759:
 -              YYDEBUG(759, *YYCURSOR);
 +yy762:
 +              YYDEBUG(762, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
 -              YYDEBUG(760, *YYCURSOR);
 +              YYDEBUG(763, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1116 "Zend/zend_language_scanner.l"
 -#line 1107 "Zend/zend_language_scanner.l"
++#line 1118 "Zend/zend_language_scanner.l"
                {
        return T_ENDSWITCH;
  }
- #line 6999 "Zend/zend_language_scanner.c"
 -#line 6963 "Zend/zend_language_scanner.c"
 -yy761:
 -              YYDEBUG(761, *YYCURSOR);
++#line 7003 "Zend/zend_language_scanner.c"
 +yy764:
 +              YYDEBUG(764, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
 -              YYDEBUG(762, *YYCURSOR);
 +              YYDEBUG(765, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1060 "Zend/zend_language_scanner.l"
 -#line 1051 "Zend/zend_language_scanner.l"
++#line 1062 "Zend/zend_language_scanner.l"
                {
        return T_ENDIF;
  }
- #line 7012 "Zend/zend_language_scanner.c"
 -#line 6976 "Zend/zend_language_scanner.c"
 -yy763:
 -              YYDEBUG(763, *YYCURSOR);
++#line 7016 "Zend/zend_language_scanner.c"
 +yy766:
 +              YYDEBUG(766, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy764;
 +              if (yych == 'R') goto yy767;
                if (yych != 'r') goto yy186;
 -yy764:
 -              YYDEBUG(764, *YYCURSOR);
 +yy767:
 +              YYDEBUG(767, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '@') {
                                if (yych >= 0x7F) goto yy185;
                        }
                }
 -yy765:
 -              YYDEBUG(765, *YYCURSOR);
 +yy768:
 +              YYDEBUG(768, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1084 "Zend/zend_language_scanner.l"
 -#line 1075 "Zend/zend_language_scanner.l"
++#line 1086 "Zend/zend_language_scanner.l"
                {
        return T_ENDFOR;
  }
- #line 7045 "Zend/zend_language_scanner.c"
 -#line 7009 "Zend/zend_language_scanner.c"
 -yy766:
 -              YYDEBUG(766, *YYCURSOR);
++#line 7049 "Zend/zend_language_scanner.c"
 +yy769:
 +              YYDEBUG(769, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy767;
 +              if (yych == 'A') goto yy770;
                if (yych != 'a') goto yy186;
 -yy767:
 -              YYDEBUG(767, *YYCURSOR);
 +yy770:
 +              YYDEBUG(770, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy768;
 +              if (yych == 'C') goto yy771;
                if (yych != 'c') goto yy186;
 -yy768:
 -              YYDEBUG(768, *YYCURSOR);
 +yy771:
 +              YYDEBUG(771, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'H') goto yy769;
 +              if (yych == 'H') goto yy772;
                if (yych != 'h') goto yy186;
 -yy769:
 -              YYDEBUG(769, *YYCURSOR);
 +yy772:
 +              YYDEBUG(772, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
 -              YYDEBUG(770, *YYCURSOR);
 +              YYDEBUG(773, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1092 "Zend/zend_language_scanner.l"
 -#line 1083 "Zend/zend_language_scanner.l"
++#line 1094 "Zend/zend_language_scanner.l"
                {
        return T_ENDFOREACH;
  }
- #line 7073 "Zend/zend_language_scanner.c"
 -#line 7037 "Zend/zend_language_scanner.c"
 -yy771:
 -              YYDEBUG(771, *YYCURSOR);
++#line 7077 "Zend/zend_language_scanner.c"
 +yy774:
 +              YYDEBUG(774, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy772;
 +              if (yych == 'C') goto yy775;
                if (yych != 'c') goto yy186;
 -yy772:
 -              YYDEBUG(772, *YYCURSOR);
 +yy775:
 +              YYDEBUG(775, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy773;
 +              if (yych == 'L') goto yy776;
                if (yych != 'l') goto yy186;
 -yy773:
 -              YYDEBUG(773, *YYCURSOR);
 +yy776:
 +              YYDEBUG(776, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy774;
 +              if (yych == 'A') goto yy777;
                if (yych != 'a') goto yy186;
 -yy774:
 -              YYDEBUG(774, *YYCURSOR);
 +yy777:
 +              YYDEBUG(777, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy775;
 +              if (yych == 'R') goto yy778;
                if (yych != 'r') goto yy186;
 -yy775:
 -              YYDEBUG(775, *YYCURSOR);
 +yy778:
 +              YYDEBUG(778, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy776;
 +              if (yych == 'E') goto yy779;
                if (yych != 'e') goto yy186;
 -yy776:
 -              YYDEBUG(776, *YYCURSOR);
 +yy779:
 +              YYDEBUG(779, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
 -              YYDEBUG(777, *YYCURSOR);
 +              YYDEBUG(780, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1100 "Zend/zend_language_scanner.l"
 -#line 1091 "Zend/zend_language_scanner.l"
++#line 1102 "Zend/zend_language_scanner.l"
                {
        return T_ENDDECLARE;
  }
- #line 7111 "Zend/zend_language_scanner.c"
 -#line 7075 "Zend/zend_language_scanner.c"
 -yy778:
 -              YYDEBUG(778, *YYCURSOR);
++#line 7115 "Zend/zend_language_scanner.c"
 +yy781:
 +              YYDEBUG(781, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy779;
 +              if (yych == 'T') goto yy782;
                if (yych != 't') goto yy186;
 -yy779:
 -              YYDEBUG(779, *YYCURSOR);
 +yy782:
 +              YYDEBUG(782, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'Y') goto yy780;
 +              if (yych == 'Y') goto yy783;
                if (yych != 'y') goto yy186;
 -yy780:
 -              YYDEBUG(780, *YYCURSOR);
 +yy783:
 +              YYDEBUG(783, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
 -              YYDEBUG(781, *YYCURSOR);
 +              YYDEBUG(784, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1286 "Zend/zend_language_scanner.l"
 -#line 1277 "Zend/zend_language_scanner.l"
++#line 1288 "Zend/zend_language_scanner.l"
                {
        return T_EMPTY;
  }
- #line 7134 "Zend/zend_language_scanner.c"
 -#line 7098 "Zend/zend_language_scanner.c"
 -yy782:
 -              YYDEBUG(782, *YYCURSOR);
++#line 7138 "Zend/zend_language_scanner.c"
 +yy785:
 +              YYDEBUG(785, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy783;
 +              if (yych == 'E') goto yy786;
                if (yych != 'e') goto yy186;
 -yy783:
 -              YYDEBUG(783, *YYCURSOR);
 +yy786:
 +              YYDEBUG(786, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '@') {
                                if (yych >= 0x7F) goto yy185;
                        }
                }
 -yy784:
 -              YYDEBUG(784, *YYCURSOR);
 +yy787:
 +              YYDEBUG(787, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1064 "Zend/zend_language_scanner.l"
 -#line 1055 "Zend/zend_language_scanner.l"
++#line 1066 "Zend/zend_language_scanner.l"
                {
        return T_ELSE;
  }
- #line 7167 "Zend/zend_language_scanner.c"
 -#line 7131 "Zend/zend_language_scanner.c"
 -yy785:
 -              YYDEBUG(785, *YYCURSOR);
++#line 7171 "Zend/zend_language_scanner.c"
 +yy788:
 +              YYDEBUG(788, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'F') goto yy786;
 +              if (yych == 'F') goto yy789;
                if (yych != 'f') goto yy186;
 -yy786:
 -              YYDEBUG(786, *YYCURSOR);
 +yy789:
 +              YYDEBUG(789, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
 -              YYDEBUG(787, *YYCURSOR);
 +              YYDEBUG(790, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1056 "Zend/zend_language_scanner.l"
 -#line 1047 "Zend/zend_language_scanner.l"
++#line 1058 "Zend/zend_language_scanner.l"
                {
        return T_ELSEIF;
  }
- #line 7185 "Zend/zend_language_scanner.c"
 -#line 7149 "Zend/zend_language_scanner.c"
 -yy788:
 -              YYDEBUG(788, *YYCURSOR);
++#line 7189 "Zend/zend_language_scanner.c"
 +yy791:
 +              YYDEBUG(791, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy789;
 +              if (yych == 'O') goto yy792;
                if (yych != 'o') goto yy186;
 -yy789:
 -              YYDEBUG(789, *YYCURSOR);
 +yy792:
 +              YYDEBUG(792, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
 -              YYDEBUG(790, *YYCURSOR);
 +              YYDEBUG(793, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1140 "Zend/zend_language_scanner.l"
 -#line 1131 "Zend/zend_language_scanner.l"
++#line 1142 "Zend/zend_language_scanner.l"
                {
        return T_ECHO;
  }
- #line 7203 "Zend/zend_language_scanner.c"
 -#line 7167 "Zend/zend_language_scanner.c"
++#line 7207 "Zend/zend_language_scanner.c"
        }
  /* *********************************** */
  yyc_ST_LOOKING_FOR_PROPERTY:
                        }
                } else {
                        if (yych <= '_') {
 -                              if (yych <= '@') goto yy799;
 -                              if (yych <= 'Z') goto yy797;
 -                              if (yych <= '^') goto yy799;
 -                              goto yy797;
 +                              if (yych <= '@') goto yy802;
 +                              if (yych <= 'Z') goto yy800;
 +                              if (yych <= '^') goto yy802;
 +                              goto yy800;
                        } else {
 -                              if (yych <= '`') goto yy799;
 -                              if (yych <= 'z') goto yy797;
 -                              if (yych <= '~') goto yy799;
 -                              goto yy797;
 +                              if (yych <= '`') goto yy802;
 +                              if (yych <= 'z') goto yy800;
 +                              if (yych <= '~') goto yy802;
 +                              goto yy800;
                        }
                }
 -yy793:
 -              YYDEBUG(793, *YYCURSOR);
 +yy796:
 +              YYDEBUG(796, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
 -              goto yy805;
 -yy794:
 -              YYDEBUG(794, *YYCURSOR);
 +              goto yy808;
 +yy797:
 +              YYDEBUG(797, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1173 "Zend/zend_language_scanner.l"
 -#line 1164 "Zend/zend_language_scanner.l"
++#line 1175 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
        HANDLE_NEWLINES(yytext, yyleng);
        return T_WHITESPACE;
  }
- #line 7284 "Zend/zend_language_scanner.c"
 -#line 7248 "Zend/zend_language_scanner.c"
 -yy795:
 -              YYDEBUG(795, *YYCURSOR);
++#line 7288 "Zend/zend_language_scanner.c"
 +yy798:
 +              YYDEBUG(798, *YYCURSOR);
                ++YYCURSOR;
 -              if ((yych = *YYCURSOR) == '>') goto yy802;
 -yy796:
 -              YYDEBUG(796, *YYCURSOR);
 +              if ((yych = *YYCURSOR) == '>') goto yy805;
 +yy799:
 +              YYDEBUG(799, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1192 "Zend/zend_language_scanner.l"
 -#line 1183 "Zend/zend_language_scanner.l"
++#line 1194 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state(TSRMLS_C);
        goto restart;
  }
- #line 7298 "Zend/zend_language_scanner.c"
 -#line 7262 "Zend/zend_language_scanner.c"
 -yy797:
 -              YYDEBUG(797, *YYCURSOR);
++#line 7302 "Zend/zend_language_scanner.c"
 +yy800:
 +              YYDEBUG(800, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
 -              goto yy801;
 -yy798:
 -              YYDEBUG(798, *YYCURSOR);
 +              goto yy804;
 +yy801:
 +              YYDEBUG(801, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1185 "Zend/zend_language_scanner.l"
 -#line 1176 "Zend/zend_language_scanner.l"
++#line 1187 "Zend/zend_language_scanner.l"
                {
        yy_pop_state(TSRMLS_C);
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
        return T_STRING;
  }
- #line 7314 "Zend/zend_language_scanner.c"
 -#line 7278 "Zend/zend_language_scanner.c"
 -yy799:
 -              YYDEBUG(799, *YYCURSOR);
++#line 7318 "Zend/zend_language_scanner.c"
 +yy802:
 +              YYDEBUG(802, *YYCURSOR);
                yych = *++YYCURSOR;
 -              goto yy796;
 -yy800:
 -              YYDEBUG(800, *YYCURSOR);
 +              goto yy799;
 +yy803:
 +              YYDEBUG(803, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -yy801:
 -              YYDEBUG(801, *YYCURSOR);
 +yy804:
 +              YYDEBUG(804, *YYCURSOR);
                if (yybm[0+yych] & 64) {
 -                      goto yy800;
 +                      goto yy803;
                }
 -              goto yy798;
 -yy802:
 -              YYDEBUG(802, *YYCURSOR);
 +              goto yy801;
 +yy805:
 +              YYDEBUG(805, *YYCURSOR);
                ++YYCURSOR;
 -              YYDEBUG(803, *YYCURSOR);
 +              YYDEBUG(806, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1181 "Zend/zend_language_scanner.l"
 -#line 1172 "Zend/zend_language_scanner.l"
++#line 1183 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_OPERATOR;
  }
- #line 7339 "Zend/zend_language_scanner.c"
 -#line 7303 "Zend/zend_language_scanner.c"
 -yy804:
 -              YYDEBUG(804, *YYCURSOR);
++#line 7343 "Zend/zend_language_scanner.c"
 +yy807:
 +              YYDEBUG(807, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
@@@ -7389,90 -7353,66 +7393,90 @@@ yyc_ST_LOOKING_FOR_VARNAME
                YYFILL(2);
                yych = *YYCURSOR;
                if (yych <= '_') {
 -                      if (yych <= '@') goto yy810;
 -                      if (yych <= 'Z') goto yy808;
 -                      if (yych <= '^') goto yy810;
 +                      if (yych <= '@') goto yy813;
 +                      if (yych <= 'Z') goto yy811;
 +                      if (yych <= '^') goto yy813;
                } else {
 -                      if (yych <= '`') goto yy810;
 -                      if (yych <= 'z') goto yy808;
 -                      if (yych <= '~') goto yy810;
 +                      if (yych <= '`') goto yy813;
 +                      if (yych <= 'z') goto yy811;
 +                      if (yych <= '~') goto yy813;
                }
 -yy808:
 -              YYDEBUG(808, *YYCURSOR);
 -              ++YYCURSOR;
 -              yych = *YYCURSOR;
 -              goto yy813;
 -yy809:
 -              YYDEBUG(809, *YYCURSOR);
 -              yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1459 "Zend/zend_language_scanner.l"
 -              {
 -      zend_copy_value(zendlval, yytext, yyleng);
 -      zendlval->type = IS_STRING;
 -      yy_pop_state(TSRMLS_C);
 -      yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
 -      return T_STRING_VARNAME;
 -}
 -#line 7381 "Zend/zend_language_scanner.c"
 -yy810:
 -              YYDEBUG(810, *YYCURSOR);
 -              ++YYCURSOR;
 +yy811:
                YYDEBUG(811, *YYCURSOR);
 +              yyaccept = 0;
 +              yych = *(YYMARKER = ++YYCURSOR);
 +              if (yych <= '_') {
 +                      if (yych <= '@') {
 +                              if (yych <= '/') goto yy812;
 +                              if (yych <= '9') goto yy815;
 +                      } else {
 +                              if (yych <= '[') goto yy815;
 +                              if (yych >= '_') goto yy815;
 +                      }
 +              } else {
 +                      if (yych <= '|') {
 +                              if (yych <= '`') goto yy812;
 +                              if (yych <= 'z') goto yy815;
 +                      } else {
 +                              if (yych != '~') goto yy815;
 +                      }
 +              }
 +yy812:
 +              YYDEBUG(812, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1478 "Zend/zend_language_scanner.l"
 -#line 1468 "Zend/zend_language_scanner.l"
++#line 1480 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state(TSRMLS_C);
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        goto restart;
  }
- #line 7431 "Zend/zend_language_scanner.c"
 -#line 7394 "Zend/zend_language_scanner.c"
 -yy812:
 -              YYDEBUG(812, *YYCURSOR);
++#line 7435 "Zend/zend_language_scanner.c"
 +yy813:
 +              YYDEBUG(813, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              goto yy812;
 +yy814:
 +              YYDEBUG(814, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -yy813:
 -              YYDEBUG(813, *YYCURSOR);
 +yy815:
 +              YYDEBUG(815, *YYCURSOR);
                if (yybm[0+yych] & 128) {
 -                      goto yy812;
 +                      goto yy814;
                }
 -              goto yy809;
 +              if (yych == '[') goto yy817;
 +              if (yych == '}') goto yy817;
 +              YYDEBUG(816, *YYCURSOR);
 +              YYCURSOR = YYMARKER;
 +              goto yy812;
 +yy817:
 +              YYDEBUG(817, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(818, *YYCURSOR);
 +              yyleng = YYCURSOR - SCNG(yy_text);
- #line 1468 "Zend/zend_language_scanner.l"
++#line 1470 "Zend/zend_language_scanner.l"
 +              {
 +      yyless(yyleng - 1);
 +      zend_copy_value(zendlval, yytext, yyleng);
 +      zendlval->type = IS_STRING;
 +      yy_pop_state(TSRMLS_C);
 +      yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
 +      return T_STRING_VARNAME;
 +}
- #line 7465 "Zend/zend_language_scanner.c"
++#line 7469 "Zend/zend_language_scanner.c"
        }
  /* *********************************** */
  yyc_ST_NOWDOC:
 -      YYDEBUG(814, *YYCURSOR);
 +      YYDEBUG(819, *YYCURSOR);
        YYFILL(1);
        yych = *YYCURSOR;
 -      YYDEBUG(816, *YYCURSOR);
 +      YYDEBUG(821, *YYCURSOR);
        ++YYCURSOR;
 -      YYDEBUG(817, *YYCURSOR);
 +      YYDEBUG(822, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
- #line 2360 "Zend/zend_language_scanner.l"
 -#line 2352 "Zend/zend_language_scanner.l"
++#line 2364 "Zend/zend_language_scanner.l"
        {
        int newline = 0;
  
@@@ -7527,7 -7469,7 +7533,7 @@@ nowdoc_scan_done
        HANDLE_NEWLINES(yytext, yyleng - newline);
        return T_ENCAPSED_AND_WHITESPACE;
  }
- #line 7531 "Zend/zend_language_scanner.c"
 -#line 7473 "Zend/zend_language_scanner.c"
++#line 7537 "Zend/zend_language_scanner.c"
  /* *********************************** */
  yyc_ST_VAR_OFFSET:
        {
@@@ -7625,16 -7567,16 +7631,16 @@@ yy825
                        }
                } else {
                        if (yych <= 'b') {
 -                              if (yych <= 'X') goto yy843;
 -                              if (yych >= 'b') goto yy841;
 +                              if (yych <= 'X') goto yy848;
 +                              if (yych >= 'b') goto yy846;
                        } else {
 -                              if (yych == 'x') goto yy843;
 +                              if (yych == 'x') goto yy848;
                        }
                }
 -yy821:
 -              YYDEBUG(821, *YYCURSOR);
 +yy826:
 +              YYDEBUG(826, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1556 "Zend/zend_language_scanner.l"
 -#line 1546 "Zend/zend_language_scanner.l"
++#line 1558 "Zend/zend_language_scanner.l"
                { /* Offset could be treated as a long */
        if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {
                zendlval->value.lval = strtol(yytext, NULL, 10);
        }
        return T_NUM_STRING;
  }
- #line 7650 "Zend/zend_language_scanner.c"
 -#line 7592 "Zend/zend_language_scanner.c"
 -yy822:
 -              YYDEBUG(822, *YYCURSOR);
++#line 7656 "Zend/zend_language_scanner.c"
 +yy827:
 +              YYDEBUG(827, *YYCURSOR);
                yych = *++YYCURSOR;
 -              goto yy840;
 -yy823:
 -              YYDEBUG(823, *YYCURSOR);
 +              goto yy845;
 +yy828:
 +              YYDEBUG(828, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '_') {
 -                      if (yych <= '@') goto yy824;
 -                      if (yych <= 'Z') goto yy836;
 -                      if (yych >= '_') goto yy836;
 +                      if (yych <= '@') goto yy829;
 +                      if (yych <= 'Z') goto yy841;
 +                      if (yych >= '_') goto yy841;
                } else {
 -                      if (yych <= '`') goto yy824;
 -                      if (yych <= 'z') goto yy836;
 -                      if (yych >= 0x7F) goto yy836;
 +                      if (yych <= '`') goto yy829;
 +                      if (yych <= 'z') goto yy841;
 +                      if (yych >= 0x7F) goto yy841;
                }
 -yy824:
 -              YYDEBUG(824, *YYCURSOR);
 +yy829:
 +              YYDEBUG(829, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1888 "Zend/zend_language_scanner.l"
 -#line 1878 "Zend/zend_language_scanner.l"
++#line 1890 "Zend/zend_language_scanner.l"
                {
        /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
        return yytext[0];
  }
- #line 7675 "Zend/zend_language_scanner.c"
 -#line 7617 "Zend/zend_language_scanner.c"
 -yy825:
 -              YYDEBUG(825, *YYCURSOR);
++#line 7681 "Zend/zend_language_scanner.c"
 +yy830:
 +              YYDEBUG(830, *YYCURSOR);
                ++YYCURSOR;
 -              YYDEBUG(826, *YYCURSOR);
 +              YYDEBUG(831, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1883 "Zend/zend_language_scanner.l"
 -#line 1873 "Zend/zend_language_scanner.l"
++#line 1885 "Zend/zend_language_scanner.l"
                {
        yy_pop_state(TSRMLS_C);
        return ']';
  }
- #line 7686 "Zend/zend_language_scanner.c"
 -#line 7628 "Zend/zend_language_scanner.c"
 -yy827:
 -              YYDEBUG(827, *YYCURSOR);
++#line 7692 "Zend/zend_language_scanner.c"
 +yy832:
 +              YYDEBUG(832, *YYCURSOR);
                yych = *++YYCURSOR;
 -              goto yy824;
 -yy828:
 -              YYDEBUG(828, *YYCURSOR);
 +              goto yy829;
 +yy833:
 +              YYDEBUG(833, *YYCURSOR);
                ++YYCURSOR;
 -              YYDEBUG(829, *YYCURSOR);
 +              YYDEBUG(834, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1893 "Zend/zend_language_scanner.l"
 -#line 1883 "Zend/zend_language_scanner.l"
++#line 1895 "Zend/zend_language_scanner.l"
                {
        /* Invalid rule to return a more explicit parse error with proper line number */
        yyless(0);
        yy_pop_state(TSRMLS_C);
        return T_ENCAPSED_AND_WHITESPACE;
  }
- #line 7703 "Zend/zend_language_scanner.c"
 -#line 7645 "Zend/zend_language_scanner.c"
 -yy830:
 -              YYDEBUG(830, *YYCURSOR);
++#line 7709 "Zend/zend_language_scanner.c"
 +yy835:
 +              YYDEBUG(835, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
 -              goto yy835;
 -yy831:
 -              YYDEBUG(831, *YYCURSOR);
 +              goto yy840;
 +yy836:
 +              YYDEBUG(836, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1900 "Zend/zend_language_scanner.l"
 -#line 1890 "Zend/zend_language_scanner.l"
++#line 1902 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
        return T_STRING;
  }
- #line 7718 "Zend/zend_language_scanner.c"
 -#line 7660 "Zend/zend_language_scanner.c"
 -yy832:
 -              YYDEBUG(832, *YYCURSOR);
++#line 7724 "Zend/zend_language_scanner.c"
 +yy837:
 +              YYDEBUG(837, *YYCURSOR);
                ++YYCURSOR;
 -              YYDEBUG(833, *YYCURSOR);
 +              YYDEBUG(838, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2416 "Zend/zend_language_scanner.l"
 -#line 2410 "Zend/zend_language_scanner.l"
++#line 2422 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                return 0;
        zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
        goto restart;
  }
- #line 7733 "Zend/zend_language_scanner.c"
 -#line 7675 "Zend/zend_language_scanner.c"
 -yy834:
 -              YYDEBUG(834, *YYCURSOR);
++#line 7739 "Zend/zend_language_scanner.c"
 +yy839:
 +              YYDEBUG(839, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
@@@ -7756,24 -7698,24 +7762,24 @@@ yy841
                        }
                } else {
                        if (yych <= '`') {
 -                              if (yych <= '_') goto yy836;
 +                              if (yych <= '_') goto yy841;
                        } else {
 -                              if (yych <= 'z') goto yy836;
 -                              if (yych >= 0x7F) goto yy836;
 +                              if (yych <= 'z') goto yy841;
 +                              if (yych >= 0x7F) goto yy841;
                        }
                }
 -yy838:
 -              YYDEBUG(838, *YYCURSOR);
 +yy843:
 +              YYDEBUG(843, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1877 "Zend/zend_language_scanner.l"
 -#line 1867 "Zend/zend_language_scanner.l"
++#line 1879 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
  }
- #line 7775 "Zend/zend_language_scanner.c"
 -#line 7717 "Zend/zend_language_scanner.c"
 -yy839:
 -              YYDEBUG(839, *YYCURSOR);
++#line 7781 "Zend/zend_language_scanner.c"
 +yy844:
 +              YYDEBUG(844, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
@@@ -7805,22 -7747,22 +7811,22 @@@ yy849
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -              YYDEBUG(845, *YYCURSOR);
 -              if (yych <= '/') goto yy846;
 -              if (yych <= '9') goto yy844;
 -yy846:
 -              YYDEBUG(846, *YYCURSOR);
 +              YYDEBUG(850, *YYCURSOR);
 +              if (yych <= '/') goto yy851;
 +              if (yych <= '9') goto yy849;
 +yy851:
 +              YYDEBUG(851, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1568 "Zend/zend_language_scanner.l"
 -#line 1558 "Zend/zend_language_scanner.l"
++#line 1570 "Zend/zend_language_scanner.l"
                { /* Offset must be treated as a string */
        zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
        zendlval->value.str.len = yyleng;
        zendlval->type = IS_STRING;
        return T_NUM_STRING;
  }
- #line 7822 "Zend/zend_language_scanner.c"
 -#line 7764 "Zend/zend_language_scanner.c"
 -yy847:
 -              YYDEBUG(847, *YYCURSOR);
++#line 7828 "Zend/zend_language_scanner.c"
 +yy852:
 +              YYDEBUG(852, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
@@@ -7834,13 -7776,13 +7840,13 @@@ yy854
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -              YYDEBUG(850, *YYCURSOR);
 +              YYDEBUG(855, *YYCURSOR);
                if (yybm[0+yych] & 128) {
 -                      goto yy849;
 +                      goto yy854;
                }
 -              goto yy846;
 +              goto yy851;
        }
  }
- #line 2425 "Zend/zend_language_scanner.l"
 -#line 2419 "Zend/zend_language_scanner.l"
++#line 2431 "Zend/zend_language_scanner.l"
  
  }
Simple merge
index 519d415e74ac0c87bbc36bfc8b21ffe775e6c908,c764903f278eba5b174bb641e1ede6fd464188e2..5309ac2327886f94aa3b669d28a647e6dd1d358a
@@@ -1,4 -1,4 +1,4 @@@
- /* Generated by re2c 0.13.5 on Tue Jul 24 17:16:42 2012 */
 -/* Generated by re2c 0.13.5 on Sat Mar 31 21:29:29 2012 */
++/* Generated by re2c 0.13.5 on Sun Aug 19 20:57:55 2012 */
  #line 3 "Zend/zend_language_scanner_defs.h"
  
  enum YYCONDTYPE {
index 0000000000000000000000000000000000000000,620b4fda4cc80d1b492a229eb74bc147a0ae9cb3..e9f1bd6f6c929aa4193bed46faff99f6bc959952
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,121 +1,121 @@@
 -    int(372)
+ --TEST--
+ Bug 60097: token_get_all fails to lex nested heredoc
+ --FILE--
+ <?php
+ var_dump(token_get_all('<?php
+ <<<DOC1
+ {$s(<<<DOC2
+ DOC2
+ )}
+ DOC1;
+ '));
+ ?>
+ --EXPECT--
+ array(14) {
+   [0]=>
+   array(3) {
+     [0]=>
 -    int(376)
++    int(373)
+     [1]=>
+     string(6) "<?php
+ "
+     [2]=>
+     int(1)
+   }
+   [1]=>
+   array(3) {
+     [0]=>
 -    int(379)
++    int(377)
+     [1]=>
+     string(8) "<<<DOC1
+ "
+     [2]=>
+     int(2)
+   }
+   [2]=>
+   array(3) {
+     [0]=>
 -    int(376)
++    int(380)
+     [1]=>
+     string(1) "{"
+     [2]=>
+     int(3)
+   }
+   [3]=>
+   array(3) {
+     [0]=>
+     int(309)
+     [1]=>
+     string(2) "$s"
+     [2]=>
+     int(3)
+   }
+   [4]=>
+   string(1) "("
+   [5]=>
+   array(3) {
+     [0]=>
 -    int(377)
++    int(377)
+     [1]=>
+     string(8) "<<<DOC2
+ "
+     [2]=>
+     int(3)
+   }
+   [6]=>
+   array(3) {
+     [0]=>
 -    int(375)
++    int(378)
+     [1]=>
+     string(4) "DOC2"
+     [2]=>
+     int(4)
+   }
+   [7]=>
+   array(3) {
+     [0]=>
 -    int(377)
++    int(376)
+     [1]=>
+     string(1) "
+ "
+     [2]=>
+     int(4)
+   }
+   [8]=>
+   string(1) ")"
+   [9]=>
+   string(1) "}"
+   [10]=>
+   array(3) {
+     [0]=>
+     int(314)
+     [1]=>
+     string(1) "
+ "
+     [2]=>
+     int(5)
+   }
+   [11]=>
+   array(3) {
+     [0]=>
 -    int(375)
++    int(378)
+     [1]=>
+     string(4) "DOC1"
+     [2]=>
+     int(6)
+   }
+   [12]=>
+   string(1) ";"
+   [13]=>
+   array(3) {
+     [0]=>
++    int(376)
+     [1]=>
+     string(1) "
+ "
+     [2]=>
+     int(6)
+   }
+ }