]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-5.4' into PHP-5.5
authorStanislav Malyshev <stas@php.net>
Sun, 16 Jun 2013 22:29:25 +0000 (15:29 -0700)
committerStanislav Malyshev <stas@php.net>
Sun, 16 Jun 2013 22:29:25 +0000 (15:29 -0700)
* PHP-5.4:
  Fix bug #64936 - clean doc comment state at the beginning and end of the scan
  ws fix

Conflicts:
Zend/zend_language_scanner.c
Zend/zend_language_scanner.l
Zend/zend_language_scanner_defs.h

1  2 
Zend/zend_language_scanner.c
Zend/zend_language_scanner.l

index ee9139432052321b2937d2ffa7e80b81416f206d,2b25ae7eb12c230687c88165f5d1466ac0172903..deb799ab763b2f28be85f6cb32e52fa2c2f3e083
@@@ -260,6 -252,13 +260,8 @@@ ZEND_API void zend_restore_lexical_stat
        SCNG(input_filter) = lex_state->input_filter;
        SCNG(output_filter) = lex_state->output_filter;
        SCNG(script_encoding) = lex_state->script_encoding;
 -      if (CG(heredoc)) {
 -              efree(CG(heredoc));
 -              CG(heredoc) = NULL;
 -              CG(heredoc_len) = 0;
 -      }
+       RESET_DOC_COMMENT();
  }
  
  ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC)
@@@ -1002,7 -1003,7 +1006,7 @@@ restart
  yymore_restart:
  
  
- #line 1006 "Zend/zend_language_scanner.c"
 -#line 1007 "Zend/zend_language_scanner.c"
++#line 1010 "Zend/zend_language_scanner.c"
  {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
@@@ -1101,7 -1102,7 +1105,7 @@@ yyc_INITIAL
  yy3:
                YYDEBUG(3, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1803 "Zend/zend_language_scanner.l"
 -#line 1795 "Zend/zend_language_scanner.l"
++#line 1807 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                return 0;
@@@ -1161,7 -1162,7 +1165,7 @@@ inline_html
        HANDLE_NEWLINES(yytext, yyleng);
        return T_INLINE_HTML;
  }
- #line 1165 "Zend/zend_language_scanner.c"
 -#line 1166 "Zend/zend_language_scanner.c"
++#line 1169 "Zend/zend_language_scanner.c"
  yy4:
                YYDEBUG(4, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1179,7 -1180,7 +1183,7 @@@ yy5
  yy6:
                YYDEBUG(6, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1791 "Zend/zend_language_scanner.l"
 -#line 1783 "Zend/zend_language_scanner.l"
++#line 1795 "Zend/zend_language_scanner.l"
                {
        if (CG(short_tags)) {
                zendlval->value.str.val = yytext; /* no copying - intentional */
                goto inline_char_handler;
        }
  }
- #line 1195 "Zend/zend_language_scanner.c"
 -#line 1196 "Zend/zend_language_scanner.c"
++#line 1199 "Zend/zend_language_scanner.c"
  yy7:
                YYDEBUG(7, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy43;
                YYDEBUG(8, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1768 "Zend/zend_language_scanner.l"
 -#line 1760 "Zend/zend_language_scanner.l"
++#line 1772 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                zendlval->value.str.val = yytext; /* no copying - intentional */
                goto inline_char_handler;
        }
  }
- #line 1214 "Zend/zend_language_scanner.c"
 -#line 1215 "Zend/zend_language_scanner.c"
++#line 1218 "Zend/zend_language_scanner.c"
  yy9:
                YYDEBUG(9, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1396,7 -1397,7 +1400,7 @@@ yy35
                ++YYCURSOR;
                YYDEBUG(38, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1728 "Zend/zend_language_scanner.l"
 -#line 1720 "Zend/zend_language_scanner.l"
++#line 1732 "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 1417 "Zend/zend_language_scanner.c"
 -#line 1418 "Zend/zend_language_scanner.c"
++#line 1421 "Zend/zend_language_scanner.c"
  yy39:
                YYDEBUG(39, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1440,7 -1441,7 +1444,7 @@@ yy43
                ++YYCURSOR;
                YYDEBUG(44, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1746 "Zend/zend_language_scanner.l"
 -#line 1738 "Zend/zend_language_scanner.l"
++#line 1750 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                zendlval->value.str.val = yytext; /* no copying - intentional */
                goto inline_char_handler;
        }
  }
- #line 1456 "Zend/zend_language_scanner.c"
 -#line 1457 "Zend/zend_language_scanner.c"
++#line 1460 "Zend/zend_language_scanner.c"
  yy45:
                YYDEBUG(45, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(46, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1759 "Zend/zend_language_scanner.l"
 -#line 1751 "Zend/zend_language_scanner.l"
++#line 1763 "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 1470 "Zend/zend_language_scanner.c"
 -#line 1471 "Zend/zend_language_scanner.c"
++#line 1474 "Zend/zend_language_scanner.c"
  yy47:
                YYDEBUG(47, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1493,7 -1494,7 +1497,7 @@@ yy50
  yy51:
                YYDEBUG(51, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1781 "Zend/zend_language_scanner.l"
 -#line 1773 "Zend/zend_language_scanner.l"
++#line 1785 "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 1506 "Zend/zend_language_scanner.c"
 -#line 1507 "Zend/zend_language_scanner.c"
++#line 1510 "Zend/zend_language_scanner.c"
  yy52:
                YYDEBUG(52, *YYCURSOR);
                ++YYCURSOR;
@@@ -1573,7 -1574,7 +1577,7 @@@ yyc_ST_BACKQUOTE
  yy56:
                YYDEBUG(56, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2254 "Zend/zend_language_scanner.l"
 -#line 2246 "Zend/zend_language_scanner.l"
++#line 2258 "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 1618 "Zend/zend_language_scanner.c"
 -#line 1619 "Zend/zend_language_scanner.c"
++#line 1622 "Zend/zend_language_scanner.c"
  yy57:
                YYDEBUG(57, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1625,12 -1626,12 +1629,12 @@@ yy58
                ++YYCURSOR;
                YYDEBUG(59, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2198 "Zend/zend_language_scanner.l"
 -#line 2190 "Zend/zend_language_scanner.l"
++#line 2202 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '`';
  }
- #line 1634 "Zend/zend_language_scanner.c"
 -#line 1635 "Zend/zend_language_scanner.c"
++#line 1638 "Zend/zend_language_scanner.c"
  yy60:
                YYDEBUG(60, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1640,14 -1641,14 +1644,14 @@@ yy61
                ++YYCURSOR;
                YYDEBUG(62, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2185 "Zend/zend_language_scanner.l"
 -#line 2177 "Zend/zend_language_scanner.l"
++#line 2189 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        yyless(1);
        return T_CURLY_OPEN;
  }
- #line 1651 "Zend/zend_language_scanner.c"
 -#line 1652 "Zend/zend_language_scanner.c"
++#line 1655 "Zend/zend_language_scanner.c"
  yy63:
                YYDEBUG(63, *YYCURSOR);
                yyaccept = 0;
  yy65:
                YYDEBUG(65, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1885 "Zend/zend_language_scanner.l"
 -#line 1877 "Zend/zend_language_scanner.l"
++#line 1889 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
  }
- #line 1673 "Zend/zend_language_scanner.c"
 -#line 1674 "Zend/zend_language_scanner.c"
++#line 1677 "Zend/zend_language_scanner.c"
  yy66:
                YYDEBUG(66, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(67, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1461 "Zend/zend_language_scanner.l"
 -#line 1454 "Zend/zend_language_scanner.l"
++#line 1465 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
  }
- #line 1684 "Zend/zend_language_scanner.c"
 -#line 1685 "Zend/zend_language_scanner.c"
++#line 1688 "Zend/zend_language_scanner.c"
  yy68:
                YYDEBUG(68, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1694,7 -1695,7 +1698,7 @@@ yy70
                ++YYCURSOR;
                YYDEBUG(71, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1877 "Zend/zend_language_scanner.l"
 -#line 1869 "Zend/zend_language_scanner.l"
++#line 1881 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
        zendlval->type = IS_STRING;
        return T_VARIABLE;
  }
- #line 1706 "Zend/zend_language_scanner.c"
 -#line 1707 "Zend/zend_language_scanner.c"
++#line 1710 "Zend/zend_language_scanner.c"
  yy72:
                YYDEBUG(72, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1720,7 -1721,7 +1724,7 @@@ yy73
                ++YYCURSOR;
                YYDEBUG(74, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1867 "Zend/zend_language_scanner.l"
 -#line 1859 "Zend/zend_language_scanner.l"
++#line 1871 "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 1732 "Zend/zend_language_scanner.c"
 -#line 1733 "Zend/zend_language_scanner.c"
++#line 1736 "Zend/zend_language_scanner.c"
        }
  /* *********************************** */
  yyc_ST_DOUBLE_QUOTES:
@@@ -1796,7 -1797,7 +1800,7 @@@ yy77
  yy78:
                YYDEBUG(78, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2204 "Zend/zend_language_scanner.l"
 -#line 2196 "Zend/zend_language_scanner.l"
++#line 2208 "Zend/zend_language_scanner.l"
                {
        if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
                YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
@@@ -1845,7 -1846,7 +1849,7 @@@ double_quotes_scan_done
        zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
  }
- #line 1849 "Zend/zend_language_scanner.c"
 -#line 1850 "Zend/zend_language_scanner.c"
++#line 1853 "Zend/zend_language_scanner.c"
  yy79:
                YYDEBUG(79, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1856,12 -1857,12 +1860,12 @@@ yy80
                ++YYCURSOR;
                YYDEBUG(81, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2193 "Zend/zend_language_scanner.l"
 -#line 2185 "Zend/zend_language_scanner.l"
++#line 2197 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '"';
  }
- #line 1865 "Zend/zend_language_scanner.c"
 -#line 1866 "Zend/zend_language_scanner.c"
++#line 1869 "Zend/zend_language_scanner.c"
  yy82:
                YYDEBUG(82, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1871,14 -1872,14 +1875,14 @@@ yy83
                ++YYCURSOR;
                YYDEBUG(84, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2185 "Zend/zend_language_scanner.l"
 -#line 2177 "Zend/zend_language_scanner.l"
++#line 2189 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        yyless(1);
        return T_CURLY_OPEN;
  }
- #line 1882 "Zend/zend_language_scanner.c"
 -#line 1883 "Zend/zend_language_scanner.c"
++#line 1886 "Zend/zend_language_scanner.c"
  yy85:
                YYDEBUG(85, *YYCURSOR);
                yyaccept = 0;
  yy87:
                YYDEBUG(87, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1885 "Zend/zend_language_scanner.l"
 -#line 1877 "Zend/zend_language_scanner.l"
++#line 1889 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
  }
- #line 1904 "Zend/zend_language_scanner.c"
 -#line 1905 "Zend/zend_language_scanner.c"
++#line 1908 "Zend/zend_language_scanner.c"
  yy88:
                YYDEBUG(88, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(89, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1461 "Zend/zend_language_scanner.l"
 -#line 1454 "Zend/zend_language_scanner.l"
++#line 1465 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
  }
- #line 1915 "Zend/zend_language_scanner.c"
 -#line 1916 "Zend/zend_language_scanner.c"
++#line 1919 "Zend/zend_language_scanner.c"
  yy90:
                YYDEBUG(90, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1925,7 -1926,7 +1929,7 @@@ yy92
                ++YYCURSOR;
                YYDEBUG(93, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1877 "Zend/zend_language_scanner.l"
 -#line 1869 "Zend/zend_language_scanner.l"
++#line 1881 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
        zendlval->type = IS_STRING;
        return T_VARIABLE;
  }
- #line 1937 "Zend/zend_language_scanner.c"
 -#line 1938 "Zend/zend_language_scanner.c"
++#line 1941 "Zend/zend_language_scanner.c"
  yy94:
                YYDEBUG(94, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -1951,7 -1952,7 +1955,7 @@@ yy95
                ++YYCURSOR;
                YYDEBUG(96, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1867 "Zend/zend_language_scanner.l"
 -#line 1859 "Zend/zend_language_scanner.l"
++#line 1871 "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 1963 "Zend/zend_language_scanner.c"
 -#line 1964 "Zend/zend_language_scanner.c"
++#line 1967 "Zend/zend_language_scanner.c"
        }
  /* *********************************** */
  yyc_ST_END_HEREDOC:
        ++YYCURSOR;
        YYDEBUG(100, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
- #line 2171 "Zend/zend_language_scanner.l"
 -#line 2164 "Zend/zend_language_scanner.l"
++#line 2175 "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 1987 "Zend/zend_language_scanner.c"
++#line 1991 "Zend/zend_language_scanner.c"
  /* *********************************** */
  yyc_ST_HEREDOC:
        {
@@@ -2045,7 -2045,7 +2049,7 @@@ yy103
  yy104:
                YYDEBUG(104, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2296 "Zend/zend_language_scanner.l"
 -#line 2288 "Zend/zend_language_scanner.l"
++#line 2300 "Zend/zend_language_scanner.l"
                {
        int newline = 0;
  
@@@ -2118,7 -2116,7 +2122,7 @@@ heredoc_scan_done
        zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0 TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
  }
- #line 2122 "Zend/zend_language_scanner.c"
 -#line 2120 "Zend/zend_language_scanner.c"
++#line 2126 "Zend/zend_language_scanner.c"
  yy105:
                YYDEBUG(105, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -2133,14 -2131,14 +2137,14 @@@ yy107
                ++YYCURSOR;
                YYDEBUG(108, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2185 "Zend/zend_language_scanner.l"
 -#line 2177 "Zend/zend_language_scanner.l"
++#line 2189 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        yyless(1);
        return T_CURLY_OPEN;
  }
- #line 2144 "Zend/zend_language_scanner.c"
 -#line 2142 "Zend/zend_language_scanner.c"
++#line 2148 "Zend/zend_language_scanner.c"
  yy109:
                YYDEBUG(109, *YYCURSOR);
                yyaccept = 0;
  yy111:
                YYDEBUG(111, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1885 "Zend/zend_language_scanner.l"
 -#line 1877 "Zend/zend_language_scanner.l"
++#line 1889 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
  }
- #line 2166 "Zend/zend_language_scanner.c"
 -#line 2164 "Zend/zend_language_scanner.c"
++#line 2170 "Zend/zend_language_scanner.c"
  yy112:
                YYDEBUG(112, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(113, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1461 "Zend/zend_language_scanner.l"
 -#line 1454 "Zend/zend_language_scanner.l"
++#line 1465 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
  }
- #line 2177 "Zend/zend_language_scanner.c"
 -#line 2175 "Zend/zend_language_scanner.c"
++#line 2181 "Zend/zend_language_scanner.c"
  yy114:
                YYDEBUG(114, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -2187,7 -2185,7 +2191,7 @@@ yy116
                ++YYCURSOR;
                YYDEBUG(117, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1877 "Zend/zend_language_scanner.l"
 -#line 1869 "Zend/zend_language_scanner.l"
++#line 1881 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
        zendlval->type = IS_STRING;
        return T_VARIABLE;
  }
- #line 2199 "Zend/zend_language_scanner.c"
 -#line 2197 "Zend/zend_language_scanner.c"
++#line 2203 "Zend/zend_language_scanner.c"
  yy118:
                YYDEBUG(118, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -2213,7 -2211,7 +2217,7 @@@ yy119
                ++YYCURSOR;
                YYDEBUG(120, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1867 "Zend/zend_language_scanner.l"
 -#line 1859 "Zend/zend_language_scanner.l"
++#line 1871 "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 2225 "Zend/zend_language_scanner.c"
 -#line 2223 "Zend/zend_language_scanner.c"
++#line 2229 "Zend/zend_language_scanner.c"
        }
  /* *********************************** */
  yyc_ST_IN_SCRIPTING:
@@@ -2404,13 -2400,13 +2408,13 @@@ yy123
  yy124:
                YYDEBUG(124, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1908 "Zend/zend_language_scanner.l"
 -#line 1900 "Zend/zend_language_scanner.l"
++#line 1912 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
        return T_STRING;
  }
- #line 2414 "Zend/zend_language_scanner.c"
 -#line 2410 "Zend/zend_language_scanner.c"
++#line 2418 "Zend/zend_language_scanner.c"
  yy125:
                YYDEBUG(125, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -2590,72 -2580,72 +2594,72 @@@ yy135
                        }
                } else {
                        if (yych <= 'R') {
 -                              if (yych <= '<') goto yy525;
 -                              if (yych <= 'Q') goto yy186;
 -                              goto yy528;
 +                              if (yych <= '<') goto yy526;
 +                              if (yych <= 'Q') goto yy187;
 +                              goto yy529;
                        } else {
 -                              if (yych == 'r') goto yy528;
 -                              goto yy186;
 +                              if (yych == 'r') goto yy529;
 +                              goto yy187;
                        }
                }
 -yy135:
 -              YYDEBUG(135, *YYCURSOR);
 +yy136:
 +              YYDEBUG(136, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'O') {
 -                      if (yych == 'L') goto yy515;
 -                      if (yych <= 'N') goto yy186;
 -                      goto yy516;
 +                      if (yych == 'L') goto yy516;
 +                      if (yych <= 'N') goto yy187;
 +                      goto yy517;
                } else {
                        if (yych <= 'l') {
 -                              if (yych <= 'k') goto yy186;
 -                              goto yy515;
 +                              if (yych <= 'k') goto yy187;
 +                              goto yy516;
                        } else {
 -                              if (yych == 'o') goto yy516;
 -                              goto yy186;
 +                              if (yych == 'o') goto yy517;
 +                              goto yy187;
                        }
                }
 -yy136:
 -              YYDEBUG(136, *YYCURSOR);
 +yy137:
 +              YYDEBUG(137, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'U') {
 -                      if (yych == 'R') goto yy491;
 -                      if (yych <= 'T') goto yy186;
 -                      goto yy492;
 +                      if (yych == 'R') goto yy492;
 +                      if (yych <= 'T') goto yy187;
 +                      goto yy493;
                } else {
                        if (yych <= 'r') {
 -                              if (yych <= 'q') goto yy186;
 -                              goto yy491;
 +                              if (yych <= 'q') goto yy187;
 +                              goto yy492;
                        } else {
 -                              if (yych == 'u') goto yy492;
 -                              goto yy186;
 +                              if (yych == 'u') goto yy493;
 +                              goto yy187;
                        }
                }
 -yy137:
 -              YYDEBUG(137, *YYCURSOR);
 +yy138:
 +              YYDEBUG(138, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '<') {
 -                      if (yych == '-') goto yy487;
 +                      if (yych == '-') goto yy488;
                } else {
 -                      if (yych <= '=') goto yy485;
 -                      if (yych <= '>') goto yy489;
 +                      if (yych <= '=') goto yy486;
 +                      if (yych <= '>') goto yy490;
                }
 -yy138:
 -              YYDEBUG(138, *YYCURSOR);
 +yy139:
 +              YYDEBUG(139, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1450 "Zend/zend_language_scanner.l"
 -#line 1443 "Zend/zend_language_scanner.l"
++#line 1454 "Zend/zend_language_scanner.l"
                {
        return yytext[0];
  }
- #line 2650 "Zend/zend_language_scanner.c"
 -#line 2640 "Zend/zend_language_scanner.c"
 -yy139:
 -              YYDEBUG(139, *YYCURSOR);
 -              ++YYCURSOR;
 -              yych = *YYCURSOR;
 -              goto yy484;
++#line 2654 "Zend/zend_language_scanner.c"
  yy140:
                YYDEBUG(140, *YYCURSOR);
 +              ++YYCURSOR;
 +              yych = *YYCURSOR;
 +              goto yy485;
 +yy141:
 +              YYDEBUG(141, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1181 "Zend/zend_language_scanner.l"
 -#line 1174 "Zend/zend_language_scanner.l"
++#line 1185 "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 2667 "Zend/zend_language_scanner.c"
 -#line 2657 "Zend/zend_language_scanner.c"
 -yy141:
 -              YYDEBUG(141, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == ':') goto yy481;
 -              goto yy138;
++#line 2671 "Zend/zend_language_scanner.c"
  yy142:
                YYDEBUG(142, *YYCURSOR);
 -              ++YYCURSOR;
 +              yych = *++YYCURSOR;
 +              if (yych == ':') goto yy482;
 +              goto yy139;
 +yy143:
                YYDEBUG(143, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(144, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1210 "Zend/zend_language_scanner.l"
 -#line 1203 "Zend/zend_language_scanner.l"
++#line 1214 "Zend/zend_language_scanner.l"
                {
        return T_NS_SEPARATOR;
  }
- #line 2682 "Zend/zend_language_scanner.c"
 -#line 2672 "Zend/zend_language_scanner.c"
 -yy144:
 -              YYDEBUG(144, *YYCURSOR);
++#line 2686 "Zend/zend_language_scanner.c"
 +yy145:
 +              YYDEBUG(145, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'E') {
 -                      if (yych == 'A') goto yy469;
 -                      if (yych <= 'D') goto yy186;
 -                      goto yy470;
 +                      if (yych == 'A') goto yy470;
 +                      if (yych <= 'D') goto yy187;
 +                      goto yy471;
                } else {
                        if (yych <= 'a') {
 -                              if (yych <= '`') goto yy186;
 -                              goto yy469;
 +                              if (yych <= '`') goto yy187;
 +                              goto yy470;
                        } else {
 -                              if (yych == 'e') goto yy470;
 -                              goto yy186;
 +                              if (yych == 'e') goto yy471;
 +                              goto yy187;
                        }
                }
 -yy145:
 -              YYDEBUG(145, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy466;
 -              if (yych == 'a') goto yy466;
 -              goto yy186;
  yy146:
                YYDEBUG(146, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'A') goto yy467;
 +              if (yych == 'a') goto yy467;
 +              goto yy187;
 +yy147:
 +              YYDEBUG(147, *YYCURSOR);
                yyaccept = 1;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= 'S') {
@@@ -2895,29 -2889,25 +2899,29 @@@ yy165
  yy166:
                YYDEBUG(166, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == '>') goto yy205;
 -              goto yy138;
 +              goto yy139;
  yy167:
                YYDEBUG(167, *YYCURSOR);
 -              ++YYCURSOR;
 +              yych = *++YYCURSOR;
 +              if (yych == '>') goto yy206;
 +              goto yy139;
 +yy168:
                YYDEBUG(168, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(169, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1455 "Zend/zend_language_scanner.l"
 -#line 1448 "Zend/zend_language_scanner.l"
++#line 1459 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return '{';
  }
- #line 2915 "Zend/zend_language_scanner.c"
 -#line 2905 "Zend/zend_language_scanner.c"
 -yy169:
 -              YYDEBUG(169, *YYCURSOR);
 -              ++YYCURSOR;
++#line 2919 "Zend/zend_language_scanner.c"
 +yy170:
                YYDEBUG(170, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(171, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1467 "Zend/zend_language_scanner.l"
 -#line 1460 "Zend/zend_language_scanner.l"
++#line 1471 "Zend/zend_language_scanner.l"
                {
        RESET_DOC_COMMENT();
        if (!zend_stack_is_empty(&SCNG(state_stack))) {
        }
        return '}';
  }
- #line 2929 "Zend/zend_language_scanner.c"
 -#line 2919 "Zend/zend_language_scanner.c"
 -yy171:
 -              YYDEBUG(171, *YYCURSOR);
++#line 2933 "Zend/zend_language_scanner.c"
 +yy172:
 +              YYDEBUG(172, *YYCURSOR);
                yyaccept = 2;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= 'E') {
                                }
                        }
                }
 -yy172:
 -              YYDEBUG(172, *YYCURSOR);
 +yy173:
 +              YYDEBUG(173, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1518 "Zend/zend_language_scanner.l"
 -#line 1510 "Zend/zend_language_scanner.l"
++#line 1522 "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 2978 "Zend/zend_language_scanner.c"
 -#line 2968 "Zend/zend_language_scanner.c"
 -yy173:
 -              YYDEBUG(173, *YYCURSOR);
++#line 2982 "Zend/zend_language_scanner.c"
 +yy174:
 +              YYDEBUG(174, *YYCURSOR);
                yyaccept = 2;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= '9') {
 -                      if (yych == '.') goto yy187;
 -                      if (yych <= '/') goto yy172;
 -                      goto yy190;
 +                      if (yych == '.') goto yy188;
 +                      if (yych <= '/') goto yy173;
 +                      goto yy191;
                } else {
                        if (yych <= 'E') {
 -                              if (yych <= 'D') goto yy172;
 -                              goto yy192;
 +                              if (yych <= 'D') goto yy173;
 +                              goto yy193;
                        } else {
 -                              if (yych == 'e') goto yy192;
 -                              goto yy172;
 +                              if (yych == 'e') goto yy193;
 +                              goto yy173;
                        }
                }
 -yy174:
 -              YYDEBUG(174, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              goto yy186;
  yy175:
                YYDEBUG(175, *YYCURSOR);
 -              ++YYCURSOR;
 +              yych = *++YYCURSOR;
 +              goto yy187;
  yy176:
                YYDEBUG(176, *YYCURSOR);
 +              ++YYCURSOR;
 +yy177:
 +              YYDEBUG(177, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1915 "Zend/zend_language_scanner.l"
 -#line 1907 "Zend/zend_language_scanner.l"
++#line 1919 "Zend/zend_language_scanner.l"
                {
        while (YYCURSOR < YYLIMIT) {
                switch (*YYCURSOR++) {
  
        return T_COMMENT;
  }
- #line 3040 "Zend/zend_language_scanner.c"
 -#line 3030 "Zend/zend_language_scanner.c"
 -yy177:
 -              YYDEBUG(177, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3044 "Zend/zend_language_scanner.c"
  yy178:
                YYDEBUG(178, *YYCURSOR);
 +              ++YYCURSOR;
 +yy179:
 +              YYDEBUG(179, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2006 "Zend/zend_language_scanner.l"
 -#line 1998 "Zend/zend_language_scanner.l"
++#line 2010 "Zend/zend_language_scanner.l"
                {
        register char *s, *t;
        char *end;
        }
        return T_CONSTANT_ENCAPSED_STRING;
  }
- #line 3115 "Zend/zend_language_scanner.c"
 -#line 3105 "Zend/zend_language_scanner.c"
 -yy179:
 -              YYDEBUG(179, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3119 "Zend/zend_language_scanner.c"
  yy180:
                YYDEBUG(180, *YYCURSOR);
 +              ++YYCURSOR;
 +yy181:
 +              YYDEBUG(181, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2075 "Zend/zend_language_scanner.l"
 -#line 2067 "Zend/zend_language_scanner.l"
++#line 2079 "Zend/zend_language_scanner.l"
                {
        int bprefix = (yytext[0] != '"') ? 1 : 0;
  
        BEGIN(ST_DOUBLE_QUOTES);
        return '"';
  }
- #line 3163 "Zend/zend_language_scanner.c"
 -#line 3153 "Zend/zend_language_scanner.c"
 -yy181:
 -              YYDEBUG(181, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3167 "Zend/zend_language_scanner.c"
 +yy182:
                YYDEBUG(182, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(183, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2165 "Zend/zend_language_scanner.l"
 -#line 2158 "Zend/zend_language_scanner.l"
++#line 2169 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_BACKQUOTE);
        return '`';
  }
- #line 3174 "Zend/zend_language_scanner.c"
 -#line 3164 "Zend/zend_language_scanner.c"
 -yy183:
 -              YYDEBUG(183, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3178 "Zend/zend_language_scanner.c"
 +yy184:
                YYDEBUG(184, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(185, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2428 "Zend/zend_language_scanner.l"
 -#line 2416 "Zend/zend_language_scanner.l"
++#line 2432 "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 3189 "Zend/zend_language_scanner.c"
 -#line 3179 "Zend/zend_language_scanner.c"
 -yy185:
 -              YYDEBUG(185, *YYCURSOR);
++#line 3193 "Zend/zend_language_scanner.c"
 +yy186:
 +              YYDEBUG(186, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
@@@ -3203,24 -3193,24 +3207,24 @@@ yy188
                YYMARKER = ++YYCURSOR;
                YYFILL(3);
                yych = *YYCURSOR;
 -              YYDEBUG(188, *YYCURSOR);
 +              YYDEBUG(189, *YYCURSOR);
                if (yybm[0+yych] & 8) {
 -                      goto yy187;
 +                      goto yy188;
                }
 -              if (yych == 'E') goto yy192;
 -              if (yych == 'e') goto yy192;
 -yy189:
 -              YYDEBUG(189, *YYCURSOR);
 +              if (yych == 'E') goto yy193;
 +              if (yych == 'e') goto yy193;
 +yy190:
 +              YYDEBUG(190, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1583 "Zend/zend_language_scanner.l"
 -#line 1575 "Zend/zend_language_scanner.l"
++#line 1587 "Zend/zend_language_scanner.l"
                {
        zendlval->value.dval = zend_strtod(yytext, NULL);
        zendlval->type = IS_DOUBLE;
        return T_DNUMBER;
  }
- #line 3222 "Zend/zend_language_scanner.c"
 -#line 3212 "Zend/zend_language_scanner.c"
 -yy190:
 -              YYDEBUG(190, *YYCURSOR);
++#line 3226 "Zend/zend_language_scanner.c"
 +yy191:
 +              YYDEBUG(191, *YYCURSOR);
                yyaccept = 2;
                YYMARKER = ++YYCURSOR;
                YYFILL(3);
@@@ -3304,13 -3294,13 +3308,13 @@@ yy200
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -              YYDEBUG(200, *YYCURSOR);
 +              YYDEBUG(201, *YYCURSOR);
                if (yybm[0+yych] & 16) {
 -                      goto yy199;
 +                      goto yy200;
                }
 -              YYDEBUG(201, *YYCURSOR);
 +              YYDEBUG(202, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1493 "Zend/zend_language_scanner.l"
 -#line 1485 "Zend/zend_language_scanner.l"
++#line 1497 "Zend/zend_language_scanner.l"
                {
        char *bin = yytext + 2; /* Skip "0b" */
        int len = yyleng - 2;
                return T_DNUMBER;
        }
  }
- #line 3339 "Zend/zend_language_scanner.c"
 -#line 3329 "Zend/zend_language_scanner.c"
 -yy202:
 -              YYDEBUG(202, *YYCURSOR);
++#line 3343 "Zend/zend_language_scanner.c"
 +yy203:
 +              YYDEBUG(203, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -              YYDEBUG(203, *YYCURSOR);
 +              YYDEBUG(204, *YYCURSOR);
                if (yybm[0+yych] & 32) {
 -                      goto yy202;
 +                      goto yy203;
                }
 -              YYDEBUG(204, *YYCURSOR);
 +              YYDEBUG(205, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1539 "Zend/zend_language_scanner.l"
 -#line 1531 "Zend/zend_language_scanner.l"
++#line 1543 "Zend/zend_language_scanner.l"
                {
        char *hex = yytext + 2; /* Skip "0x" */
        int len = yyleng - 2;
                return T_DNUMBER;
        }
  }
- #line 3376 "Zend/zend_language_scanner.c"
 -#line 3366 "Zend/zend_language_scanner.c"
 -yy205:
 -              YYDEBUG(205, *YYCURSOR);
 -              ++YYCURSOR;
 -              if ((yych = *YYCURSOR) == '\n') goto yy207;
 -              if (yych == '\r') goto yy208;
++#line 3380 "Zend/zend_language_scanner.c"
  yy206:
                YYDEBUG(206, *YYCURSOR);
 +              ++YYCURSOR;
 +              if ((yych = *YYCURSOR) == '\n') goto yy208;
 +              if (yych == '\r') goto yy209;
 +yy207:
 +              YYDEBUG(207, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1983 "Zend/zend_language_scanner.l"
 -#line 1975 "Zend/zend_language_scanner.l"
++#line 1987 "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 3393 "Zend/zend_language_scanner.c"
 -#line 3383 "Zend/zend_language_scanner.c"
 -yy207:
 -              YYDEBUG(207, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              goto yy206;
++#line 3397 "Zend/zend_language_scanner.c"
  yy208:
                YYDEBUG(208, *YYCURSOR);
                yych = *++YYCURSOR;
                        }
                } else {
                        if (yych <= '`') {
 -                              if (yych <= '_') goto yy209;
 +                              if (yych <= '_') goto yy210;
                        } else {
 -                              if (yych <= 'z') goto yy209;
 -                              if (yych >= 0x7F) goto yy209;
 +                              if (yych <= 'z') goto yy210;
 +                              if (yych >= 0x7F) goto yy210;
                        }
                }
 -yy211:
 -              YYDEBUG(211, *YYCURSOR);
 +yy212:
 +              YYDEBUG(212, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1885 "Zend/zend_language_scanner.l"
 -#line 1877 "Zend/zend_language_scanner.l"
++#line 1889 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
  }
- #line 3433 "Zend/zend_language_scanner.c"
 -#line 3423 "Zend/zend_language_scanner.c"
 -yy212:
 -              YYDEBUG(212, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy213;
 -              if (yych != 'r') goto yy186;
++#line 3437 "Zend/zend_language_scanner.c"
  yy213:
                YYDEBUG(213, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'R') goto yy214;
 +              if (yych != 'r') goto yy187;
 +yy214:
 +              YYDEBUG(214, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(214, *YYCURSOR);
 +              YYDEBUG(215, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1438 "Zend/zend_language_scanner.l"
 -#line 1431 "Zend/zend_language_scanner.l"
++#line 1442 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_XOR;
  }
- #line 3451 "Zend/zend_language_scanner.c"
 -#line 3441 "Zend/zend_language_scanner.c"
 -yy215:
 -              YYDEBUG(215, *YYCURSOR);
++#line 3455 "Zend/zend_language_scanner.c"
 +yy216:
 +              YYDEBUG(216, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(216, *YYCURSOR);
 +              YYDEBUG(217, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1430 "Zend/zend_language_scanner.l"
 -#line 1423 "Zend/zend_language_scanner.l"
++#line 1434 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_OR;
  }
- #line 3464 "Zend/zend_language_scanner.c"
 -#line 3454 "Zend/zend_language_scanner.c"
 -yy217:
 -              YYDEBUG(217, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3468 "Zend/zend_language_scanner.c"
 +yy218:
                YYDEBUG(218, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(219, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1418 "Zend/zend_language_scanner.l"
 -#line 1411 "Zend/zend_language_scanner.l"
++#line 1422 "Zend/zend_language_scanner.l"
                {
        return T_XOR_EQUAL;
  }
- #line 3474 "Zend/zend_language_scanner.c"
 -#line 3464 "Zend/zend_language_scanner.c"
 -yy219:
 -              YYDEBUG(219, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3478 "Zend/zend_language_scanner.c"
 +yy220:
                YYDEBUG(220, *YYCURSOR);
 -              yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1415 "Zend/zend_language_scanner.l"
 +              ++YYCURSOR;
 +              YYDEBUG(221, *YYCURSOR);
 +              yyleng = YYCURSOR - SCNG(yy_text);
- #line 1422 "Zend/zend_language_scanner.l"
++#line 1426 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_OR;
  }
- #line 3484 "Zend/zend_language_scanner.c"
 -#line 3474 "Zend/zend_language_scanner.c"
 -yy221:
 -              YYDEBUG(221, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3488 "Zend/zend_language_scanner.c"
 +yy222:
                YYDEBUG(222, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(223, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1414 "Zend/zend_language_scanner.l"
 -#line 1407 "Zend/zend_language_scanner.l"
++#line 1418 "Zend/zend_language_scanner.l"
                {
        return T_OR_EQUAL;
  }
- #line 3494 "Zend/zend_language_scanner.c"
 -#line 3484 "Zend/zend_language_scanner.c"
 -yy223:
 -              YYDEBUG(223, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3498 "Zend/zend_language_scanner.c"
 +yy224:
                YYDEBUG(224, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(225, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1426 "Zend/zend_language_scanner.l"
 -#line 1419 "Zend/zend_language_scanner.l"
++#line 1430 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_AND;
  }
- #line 3504 "Zend/zend_language_scanner.c"
 -#line 3494 "Zend/zend_language_scanner.c"
 -yy225:
 -              YYDEBUG(225, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3508 "Zend/zend_language_scanner.c"
 +yy226:
                YYDEBUG(226, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(227, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1410 "Zend/zend_language_scanner.l"
 -#line 1403 "Zend/zend_language_scanner.l"
++#line 1414 "Zend/zend_language_scanner.l"
                {
        return T_AND_EQUAL;
  }
- #line 3514 "Zend/zend_language_scanner.c"
 -#line 3504 "Zend/zend_language_scanner.c"
 -yy227:
 -              YYDEBUG(227, *YYCURSOR);
 -              ++YYCURSOR;
 -              if ((yych = *YYCURSOR) == '\n') goto yy231;
 -              if (yych == '\r') goto yy232;
++#line 3518 "Zend/zend_language_scanner.c"
  yy228:
                YYDEBUG(228, *YYCURSOR);
 +              ++YYCURSOR;
 +              if ((yych = *YYCURSOR) == '\n') goto yy232;
 +              if (yych == '\r') goto yy233;
 +yy229:
 +              YYDEBUG(229, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1992 "Zend/zend_language_scanner.l"
 -#line 1984 "Zend/zend_language_scanner.l"
++#line 1996 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                BEGIN(INITIAL);
                return yytext[0];
        }
  }
- #line 3536 "Zend/zend_language_scanner.c"
 -#line 3526 "Zend/zend_language_scanner.c"
 -yy229:
 -              YYDEBUG(229, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3540 "Zend/zend_language_scanner.c"
 +yy230:
                YYDEBUG(230, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(231, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1398 "Zend/zend_language_scanner.l"
 -#line 1391 "Zend/zend_language_scanner.l"
++#line 1402 "Zend/zend_language_scanner.l"
                {
        return T_MOD_EQUAL;
  }
- #line 3546 "Zend/zend_language_scanner.c"
 -#line 3536 "Zend/zend_language_scanner.c"
 -yy231:
 -              YYDEBUG(231, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              goto yy228;
++#line 3550 "Zend/zend_language_scanner.c"
  yy232:
                YYDEBUG(232, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -3558,35 -3548,35 +3562,35 @@@ yy234
                YYMARKER = ++YYCURSOR;
                YYFILL(3);
                yych = *YYCURSOR;
 -              YYDEBUG(234, *YYCURSOR);
 +              YYDEBUG(235, *YYCURSOR);
                if (yych <= 'D') {
 -                      if (yych <= '/') goto yy189;
 -                      if (yych <= '9') goto yy233;
 -                      goto yy189;
 +                      if (yych <= '/') goto yy190;
 +                      if (yych <= '9') goto yy234;
 +                      goto yy190;
                } else {
 -                      if (yych <= 'E') goto yy192;
 -                      if (yych == 'e') goto yy192;
 -                      goto yy189;
 +                      if (yych <= 'E') goto yy193;
 +                      if (yych == 'e') goto yy193;
 +                      goto yy190;
                }
 -yy235:
 -              YYDEBUG(235, *YYCURSOR);
 -              ++YYCURSOR;
 +yy236:
                YYDEBUG(236, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(237, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1394 "Zend/zend_language_scanner.l"
 -#line 1387 "Zend/zend_language_scanner.l"
++#line 1398 "Zend/zend_language_scanner.l"
                {
        return T_CONCAT_EQUAL;
  }
- #line 3581 "Zend/zend_language_scanner.c"
 -#line 3571 "Zend/zend_language_scanner.c"
 -yy237:
 -              YYDEBUG(237, *YYCURSOR);
 -              yyaccept = 4;
 -              yych = *(YYMARKER = ++YYCURSOR);
 -              if (yych == '*') goto yy242;
++#line 3585 "Zend/zend_language_scanner.c"
  yy238:
                YYDEBUG(238, *YYCURSOR);
 +              yyaccept = 4;
 +              yych = *(YYMARKER = ++YYCURSOR);
 +              if (yych == '*') goto yy243;
 +yy239:
 +              YYDEBUG(239, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1949 "Zend/zend_language_scanner.l"
 -#line 1941 "Zend/zend_language_scanner.l"
++#line 1953 "Zend/zend_language_scanner.l"
                {
        int doc_com;
  
  
        return T_COMMENT;
  }
- #line 3624 "Zend/zend_language_scanner.c"
 -#line 3614 "Zend/zend_language_scanner.c"
 -yy239:
 -              YYDEBUG(239, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              goto yy176;
++#line 3628 "Zend/zend_language_scanner.c"
  yy240:
                YYDEBUG(240, *YYCURSOR);
 -              ++YYCURSOR;
 +              yych = *++YYCURSOR;
 +              goto yy177;
 +yy241:
                YYDEBUG(241, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(242, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1390 "Zend/zend_language_scanner.l"
 -#line 1383 "Zend/zend_language_scanner.l"
++#line 1394 "Zend/zend_language_scanner.l"
                {
        return T_DIV_EQUAL;
  }
- #line 3638 "Zend/zend_language_scanner.c"
 -#line 3628 "Zend/zend_language_scanner.c"
 -yy242:
 -              YYDEBUG(242, *YYCURSOR);
++#line 3642 "Zend/zend_language_scanner.c"
 +yy243:
 +              YYDEBUG(243, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yybm[0+yych] & 64) {
 -                      goto yy243;
 +                      goto yy244;
                }
 -              goto yy193;
 -yy243:
 -              YYDEBUG(243, *YYCURSOR);
 +              goto yy194;
 +yy244:
 +              YYDEBUG(244, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -              YYDEBUG(244, *YYCURSOR);
 +              YYDEBUG(245, *YYCURSOR);
                if (yybm[0+yych] & 64) {
 -                      goto yy243;
 +                      goto yy244;
                }
 -              goto yy238;
 -yy245:
 -              YYDEBUG(245, *YYCURSOR);
 -              ++YYCURSOR;
 +              goto yy239;
 +yy246:
                YYDEBUG(246, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(247, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1386 "Zend/zend_language_scanner.l"
 -#line 1379 "Zend/zend_language_scanner.l"
++#line 1390 "Zend/zend_language_scanner.l"
                {
        return T_MUL_EQUAL;
  }
- #line 3665 "Zend/zend_language_scanner.c"
 -#line 3655 "Zend/zend_language_scanner.c"
 -yy247:
 -              YYDEBUG(247, *YYCURSOR);
 -              ++YYCURSOR;
 -              if ((yych = *YYCURSOR) == '=') goto yy251;
++#line 3669 "Zend/zend_language_scanner.c"
 +yy248:
                YYDEBUG(248, *YYCURSOR);
 +              ++YYCURSOR;
 +              if ((yych = *YYCURSOR) == '=') goto yy252;
 +              YYDEBUG(249, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1446 "Zend/zend_language_scanner.l"
 -#line 1439 "Zend/zend_language_scanner.l"
++#line 1450 "Zend/zend_language_scanner.l"
                {
        return T_SR;
  }
- #line 3676 "Zend/zend_language_scanner.c"
 -#line 3666 "Zend/zend_language_scanner.c"
 -yy249:
 -              YYDEBUG(249, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3680 "Zend/zend_language_scanner.c"
 +yy250:
                YYDEBUG(250, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(251, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1374 "Zend/zend_language_scanner.l"
 -#line 1367 "Zend/zend_language_scanner.l"
++#line 1378 "Zend/zend_language_scanner.l"
                {
        return T_IS_GREATER_OR_EQUAL;
  }
- #line 3686 "Zend/zend_language_scanner.c"
 -#line 3676 "Zend/zend_language_scanner.c"
 -yy251:
 -              YYDEBUG(251, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3690 "Zend/zend_language_scanner.c"
 +yy252:
                YYDEBUG(252, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(253, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1406 "Zend/zend_language_scanner.l"
 -#line 1399 "Zend/zend_language_scanner.l"
++#line 1410 "Zend/zend_language_scanner.l"
                {
        return T_SR_EQUAL;
  }
- #line 3696 "Zend/zend_language_scanner.c"
 -#line 3686 "Zend/zend_language_scanner.c"
 -yy253:
 -              YYDEBUG(253, *YYCURSOR);
 -              yyaccept = 5;
 -              yych = *(YYMARKER = ++YYCURSOR);
 -              if (yych <= ';') goto yy254;
 -              if (yych <= '<') goto yy269;
 -              if (yych <= '=') goto yy267;
++#line 3700 "Zend/zend_language_scanner.c"
  yy254:
                YYDEBUG(254, *YYCURSOR);
 +              yyaccept = 5;
 +              yych = *(YYMARKER = ++YYCURSOR);
 +              if (yych <= ';') goto yy255;
 +              if (yych <= '<') goto yy270;
 +              if (yych <= '=') goto yy268;
 +yy255:
 +              YYDEBUG(255, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1442 "Zend/zend_language_scanner.l"
 -#line 1435 "Zend/zend_language_scanner.l"
++#line 1446 "Zend/zend_language_scanner.l"
                {
        return T_SL;
  }
- #line 3711 "Zend/zend_language_scanner.c"
 -#line 3701 "Zend/zend_language_scanner.c"
 -yy255:
 -              YYDEBUG(255, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy260;
 -              if (yych == 's') goto yy260;
 -              goto yy193;
++#line 3715 "Zend/zend_language_scanner.c"
  yy256:
                YYDEBUG(256, *YYCURSOR);
 -              ++YYCURSOR;
 +              yych = *++YYCURSOR;
 +              if (yych == 'S') goto yy261;
 +              if (yych == 's') goto yy261;
 +              goto yy194;
 +yy257:
                YYDEBUG(257, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(258, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1370 "Zend/zend_language_scanner.l"
 -#line 1363 "Zend/zend_language_scanner.l"
++#line 1374 "Zend/zend_language_scanner.l"
                {
        return T_IS_SMALLER_OR_EQUAL;
  }
- #line 3727 "Zend/zend_language_scanner.c"
 -#line 3717 "Zend/zend_language_scanner.c"
 -yy258:
 -              YYDEBUG(258, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3731 "Zend/zend_language_scanner.c"
  yy259:
                YYDEBUG(259, *YYCURSOR);
 +              ++YYCURSOR;
 +yy260:
 +              YYDEBUG(260, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1366 "Zend/zend_language_scanner.l"
 -#line 1359 "Zend/zend_language_scanner.l"
++#line 1370 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_EQUAL;
  }
- #line 3738 "Zend/zend_language_scanner.c"
 -#line 3728 "Zend/zend_language_scanner.c"
 -yy260:
 -              YYDEBUG(260, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy261;
 -              if (yych != 'c') goto yy193;
++#line 3742 "Zend/zend_language_scanner.c"
  yy261:
                YYDEBUG(261, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -3765,33 -3755,33 +3769,33 @@@ yy266
                ++YYCURSOR;
                YYFILL(3);
                yych = *YYCURSOR;
 -              YYDEBUG(266, *YYCURSOR);
 +              YYDEBUG(267, *YYCURSOR);
                if (yych <= '\r') {
 -                      if (yych <= 0x08) goto yy193;
 -                      if (yych <= '\n') goto yy265;
 -                      if (yych <= '\f') goto yy193;
 -                      goto yy265;
 +                      if (yych <= 0x08) goto yy194;
 +                      if (yych <= '\n') goto yy266;
 +                      if (yych <= '\f') goto yy194;
 +                      goto yy266;
                } else {
                        if (yych <= ' ') {
 -                              if (yych <= 0x1F) goto yy193;
 -                              goto yy265;
 +                              if (yych <= 0x1F) goto yy194;
 +                              goto yy266;
                        } else {
 -                              if (yych == '>') goto yy205;
 -                              goto yy193;
 +                              if (yych == '>') goto yy206;
 +                              goto yy194;
                        }
                }
 -yy267:
 -              YYDEBUG(267, *YYCURSOR);
 -              ++YYCURSOR;
 +yy268:
                YYDEBUG(268, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(269, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1402 "Zend/zend_language_scanner.l"
 -#line 1395 "Zend/zend_language_scanner.l"
++#line 1406 "Zend/zend_language_scanner.l"
                {
        return T_SL_EQUAL;
  }
- #line 3793 "Zend/zend_language_scanner.c"
 -#line 3783 "Zend/zend_language_scanner.c"
 -yy269:
 -              YYDEBUG(269, *YYCURSOR);
++#line 3797 "Zend/zend_language_scanner.c"
 +yy270:
 +              YYDEBUG(270, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(2);
                yych = *YYCURSOR;
@@@ -3874,27 -3864,27 +3878,27 @@@ yy277
                        }
                } else {
                        if (yych <= '`') {
 -                              if (yych == '_') goto yy275;
 -                              goto yy193;
 +                              if (yych == '_') goto yy276;
 +                              goto yy194;
                        } else {
 -                              if (yych <= 'z') goto yy275;
 -                              if (yych <= '~') goto yy193;
 -                              goto yy275;
 +                              if (yych <= 'z') goto yy276;
 +                              if (yych <= '~') goto yy194;
 +                              goto yy276;
                        }
                }
 -yy277:
 -              YYDEBUG(277, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == '\n') goto yy278;
 -              if (yych == '\r') goto yy280;
 -              goto yy193;
  yy278:
                YYDEBUG(278, *YYCURSOR);
 -              ++YYCURSOR;
 +              yych = *++YYCURSOR;
 +              if (yych == '\n') goto yy279;
 +              if (yych == '\r') goto yy281;
 +              goto yy194;
  yy279:
                YYDEBUG(279, *YYCURSOR);
 +              ++YYCURSOR;
 +yy280:
 +              YYDEBUG(280, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2117 "Zend/zend_language_scanner.l"
 -#line 2109 "Zend/zend_language_scanner.l"
++#line 2121 "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 3945 "Zend/zend_language_scanner.c"
 -#line 3936 "Zend/zend_language_scanner.c"
 -yy280:
 -              YYDEBUG(280, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == '\n') goto yy278;
 -              goto yy279;
++#line 3949 "Zend/zend_language_scanner.c"
  yy281:
                YYDEBUG(281, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == '\n') goto yy279;
 +              goto yy280;
 +yy282:
 +              YYDEBUG(282, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(3);
                yych = *YYCURSOR;
                        }
                } else {
                        if (yych <= '`') {
 -                              if (yych == '_') goto yy281;
 -                              goto yy193;
 +                              if (yych == '_') goto yy282;
 +                              goto yy194;
                        } else {
 -                              if (yych <= 'z') goto yy281;
 -                              if (yych <= '~') goto yy193;
 -                              goto yy281;
 +                              if (yych <= 'z') goto yy282;
 +                              if (yych <= '~') goto yy194;
 +                              goto yy282;
                        }
                }
 -yy283:
 -              YYDEBUG(283, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych != '=') goto yy259;
 +yy284:
                YYDEBUG(284, *YYCURSOR);
 -              ++YYCURSOR;
 +              yych = *++YYCURSOR;
 +              if (yych != '=') goto yy260;
                YYDEBUG(285, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(286, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1358 "Zend/zend_language_scanner.l"
 -#line 1351 "Zend/zend_language_scanner.l"
++#line 1362 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_IDENTICAL;
  }
- #line 3989 "Zend/zend_language_scanner.c"
 -#line 3980 "Zend/zend_language_scanner.c"
 -yy286:
 -              YYDEBUG(286, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3993 "Zend/zend_language_scanner.c"
 +yy287:
                YYDEBUG(287, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(288, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1378 "Zend/zend_language_scanner.l"
 -#line 1371 "Zend/zend_language_scanner.l"
++#line 1382 "Zend/zend_language_scanner.l"
                {
        return T_PLUS_EQUAL;
  }
- #line 3999 "Zend/zend_language_scanner.c"
 -#line 3990 "Zend/zend_language_scanner.c"
 -yy288:
 -              YYDEBUG(288, *YYCURSOR);
 -              ++YYCURSOR;
++#line 4003 "Zend/zend_language_scanner.c"
 +yy289:
                YYDEBUG(289, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(290, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1346 "Zend/zend_language_scanner.l"
 -#line 1339 "Zend/zend_language_scanner.l"
++#line 1350 "Zend/zend_language_scanner.l"
                {
        return T_INC;
  }
- #line 4009 "Zend/zend_language_scanner.c"
 -#line 4000 "Zend/zend_language_scanner.c"
 -yy290:
 -              YYDEBUG(290, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy291;
 -              if (yych != 's') goto yy186;
++#line 4013 "Zend/zend_language_scanner.c"
  yy291:
                YYDEBUG(291, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy292;
 -              if (yych != 't') goto yy186;
 +              if (yych == 'S') goto yy292;
 +              if (yych != 's') goto yy187;
  yy292:
                YYDEBUG(292, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'T') goto yy293;
 +              if (yych != 't') goto yy187;
 +yy293:
 +              YYDEBUG(293, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(293, *YYCURSOR);
 +              YYDEBUG(294, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1334 "Zend/zend_language_scanner.l"
 -#line 1327 "Zend/zend_language_scanner.l"
++#line 1338 "Zend/zend_language_scanner.l"
                {
        return T_LIST;
  }
- #line 4032 "Zend/zend_language_scanner.c"
 -#line 4023 "Zend/zend_language_scanner.c"
 -yy294:
 -              YYDEBUG(294, *YYCURSOR);
 -              ++YYCURSOR;
 -              if ((yych = *YYCURSOR) == '=') goto yy298;
++#line 4036 "Zend/zend_language_scanner.c"
 +yy295:
                YYDEBUG(295, *YYCURSOR);
 +              ++YYCURSOR;
 +              if ((yych = *YYCURSOR) == '=') goto yy299;
 +              YYDEBUG(296, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1362 "Zend/zend_language_scanner.l"
 -#line 1355 "Zend/zend_language_scanner.l"
++#line 1366 "Zend/zend_language_scanner.l"
                {
        return T_IS_EQUAL;
  }
- #line 4043 "Zend/zend_language_scanner.c"
 -#line 4034 "Zend/zend_language_scanner.c"
 -yy296:
 -              YYDEBUG(296, *YYCURSOR);
 -              ++YYCURSOR;
++#line 4047 "Zend/zend_language_scanner.c"
 +yy297:
                YYDEBUG(297, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(298, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1330 "Zend/zend_language_scanner.l"
 -#line 1323 "Zend/zend_language_scanner.l"
++#line 1334 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_ARROW;
  }
- #line 4053 "Zend/zend_language_scanner.c"
 -#line 4044 "Zend/zend_language_scanner.c"
 -yy298:
 -              YYDEBUG(298, *YYCURSOR);
 -              ++YYCURSOR;
++#line 4057 "Zend/zend_language_scanner.c"
 +yy299:
                YYDEBUG(299, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(300, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1354 "Zend/zend_language_scanner.l"
 -#line 1347 "Zend/zend_language_scanner.l"
++#line 1358 "Zend/zend_language_scanner.l"
                {
        return T_IS_IDENTICAL;
  }
- #line 4063 "Zend/zend_language_scanner.c"
 -#line 4054 "Zend/zend_language_scanner.c"
 -yy300:
 -              YYDEBUG(300, *YYCURSOR);
++#line 4067 "Zend/zend_language_scanner.c"
 +yy301:
 +              YYDEBUG(301, *YYCURSOR);
                yych = *++YYCURSOR;
                YYDEBUG(-1, yych);
                switch (yych) {
@@@ -4173,23 -4169,18 +4177,23 @@@ yy315
  yy316:
                YYDEBUG(316, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych != '_') goto yy186;
 +              if (yych == 'E') goto yy317;
 +              if (yych != 'e') goto yy187;
 +yy317:
                YYDEBUG(317, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych != '_') goto yy186;
 +              if (yych != '_') goto yy187;
                YYDEBUG(318, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych != '_') goto yy187;
 +              YYDEBUG(319, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(319, *YYCURSOR);
 +              YYDEBUG(320, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1718 "Zend/zend_language_scanner.l"
 -#line 1710 "Zend/zend_language_scanner.l"
++#line 1722 "Zend/zend_language_scanner.l"
                {
        if (CG(current_namespace)) {
                *zendlval = *CG(current_namespace);
        }
        return T_NS_C;
  }
- #line 4203 "Zend/zend_language_scanner.c"
 -#line 4194 "Zend/zend_language_scanner.c"
 -yy320:
 -              YYDEBUG(320, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy321;
 -              if (yych != 'r') goto yy186;
++#line 4207 "Zend/zend_language_scanner.c"
  yy321:
                YYDEBUG(321, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych != '_') goto yy186;
 +              if (yych == 'R') goto yy322;
 +              if (yych != 'r') goto yy187;
 +yy322:
                YYDEBUG(322, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych != '_') goto yy186;
 +              if (yych != '_') goto yy187;
                YYDEBUG(323, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych != '_') goto yy187;
 +              YYDEBUG(324, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(324, *YYCURSOR);
 +              YYDEBUG(325, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1691 "Zend/zend_language_scanner.l"
 -#line 1683 "Zend/zend_language_scanner.l"
++#line 1695 "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 4250 "Zend/zend_language_scanner.c"
 -#line 4241 "Zend/zend_language_scanner.c"
 -yy325:
 -              YYDEBUG(325, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy326;
 -              if (yych != 'n') goto yy186;
++#line 4254 "Zend/zend_language_scanner.c"
  yy326:
                YYDEBUG(326, *YYCURSOR);
                yych = *++YYCURSOR;
  yy327:
                YYDEBUG(327, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych != '_') goto yy186;
 +              if (yych == 'E') goto yy328;
 +              if (yych != 'e') goto yy187;
 +yy328:
                YYDEBUG(328, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych != '_') goto yy186;
 +              if (yych != '_') goto yy187;
                YYDEBUG(329, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych != '_') goto yy187;
 +              YYDEBUG(330, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(330, *YYCURSOR);
 +              YYDEBUG(331, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1673 "Zend/zend_language_scanner.l"
 -#line 1665 "Zend/zend_language_scanner.l"
++#line 1677 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = CG(zend_lineno);
        zendlval->type = IS_LONG;
        return T_LINE;
  }
- #line 4281 "Zend/zend_language_scanner.c"
 -#line 4272 "Zend/zend_language_scanner.c"
 -yy331:
 -              YYDEBUG(331, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy332;
 -              if (yych != 't') goto yy186;
++#line 4285 "Zend/zend_language_scanner.c"
  yy332:
                YYDEBUG(332, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4296,23 -4292,18 +4300,23 @@@ yy334
  yy335:
                YYDEBUG(335, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych != '_') goto yy186;
 +              if (yych == 'D') goto yy336;
 +              if (yych != 'd') goto yy187;
 +yy336:
                YYDEBUG(336, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych != '_') goto yy186;
 +              if (yych != '_') goto yy187;
                YYDEBUG(337, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych != '_') goto yy187;
 +              YYDEBUG(338, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(338, *YYCURSOR);
 +              YYDEBUG(339, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1652 "Zend/zend_language_scanner.l"
 -#line 1644 "Zend/zend_language_scanner.l"
++#line 1656 "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 4337 "Zend/zend_language_scanner.c"
 -#line 4328 "Zend/zend_language_scanner.c"
 -yy339:
 -              YYDEBUG(339, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy350;
 -              if (yych == 'l') goto yy350;
 -              goto yy186;
++#line 4341 "Zend/zend_language_scanner.c"
  yy340:
                YYDEBUG(340, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4368,23 -4364,18 +4372,23 @@@ yy345
  yy346:
                YYDEBUG(346, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych != '_') goto yy186;
 +              if (yych == 'N') goto yy347;
 +              if (yych != 'n') goto yy187;
 +yy347:
                YYDEBUG(347, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych != '_') goto yy186;
 +              if (yych != '_') goto yy187;
                YYDEBUG(348, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych != '_') goto yy187;
 +              YYDEBUG(349, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(349, *YYCURSOR);
 +              YYDEBUG(350, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1636 "Zend/zend_language_scanner.l"
 -#line 1628 "Zend/zend_language_scanner.l"
++#line 1640 "Zend/zend_language_scanner.l"
                {
        const char *func_name = NULL;
  
        zendlval->type = IS_STRING;
        return T_FUNC_C;
  }
- #line 4404 "Zend/zend_language_scanner.c"
 -#line 4395 "Zend/zend_language_scanner.c"
 -yy350:
 -              YYDEBUG(350, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy351;
 -              if (yych != 'e') goto yy186;
++#line 4408 "Zend/zend_language_scanner.c"
  yy351:
                YYDEBUG(351, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych != '_') goto yy186;
 +              if (yych == 'E') goto yy352;
 +              if (yych != 'e') goto yy187;
 +yy352:
                YYDEBUG(352, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych != '_') goto yy186;
 +              if (yych != '_') goto yy187;
                YYDEBUG(353, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych != '_') goto yy187;
 +              YYDEBUG(354, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(354, *YYCURSOR);
 +              YYDEBUG(355, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1679 "Zend/zend_language_scanner.l"
 -#line 1671 "Zend/zend_language_scanner.l"
++#line 1683 "Zend/zend_language_scanner.l"
                {
        char *filename = zend_get_compiled_filename(TSRMLS_C);
  
        zendlval->type = IS_STRING;
        return T_FILE;
  }
- #line 4436 "Zend/zend_language_scanner.c"
 -#line 4427 "Zend/zend_language_scanner.c"
 -yy355:
 -              YYDEBUG(355, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy356;
 -              if (yych != 'a') goto yy186;
++#line 4440 "Zend/zend_language_scanner.c"
  yy356:
                YYDEBUG(356, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4446,23 -4442,18 +4450,23 @@@ yy357
  yy358:
                YYDEBUG(358, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych != '_') goto yy186;
 +              if (yych == 'T') goto yy359;
 +              if (yych != 't') goto yy187;
 +yy359:
                YYDEBUG(359, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych != '_') goto yy186;
 +              if (yych != '_') goto yy187;
                YYDEBUG(360, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych != '_') goto yy187;
 +              YYDEBUG(361, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(361, *YYCURSOR);
 +              YYDEBUG(362, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1616 "Zend/zend_language_scanner.l"
 -#line 1608 "Zend/zend_language_scanner.l"
++#line 1620 "Zend/zend_language_scanner.l"
                {
        const char *trait_name = NULL;
        
        
        return T_TRAIT_C;
  }
- #line 4486 "Zend/zend_language_scanner.c"
 -#line 4477 "Zend/zend_language_scanner.c"
 -yy362:
 -              YYDEBUG(362, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy363;
 -              if (yych != 'a') goto yy186;
++#line 4490 "Zend/zend_language_scanner.c"
  yy363:
                YYDEBUG(363, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4496,23 -4492,18 +4500,23 @@@ yy364
  yy365:
                YYDEBUG(365, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych != '_') goto yy186;
 +              if (yych == 'S') goto yy366;
 +              if (yych != 's') goto yy187;
 +yy366:
                YYDEBUG(366, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych != '_') goto yy186;
 +              if (yych != '_') goto yy187;
                YYDEBUG(367, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych != '_') goto yy187;
 +              YYDEBUG(368, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(368, *YYCURSOR);
 +              YYDEBUG(369, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1589 "Zend/zend_language_scanner.l"
 -#line 1581 "Zend/zend_language_scanner.l"
++#line 1593 "Zend/zend_language_scanner.l"
                {
        const char *class_name = NULL;
        
        }
        return T_CLASS_C;
  }
- #line 4543 "Zend/zend_language_scanner.c"
 -#line 4534 "Zend/zend_language_scanner.c"
 -yy369:
 -              YYDEBUG(369, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy370;
 -              if (yych != 'l') goto yy186;
++#line 4547 "Zend/zend_language_scanner.c"
  yy370:
                YYDEBUG(370, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4586,75 -4582,70 +4590,75 @@@ yy378
  yy379:
                YYDEBUG(379, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy380;
 -              if (yych != 'r') goto yy186;
 +              if (yych == 'E') goto yy380;
 +              if (yych != 'e') goto yy187;
  yy380:
                YYDEBUG(380, *YYCURSOR);
 -              ++YYCURSOR;
 +              yych = *++YYCURSOR;
 +              if (yych == 'R') goto yy381;
 +              if (yych != 'r') goto yy187;
 +yy381:
 +              YYDEBUG(381, *YYCURSOR);
 +              ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(381, *YYCURSOR);
 +              YYDEBUG(382, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1298 "Zend/zend_language_scanner.l"
 -#line 1291 "Zend/zend_language_scanner.l"
++#line 1302 "Zend/zend_language_scanner.l"
                {
        return T_HALT_COMPILER;
  }
- #line 4609 "Zend/zend_language_scanner.c"
 -#line 4600 "Zend/zend_language_scanner.c"
 -yy382:
 -              YYDEBUG(382, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy386;
 -              if (yych == 's') goto yy386;
 -              goto yy186;
++#line 4613 "Zend/zend_language_scanner.c"
  yy383:
                YYDEBUG(383, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy384;
 -              if (yych != 'e') goto yy186;
 +              if (yych == 'S') goto yy387;
 +              if (yych == 's') goto yy387;
 +              goto yy187;
  yy384:
                YYDEBUG(384, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'E') goto yy385;
 +              if (yych != 'e') goto yy187;
 +yy385:
 +              YYDEBUG(385, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(385, *YYCURSOR);
 +              YYDEBUG(386, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1278 "Zend/zend_language_scanner.l"
 -#line 1271 "Zend/zend_language_scanner.l"
++#line 1282 "Zend/zend_language_scanner.l"
                {
        return T_USE;
  }
- #line 4633 "Zend/zend_language_scanner.c"
 -#line 4624 "Zend/zend_language_scanner.c"
 -yy386:
 -              YYDEBUG(386, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy387;
 -              if (yych != 'e') goto yy186;
++#line 4637 "Zend/zend_language_scanner.c"
  yy387:
                YYDEBUG(387, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy388;
 -              if (yych != 't') goto yy186;
 +              if (yych == 'E') goto yy388;
 +              if (yych != 'e') goto yy187;
  yy388:
                YYDEBUG(388, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'T') goto yy389;
 +              if (yych != 't') goto yy187;
 +yy389:
 +              YYDEBUG(389, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(389, *YYCURSOR);
 +              YYDEBUG(390, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1326 "Zend/zend_language_scanner.l"
 -#line 1319 "Zend/zend_language_scanner.l"
++#line 1330 "Zend/zend_language_scanner.l"
                {
        return T_UNSET;
  }
- #line 4656 "Zend/zend_language_scanner.c"
 -#line 4647 "Zend/zend_language_scanner.c"
 -yy390:
 -              YYDEBUG(390, *YYCURSOR);
++#line 4660 "Zend/zend_language_scanner.c"
 +yy391:
 +              YYDEBUG(391, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(7);
                yych = *YYCURSOR;
@@@ -4811,24 -4802,29 +4815,24 @@@ yy405
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -yy405:
 -              YYDEBUG(405, *YYCURSOR);
 +yy406:
 +              YYDEBUG(406, *YYCURSOR);
                if (yych <= 0x1F) {
 -                      if (yych == '\t') goto yy404;
 -                      goto yy193;
 +                      if (yych == '\t') goto yy405;
 +                      goto yy194;
                } else {
 -                      if (yych <= ' ') goto yy404;
 -                      if (yych != ')') goto yy193;
 +                      if (yych <= ' ') goto yy405;
 +                      if (yych != ')') goto yy194;
                }
 -              YYDEBUG(406, *YYCURSOR);
 -              ++YYCURSOR;
                YYDEBUG(407, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(408, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1226 "Zend/zend_language_scanner.l"
 -#line 1219 "Zend/zend_language_scanner.l"
++#line 1230 "Zend/zend_language_scanner.l"
                {
        return T_INT_CAST;
  }
- #line 4832 "Zend/zend_language_scanner.c"
 -#line 4823 "Zend/zend_language_scanner.c"
 -yy408:
 -              YYDEBUG(408, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy409;
 -              if (yych != 'e') goto yy193;
++#line 4836 "Zend/zend_language_scanner.c"
  yy409:
                YYDEBUG(409, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4860,23 -4851,28 +4864,23 @@@ yy414
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -              YYDEBUG(414, *YYCURSOR);
 +              YYDEBUG(415, *YYCURSOR);
                if (yych <= 0x1F) {
 -                      if (yych == '\t') goto yy413;
 -                      goto yy193;
 +                      if (yych == '\t') goto yy414;
 +                      goto yy194;
                } else {
 -                      if (yych <= ' ') goto yy413;
 -                      if (yych != ')') goto yy193;
 +                      if (yych <= ' ') goto yy414;
 +                      if (yych != ')') goto yy194;
                }
 -              YYDEBUG(415, *YYCURSOR);
 -              ++YYCURSOR;
                YYDEBUG(416, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(417, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1230 "Zend/zend_language_scanner.l"
 -#line 1223 "Zend/zend_language_scanner.l"
++#line 1234 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_CAST;
  }
- #line 4880 "Zend/zend_language_scanner.c"
 -#line 4871 "Zend/zend_language_scanner.c"
 -yy417:
 -              YYDEBUG(417, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'U') goto yy418;
 -              if (yych != 'u') goto yy193;
++#line 4884 "Zend/zend_language_scanner.c"
  yy418:
                YYDEBUG(418, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4934,23 -4925,28 +4938,23 @@@ yy428
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -              YYDEBUG(428, *YYCURSOR);
 +              YYDEBUG(429, *YYCURSOR);
                if (yych <= 0x1F) {
 -                      if (yych == '\t') goto yy427;
 -                      goto yy193;
 +                      if (yych == '\t') goto yy428;
 +                      goto yy194;
                } else {
 -                      if (yych <= ' ') goto yy427;
 -                      if (yych != ')') goto yy193;
 +                      if (yych <= ' ') goto yy428;
 +                      if (yych != ')') goto yy194;
                }
 -              YYDEBUG(429, *YYCURSOR);
 -              ++YYCURSOR;
                YYDEBUG(430, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(431, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1234 "Zend/zend_language_scanner.l"
 -#line 1227 "Zend/zend_language_scanner.l"
++#line 1238 "Zend/zend_language_scanner.l"
                {
        return T_STRING_CAST;
  }
- #line 4954 "Zend/zend_language_scanner.c"
 -#line 4945 "Zend/zend_language_scanner.c"
 -yy431:
 -              YYDEBUG(431, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy432;
 -              if (yych != 'r') goto yy193;
++#line 4958 "Zend/zend_language_scanner.c"
  yy432:
                YYDEBUG(432, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4971,23 -4962,28 +4975,23 @@@ yy435
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -              YYDEBUG(435, *YYCURSOR);
 +              YYDEBUG(436, *YYCURSOR);
                if (yych <= 0x1F) {
 -                      if (yych == '\t') goto yy434;
 -                      goto yy193;
 +                      if (yych == '\t') goto yy435;
 +                      goto yy194;
                } else {
 -                      if (yych <= ' ') goto yy434;
 -                      if (yych != ')') goto yy193;
 +                      if (yych <= ' ') goto yy435;
 +                      if (yych != ')') goto yy194;
                }
 -              YYDEBUG(436, *YYCURSOR);
 -              ++YYCURSOR;
                YYDEBUG(437, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(438, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1238 "Zend/zend_language_scanner.l"
 -#line 1231 "Zend/zend_language_scanner.l"
++#line 1242 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY_CAST;
  }
- #line 4991 "Zend/zend_language_scanner.c"
 -#line 4982 "Zend/zend_language_scanner.c"
 -yy438:
 -              YYDEBUG(438, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'J') goto yy439;
 -              if (yych != 'j') goto yy193;
++#line 4995 "Zend/zend_language_scanner.c"
  yy439:
                YYDEBUG(439, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5013,23 -5004,29 +5017,23 @@@ yy443
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -              YYDEBUG(443, *YYCURSOR);
 +              YYDEBUG(444, *YYCURSOR);
                if (yych <= 0x1F) {
 -                      if (yych == '\t') goto yy442;
 -                      goto yy193;
 +                      if (yych == '\t') goto yy443;
 +                      goto yy194;
                } else {
 -                      if (yych <= ' ') goto yy442;
 -                      if (yych != ')') goto yy193;
 +                      if (yych <= ' ') goto yy443;
 +                      if (yych != ')') goto yy194;
                }
 -              YYDEBUG(444, *YYCURSOR);
 -              ++YYCURSOR;
                YYDEBUG(445, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(446, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1242 "Zend/zend_language_scanner.l"
 -#line 1235 "Zend/zend_language_scanner.l"
++#line 1246 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_CAST;
  }
- #line 5033 "Zend/zend_language_scanner.c"
 -#line 5024 "Zend/zend_language_scanner.c"
 -yy446:
 -              YYDEBUG(446, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy456;
 -              if (yych == 'n') goto yy456;
 -              goto yy193;
++#line 5037 "Zend/zend_language_scanner.c"
  yy447:
                YYDEBUG(447, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5057,24 -5048,29 +5061,24 @@@ yy451
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -yy451:
 -              YYDEBUG(451, *YYCURSOR);
 +yy452:
 +              YYDEBUG(452, *YYCURSOR);
                if (yych <= 0x1F) {
 -                      if (yych == '\t') goto yy450;
 -                      goto yy193;
 +                      if (yych == '\t') goto yy451;
 +                      goto yy194;
                } else {
 -                      if (yych <= ' ') goto yy450;
 -                      if (yych != ')') goto yy193;
 +                      if (yych <= ' ') goto yy451;
 +                      if (yych != ')') goto yy194;
                }
 -              YYDEBUG(452, *YYCURSOR);
 -              ++YYCURSOR;
                YYDEBUG(453, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(454, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1246 "Zend/zend_language_scanner.l"
 -#line 1239 "Zend/zend_language_scanner.l"
++#line 1250 "Zend/zend_language_scanner.l"
                {
        return T_BOOL_CAST;
  }
- #line 5078 "Zend/zend_language_scanner.c"
 -#line 5069 "Zend/zend_language_scanner.c"
 -yy454:
 -              YYDEBUG(454, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy455;
 -              if (yych != 'a') goto yy193;
++#line 5082 "Zend/zend_language_scanner.c"
  yy455:
                YYDEBUG(455, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5122,65 -5113,70 +5126,65 @@@ yy463
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -              YYDEBUG(463, *YYCURSOR);
 +              YYDEBUG(464, *YYCURSOR);
                if (yych <= 0x1F) {
 -                      if (yych == '\t') goto yy462;
 -                      goto yy193;
 +                      if (yych == '\t') goto yy463;
 +                      goto yy194;
                } else {
 -                      if (yych <= ' ') goto yy462;
 -                      if (yych != ')') goto yy193;
 +                      if (yych <= ' ') goto yy463;
 +                      if (yych != ')') goto yy194;
                }
 -              YYDEBUG(464, *YYCURSOR);
 -              ++YYCURSOR;
                YYDEBUG(465, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(466, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1250 "Zend/zend_language_scanner.l"
 -#line 1243 "Zend/zend_language_scanner.l"
++#line 1254 "Zend/zend_language_scanner.l"
                {
        return T_UNSET_CAST;
  }
- #line 5142 "Zend/zend_language_scanner.c"
 -#line 5133 "Zend/zend_language_scanner.c"
 -yy466:
 -              YYDEBUG(466, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy467;
 -              if (yych != 'r') goto yy186;
++#line 5146 "Zend/zend_language_scanner.c"
  yy467:
                YYDEBUG(467, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'R') goto yy468;
 +              if (yych != 'r') goto yy187;
 +yy468:
 +              YYDEBUG(468, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(468, *YYCURSOR);
 +              YYDEBUG(469, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1222 "Zend/zend_language_scanner.l"
 -#line 1215 "Zend/zend_language_scanner.l"
++#line 1226 "Zend/zend_language_scanner.l"
                {
        return T_VAR;
  }
- #line 5160 "Zend/zend_language_scanner.c"
 -#line 5151 "Zend/zend_language_scanner.c"
 -yy469:
 -              YYDEBUG(469, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'M') goto yy473;
 -              if (yych == 'm') goto yy473;
 -              goto yy186;
++#line 5164 "Zend/zend_language_scanner.c"
  yy470:
                YYDEBUG(470, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'W') goto yy471;
 -              if (yych != 'w') goto yy186;
 +              if (yych == 'M') goto yy474;
 +              if (yych == 'm') goto yy474;
 +              goto yy187;
  yy471:
                YYDEBUG(471, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'W') goto yy472;
 +              if (yych != 'w') goto yy187;
 +yy472:
 +              YYDEBUG(472, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(472, *YYCURSOR);
 +              YYDEBUG(473, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1214 "Zend/zend_language_scanner.l"
 -#line 1207 "Zend/zend_language_scanner.l"
++#line 1218 "Zend/zend_language_scanner.l"
                {
        return T_NEW;
  }
- #line 5184 "Zend/zend_language_scanner.c"
 -#line 5175 "Zend/zend_language_scanner.c"
 -yy473:
 -              YYDEBUG(473, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy474;
 -              if (yych != 'e') goto yy186;
++#line 5188 "Zend/zend_language_scanner.c"
  yy474:
                YYDEBUG(474, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5204,99 -5200,99 +5208,99 @@@ yy477
  yy478:
                YYDEBUG(478, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy479;
 -              if (yych != 'e') goto yy186;
 +              if (yych == 'C') goto yy479;
 +              if (yych != 'c') goto yy187;
  yy479:
                YYDEBUG(479, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'E') goto yy480;
 +              if (yych != 'e') goto yy187;
 +yy480:
 +              YYDEBUG(480, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(480, *YYCURSOR);
 +              YYDEBUG(481, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1274 "Zend/zend_language_scanner.l"
 -#line 1267 "Zend/zend_language_scanner.l"
++#line 1278 "Zend/zend_language_scanner.l"
                {
        return T_NAMESPACE;
  }
- #line 5227 "Zend/zend_language_scanner.c"
 -#line 5218 "Zend/zend_language_scanner.c"
 -yy481:
 -              YYDEBUG(481, *YYCURSOR);
 -              ++YYCURSOR;
++#line 5231 "Zend/zend_language_scanner.c"
 +yy482:
                YYDEBUG(482, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(483, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1206 "Zend/zend_language_scanner.l"
 -#line 1199 "Zend/zend_language_scanner.l"
++#line 1210 "Zend/zend_language_scanner.l"
                {
        return T_PAAMAYIM_NEKUDOTAYIM;
  }
- #line 5237 "Zend/zend_language_scanner.c"
 -#line 5228 "Zend/zend_language_scanner.c"
 -yy483:
 -              YYDEBUG(483, *YYCURSOR);
++#line 5241 "Zend/zend_language_scanner.c"
 +yy484:
 +              YYDEBUG(484, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -yy484:
 -              YYDEBUG(484, *YYCURSOR);
 +yy485:
 +              YYDEBUG(485, *YYCURSOR);
                if (yych <= '\f') {
 -                      if (yych <= 0x08) goto yy140;
 -                      if (yych <= '\n') goto yy483;
 -                      goto yy140;
 +                      if (yych <= 0x08) goto yy141;
 +                      if (yych <= '\n') goto yy484;
 +                      goto yy141;
                } else {
 -                      if (yych <= '\r') goto yy483;
 -                      if (yych == ' ') goto yy483;
 -                      goto yy140;
 +                      if (yych <= '\r') goto yy484;
 +                      if (yych == ' ') goto yy484;
 +                      goto yy141;
                }
 -yy485:
 -              YYDEBUG(485, *YYCURSOR);
 -              ++YYCURSOR;
 +yy486:
                YYDEBUG(486, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(487, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1382 "Zend/zend_language_scanner.l"
 -#line 1375 "Zend/zend_language_scanner.l"
++#line 1386 "Zend/zend_language_scanner.l"
                {
        return T_MINUS_EQUAL;
  }
- #line 5263 "Zend/zend_language_scanner.c"
 -#line 5254 "Zend/zend_language_scanner.c"
 -yy487:
 -              YYDEBUG(487, *YYCURSOR);
 -              ++YYCURSOR;
++#line 5267 "Zend/zend_language_scanner.c"
 +yy488:
                YYDEBUG(488, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(489, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1350 "Zend/zend_language_scanner.l"
 -#line 1343 "Zend/zend_language_scanner.l"
++#line 1354 "Zend/zend_language_scanner.l"
                {
        return T_DEC;
  }
- #line 5273 "Zend/zend_language_scanner.c"
 -#line 5264 "Zend/zend_language_scanner.c"
 -yy489:
 -              YYDEBUG(489, *YYCURSOR);
 -              ++YYCURSOR;
++#line 5277 "Zend/zend_language_scanner.c"
 +yy490:
                YYDEBUG(490, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(491, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1176 "Zend/zend_language_scanner.l"
 -#line 1169 "Zend/zend_language_scanner.l"
++#line 1180 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
        return T_OBJECT_OPERATOR;
  }
- #line 5284 "Zend/zend_language_scanner.c"
 -#line 5275 "Zend/zend_language_scanner.c"
 -yy491:
 -              YYDEBUG(491, *YYCURSOR);
++#line 5288 "Zend/zend_language_scanner.c"
 +yy492:
 +              YYDEBUG(492, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'O') {
 -                      if (yych == 'I') goto yy498;
 -                      if (yych <= 'N') goto yy186;
 -                      goto yy499;
 +                      if (yych == 'I') goto yy499;
 +                      if (yych <= 'N') goto yy187;
 +                      goto yy500;
                } else {
                        if (yych <= 'i') {
 -                              if (yych <= 'h') goto yy186;
 -                              goto yy498;
 +                              if (yych <= 'h') goto yy187;
 +                              goto yy499;
                        } else {
 -                              if (yych == 'o') goto yy499;
 -                              goto yy186;
 +                              if (yych == 'o') goto yy500;
 +                              goto yy187;
                        }
                }
 -yy492:
 -              YYDEBUG(492, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'B') goto yy493;
 -              if (yych != 'b') goto yy186;
  yy493:
                YYDEBUG(493, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5310,42 -5306,42 +5314,42 @@@ yy494
  yy495:
                YYDEBUG(495, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy496;
 -              if (yych != 'c') goto yy186;
 +              if (yych == 'I') goto yy496;
 +              if (yych != 'i') goto yy187;
  yy496:
                YYDEBUG(496, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'C') goto yy497;
 +              if (yych != 'c') goto yy187;
 +yy497:
 +              YYDEBUG(497, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(497, *YYCURSOR);
 +              YYDEBUG(498, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1322 "Zend/zend_language_scanner.l"
 -#line 1315 "Zend/zend_language_scanner.l"
++#line 1326 "Zend/zend_language_scanner.l"
                {
        return T_PUBLIC;
  }
- #line 5333 "Zend/zend_language_scanner.c"
 -#line 5324 "Zend/zend_language_scanner.c"
 -yy498:
 -              YYDEBUG(498, *YYCURSOR);
++#line 5337 "Zend/zend_language_scanner.c"
 +yy499:
 +              YYDEBUG(499, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'V') {
 -                      if (yych == 'N') goto yy507;
 -                      if (yych <= 'U') goto yy186;
 -                      goto yy508;
 +                      if (yych == 'N') goto yy508;
 +                      if (yych <= 'U') goto yy187;
 +                      goto yy509;
                } else {
                        if (yych <= 'n') {
 -                              if (yych <= 'm') goto yy186;
 -                              goto yy507;
 +                              if (yych <= 'm') goto yy187;
 +                              goto yy508;
                        } else {
 -                              if (yych == 'v') goto yy508;
 -                              goto yy186;
 +                              if (yych == 'v') goto yy509;
 +                              goto yy187;
                        }
                }
 -yy499:
 -              YYDEBUG(499, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy500;
 -              if (yych != 't') goto yy186;
  yy500:
                YYDEBUG(500, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5369,26 -5365,27 +5373,26 @@@ yy503
  yy504:
                YYDEBUG(504, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'D') goto yy505;
 -              if (yych != 'd') goto yy186;
 +              if (yych == 'E') goto yy505;
 +              if (yych != 'e') goto yy187;
  yy505:
                YYDEBUG(505, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'D') goto yy506;
 +              if (yych != 'd') goto yy187;
 +yy506:
 +              YYDEBUG(506, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(506, *YYCURSOR);
 +              YYDEBUG(507, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1318 "Zend/zend_language_scanner.l"
 -#line 1311 "Zend/zend_language_scanner.l"
++#line 1322 "Zend/zend_language_scanner.l"
                {
        return T_PROTECTED;
  }
- #line 5392 "Zend/zend_language_scanner.c"
 -#line 5383 "Zend/zend_language_scanner.c"
 -yy507:
 -              YYDEBUG(507, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy513;
 -              if (yych == 't') goto yy513;
 -              goto yy186;
++#line 5396 "Zend/zend_language_scanner.c"
  yy508:
                YYDEBUG(508, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5403,39 -5399,40 +5407,39 @@@ yy509
  yy510:
                YYDEBUG(510, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy511;
 -              if (yych != 'e') goto yy186;
 +              if (yych == 'T') goto yy511;
 +              if (yych != 't') goto yy187;
  yy511:
                YYDEBUG(511, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'E') goto yy512;
 +              if (yych != 'e') goto yy187;
 +yy512:
 +              YYDEBUG(512, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(512, *YYCURSOR);
 +              YYDEBUG(513, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1314 "Zend/zend_language_scanner.l"
 -#line 1307 "Zend/zend_language_scanner.l"
++#line 1318 "Zend/zend_language_scanner.l"
                {
        return T_PRIVATE;
  }
- #line 5426 "Zend/zend_language_scanner.c"
 -#line 5417 "Zend/zend_language_scanner.c"
 -yy513:
 -              YYDEBUG(513, *YYCURSOR);
++#line 5430 "Zend/zend_language_scanner.c"
 +yy514:
 +              YYDEBUG(514, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(514, *YYCURSOR);
 +              YYDEBUG(515, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1152 "Zend/zend_language_scanner.l"
 -#line 1145 "Zend/zend_language_scanner.l"
++#line 1156 "Zend/zend_language_scanner.l"
                {
        return T_PRINT;
  }
- #line 5439 "Zend/zend_language_scanner.c"
 -#line 5430 "Zend/zend_language_scanner.c"
 -yy515:
 -              YYDEBUG(515, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy520;
 -              if (yych == 'o') goto yy520;
 -              goto yy186;
++#line 5443 "Zend/zend_language_scanner.c"
  yy516:
                YYDEBUG(516, *YYCURSOR);
                yych = *++YYCURSOR;
  yy517:
                YYDEBUG(517, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy518;
 -              if (yych != 'o') goto yy186;
 +              if (yych == 'T') goto yy518;
 +              if (yych != 't') goto yy187;
  yy518:
                YYDEBUG(518, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'O') goto yy519;
 +              if (yych != 'o') goto yy187;
 +yy519:
 +              YYDEBUG(519, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(519, *YYCURSOR);
 +              YYDEBUG(520, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1144 "Zend/zend_language_scanner.l"
 -#line 1137 "Zend/zend_language_scanner.l"
++#line 1148 "Zend/zend_language_scanner.l"
                {
        return T_GOTO;
  }
- #line 5468 "Zend/zend_language_scanner.c"
 -#line 5459 "Zend/zend_language_scanner.c"
 -yy520:
 -              YYDEBUG(520, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'B') goto yy521;
 -              if (yych != 'b') goto yy186;
++#line 5472 "Zend/zend_language_scanner.c"
  yy521:
                YYDEBUG(521, *YYCURSOR);
                yych = *++YYCURSOR;
  yy522:
                YYDEBUG(522, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy523;
 -              if (yych != 'l') goto yy186;
 +              if (yych == 'A') goto yy523;
 +              if (yych != 'a') goto yy187;
  yy523:
                YYDEBUG(523, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'L') goto yy524;
 +              if (yych != 'l') goto yy187;
 +yy524:
 +              YYDEBUG(524, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(524, *YYCURSOR);
 +              YYDEBUG(525, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1286 "Zend/zend_language_scanner.l"
 -#line 1279 "Zend/zend_language_scanner.l"
++#line 1290 "Zend/zend_language_scanner.l"
                {
        return T_GLOBAL;
  }
- #line 5496 "Zend/zend_language_scanner.c"
 -#line 5487 "Zend/zend_language_scanner.c"
 -yy525:
 -              YYDEBUG(525, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == '<') goto yy533;
 -              goto yy193;
++#line 5500 "Zend/zend_language_scanner.c"
  yy526:
                YYDEBUG(526, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5514,26 -5510,26 +5518,26 @@@ yy529
  yy530:
                YYDEBUG(530, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'K') goto yy531;
 -              if (yych != 'k') goto yy186;
 +              if (yych == 'A') goto yy531;
 +              if (yych != 'a') goto yy187;
  yy531:
                YYDEBUG(531, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'K') goto yy532;
 +              if (yych != 'k') goto yy187;
 +yy532:
 +              YYDEBUG(532, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(532, *YYCURSOR);
 +              YYDEBUG(533, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1136 "Zend/zend_language_scanner.l"
 -#line 1129 "Zend/zend_language_scanner.l"
++#line 1140 "Zend/zend_language_scanner.l"
                {
        return T_BREAK;
  }
- #line 5537 "Zend/zend_language_scanner.c"
 -#line 5528 "Zend/zend_language_scanner.c"
 -yy533:
 -              YYDEBUG(533, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == '<') goto yy269;
 -              goto yy193;
++#line 5541 "Zend/zend_language_scanner.c"
  yy534:
                YYDEBUG(534, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5558,26 -5554,26 +5562,26 @@@ yy537
  yy538:
                YYDEBUG(538, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'H') goto yy539;
 -              if (yych != 'h') goto yy186;
 +              if (yych == 'C') goto yy539;
 +              if (yych != 'c') goto yy187;
  yy539:
                YYDEBUG(539, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'H') goto yy540;
 +              if (yych != 'h') goto yy187;
 +yy540:
 +              YYDEBUG(540, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(540, *YYCURSOR);
 +              YYDEBUG(541, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1120 "Zend/zend_language_scanner.l"
 -#line 1113 "Zend/zend_language_scanner.l"
++#line 1124 "Zend/zend_language_scanner.l"
                {
        return T_SWITCH;
  }
- #line 5581 "Zend/zend_language_scanner.c"
 -#line 5572 "Zend/zend_language_scanner.c"
 -yy541:
 -              YYDEBUG(541, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy542;
 -              if (yych != 't') goto yy186;
++#line 5585 "Zend/zend_language_scanner.c"
  yy542:
                YYDEBUG(542, *YYCURSOR);
                yych = *++YYCURSOR;
  yy543:
                YYDEBUG(543, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy544;
 -              if (yych != 'c') goto yy186;
 +              if (yych == 'I') goto yy544;
 +              if (yych != 'i') goto yy187;
  yy544:
                YYDEBUG(544, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'C') goto yy545;
 +              if (yych != 'c') goto yy187;
 +yy545:
 +              YYDEBUG(545, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(545, *YYCURSOR);
 +              YYDEBUG(546, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1302 "Zend/zend_language_scanner.l"
 -#line 1295 "Zend/zend_language_scanner.l"
++#line 1306 "Zend/zend_language_scanner.l"
                {
        return T_STATIC;
  }
- #line 5609 "Zend/zend_language_scanner.c"
 -#line 5600 "Zend/zend_language_scanner.c"
 -yy546:
 -              YYDEBUG(546, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy557;
 -              if (yych == 's') goto yy557;
 -              goto yy186;
++#line 5613 "Zend/zend_language_scanner.c"
  yy547:
                YYDEBUG(547, *YYCURSOR);
                yych = *++YYCURSOR;
  yy548:
                YYDEBUG(548, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy551;
 -              if (yych == 'r') goto yy551;
 -              goto yy186;
 +              if (yych == 'D') goto yy556;
 +              if (yych == 'd') goto yy556;
 +              goto yy187;
  yy549:
                YYDEBUG(549, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'R') goto yy552;
 +              if (yych == 'r') goto yy552;
 +              goto yy187;
 +yy550:
 +              YYDEBUG(550, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(550, *YYCURSOR);
 +              YYDEBUG(551, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1116 "Zend/zend_language_scanner.l"
 -#line 1109 "Zend/zend_language_scanner.l"
++#line 1120 "Zend/zend_language_scanner.l"
                {
        return T_AS;
  }
- #line 5640 "Zend/zend_language_scanner.c"
 -#line 5631 "Zend/zend_language_scanner.c"
 -yy551:
 -              YYDEBUG(551, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy552;
 -              if (yych != 'a') goto yy186;
++#line 5644 "Zend/zend_language_scanner.c"
  yy552:
                YYDEBUG(552, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'Y') goto yy553;
 -              if (yych != 'y') goto yy186;
 +              if (yych == 'A') goto yy553;
 +              if (yych != 'a') goto yy187;
  yy553:
                YYDEBUG(553, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'Y') goto yy554;
 +              if (yych != 'y') goto yy187;
 +yy554:
 +              YYDEBUG(554, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(554, *YYCURSOR);
 +              YYDEBUG(555, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1338 "Zend/zend_language_scanner.l"
 -#line 1331 "Zend/zend_language_scanner.l"
++#line 1342 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY;
  }
- #line 5663 "Zend/zend_language_scanner.c"
 -#line 5654 "Zend/zend_language_scanner.c"
 -yy555:
 -              YYDEBUG(555, *YYCURSOR);
++#line 5667 "Zend/zend_language_scanner.c"
 +yy556:
 +              YYDEBUG(556, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(556, *YYCURSOR);
 +              YYDEBUG(557, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1434 "Zend/zend_language_scanner.l"
 -#line 1427 "Zend/zend_language_scanner.l"
++#line 1438 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_AND;
  }
- #line 5676 "Zend/zend_language_scanner.c"
 -#line 5667 "Zend/zend_language_scanner.c"
 -yy557:
 -              YYDEBUG(557, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy558;
 -              if (yych != 't') goto yy186;
++#line 5680 "Zend/zend_language_scanner.c"
  yy558:
                YYDEBUG(558, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5691,26 -5687,26 +5695,26 @@@ yy560
  yy561:
                YYDEBUG(561, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy562;
 -              if (yych != 't') goto yy186;
 +              if (yych == 'C') goto yy562;
 +              if (yych != 'c') goto yy187;
  yy562:
                YYDEBUG(562, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'T') goto yy563;
 +              if (yych != 't') goto yy187;
 +yy563:
 +              YYDEBUG(563, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(563, *YYCURSOR);
 +              YYDEBUG(564, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1306 "Zend/zend_language_scanner.l"
 -#line 1299 "Zend/zend_language_scanner.l"
++#line 1310 "Zend/zend_language_scanner.l"
                {
        return T_ABSTRACT;
  }
- #line 5714 "Zend/zend_language_scanner.c"
 -#line 5705 "Zend/zend_language_scanner.c"
 -yy564:
 -              YYDEBUG(564, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy565;
 -              if (yych != 'i') goto yy186;
++#line 5718 "Zend/zend_language_scanner.c"
  yy565:
                YYDEBUG(565, *YYCURSOR);
                yych = *++YYCURSOR;
  yy566:
                YYDEBUG(566, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy567;
 -              if (yych != 'e') goto yy186;
 +              if (yych == 'L') goto yy567;
 +              if (yych != 'l') goto yy187;
  yy567:
                YYDEBUG(567, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'E') goto yy568;
 +              if (yych != 'e') goto yy187;
 +yy568:
 +              YYDEBUG(568, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(568, *YYCURSOR);
 +              YYDEBUG(569, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1076 "Zend/zend_language_scanner.l"
 -#line 1069 "Zend/zend_language_scanner.l"
++#line 1080 "Zend/zend_language_scanner.l"
                {
        return T_WHILE;
  }
- #line 5742 "Zend/zend_language_scanner.c"
 -#line 5733 "Zend/zend_language_scanner.c"
 -yy569:
 -              YYDEBUG(569, *YYCURSOR);
++#line 5746 "Zend/zend_language_scanner.c"
 +yy570:
 +              YYDEBUG(570, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(570, *YYCURSOR);
 +              YYDEBUG(571, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1060 "Zend/zend_language_scanner.l"
 -#line 1053 "Zend/zend_language_scanner.l"
++#line 1064 "Zend/zend_language_scanner.l"
                {
        return T_IF;
  }
- #line 5755 "Zend/zend_language_scanner.c"
 -#line 5746 "Zend/zend_language_scanner.c"
 -yy571:
 -              YYDEBUG(571, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'P') goto yy613;
 -              if (yych == 'p') goto yy613;
 -              goto yy186;
++#line 5759 "Zend/zend_language_scanner.c"
  yy572:
                YYDEBUG(572, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5788,26 -5784,27 +5792,26 @@@ yy574
  yy575:
                YYDEBUG(575, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy576;
 -              if (yych != 't') goto yy186;
 +              if (yych == 'E') goto yy576;
 +              if (yych != 'e') goto yy187;
  yy576:
                YYDEBUG(576, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'T') goto yy577;
 +              if (yych != 't') goto yy187;
 +yy577:
 +              YYDEBUG(577, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(577, *YYCURSOR);
 +              YYDEBUG(578, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1290 "Zend/zend_language_scanner.l"
 -#line 1283 "Zend/zend_language_scanner.l"
++#line 1294 "Zend/zend_language_scanner.l"
                {
        return T_ISSET;
  }
- #line 5811 "Zend/zend_language_scanner.c"
 -#line 5802 "Zend/zend_language_scanner.c"
 -yy578:
 -              YYDEBUG(578, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy599;
 -              if (yych == 't') goto yy599;
 -              goto yy186;
++#line 5815 "Zend/zend_language_scanner.c"
  yy579:
                YYDEBUG(579, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5852,20 -5843,25 +5856,20 @@@ yy585
                        }
                } else {
                        if (yych <= '`') {
 -                              if (yych <= '_') goto yy586;
 +                              if (yych <= '_') goto yy587;
                        } else {
 -                              if (yych <= 'z') goto yy185;
 -                              if (yych >= 0x7F) goto yy185;
 +                              if (yych <= 'z') goto yy186;
 +                              if (yych >= 0x7F) goto yy186;
                        }
                }
 -yy585:
 -              YYDEBUG(585, *YYCURSOR);
 +yy586:
 +              YYDEBUG(586, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1258 "Zend/zend_language_scanner.l"
 -#line 1251 "Zend/zend_language_scanner.l"
++#line 1262 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE;
  }
- #line 5869 "Zend/zend_language_scanner.c"
 -#line 5860 "Zend/zend_language_scanner.c"
 -yy586:
 -              YYDEBUG(586, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy587;
 -              if (yych != 'o') goto yy186;
++#line 5873 "Zend/zend_language_scanner.c"
  yy587:
                YYDEBUG(587, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5879,26 -5875,26 +5883,26 @@@ yy588
  yy589:
                YYDEBUG(589, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy590;
 -              if (yych != 'e') goto yy186;
 +              if (yych == 'C') goto yy590;
 +              if (yych != 'c') goto yy187;
  yy590:
                YYDEBUG(590, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'E') goto yy591;
 +              if (yych != 'e') goto yy187;
 +yy591:
 +              YYDEBUG(591, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(591, *YYCURSOR);
 +              YYDEBUG(592, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1262 "Zend/zend_language_scanner.l"
 -#line 1255 "Zend/zend_language_scanner.l"
++#line 1266 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE_ONCE;
  }
- #line 5902 "Zend/zend_language_scanner.c"
 -#line 5893 "Zend/zend_language_scanner.c"
 -yy592:
 -              YYDEBUG(592, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy593;
 -              if (yych != 'r') goto yy186;
++#line 5906 "Zend/zend_language_scanner.c"
  yy593:
                YYDEBUG(593, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5917,41 -5913,42 +5921,41 @@@ yy595
  yy596:
                YYDEBUG(596, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy597;
 -              if (yych != 'e') goto yy186;
 +              if (yych == 'C') goto yy597;
 +              if (yych != 'c') goto yy187;
  yy597:
                YYDEBUG(597, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'E') goto yy598;
 +              if (yych != 'e') goto yy187;
 +yy598:
 +              YYDEBUG(598, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(598, *YYCURSOR);
 +              YYDEBUG(599, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1160 "Zend/zend_language_scanner.l"
 -#line 1153 "Zend/zend_language_scanner.l"
++#line 1164 "Zend/zend_language_scanner.l"
                {
        return T_INTERFACE;
  }
- #line 5940 "Zend/zend_language_scanner.c"
 -#line 5931 "Zend/zend_language_scanner.c"
 -yy599:
 -              YYDEBUG(599, *YYCURSOR);
++#line 5944 "Zend/zend_language_scanner.c"
 +yy600:
 +              YYDEBUG(600, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'E') {
 -                      if (yych == 'A') goto yy600;
 -                      if (yych <= 'D') goto yy186;
 -                      goto yy601;
 +                      if (yych == 'A') goto yy601;
 +                      if (yych <= 'D') goto yy187;
 +                      goto yy602;
                } else {
                        if (yych <= 'a') {
 -                              if (yych <= '`') goto yy186;
 +                              if (yych <= '`') goto yy187;
                        } else {
 -                              if (yych == 'e') goto yy601;
 -                              goto yy186;
 +                              if (yych == 'e') goto yy602;
 +                              goto yy187;
                        }
                }
 -yy600:
 -              YYDEBUG(600, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy607;
 -              if (yych == 'n') goto yy607;
 -              goto yy186;
  yy601:
                YYDEBUG(601, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5971,26 -5967,26 +5975,26 @@@ yy603
  yy604:
                YYDEBUG(604, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'F') goto yy605;
 -              if (yych != 'f') goto yy186;
 +              if (yych == 'O') goto yy605;
 +              if (yych != 'o') goto yy187;
  yy605:
                YYDEBUG(605, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'F') goto yy606;
 +              if (yych != 'f') goto yy187;
 +yy606:
 +              YYDEBUG(606, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(606, *YYCURSOR);
 +              YYDEBUG(607, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1282 "Zend/zend_language_scanner.l"
 -#line 1275 "Zend/zend_language_scanner.l"
++#line 1286 "Zend/zend_language_scanner.l"
                {
          return T_INSTEADOF;
  }
- #line 5994 "Zend/zend_language_scanner.c"
 -#line 5985 "Zend/zend_language_scanner.c"
 -yy607:
 -              YYDEBUG(607, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy608;
 -              if (yych != 'c') goto yy186;
++#line 5998 "Zend/zend_language_scanner.c"
  yy608:
                YYDEBUG(608, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6004,26 -6000,26 +6008,26 @@@ yy609
  yy610:
                YYDEBUG(610, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'F') goto yy611;
 -              if (yych != 'f') goto yy186;
 +              if (yych == 'O') goto yy611;
 +              if (yych != 'o') goto yy187;
  yy611:
                YYDEBUG(611, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'F') goto yy612;
 +              if (yych != 'f') goto yy187;
 +yy612:
 +              YYDEBUG(612, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(612, *YYCURSOR);
 +              YYDEBUG(613, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1112 "Zend/zend_language_scanner.l"
 -#line 1105 "Zend/zend_language_scanner.l"
++#line 1116 "Zend/zend_language_scanner.l"
                {
        return T_INSTANCEOF;
  }
- #line 6027 "Zend/zend_language_scanner.c"
 -#line 6018 "Zend/zend_language_scanner.c"
 -yy613:
 -              YYDEBUG(613, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy614;
 -              if (yych != 'l') goto yy186;
++#line 6031 "Zend/zend_language_scanner.c"
  yy614:
                YYDEBUG(614, *YYCURSOR);
                yych = *++YYCURSOR;
  yy619:
                YYDEBUG(619, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy620;
 -              if (yych != 's') goto yy186;
 +              if (yych == 'T') goto yy620;
 +              if (yych != 't') goto yy187;
  yy620:
                YYDEBUG(620, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'S') goto yy621;
 +              if (yych != 's') goto yy187;
 +yy621:
 +              YYDEBUG(621, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(621, *YYCURSOR);
 +              YYDEBUG(622, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1172 "Zend/zend_language_scanner.l"
 -#line 1165 "Zend/zend_language_scanner.l"
++#line 1176 "Zend/zend_language_scanner.l"
                {
        return T_IMPLEMENTS;
  }
- #line 6075 "Zend/zend_language_scanner.c"
 -#line 6066 "Zend/zend_language_scanner.c"
 -yy622:
 -              YYDEBUG(622, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy630;
 -              if (yych == 'r') goto yy630;
 -              goto yy186;
++#line 6079 "Zend/zend_language_scanner.c"
  yy623:
                YYDEBUG(623, *YYCURSOR);
                yych = *++YYCURSOR;
 +              if (yych == 'R') goto yy631;
 +              if (yych == 'r') goto yy631;
 +              goto yy187;
 +yy624:
 +              YYDEBUG(624, *YYCURSOR);
 +              yych = *++YYCURSOR;
                if (yych <= 'Y') {
 -                      if (yych == 'A') goto yy626;
 -                      if (yych <= 'X') goto yy186;
 +                      if (yych == 'A') goto yy627;
 +                      if (yych <= 'X') goto yy187;
                } else {
                        if (yych <= 'a') {
 -                              if (yych <= '`') goto yy186;
 -                              goto yy626;
 +                              if (yych <= '`') goto yy187;
 +                              goto yy627;
                        } else {
 -                              if (yych != 'y') goto yy186;
 +                              if (yych != 'y') goto yy187;
                        }
                }
 -              YYDEBUG(624, *YYCURSOR);
 +              YYDEBUG(625, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(625, *YYCURSOR);
 +              YYDEBUG(626, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1044 "Zend/zend_language_scanner.l"
 -#line 1041 "Zend/zend_language_scanner.l"
++#line 1048 "Zend/zend_language_scanner.l"
                {
        return T_TRY;
  }
- #line 6107 "Zend/zend_language_scanner.c"
 -#line 6098 "Zend/zend_language_scanner.c"
 -yy626:
 -              YYDEBUG(626, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy627;
 -              if (yych != 'i') goto yy186;
++#line 6111 "Zend/zend_language_scanner.c"
  yy627:
                YYDEBUG(627, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy628;
 -              if (yych != 't') goto yy186;
 +              if (yych == 'I') goto yy628;
 +              if (yych != 'i') goto yy187;
  yy628:
                YYDEBUG(628, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'T') goto yy629;
 +              if (yych != 't') goto yy187;
 +yy629:
 +              YYDEBUG(629, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(629, *YYCURSOR);
 +              YYDEBUG(630, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1164 "Zend/zend_language_scanner.l"
 -#line 1157 "Zend/zend_language_scanner.l"
++#line 1168 "Zend/zend_language_scanner.l"
                {
        return T_TRAIT;
  }
- #line 6130 "Zend/zend_language_scanner.c"
 -#line 6121 "Zend/zend_language_scanner.c"
 -yy630:
 -              YYDEBUG(630, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy631;
 -              if (yych != 'o') goto yy186;
++#line 6134 "Zend/zend_language_scanner.c"
  yy631:
                YYDEBUG(631, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'W') goto yy632;
 -              if (yych != 'w') goto yy186;
 +              if (yych == 'O') goto yy632;
 +              if (yych != 'o') goto yy187;
  yy632:
                YYDEBUG(632, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'W') goto yy633;
 +              if (yych != 'w') goto yy187;
 +yy633:
 +              YYDEBUG(633, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(633, *YYCURSOR);
 +              YYDEBUG(634, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1056 "Zend/zend_language_scanner.l"
 -#line 1049 "Zend/zend_language_scanner.l"
++#line 1060 "Zend/zend_language_scanner.l"
                {
        return T_THROW;
  }
- #line 6153 "Zend/zend_language_scanner.c"
 -#line 6144 "Zend/zend_language_scanner.c"
 -yy634:
 -              YYDEBUG(634, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych <= 'T') {
 -                      if (yych == 'Q') goto yy636;
 -                      if (yych <= 'S') goto yy186;
 -              } else {
 -                      if (yych <= 'q') {
 -                              if (yych <= 'p') goto yy186;
 -                              goto yy636;
 -                      } else {
 -                              if (yych != 't') goto yy186;
 -                      }
 -              }
++#line 6157 "Zend/zend_language_scanner.c"
 +yy635:
                YYDEBUG(635, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'U') goto yy648;
 -              if (yych == 'u') goto yy648;
 -              goto yy186;
 +              if (yych == 'E') goto yy636;
 +              if (yych != 'e') goto yy187;
  yy636:
                YYDEBUG(636, *YYCURSOR);
                yych = *++YYCURSOR;
  yy637:
                YYDEBUG(637, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy638;
 -              if (yych != 'i') goto yy186;
 +              if (yych == 'D') goto yy638;
 +              if (yych != 'd') goto yy187;
  yy638:
                YYDEBUG(638, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy639;
 -              if (yych != 'r') goto yy186;
 -yy639:
 +              ++YYCURSOR;
 +              if (yybm[0+(yych = *YYCURSOR)] & 4) {
 +                      goto yy186;
 +              }
                YYDEBUG(639, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy640;
 -              if (yych != 'e') goto yy186;
 +              yyleng = YYCURSOR - SCNG(yy_text);
- #line 1040 "Zend/zend_language_scanner.l"
++#line 1044 "Zend/zend_language_scanner.l"
 +              {
 +      return T_YIELD;
 +}
- #line 6181 "Zend/zend_language_scanner.c"
++#line 6185 "Zend/zend_language_scanner.c"
  yy640:
                YYDEBUG(640, *YYCURSOR);
 -              ++YYCURSOR;
 -              if ((yych = *YYCURSOR) <= '^') {
 -                      if (yych <= '9') {
 -                              if (yych >= '0') goto yy185;
 -                      } else {
 -                              if (yych <= '@') goto yy641;
 -                              if (yych <= 'Z') goto yy185;
 -                      }
 +              yych = *++YYCURSOR;
 +              if (yych <= 'T') {
 +                      if (yych == 'Q') goto yy642;
 +                      if (yych <= 'S') goto yy187;
                } else {
 -                      if (yych <= '`') {
 -                              if (yych <= '_') goto yy642;
 +                      if (yych <= 'q') {
 +                              if (yych <= 'p') goto yy187;
 +                              goto yy642;
                        } else {
 -                              if (yych <= 'z') goto yy185;
 -                              if (yych >= 0x7F) goto yy185;
 +                              if (yych != 't') goto yy187;
                        }
                }
 -yy641:
                YYDEBUG(641, *YYCURSOR);
 -              yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1259 "Zend/zend_language_scanner.l"
 -              {
 -      return T_REQUIRE;
 -}
 -#line 6209 "Zend/zend_language_scanner.c"
 +              yych = *++YYCURSOR;
 +              if (yych == 'U') goto yy654;
 +              if (yych == 'u') goto yy654;
 +              goto yy187;
  yy642:
                YYDEBUG(642, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6220,29 -6229,16 +6224,29 @@@ yy645
  yy646:
                YYDEBUG(646, *YYCURSOR);
                ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +              if ((yych = *YYCURSOR) <= '^') {
 +                      if (yych <= '9') {
 +                              if (yych >= '0') goto yy186;
 +                      } else {
 +                              if (yych <= '@') goto yy647;
 +                              if (yych <= 'Z') goto yy186;
 +                      }
 +              } else {
 +                      if (yych <= '`') {
 +                              if (yych <= '_') goto yy648;
 +                      } else {
 +                              if (yych <= 'z') goto yy186;
 +                              if (yych >= 0x7F) goto yy186;
 +                      }
                }
 +yy647:
                YYDEBUG(647, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1266 "Zend/zend_language_scanner.l"
 -#line 1263 "Zend/zend_language_scanner.l"
++#line 1270 "Zend/zend_language_scanner.l"
                {
 -      return T_REQUIRE_ONCE;
 +      return T_REQUIRE;
  }
- #line 6246 "Zend/zend_language_scanner.c"
 -#line 6242 "Zend/zend_language_scanner.c"
++#line 6250 "Zend/zend_language_scanner.c"
  yy648:
                YYDEBUG(648, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6252,55 -6248,22 +6256,55 @@@ yy649
                YYDEBUG(649, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych == 'N') goto yy650;
 -              if (yych != 'n') goto yy186;
 +              if (yych != 'n') goto yy187;
  yy650:
                YYDEBUG(650, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'C') goto yy651;
 +              if (yych != 'c') goto yy187;
 +yy651:
 +              YYDEBUG(651, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'E') goto yy652;
 +              if (yych != 'e') goto yy187;
 +yy652:
 +              YYDEBUG(652, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(651, *YYCURSOR);
 +              YYDEBUG(653, *YYCURSOR);
 +              yyleng = YYCURSOR - SCNG(yy_text);
- #line 1270 "Zend/zend_language_scanner.l"
++#line 1274 "Zend/zend_language_scanner.l"
 +              {
 +      return T_REQUIRE_ONCE;
 +}
- #line 6279 "Zend/zend_language_scanner.c"
++#line 6283 "Zend/zend_language_scanner.c"
 +yy654:
 +              YYDEBUG(654, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'R') goto yy655;
 +              if (yych != 'r') goto yy187;
 +yy655:
 +              YYDEBUG(655, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'N') goto yy656;
 +              if (yych != 'n') goto yy187;
 +yy656:
 +              YYDEBUG(656, *YYCURSOR);
 +              ++YYCURSOR;
 +              if (yybm[0+(yych = *YYCURSOR)] & 4) {
 +                      goto yy186;
 +              }
 +              YYDEBUG(657, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1036 "Zend/zend_language_scanner.l"
 -#line 1037 "Zend/zend_language_scanner.l"
++#line 1040 "Zend/zend_language_scanner.l"
                {
        return T_RETURN;
  }
- #line 6302 "Zend/zend_language_scanner.c"
 -#line 6265 "Zend/zend_language_scanner.c"
 -yy652:
 -              YYDEBUG(652, *YYCURSOR);
++#line 6306 "Zend/zend_language_scanner.c"
 +yy658:
 +              YYDEBUG(658, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'T') {
                        if (yych <= 'L') {
                        }
                } else {
                        if (yych <= 'r') {
 -                              if (yych == 'l') goto yy675;
 -                              goto yy186;
 +                              if (yych == 'l') goto yy681;
 +                              goto yy187;
                        } else {
 -                              if (yych <= 's') goto yy674;
 -                              if (yych <= 't') goto yy673;
 -                              goto yy186;
 +                              if (yych <= 's') goto yy680;
 +                              if (yych <= 't') goto yy679;
 +                              goto yy187;
                        }
                }
 -yy653:
 -              YYDEBUG(653, *YYCURSOR);
 +yy659:
 +              YYDEBUG(659, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'O') {
 -                      if (yych == 'A') goto yy665;
 -                      if (yych <= 'N') goto yy186;
 -                      goto yy666;
 +                      if (yych == 'A') goto yy671;
 +                      if (yych <= 'N') goto yy187;
 +                      goto yy672;
                } else {
                        if (yych <= 'a') {
 -                              if (yych <= '`') goto yy186;
 -                              goto yy665;
 +                              if (yych <= '`') goto yy187;
 +                              goto yy671;
                        } else {
 -                              if (yych == 'o') goto yy666;
 -                              goto yy186;
 +                              if (yych == 'o') goto yy672;
 +                              goto yy187;
                        }
                }
 -yy654:
 -              YYDEBUG(654, *YYCURSOR);
 +yy660:
 +              YYDEBUG(660, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy655;
 -              if (yych != 'n') goto yy186;
 -yy655:
 -              YYDEBUG(655, *YYCURSOR);
 +              if (yych == 'N') goto yy661;
 +              if (yych != 'n') goto yy187;
 +yy661:
 +              YYDEBUG(661, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'T') {
 -                      if (yych <= 'R') goto yy186;
 -                      if (yych >= 'T') goto yy657;
 +                      if (yych <= 'R') goto yy187;
 +                      if (yych >= 'T') goto yy663;
                } else {
 -                      if (yych <= 'r') goto yy186;
 -                      if (yych <= 's') goto yy656;
 -                      if (yych <= 't') goto yy657;
 -                      goto yy186;
 +                      if (yych <= 'r') goto yy187;
 +                      if (yych <= 's') goto yy662;
 +                      if (yych <= 't') goto yy663;
 +                      goto yy187;
                }
 -yy656:
 -              YYDEBUG(656, *YYCURSOR);
 +yy662:
 +              YYDEBUG(662, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy663;
 -              if (yych == 't') goto yy663;
 -              goto yy186;
 -yy657:
 -              YYDEBUG(657, *YYCURSOR);
 +              if (yych == 'T') goto yy669;
 +              if (yych == 't') goto yy669;
 +              goto yy187;
 +yy663:
 +              YYDEBUG(663, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy658;
 -              if (yych != 'i') goto yy186;
 -yy658:
 -              YYDEBUG(658, *YYCURSOR);
 +              if (yych == 'I') goto yy664;
 +              if (yych != 'i') goto yy187;
 +yy664:
 +              YYDEBUG(664, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy659;
 -              if (yych != 'n') goto yy186;
 -yy659:
 -              YYDEBUG(659, *YYCURSOR);
 +              if (yych == 'N') goto yy665;
 +              if (yych != 'n') goto yy187;
 +yy665:
 +              YYDEBUG(665, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'U') goto yy660;
 -              if (yych != 'u') goto yy186;
 -yy660:
 -              YYDEBUG(660, *YYCURSOR);
 +              if (yych == 'U') goto yy666;
 +              if (yych != 'u') goto yy187;
 +yy666:
 +              YYDEBUG(666, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy661;
 -              if (yych != 'e') goto yy186;
 -yy661:
 -              YYDEBUG(661, *YYCURSOR);
 +              if (yych == 'E') goto yy667;
 +              if (yych != 'e') goto yy187;
 +yy667:
 +              YYDEBUG(667, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(662, *YYCURSOR);
 +              YYDEBUG(668, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1140 "Zend/zend_language_scanner.l"
 -#line 1133 "Zend/zend_language_scanner.l"
++#line 1144 "Zend/zend_language_scanner.l"
                {
        return T_CONTINUE;
  }
- #line 6396 "Zend/zend_language_scanner.c"
 -#line 6359 "Zend/zend_language_scanner.c"
 -yy663:
 -              YYDEBUG(663, *YYCURSOR);
++#line 6400 "Zend/zend_language_scanner.c"
 +yy669:
 +              YYDEBUG(669, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(664, *YYCURSOR);
 +              YYDEBUG(670, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1032 "Zend/zend_language_scanner.l"
 -#line 1033 "Zend/zend_language_scanner.l"
++#line 1036 "Zend/zend_language_scanner.l"
                {
        return T_CONST;
  }
- #line 6409 "Zend/zend_language_scanner.c"
 -#line 6372 "Zend/zend_language_scanner.c"
 -yy665:
 -              YYDEBUG(665, *YYCURSOR);
++#line 6413 "Zend/zend_language_scanner.c"
 +yy671:
 +              YYDEBUG(671, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy670;
 -              if (yych == 's') goto yy670;
 -              goto yy186;
 -yy666:
 -              YYDEBUG(666, *YYCURSOR);
 +              if (yych == 'S') goto yy676;
 +              if (yych == 's') goto yy676;
 +              goto yy187;
 +yy672:
 +              YYDEBUG(672, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy667;
 -              if (yych != 'n') goto yy186;
 -yy667:
 -              YYDEBUG(667, *YYCURSOR);
 +              if (yych == 'N') goto yy673;
 +              if (yych != 'n') goto yy187;
 +yy673:
 +              YYDEBUG(673, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy668;
 -              if (yych != 'e') goto yy186;
 -yy668:
 -              YYDEBUG(668, *YYCURSOR);
 +              if (yych == 'E') goto yy674;
 +              if (yych != 'e') goto yy187;
 +yy674:
 +              YYDEBUG(674, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(669, *YYCURSOR);
 +              YYDEBUG(675, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1218 "Zend/zend_language_scanner.l"
 -#line 1211 "Zend/zend_language_scanner.l"
++#line 1222 "Zend/zend_language_scanner.l"
                {
        return T_CLONE;
  }
- #line 6438 "Zend/zend_language_scanner.c"
 -#line 6401 "Zend/zend_language_scanner.c"
 -yy670:
 -              YYDEBUG(670, *YYCURSOR);
++#line 6442 "Zend/zend_language_scanner.c"
 +yy676:
 +              YYDEBUG(676, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy671;
 -              if (yych != 's') goto yy186;
 -yy671:
 -              YYDEBUG(671, *YYCURSOR);
 +              if (yych == 'S') goto yy677;
 +              if (yych != 's') goto yy187;
 +yy677:
 +              YYDEBUG(677, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(672, *YYCURSOR);
 +              YYDEBUG(678, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1156 "Zend/zend_language_scanner.l"
 -#line 1149 "Zend/zend_language_scanner.l"
++#line 1160 "Zend/zend_language_scanner.l"
                {
        return T_CLASS;
  }
- #line 6456 "Zend/zend_language_scanner.c"
 -#line 6419 "Zend/zend_language_scanner.c"
 -yy673:
 -              YYDEBUG(673, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy684;
 -              if (yych == 'c') goto yy684;
 -              goto yy186;
 -yy674:
 -              YYDEBUG(674, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy682;
 -              if (yych == 'e') goto yy682;
 -              goto yy186;
 -yy675:
 -              YYDEBUG(675, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy676;
 -              if (yych != 'l') goto yy186;
 -yy676:
 -              YYDEBUG(676, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy677;
 -              if (yych != 'a') goto yy186;
 -yy677:
 -              YYDEBUG(677, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'B') goto yy678;
 -              if (yych != 'b') goto yy186;
 -yy678:
 -              YYDEBUG(678, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy679;
 -              if (yych != 'l') goto yy186;
++#line 6460 "Zend/zend_language_scanner.c"
  yy679:
                YYDEBUG(679, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6483,57 -6482,53 +6487,57 @@@ yy683
  yy684:
                YYDEBUG(684, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'H') goto yy685;
 -              if (yych != 'h') goto yy186;
 +              if (yych == 'L') goto yy685;
 +              if (yych != 'l') goto yy187;
  yy685:
                YYDEBUG(685, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'E') goto yy686;
 +              if (yych != 'e') goto yy187;
 +yy686:
 +              YYDEBUG(686, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(686, *YYCURSOR);
 +              YYDEBUG(687, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1342 "Zend/zend_language_scanner.l"
 -#line 1045 "Zend/zend_language_scanner.l"
++#line 1346 "Zend/zend_language_scanner.l"
                {
 -      return T_CATCH;
 + return T_CALLABLE;
  }
- #line 6506 "Zend/zend_language_scanner.c"
 -#line 6500 "Zend/zend_language_scanner.c"
 -yy687:
 -              YYDEBUG(687, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy704;
 -              if (yych == 'n') goto yy704;
 -              goto yy186;
++#line 6510 "Zend/zend_language_scanner.c"
  yy688:
                YYDEBUG(688, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy697;
 -              if (yych == 'r') goto yy697;
 -              goto yy186;
 -yy689:
 +              ++YYCURSOR;
 +              if (yybm[0+(yych = *YYCURSOR)] & 4) {
 +                      goto yy186;
 +              }
                YYDEBUG(689, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy690;
 -              if (yych != 'n') goto yy186;
 +              yyleng = YYCURSOR - SCNG(yy_text);
- #line 1128 "Zend/zend_language_scanner.l"
++#line 1132 "Zend/zend_language_scanner.l"
 +              {
 +      return T_CASE;
 +}
- #line 6519 "Zend/zend_language_scanner.c"
++#line 6523 "Zend/zend_language_scanner.c"
  yy690:
                YYDEBUG(690, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy691;
 -              if (yych != 'c') goto yy186;
 +              if (yych == 'H') goto yy691;
 +              if (yych != 'h') goto yy187;
  yy691:
                YYDEBUG(691, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy692;
 -              if (yych != 't') goto yy186;
 -yy692:
 +              ++YYCURSOR;
 +              if (yybm[0+(yych = *YYCURSOR)] & 4) {
 +                      goto yy186;
 +              }
                YYDEBUG(692, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy693;
 -              if (yych != 'i') goto yy186;
 +              yyleng = YYCURSOR - SCNG(yy_text);
- #line 1048 "Zend/zend_language_scanner.l"
++#line 1052 "Zend/zend_language_scanner.l"
 +              {
 +      return T_CATCH;
 +}
- #line 6537 "Zend/zend_language_scanner.c"
++#line 6541 "Zend/zend_language_scanner.c"
  yy693:
                YYDEBUG(693, *YYCURSOR);
                yych = *++YYCURSOR;
  yy700:
                YYDEBUG(700, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy701;
 -              if (yych != 'c') goto yy186;
 +              if (yych == 'N') goto yy701;
 +              if (yych != 'n') goto yy187;
  yy701:
                YYDEBUG(701, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'H') goto yy702;
 -              if (yych != 'h') goto yy186;
 -yy702:
 -              YYDEBUG(702, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(703, *YYCURSOR);
 +              YYDEBUG(702, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1028 "Zend/zend_language_scanner.l"
 -#line 1089 "Zend/zend_language_scanner.l"
++#line 1032 "Zend/zend_language_scanner.l"
                {
 -      return T_FOREACH;
 +      return T_FUNCTION;
  }
- #line 6592 "Zend/zend_language_scanner.c"
 -#line 6611 "Zend/zend_language_scanner.c"
++#line 6596 "Zend/zend_language_scanner.c"
 +yy703:
 +              YYDEBUG(703, *YYCURSOR);
 +              ++YYCURSOR;
 +              if ((yych = *YYCURSOR) <= '^') {
 +                      if (yych <= '@') {
 +                              if (yych <= '/') goto yy704;
 +                              if (yych <= '9') goto yy186;
 +                      } else {
 +                              if (yych == 'E') goto yy705;
 +                              if (yych <= 'Z') goto yy186;
 +                      }
 +              } else {
 +                      if (yych <= 'd') {
 +                              if (yych != '`') goto yy186;
 +                      } else {
 +                              if (yych <= 'e') goto yy705;
 +                              if (yych <= 'z') goto yy186;
 +                              if (yych >= 0x7F) goto yy186;
 +                      }
 +              }
  yy704:
                YYDEBUG(704, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy705;
 -              if (yych != 'a') goto yy186;
 +              yyleng = YYCURSOR - SCNG(yy_text);
- #line 1088 "Zend/zend_language_scanner.l"
++#line 1092 "Zend/zend_language_scanner.l"
 +              {
 +      return T_FOR;
 +}
- #line 6620 "Zend/zend_language_scanner.c"
++#line 6624 "Zend/zend_language_scanner.c"
  yy705:
                YYDEBUG(705, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy706;
 -              if (yych != 'l') goto yy186;
 +              if (yych == 'A') goto yy706;
 +              if (yych != 'a') goto yy187;
  yy706:
                YYDEBUG(706, *YYCURSOR);
 -              ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 -              }
 +              yych = *++YYCURSOR;
 +              if (yych == 'C') goto yy707;
 +              if (yych != 'c') goto yy187;
 +yy707:
                YYDEBUG(707, *YYCURSOR);
 -              yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1303 "Zend/zend_language_scanner.l"
 -              {
 -      return T_FINAL;
 -}
 -#line 6634 "Zend/zend_language_scanner.c"
 +              yych = *++YYCURSOR;
 +              if (yych == 'H') goto yy708;
 +              if (yych != 'h') goto yy187;
  yy708:
                YYDEBUG(708, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych <= 'F') {
 -                      if (yych == 'C') goto yy714;
 -                      if (yych <= 'E') goto yy186;
 -                      goto yy715;
 -              } else {
 -                      if (yych <= 'c') {
 -                              if (yych <= 'b') goto yy186;
 -                              goto yy714;
 -                      } else {
 -                              if (yych == 'f') goto yy715;
 -                              goto yy186;
 -                      }
 -              }
 -yy709:
 -              YYDEBUG(709, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy712;
 -              if (yych == 'e') goto yy712;
 -              goto yy186;
 -yy710:
 -              YYDEBUG(710, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(711, *YYCURSOR);
 +              YYDEBUG(709, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1096 "Zend/zend_language_scanner.l"
 -#line 1077 "Zend/zend_language_scanner.l"
++#line 1100 "Zend/zend_language_scanner.l"
                {
 -      return T_DO;
 +      return T_FOREACH;
  }
- #line 6648 "Zend/zend_language_scanner.c"
 -#line 6669 "Zend/zend_language_scanner.c"
++#line 6652 "Zend/zend_language_scanner.c"
 +yy710:
 +              YYDEBUG(710, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'A') goto yy711;
 +              if (yych != 'a') goto yy187;
 +yy711:
 +              YYDEBUG(711, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'L') goto yy712;
 +              if (yych != 'l') goto yy187;
  yy712:
                YYDEBUG(712, *YYCURSOR);
                ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +              if ((yych = *YYCURSOR) <= '^') {
 +                      if (yych <= '@') {
 +                              if (yych <= '/') goto yy713;
 +                              if (yych <= '9') goto yy186;
 +                      } else {
 +                              if (yych == 'L') goto yy714;
 +                              if (yych <= 'Z') goto yy186;
 +                      }
 +              } else {
 +                      if (yych <= 'k') {
 +                              if (yych != '`') goto yy186;
 +                      } else {
 +                              if (yych <= 'l') goto yy714;
 +                              if (yych <= 'z') goto yy186;
 +                              if (yych >= 0x7F) goto yy186;
 +                      }
                }
 +yy713:
                YYDEBUG(713, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1310 "Zend/zend_language_scanner.l"
 -#line 1025 "Zend/zend_language_scanner.l"
++#line 1314 "Zend/zend_language_scanner.l"
                {
 -      return T_EXIT;
 +      return T_FINAL;
  }
- #line 6686 "Zend/zend_language_scanner.c"
 -#line 6682 "Zend/zend_language_scanner.c"
++#line 6690 "Zend/zend_language_scanner.c"
  yy714:
                YYDEBUG(714, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy721;
 -              if (yych == 'l') goto yy721;
 -              goto yy186;
 +              if (yych == 'Y') goto yy715;
 +              if (yych != 'y') goto yy187;
  yy715:
                YYDEBUG(715, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy716;
 -              if (yych != 'a') goto yy186;
 -yy716:
 +              ++YYCURSOR;
 +              if (yybm[0+(yych = *YYCURSOR)] & 4) {
 +                      goto yy186;
 +              }
                YYDEBUG(716, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'U') goto yy717;
 -              if (yych != 'u') goto yy186;
 +              yyleng = YYCURSOR - SCNG(yy_text);
- #line 1052 "Zend/zend_language_scanner.l"
++#line 1056 "Zend/zend_language_scanner.l"
 +              {
 +      return T_FINALLY;
 +}
- #line 6704 "Zend/zend_language_scanner.c"
++#line 6708 "Zend/zend_language_scanner.c"
  yy717:
                YYDEBUG(717, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6731,24 -6713,21 +6735,24 @@@ yy719
                }
                YYDEBUG(720, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1084 "Zend/zend_language_scanner.l"
 -#line 1125 "Zend/zend_language_scanner.l"
++#line 1088 "Zend/zend_language_scanner.l"
                {
 -      return T_DEFAULT;
 +      return T_DO;
  }
- #line 6739 "Zend/zend_language_scanner.c"
 -#line 6721 "Zend/zend_language_scanner.c"
++#line 6743 "Zend/zend_language_scanner.c"
  yy721:
                YYDEBUG(721, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy722;
 -              if (yych != 'a') goto yy186;
 -yy722:
 +              ++YYCURSOR;
 +              if (yybm[0+(yych = *YYCURSOR)] & 4) {
 +                      goto yy186;
 +              }
                YYDEBUG(722, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy723;
 -              if (yych != 'r') goto yy186;
 +              yyleng = YYCURSOR - SCNG(yy_text);
- #line 1024 "Zend/zend_language_scanner.l"
++#line 1028 "Zend/zend_language_scanner.l"
 +              {
 +      return T_EXIT;
 +}
- #line 6752 "Zend/zend_language_scanner.c"
++#line 6756 "Zend/zend_language_scanner.c"
  yy723:
                YYDEBUG(723, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6773,21 -6755,21 +6777,21 @@@ yy726
  yy727:
                YYDEBUG(727, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy782;
 -              if (yych == 's') goto yy782;
 -              goto yy186;
 +              if (yych == 'T') goto yy728;
 +              if (yych != 't') goto yy187;
  yy728:
                YYDEBUG(728, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'P') goto yy778;
 -              if (yych == 'p') goto yy778;
 -              goto yy186;
 -yy729:
 +              ++YYCURSOR;
 +              if (yybm[0+(yych = *YYCURSOR)] & 4) {
 +                      goto yy186;
 +              }
                YYDEBUG(729, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'D') goto yy744;
 -              if (yych == 'd') goto yy744;
 -              goto yy186;
 +              yyleng = YYCURSOR - SCNG(yy_text);
- #line 1132 "Zend/zend_language_scanner.l"
++#line 1136 "Zend/zend_language_scanner.l"
 +              {
 +      return T_DEFAULT;
 +}
- #line 6791 "Zend/zend_language_scanner.c"
++#line 6795 "Zend/zend_language_scanner.c"
  yy730:
                YYDEBUG(730, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6801,21 -6794,19 +6805,21 @@@ yy731
  yy732:
                YYDEBUG(732, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy739;
 -              if (yych == 't') goto yy739;
 -              goto yy186;
 +              if (yych == 'E') goto yy733;
 +              if (yych != 'e') goto yy187;
  yy733:
                YYDEBUG(733, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy734;
 -              if (yych != 'e') goto yy186;
 -yy734:
 +              ++YYCURSOR;
 +              if (yybm[0+(yych = *YYCURSOR)] & 4) {
 +                      goto yy186;
 +              }
                YYDEBUG(734, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy735;
 -              if (yych != 'n') goto yy186;
 +              yyleng = YYCURSOR - SCNG(yy_text);
- #line 1104 "Zend/zend_language_scanner.l"
++#line 1108 "Zend/zend_language_scanner.l"
 +              {
 +      return T_DECLARE;
 +}
- #line 6819 "Zend/zend_language_scanner.c"
++#line 6823 "Zend/zend_language_scanner.c"
  yy735:
                YYDEBUG(735, *YYCURSOR);
                yych = *++YYCURSOR;
  yy736:
                YYDEBUG(736, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy737;
 -              if (yych != 's') goto yy186;
 +              if (yych == 'S') goto yy791;
 +              if (yych == 's') goto yy791;
 +              goto yy187;
  yy737:
                YYDEBUG(737, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'P') goto yy787;
 +              if (yych == 'p') goto yy787;
 +              goto yy187;
 +yy738:
 +              YYDEBUG(738, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'D') goto yy753;
 +              if (yych == 'd') goto yy753;
 +              goto yy187;
 +yy739:
 +              YYDEBUG(739, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'A') goto yy750;
 +              if (yych == 'a') goto yy750;
 +              goto yy187;
 +yy740:
 +              YYDEBUG(740, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych <= 'T') {
 +                      if (yych == 'I') goto yy741;
 +                      if (yych <= 'S') goto yy187;
 +                      goto yy742;
 +              } else {
 +                      if (yych <= 'i') {
 +                              if (yych <= 'h') goto yy187;
 +                      } else {
 +                              if (yych == 't') goto yy742;
 +                              goto yy187;
 +                      }
 +              }
 +yy741:
 +              YYDEBUG(741, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'T') goto yy748;
 +              if (yych == 't') goto yy748;
 +              goto yy187;
 +yy742:
 +              YYDEBUG(742, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'E') goto yy743;
 +              if (yych != 'e') goto yy187;
 +yy743:
 +              YYDEBUG(743, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'N') goto yy744;
 +              if (yych != 'n') goto yy187;
 +yy744:
 +              YYDEBUG(744, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'D') goto yy745;
 +              if (yych != 'd') goto yy187;
 +yy745:
 +              YYDEBUG(745, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'S') goto yy746;
 +              if (yych != 's') goto yy187;
 +yy746:
 +              YYDEBUG(746, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(738, *YYCURSOR);
 +              YYDEBUG(747, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1168 "Zend/zend_language_scanner.l"
 -#line 1161 "Zend/zend_language_scanner.l"
++#line 1172 "Zend/zend_language_scanner.l"
                {
        return T_EXTENDS;
  }
- #line 6903 "Zend/zend_language_scanner.c"
 -#line 6833 "Zend/zend_language_scanner.c"
 -yy739:
 -              YYDEBUG(739, *YYCURSOR);
++#line 6907 "Zend/zend_language_scanner.c"
 +yy748:
 +              YYDEBUG(748, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(740, *YYCURSOR);
 +              YYDEBUG(749, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1020 "Zend/zend_language_scanner.l"
 -#line 1021 "Zend/zend_language_scanner.l"
++#line 1024 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
  }
- #line 6916 "Zend/zend_language_scanner.c"
 -#line 6846 "Zend/zend_language_scanner.c"
 -yy741:
 -              YYDEBUG(741, *YYCURSOR);
++#line 6920 "Zend/zend_language_scanner.c"
 +yy750:
 +              YYDEBUG(750, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy742;
 -              if (yych != 'l') goto yy186;
 -yy742:
 -              YYDEBUG(742, *YYCURSOR);
 +              if (yych == 'L') goto yy751;
 +              if (yych != 'l') goto yy187;
 +yy751:
 +              YYDEBUG(751, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(743, *YYCURSOR);
 +              YYDEBUG(752, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1254 "Zend/zend_language_scanner.l"
 -#line 1247 "Zend/zend_language_scanner.l"
++#line 1258 "Zend/zend_language_scanner.l"
                {
        return T_EVAL;
  }
- #line 6934 "Zend/zend_language_scanner.c"
 -#line 6864 "Zend/zend_language_scanner.c"
 -yy744:
 -              YYDEBUG(744, *YYCURSOR);
++#line 6938 "Zend/zend_language_scanner.c"
 +yy753:
 +              YYDEBUG(753, *YYCURSOR);
                yych = *++YYCURSOR;
                YYDEBUG(-1, yych);
                switch (yych) {
                case 'D':
 -              case 'd':       goto yy745;
 +              case 'd':       goto yy754;
                case 'F':
 -              case 'f':       goto yy746;
 +              case 'f':       goto yy755;
                case 'I':
 -              case 'i':       goto yy747;
 +              case 'i':       goto yy756;
                case 'S':
 -              case 's':       goto yy748;
 +              case 's':       goto yy757;
                case 'W':
 -              case 'w':       goto yy749;
 -              default:        goto yy186;
 +              case 'w':       goto yy758;
 +              default:        goto yy187;
                }
 -yy745:
 -              YYDEBUG(745, *YYCURSOR);
 +yy754:
 +              YYDEBUG(754, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy771;
 -              if (yych == 'e') goto yy771;
 -              goto yy186;
 -yy746:
 -              YYDEBUG(746, *YYCURSOR);
 +              if (yych == 'E') goto yy780;
 +              if (yych == 'e') goto yy780;
 +              goto yy187;
 +yy755:
 +              YYDEBUG(755, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy763;
 -              if (yych == 'o') goto yy763;
 -              goto yy186;
 -yy747:
 -              YYDEBUG(747, *YYCURSOR);
 +              if (yych == 'O') goto yy772;
 +              if (yych == 'o') goto yy772;
 +              goto yy187;
 +yy756:
 +              YYDEBUG(756, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'F') goto yy761;
 -              if (yych == 'f') goto yy761;
 -              goto yy186;
 -yy748:
 -              YYDEBUG(748, *YYCURSOR);
 +              if (yych == 'F') goto yy770;
 +              if (yych == 'f') goto yy770;
 +              goto yy187;
 +yy757:
 +              YYDEBUG(757, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'W') goto yy755;
 -              if (yych == 'w') goto yy755;
 -              goto yy186;
 -yy749:
 -              YYDEBUG(749, *YYCURSOR);
 +              if (yych == 'W') goto yy764;
 +              if (yych == 'w') goto yy764;
 +              goto yy187;
 +yy758:
 +              YYDEBUG(758, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'H') goto yy750;
 -              if (yych != 'h') goto yy186;
 -yy750:
 -              YYDEBUG(750, *YYCURSOR);
 +              if (yych == 'H') goto yy759;
 +              if (yych != 'h') goto yy187;
 +yy759:
 +              YYDEBUG(759, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy751;
 -              if (yych != 'i') goto yy186;
 -yy751:
 -              YYDEBUG(751, *YYCURSOR);
 +              if (yych == 'I') goto yy760;
 +              if (yych != 'i') goto yy187;
 +yy760:
 +              YYDEBUG(760, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy752;
 -              if (yych != 'l') goto yy186;
 -yy752:
 -              YYDEBUG(752, *YYCURSOR);
 +              if (yych == 'L') goto yy761;
 +              if (yych != 'l') goto yy187;
 +yy761:
 +              YYDEBUG(761, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy753;
 -              if (yych != 'e') goto yy186;
 -yy753:
 -              YYDEBUG(753, *YYCURSOR);
 +              if (yych == 'E') goto yy762;
 +              if (yych != 'e') goto yy187;
 +yy762:
 +              YYDEBUG(762, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(754, *YYCURSOR);
 +              YYDEBUG(763, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1080 "Zend/zend_language_scanner.l"
 -#line 1073 "Zend/zend_language_scanner.l"
++#line 1084 "Zend/zend_language_scanner.l"
                {
        return T_ENDWHILE;
  }
- #line 7008 "Zend/zend_language_scanner.c"
 -#line 6938 "Zend/zend_language_scanner.c"
 -yy755:
 -              YYDEBUG(755, *YYCURSOR);
++#line 7012 "Zend/zend_language_scanner.c"
 +yy764:
 +              YYDEBUG(764, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy756;
 -              if (yych != 'i') goto yy186;
 -yy756:
 -              YYDEBUG(756, *YYCURSOR);
 +              if (yych == 'I') goto yy765;
 +              if (yych != 'i') goto yy187;
 +yy765:
 +              YYDEBUG(765, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy757;
 -              if (yych != 't') goto yy186;
 -yy757:
 -              YYDEBUG(757, *YYCURSOR);
 +              if (yych == 'T') goto yy766;
 +              if (yych != 't') goto yy187;
 +yy766:
 +              YYDEBUG(766, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy758;
 -              if (yych != 'c') goto yy186;
 -yy758:
 -              YYDEBUG(758, *YYCURSOR);
 +              if (yych == 'C') goto yy767;
 +              if (yych != 'c') goto yy187;
 +yy767:
 +              YYDEBUG(767, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'H') goto yy759;
 -              if (yych != 'h') goto yy186;
 -yy759:
 -              YYDEBUG(759, *YYCURSOR);
 +              if (yych == 'H') goto yy768;
 +              if (yych != 'h') goto yy187;
 +yy768:
 +              YYDEBUG(768, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(760, *YYCURSOR);
 +              YYDEBUG(769, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1124 "Zend/zend_language_scanner.l"
 -#line 1117 "Zend/zend_language_scanner.l"
++#line 1128 "Zend/zend_language_scanner.l"
                {
        return T_ENDSWITCH;
  }
- #line 7041 "Zend/zend_language_scanner.c"
 -#line 6971 "Zend/zend_language_scanner.c"
 -yy761:
 -              YYDEBUG(761, *YYCURSOR);
++#line 7045 "Zend/zend_language_scanner.c"
 +yy770:
 +              YYDEBUG(770, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(762, *YYCURSOR);
 +              YYDEBUG(771, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1068 "Zend/zend_language_scanner.l"
 -#line 1061 "Zend/zend_language_scanner.l"
++#line 1072 "Zend/zend_language_scanner.l"
                {
        return T_ENDIF;
  }
- #line 7054 "Zend/zend_language_scanner.c"
 -#line 6984 "Zend/zend_language_scanner.c"
 -yy763:
 -              YYDEBUG(763, *YYCURSOR);
++#line 7058 "Zend/zend_language_scanner.c"
 +yy772:
 +              YYDEBUG(772, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy764;
 -              if (yych != 'r') goto yy186;
 -yy764:
 -              YYDEBUG(764, *YYCURSOR);
 +              if (yych == 'R') goto yy773;
 +              if (yych != 'r') goto yy187;
 +yy773:
 +              YYDEBUG(773, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '@') {
                        }
                } else {
                        if (yych <= 'd') {
 -                              if (yych != '`') goto yy185;
 +                              if (yych != '`') goto yy186;
                        } else {
 -                              if (yych <= 'e') goto yy766;
 -                              if (yych <= 'z') goto yy185;
 -                              if (yych >= 0x7F) goto yy185;
 +                              if (yych <= 'e') goto yy775;
 +                              if (yych <= 'z') goto yy186;
 +                              if (yych >= 0x7F) goto yy186;
                        }
                }
 -yy765:
 -              YYDEBUG(765, *YYCURSOR);
 +yy774:
 +              YYDEBUG(774, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1092 "Zend/zend_language_scanner.l"
 -#line 1085 "Zend/zend_language_scanner.l"
++#line 1096 "Zend/zend_language_scanner.l"
                {
        return T_ENDFOR;
  }
- #line 7087 "Zend/zend_language_scanner.c"
 -#line 7017 "Zend/zend_language_scanner.c"
 -yy766:
 -              YYDEBUG(766, *YYCURSOR);
++#line 7091 "Zend/zend_language_scanner.c"
 +yy775:
 +              YYDEBUG(775, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy767;
 -              if (yych != 'a') goto yy186;
 -yy767:
 -              YYDEBUG(767, *YYCURSOR);
 +              if (yych == 'A') goto yy776;
 +              if (yych != 'a') goto yy187;
 +yy776:
 +              YYDEBUG(776, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy768;
 -              if (yych != 'c') goto yy186;
 -yy768:
 -              YYDEBUG(768, *YYCURSOR);
 +              if (yych == 'C') goto yy777;
 +              if (yych != 'c') goto yy187;
 +yy777:
 +              YYDEBUG(777, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'H') goto yy769;
 -              if (yych != 'h') goto yy186;
 -yy769:
 -              YYDEBUG(769, *YYCURSOR);
 +              if (yych == 'H') goto yy778;
 +              if (yych != 'h') goto yy187;
 +yy778:
 +              YYDEBUG(778, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(770, *YYCURSOR);
 +              YYDEBUG(779, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1100 "Zend/zend_language_scanner.l"
 -#line 1093 "Zend/zend_language_scanner.l"
++#line 1104 "Zend/zend_language_scanner.l"
                {
        return T_ENDFOREACH;
  }
- #line 7115 "Zend/zend_language_scanner.c"
 -#line 7045 "Zend/zend_language_scanner.c"
 -yy771:
 -              YYDEBUG(771, *YYCURSOR);
++#line 7119 "Zend/zend_language_scanner.c"
 +yy780:
 +              YYDEBUG(780, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy772;
 -              if (yych != 'c') goto yy186;
 -yy772:
 -              YYDEBUG(772, *YYCURSOR);
 +              if (yych == 'C') goto yy781;
 +              if (yych != 'c') goto yy187;
 +yy781:
 +              YYDEBUG(781, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy773;
 -              if (yych != 'l') goto yy186;
 -yy773:
 -              YYDEBUG(773, *YYCURSOR);
 +              if (yych == 'L') goto yy782;
 +              if (yych != 'l') goto yy187;
 +yy782:
 +              YYDEBUG(782, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy774;
 -              if (yych != 'a') goto yy186;
 -yy774:
 -              YYDEBUG(774, *YYCURSOR);
 +              if (yych == 'A') goto yy783;
 +              if (yych != 'a') goto yy187;
 +yy783:
 +              YYDEBUG(783, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy775;
 -              if (yych != 'r') goto yy186;
 -yy775:
 -              YYDEBUG(775, *YYCURSOR);
 +              if (yych == 'R') goto yy784;
 +              if (yych != 'r') goto yy187;
 +yy784:
 +              YYDEBUG(784, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy776;
 -              if (yych != 'e') goto yy186;
 -yy776:
 -              YYDEBUG(776, *YYCURSOR);
 +              if (yych == 'E') goto yy785;
 +              if (yych != 'e') goto yy187;
 +yy785:
 +              YYDEBUG(785, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(777, *YYCURSOR);
 +              YYDEBUG(786, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1108 "Zend/zend_language_scanner.l"
 -#line 1101 "Zend/zend_language_scanner.l"
++#line 1112 "Zend/zend_language_scanner.l"
                {
        return T_ENDDECLARE;
  }
- #line 7153 "Zend/zend_language_scanner.c"
 -#line 7083 "Zend/zend_language_scanner.c"
 -yy778:
 -              YYDEBUG(778, *YYCURSOR);
++#line 7157 "Zend/zend_language_scanner.c"
 +yy787:
 +              YYDEBUG(787, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy779;
 -              if (yych != 't') goto yy186;
 -yy779:
 -              YYDEBUG(779, *YYCURSOR);
 +              if (yych == 'T') goto yy788;
 +              if (yych != 't') goto yy187;
 +yy788:
 +              YYDEBUG(788, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'Y') goto yy780;
 -              if (yych != 'y') goto yy186;
 -yy780:
 -              YYDEBUG(780, *YYCURSOR);
 +              if (yych == 'Y') goto yy789;
 +              if (yych != 'y') goto yy187;
 +yy789:
 +              YYDEBUG(789, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(781, *YYCURSOR);
 +              YYDEBUG(790, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1294 "Zend/zend_language_scanner.l"
 -#line 1287 "Zend/zend_language_scanner.l"
++#line 1298 "Zend/zend_language_scanner.l"
                {
        return T_EMPTY;
  }
- #line 7176 "Zend/zend_language_scanner.c"
 -#line 7106 "Zend/zend_language_scanner.c"
 -yy782:
 -              YYDEBUG(782, *YYCURSOR);
++#line 7180 "Zend/zend_language_scanner.c"
 +yy791:
 +              YYDEBUG(791, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy783;
 -              if (yych != 'e') goto yy186;
 -yy783:
 -              YYDEBUG(783, *YYCURSOR);
 +              if (yych == 'E') goto yy792;
 +              if (yych != 'e') goto yy187;
 +yy792:
 +              YYDEBUG(792, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '@') {
                        }
                } else {
                        if (yych <= 'h') {
 -                              if (yych != '`') goto yy185;
 +                              if (yych != '`') goto yy186;
                        } else {
 -                              if (yych <= 'i') goto yy785;
 -                              if (yych <= 'z') goto yy185;
 -                              if (yych >= 0x7F) goto yy185;
 +                              if (yych <= 'i') goto yy794;
 +                              if (yych <= 'z') goto yy186;
 +                              if (yych >= 0x7F) goto yy186;
                        }
                }
 -yy784:
 -              YYDEBUG(784, *YYCURSOR);
 +yy793:
 +              YYDEBUG(793, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1072 "Zend/zend_language_scanner.l"
 -#line 1065 "Zend/zend_language_scanner.l"
++#line 1076 "Zend/zend_language_scanner.l"
                {
        return T_ELSE;
  }
- #line 7209 "Zend/zend_language_scanner.c"
 -#line 7139 "Zend/zend_language_scanner.c"
 -yy785:
 -              YYDEBUG(785, *YYCURSOR);
++#line 7213 "Zend/zend_language_scanner.c"
 +yy794:
 +              YYDEBUG(794, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'F') goto yy786;
 -              if (yych != 'f') goto yy186;
 -yy786:
 -              YYDEBUG(786, *YYCURSOR);
 +              if (yych == 'F') goto yy795;
 +              if (yych != 'f') goto yy187;
 +yy795:
 +              YYDEBUG(795, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(787, *YYCURSOR);
 +              YYDEBUG(796, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1064 "Zend/zend_language_scanner.l"
 -#line 1057 "Zend/zend_language_scanner.l"
++#line 1068 "Zend/zend_language_scanner.l"
                {
        return T_ELSEIF;
  }
- #line 7227 "Zend/zend_language_scanner.c"
 -#line 7157 "Zend/zend_language_scanner.c"
 -yy788:
 -              YYDEBUG(788, *YYCURSOR);
++#line 7231 "Zend/zend_language_scanner.c"
 +yy797:
 +              YYDEBUG(797, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy789;
 -              if (yych != 'o') goto yy186;
 -yy789:
 -              YYDEBUG(789, *YYCURSOR);
 +              if (yych == 'O') goto yy798;
 +              if (yych != 'o') goto yy187;
 +yy798:
 +              YYDEBUG(798, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(790, *YYCURSOR);
 +              YYDEBUG(799, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1148 "Zend/zend_language_scanner.l"
 -#line 1141 "Zend/zend_language_scanner.l"
++#line 1152 "Zend/zend_language_scanner.l"
                {
        return T_ECHO;
  }
- #line 7245 "Zend/zend_language_scanner.c"
 -#line 7175 "Zend/zend_language_scanner.c"
++#line 7249 "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 yy808;
 +                              if (yych <= 'Z') goto yy806;
 +                              if (yych <= '^') goto yy808;
 +                              goto yy806;
                        } else {
 -                              if (yych <= '`') goto yy799;
 -                              if (yych <= 'z') goto yy797;
 -                              if (yych <= '~') goto yy799;
 -                              goto yy797;
 +                              if (yych <= '`') goto yy808;
 +                              if (yych <= 'z') goto yy806;
 +                              if (yych <= '~') goto yy808;
 +                              goto yy806;
                        }
                }
 -yy793:
 -              YYDEBUG(793, *YYCURSOR);
 +yy802:
 +              YYDEBUG(802, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
 -              goto yy805;
 -yy794:
 -              YYDEBUG(794, *YYCURSOR);
 +              goto yy814;
 +yy803:
 +              YYDEBUG(803, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1181 "Zend/zend_language_scanner.l"
 -#line 1174 "Zend/zend_language_scanner.l"
++#line 1185 "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 7326 "Zend/zend_language_scanner.c"
 -#line 7256 "Zend/zend_language_scanner.c"
 -yy795:
 -              YYDEBUG(795, *YYCURSOR);
++#line 7330 "Zend/zend_language_scanner.c"
 +yy804:
 +              YYDEBUG(804, *YYCURSOR);
                ++YYCURSOR;
 -              if ((yych = *YYCURSOR) == '>') goto yy802;
 -yy796:
 -              YYDEBUG(796, *YYCURSOR);
 +              if ((yych = *YYCURSOR) == '>') goto yy811;
 +yy805:
 +              YYDEBUG(805, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1200 "Zend/zend_language_scanner.l"
 -#line 1193 "Zend/zend_language_scanner.l"
++#line 1204 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state(TSRMLS_C);
        goto restart;
  }
- #line 7340 "Zend/zend_language_scanner.c"
 -#line 7270 "Zend/zend_language_scanner.c"
 -yy797:
 -              YYDEBUG(797, *YYCURSOR);
++#line 7344 "Zend/zend_language_scanner.c"
 +yy806:
 +              YYDEBUG(806, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
 -              goto yy801;
 -yy798:
 -              YYDEBUG(798, *YYCURSOR);
 +              goto yy810;
 +yy807:
 +              YYDEBUG(807, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1193 "Zend/zend_language_scanner.l"
 -#line 1186 "Zend/zend_language_scanner.l"
++#line 1197 "Zend/zend_language_scanner.l"
                {
        yy_pop_state(TSRMLS_C);
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
        return T_STRING;
  }
- #line 7356 "Zend/zend_language_scanner.c"
 -#line 7286 "Zend/zend_language_scanner.c"
 -yy799:
 -              YYDEBUG(799, *YYCURSOR);
++#line 7360 "Zend/zend_language_scanner.c"
 +yy808:
 +              YYDEBUG(808, *YYCURSOR);
                yych = *++YYCURSOR;
 -              goto yy796;
 -yy800:
 -              YYDEBUG(800, *YYCURSOR);
 +              goto yy805;
 +yy809:
 +              YYDEBUG(809, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -yy801:
 -              YYDEBUG(801, *YYCURSOR);
 +yy810:
 +              YYDEBUG(810, *YYCURSOR);
                if (yybm[0+yych] & 64) {
 -                      goto yy800;
 +                      goto yy809;
                }
 -              goto yy798;
 -yy802:
 -              YYDEBUG(802, *YYCURSOR);
 +              goto yy807;
 +yy811:
 +              YYDEBUG(811, *YYCURSOR);
                ++YYCURSOR;
 -              YYDEBUG(803, *YYCURSOR);
 +              YYDEBUG(812, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1189 "Zend/zend_language_scanner.l"
 -#line 1182 "Zend/zend_language_scanner.l"
++#line 1193 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_OPERATOR;
  }
- #line 7381 "Zend/zend_language_scanner.c"
 -#line 7311 "Zend/zend_language_scanner.c"
 -yy804:
 -              YYDEBUG(804, *YYCURSOR);
++#line 7385 "Zend/zend_language_scanner.c"
 +yy813:
 +              YYDEBUG(813, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
@@@ -7431,90 -7361,66 +7435,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 yy819;
 +                      if (yych <= 'Z') goto yy817;
 +                      if (yych <= '^') goto yy819;
                } else {
 -                      if (yych <= '`') goto yy810;
 -                      if (yych <= 'z') goto yy808;
 -                      if (yych <= '~') goto yy810;
 +                      if (yych <= '`') goto yy819;
 +                      if (yych <= 'z') goto yy817;
 +                      if (yych <= '~') goto yy819;
                }
 -yy808:
 -              YYDEBUG(808, *YYCURSOR);
 -              ++YYCURSOR;
 -              yych = *YYCURSOR;
 -              goto yy813;
 -yy809:
 -              YYDEBUG(809, *YYCURSOR);
 -              yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1469 "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 7389 "Zend/zend_language_scanner.c"
 -yy810:
 -              YYDEBUG(810, *YYCURSOR);
 -              ++YYCURSOR;
 -              YYDEBUG(811, *YYCURSOR);
 +yy817:
 +              YYDEBUG(817, *YYCURSOR);
 +              yyaccept = 0;
 +              yych = *(YYMARKER = ++YYCURSOR);
 +              if (yych <= '_') {
 +                      if (yych <= '@') {
 +                              if (yych <= '/') goto yy818;
 +                              if (yych <= '9') goto yy821;
 +                      } else {
 +                              if (yych <= '[') goto yy821;
 +                              if (yych >= '_') goto yy821;
 +                      }
 +              } else {
 +                      if (yych <= '|') {
 +                              if (yych <= '`') goto yy818;
 +                              if (yych <= 'z') goto yy821;
 +                      } else {
 +                              if (yych != '~') goto yy821;
 +                      }
 +              }
 +yy818:
 +              YYDEBUG(818, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1486 "Zend/zend_language_scanner.l"
 -#line 1478 "Zend/zend_language_scanner.l"
++#line 1490 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state(TSRMLS_C);
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        goto restart;
  }
- #line 7473 "Zend/zend_language_scanner.c"
 -#line 7402 "Zend/zend_language_scanner.c"
 -yy812:
 -              YYDEBUG(812, *YYCURSOR);
++#line 7477 "Zend/zend_language_scanner.c"
 +yy819:
 +              YYDEBUG(819, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              goto yy818;
 +yy820:
 +              YYDEBUG(820, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -yy813:
 -              YYDEBUG(813, *YYCURSOR);
 +yy821:
 +              YYDEBUG(821, *YYCURSOR);
                if (yybm[0+yych] & 128) {
 -                      goto yy812;
 +                      goto yy820;
                }
 -              goto yy809;
 +              if (yych == '[') goto yy823;
 +              if (yych == '}') goto yy823;
 +              YYDEBUG(822, *YYCURSOR);
 +              YYCURSOR = YYMARKER;
 +              goto yy818;
 +yy823:
 +              YYDEBUG(823, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(824, *YYCURSOR);
 +              yyleng = YYCURSOR - SCNG(yy_text);
- #line 1476 "Zend/zend_language_scanner.l"
++#line 1480 "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 7507 "Zend/zend_language_scanner.c"
++#line 7511 "Zend/zend_language_scanner.c"
        }
  /* *********************************** */
  yyc_ST_NOWDOC:
 -      YYDEBUG(814, *YYCURSOR);
 +      YYDEBUG(825, *YYCURSOR);
        YYFILL(1);
        yych = *YYCURSOR;
 -      YYDEBUG(816, *YYCURSOR);
 +      YYDEBUG(827, *YYCURSOR);
        ++YYCURSOR;
 -      YYDEBUG(817, *YYCURSOR);
 +      YYDEBUG(828, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
- #line 2370 "Zend/zend_language_scanner.l"
 -#line 2360 "Zend/zend_language_scanner.l"
++#line 2374 "Zend/zend_language_scanner.l"
        {
        int newline = 0;
  
@@@ -7571,7 -7475,7 +7575,7 @@@ nowdoc_scan_done
        HANDLE_NEWLINES(yytext, yyleng - newline);
        return T_ENCAPSED_AND_WHITESPACE;
  }
- #line 7575 "Zend/zend_language_scanner.c"
 -#line 7479 "Zend/zend_language_scanner.c"
++#line 7579 "Zend/zend_language_scanner.c"
  /* *********************************** */
  yyc_ST_VAR_OFFSET:
        {
@@@ -7669,16 -7573,16 +7673,16 @@@ yy831
                        }
                } else {
                        if (yych <= 'b') {
 -                              if (yych <= 'X') goto yy843;
 -                              if (yych >= 'b') goto yy841;
 +                              if (yych <= 'X') goto yy854;
 +                              if (yych >= 'b') goto yy852;
                        } else {
 -                              if (yych == 'x') goto yy843;
 +                              if (yych == 'x') goto yy854;
                        }
                }
 -yy821:
 -              YYDEBUG(821, *YYCURSOR);
 +yy832:
 +              YYDEBUG(832, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1564 "Zend/zend_language_scanner.l"
 -#line 1556 "Zend/zend_language_scanner.l"
++#line 1568 "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 7694 "Zend/zend_language_scanner.c"
 -#line 7598 "Zend/zend_language_scanner.c"
 -yy822:
 -              YYDEBUG(822, *YYCURSOR);
++#line 7698 "Zend/zend_language_scanner.c"
 +yy833:
 +              YYDEBUG(833, *YYCURSOR);
                yych = *++YYCURSOR;
 -              goto yy840;
 -yy823:
 -              YYDEBUG(823, *YYCURSOR);
 +              goto yy851;
 +yy834:
 +              YYDEBUG(834, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '_') {
 -                      if (yych <= '@') goto yy824;
 -                      if (yych <= 'Z') goto yy836;
 -                      if (yych >= '_') goto yy836;
 +                      if (yych <= '@') goto yy835;
 +                      if (yych <= 'Z') goto yy847;
 +                      if (yych >= '_') goto yy847;
                } else {
 -                      if (yych <= '`') goto yy824;
 -                      if (yych <= 'z') goto yy836;
 -                      if (yych >= 0x7F) goto yy836;
 +                      if (yych <= '`') goto yy835;
 +                      if (yych <= 'z') goto yy847;
 +                      if (yych >= 0x7F) goto yy847;
                }
 -yy824:
 -              YYDEBUG(824, *YYCURSOR);
 +yy835:
 +              YYDEBUG(835, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1896 "Zend/zend_language_scanner.l"
 -#line 1888 "Zend/zend_language_scanner.l"
++#line 1900 "Zend/zend_language_scanner.l"
                {
        /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
        return yytext[0];
  }
- #line 7719 "Zend/zend_language_scanner.c"
 -#line 7623 "Zend/zend_language_scanner.c"
 -yy825:
 -              YYDEBUG(825, *YYCURSOR);
++#line 7723 "Zend/zend_language_scanner.c"
 +yy836:
 +              YYDEBUG(836, *YYCURSOR);
                ++YYCURSOR;
 -              YYDEBUG(826, *YYCURSOR);
 +              YYDEBUG(837, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1891 "Zend/zend_language_scanner.l"
 -#line 1883 "Zend/zend_language_scanner.l"
++#line 1895 "Zend/zend_language_scanner.l"
                {
        yy_pop_state(TSRMLS_C);
        return ']';
  }
- #line 7730 "Zend/zend_language_scanner.c"
 -#line 7634 "Zend/zend_language_scanner.c"
 -yy827:
 -              YYDEBUG(827, *YYCURSOR);
++#line 7734 "Zend/zend_language_scanner.c"
 +yy838:
 +              YYDEBUG(838, *YYCURSOR);
                yych = *++YYCURSOR;
 -              goto yy824;
 -yy828:
 -              YYDEBUG(828, *YYCURSOR);
 +              goto yy835;
 +yy839:
 +              YYDEBUG(839, *YYCURSOR);
                ++YYCURSOR;
 -              YYDEBUG(829, *YYCURSOR);
 +              YYDEBUG(840, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1901 "Zend/zend_language_scanner.l"
 -#line 1893 "Zend/zend_language_scanner.l"
++#line 1905 "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 7747 "Zend/zend_language_scanner.c"
 -#line 7651 "Zend/zend_language_scanner.c"
 -yy830:
 -              YYDEBUG(830, *YYCURSOR);
++#line 7751 "Zend/zend_language_scanner.c"
 +yy841:
 +              YYDEBUG(841, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
 -              goto yy835;
 -yy831:
 -              YYDEBUG(831, *YYCURSOR);
 +              goto yy846;
 +yy842:
 +              YYDEBUG(842, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1908 "Zend/zend_language_scanner.l"
 -#line 1900 "Zend/zend_language_scanner.l"
++#line 1912 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
        return T_STRING;
  }
- #line 7762 "Zend/zend_language_scanner.c"
 -#line 7666 "Zend/zend_language_scanner.c"
 -yy832:
 -              YYDEBUG(832, *YYCURSOR);
++#line 7766 "Zend/zend_language_scanner.c"
 +yy843:
 +              YYDEBUG(843, *YYCURSOR);
                ++YYCURSOR;
 -              YYDEBUG(833, *YYCURSOR);
 +              YYDEBUG(844, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2428 "Zend/zend_language_scanner.l"
 -#line 2416 "Zend/zend_language_scanner.l"
++#line 2432 "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 7777 "Zend/zend_language_scanner.c"
 -#line 7681 "Zend/zend_language_scanner.c"
 -yy834:
 -              YYDEBUG(834, *YYCURSOR);
++#line 7781 "Zend/zend_language_scanner.c"
 +yy845:
 +              YYDEBUG(845, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
@@@ -7800,24 -7704,24 +7804,24 @@@ yy847
                        }
                } else {
                        if (yych <= '`') {
 -                              if (yych <= '_') goto yy836;
 +                              if (yych <= '_') goto yy847;
                        } else {
 -                              if (yych <= 'z') goto yy836;
 -                              if (yych >= 0x7F) goto yy836;
 +                              if (yych <= 'z') goto yy847;
 +                              if (yych >= 0x7F) goto yy847;
                        }
                }
 -yy838:
 -              YYDEBUG(838, *YYCURSOR);
 +yy849:
 +              YYDEBUG(849, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1885 "Zend/zend_language_scanner.l"
 -#line 1877 "Zend/zend_language_scanner.l"
++#line 1889 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
  }
- #line 7819 "Zend/zend_language_scanner.c"
 -#line 7723 "Zend/zend_language_scanner.c"
 -yy839:
 -              YYDEBUG(839, *YYCURSOR);
++#line 7823 "Zend/zend_language_scanner.c"
 +yy850:
 +              YYDEBUG(850, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
@@@ -7849,22 -7753,22 +7853,22 @@@ yy855
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -              YYDEBUG(845, *YYCURSOR);
 -              if (yych <= '/') goto yy846;
 -              if (yych <= '9') goto yy844;
 -yy846:
 -              YYDEBUG(846, *YYCURSOR);
 +              YYDEBUG(856, *YYCURSOR);
 +              if (yych <= '/') goto yy857;
 +              if (yych <= '9') goto yy855;
 +yy857:
 +              YYDEBUG(857, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1576 "Zend/zend_language_scanner.l"
 -#line 1568 "Zend/zend_language_scanner.l"
++#line 1580 "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 7866 "Zend/zend_language_scanner.c"
 -#line 7770 "Zend/zend_language_scanner.c"
 -yy847:
 -              YYDEBUG(847, *YYCURSOR);
++#line 7870 "Zend/zend_language_scanner.c"
 +yy858:
 +              YYDEBUG(858, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
@@@ -7878,13 -7782,13 +7882,13 @@@ yy860
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -              YYDEBUG(850, *YYCURSOR);
 +              YYDEBUG(861, *YYCURSOR);
                if (yybm[0+yych] & 128) {
 -                      goto yy849;
 +                      goto yy860;
                }
 -              goto yy846;
 +              goto yy857;
        }
  }
- #line 2437 "Zend/zend_language_scanner.l"
 -#line 2425 "Zend/zend_language_scanner.l"
++#line 2441 "Zend/zend_language_scanner.l"
  
  }
index 3e117a32e0253a2082bde3152d90de4b5612c135,e70a3e1dce65841494985619498f1a3b5f39a89c..d2e7243bb2da13d86ee535b2023c2b8b46ec0bfe
@@@ -258,6 -250,13 +258,8 @@@ ZEND_API void zend_restore_lexical_stat
        SCNG(input_filter) = lex_state->input_filter;
        SCNG(output_filter) = lex_state->output_filter;
        SCNG(script_encoding) = lex_state->script_encoding;
 -      if (CG(heredoc)) {
 -              efree(CG(heredoc));
 -              CG(heredoc) = NULL;
 -              CG(heredoc_len) = 0;
 -      }
+       RESET_DOC_COMMENT();
  }
  
  ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC)