]> granicus.if.org Git - php/commitdiff
Merge remote-tracking branch 'php-src/master' into addGeneratorsSupport
authorNikita Popov <nikic@php.net>
Mon, 20 Aug 2012 11:37:53 +0000 (13:37 +0200)
committerNikita Popov <nikic@php.net>
Mon, 20 Aug 2012 11:37:53 +0000 (13:37 +0200)
Merging master to fix Windows build

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

1  2 
Zend/zend_compile.c
Zend/zend_compile.h
Zend/zend_language_parser.y
Zend/zend_language_scanner.c
Zend/zend_language_scanner.l
Zend/zend_language_scanner_defs.h
Zend/zend_opcode.c
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
ext/tokenizer/tokenizer_data.c

Simple merge
Simple merge
Simple merge
index bcf1055ce75f836e18e5b97d7890be65975819c8,b8b4ea95d881bddca581dd1a6ac3a1f50da347f6..07ccb5d751a2f42a5ea28499c7759ab182ceb929
@@@ -1,4 -1,4 +1,4 @@@
- /* Generated by re2c 0.13.5 on Mon Aug 13 16:40:42 2012 */
 -/* Generated by re2c 0.13.5 on Sun Aug 19 20:57:55 2012 */
++/* Generated by re2c 0.13.5 on Mon Aug 20 13:34:50 2012 */
  #line 1 "Zend/zend_language_scanner.l"
  /*
     +----------------------------------------------------------------------+
@@@ -1097,7 -1099,7 +1099,7 @@@ yyc_INITIAL
  yy3:
                YYDEBUG(3, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1799 "Zend/zend_language_scanner.l"
 -#line 1797 "Zend/zend_language_scanner.l"
++#line 1801 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                return 0;
@@@ -1175,7 -1177,7 +1177,7 @@@ yy5
  yy6:
                YYDEBUG(6, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1787 "Zend/zend_language_scanner.l"
 -#line 1785 "Zend/zend_language_scanner.l"
++#line 1789 "Zend/zend_language_scanner.l"
                {
        if (CG(short_tags)) {
                zendlval->value.str.val = yytext; /* no copying - intentional */
@@@ -1194,7 -1196,7 +1196,7 @@@ yy7
                if ((yych = *YYCURSOR) == '=') goto yy43;
                YYDEBUG(8, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1764 "Zend/zend_language_scanner.l"
 -#line 1762 "Zend/zend_language_scanner.l"
++#line 1766 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                zendlval->value.str.val = yytext; /* no copying - intentional */
@@@ -1392,7 -1394,7 +1394,7 @@@ yy35
                ++YYCURSOR;
                YYDEBUG(38, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1724 "Zend/zend_language_scanner.l"
 -#line 1722 "Zend/zend_language_scanner.l"
++#line 1726 "Zend/zend_language_scanner.l"
                {
        YYCTYPE *bracket = (YYCTYPE*)zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1));
  
@@@ -1436,7 -1438,7 +1438,7 @@@ yy43
                ++YYCURSOR;
                YYDEBUG(44, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1742 "Zend/zend_language_scanner.l"
 -#line 1740 "Zend/zend_language_scanner.l"
++#line 1744 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                zendlval->value.str.val = yytext; /* no copying - intentional */
@@@ -1454,7 -1456,7 +1456,7 @@@ yy45
                ++YYCURSOR;
                YYDEBUG(46, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1755 "Zend/zend_language_scanner.l"
 -#line 1753 "Zend/zend_language_scanner.l"
++#line 1757 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
@@@ -1489,7 -1491,7 +1491,7 @@@ yy50
  yy51:
                YYDEBUG(51, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1777 "Zend/zend_language_scanner.l"
 -#line 1775 "Zend/zend_language_scanner.l"
++#line 1779 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
@@@ -1569,7 -1571,7 +1571,7 @@@ yyc_ST_BACKQUOTE
  yy56:
                YYDEBUG(56, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2250 "Zend/zend_language_scanner.l"
 -#line 2248 "Zend/zend_language_scanner.l"
++#line 2252 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                return 0;
@@@ -1621,7 -1623,7 +1623,7 @@@ yy58
                ++YYCURSOR;
                YYDEBUG(59, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2194 "Zend/zend_language_scanner.l"
 -#line 2192 "Zend/zend_language_scanner.l"
++#line 2196 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '`';
@@@ -1636,7 -1638,7 +1638,7 @@@ yy61
                ++YYCURSOR;
                YYDEBUG(62, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2181 "Zend/zend_language_scanner.l"
 -#line 2179 "Zend/zend_language_scanner.l"
++#line 2183 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
@@@ -1659,7 -1661,7 +1661,7 @@@ yy63
  yy65:
                YYDEBUG(65, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1881 "Zend/zend_language_scanner.l"
 -#line 1879 "Zend/zend_language_scanner.l"
++#line 1883 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
@@@ -1671,7 -1673,7 +1673,7 @@@ yy66
                ++YYCURSOR;
                YYDEBUG(67, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1457 "Zend/zend_language_scanner.l"
 -#line 1455 "Zend/zend_language_scanner.l"
++#line 1459 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
@@@ -1690,7 -1692,7 +1692,7 @@@ yy70
                ++YYCURSOR;
                YYDEBUG(71, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1873 "Zend/zend_language_scanner.l"
 -#line 1871 "Zend/zend_language_scanner.l"
++#line 1875 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@@ -1716,7 -1718,7 +1718,7 @@@ yy73
                ++YYCURSOR;
                YYDEBUG(74, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1863 "Zend/zend_language_scanner.l"
 -#line 1861 "Zend/zend_language_scanner.l"
++#line 1865 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@@ -1792,7 -1794,7 +1794,7 @@@ yy77
  yy78:
                YYDEBUG(78, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2200 "Zend/zend_language_scanner.l"
 -#line 2198 "Zend/zend_language_scanner.l"
++#line 2202 "Zend/zend_language_scanner.l"
                {
        if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
                YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
@@@ -1852,7 -1854,7 +1854,7 @@@ yy80
                ++YYCURSOR;
                YYDEBUG(81, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2189 "Zend/zend_language_scanner.l"
 -#line 2187 "Zend/zend_language_scanner.l"
++#line 2191 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '"';
@@@ -1867,7 -1869,7 +1869,7 @@@ yy83
                ++YYCURSOR;
                YYDEBUG(84, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2181 "Zend/zend_language_scanner.l"
 -#line 2179 "Zend/zend_language_scanner.l"
++#line 2183 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
@@@ -1890,7 -1892,7 +1892,7 @@@ yy85
  yy87:
                YYDEBUG(87, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1881 "Zend/zend_language_scanner.l"
 -#line 1879 "Zend/zend_language_scanner.l"
++#line 1883 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
@@@ -1902,7 -1904,7 +1904,7 @@@ yy88
                ++YYCURSOR;
                YYDEBUG(89, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1457 "Zend/zend_language_scanner.l"
 -#line 1455 "Zend/zend_language_scanner.l"
++#line 1459 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
@@@ -1921,7 -1923,7 +1923,7 @@@ yy92
                ++YYCURSOR;
                YYDEBUG(93, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1873 "Zend/zend_language_scanner.l"
 -#line 1871 "Zend/zend_language_scanner.l"
++#line 1875 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@@ -1947,7 -1949,7 +1949,7 @@@ yy95
                ++YYCURSOR;
                YYDEBUG(96, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1863 "Zend/zend_language_scanner.l"
 -#line 1861 "Zend/zend_language_scanner.l"
++#line 1865 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@@ -1966,15 -1968,16 +1968,16 @@@ yyc_ST_END_HEREDOC
        ++YYCURSOR;
        YYDEBUG(100, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
- #line 2168 "Zend/zend_language_scanner.l"
 -#line 2165 "Zend/zend_language_scanner.l"
++#line 2169 "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;
  }
@@@ -2040,7 -2043,7 +2043,7 @@@ yy103
  yy104:
                YYDEBUG(104, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2292 "Zend/zend_language_scanner.l"
 -#line 2290 "Zend/zend_language_scanner.l"
++#line 2294 "Zend/zend_language_scanner.l"
                {
        int newline = 0;
  
@@@ -2126,7 -2131,7 +2131,7 @@@ yy107
                ++YYCURSOR;
                YYDEBUG(108, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2181 "Zend/zend_language_scanner.l"
 -#line 2179 "Zend/zend_language_scanner.l"
++#line 2183 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
@@@ -2149,7 -2154,7 +2154,7 @@@ yy109
  yy111:
                YYDEBUG(111, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1881 "Zend/zend_language_scanner.l"
 -#line 1879 "Zend/zend_language_scanner.l"
++#line 1883 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
@@@ -2161,7 -2166,7 +2166,7 @@@ yy112
                ++YYCURSOR;
                YYDEBUG(113, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1457 "Zend/zend_language_scanner.l"
 -#line 1455 "Zend/zend_language_scanner.l"
++#line 1459 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
@@@ -2180,7 -2185,7 +2185,7 @@@ yy116
                ++YYCURSOR;
                YYDEBUG(117, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1873 "Zend/zend_language_scanner.l"
 -#line 1871 "Zend/zend_language_scanner.l"
++#line 1875 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@@ -2206,7 -2211,7 +2211,7 @@@ yy119
                ++YYCURSOR;
                YYDEBUG(120, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1863 "Zend/zend_language_scanner.l"
 -#line 1861 "Zend/zend_language_scanner.l"
++#line 1865 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@@ -2397,13 -2400,13 +2402,13 @@@ yy123
  yy124:
                YYDEBUG(124, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1904 "Zend/zend_language_scanner.l"
 -#line 1902 "Zend/zend_language_scanner.l"
++#line 1906 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
        return T_STRING;
  }
- #line 2407 "Zend/zend_language_scanner.c"
 -#line 2410 "Zend/zend_language_scanner.c"
++#line 2412 "Zend/zend_language_scanner.c"
  yy125:
                YYDEBUG(125, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -2583,72 -2580,72 +2588,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 1446 "Zend/zend_language_scanner.l"
 -#line 1444 "Zend/zend_language_scanner.l"
++#line 1448 "Zend/zend_language_scanner.l"
                {
        return yytext[0];
  }
- #line 2643 "Zend/zend_language_scanner.c"
 -#line 2640 "Zend/zend_language_scanner.c"
 -yy139:
 -              YYDEBUG(139, *YYCURSOR);
 -              ++YYCURSOR;
 -              yych = *YYCURSOR;
 -              goto yy484;
++#line 2648 "Zend/zend_language_scanner.c"
  yy140:
                YYDEBUG(140, *YYCURSOR);
 +              ++YYCURSOR;
 +              yych = *YYCURSOR;
 +              goto yy485;
 +yy141:
 +              YYDEBUG(141, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1177 "Zend/zend_language_scanner.l"
 -#line 1175 "Zend/zend_language_scanner.l"
++#line 1179 "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 2660 "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 2665 "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 1206 "Zend/zend_language_scanner.l"
 -#line 1204 "Zend/zend_language_scanner.l"
++#line 1208 "Zend/zend_language_scanner.l"
                {
        return T_NS_SEPARATOR;
  }
- #line 2675 "Zend/zend_language_scanner.c"
 -#line 2672 "Zend/zend_language_scanner.c"
 -yy144:
 -              YYDEBUG(144, *YYCURSOR);
++#line 2680 "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') {
@@@ -2888,29 -2889,25 +2893,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 1451 "Zend/zend_language_scanner.l"
 -#line 1449 "Zend/zend_language_scanner.l"
++#line 1453 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return '{';
  }
- #line 2908 "Zend/zend_language_scanner.c"
 -#line 2905 "Zend/zend_language_scanner.c"
 -yy169:
 -              YYDEBUG(169, *YYCURSOR);
 -              ++YYCURSOR;
++#line 2913 "Zend/zend_language_scanner.c"
 +yy170:
                YYDEBUG(170, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(171, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1463 "Zend/zend_language_scanner.l"
 -#line 1461 "Zend/zend_language_scanner.l"
++#line 1465 "Zend/zend_language_scanner.l"
                {
        RESET_DOC_COMMENT();
        if (!zend_stack_is_empty(&SCNG(state_stack))) {
        }
        return '}';
  }
- #line 2922 "Zend/zend_language_scanner.c"
 -#line 2919 "Zend/zend_language_scanner.c"
 -yy171:
 -              YYDEBUG(171, *YYCURSOR);
++#line 2927 "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 1514 "Zend/zend_language_scanner.l"
 -#line 1512 "Zend/zend_language_scanner.l"
++#line 1516 "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 2971 "Zend/zend_language_scanner.c"
 -#line 2968 "Zend/zend_language_scanner.c"
 -yy173:
 -              YYDEBUG(173, *YYCURSOR);
++#line 2976 "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 1911 "Zend/zend_language_scanner.l"
 -#line 1909 "Zend/zend_language_scanner.l"
++#line 1913 "Zend/zend_language_scanner.l"
                {
        while (YYCURSOR < YYLIMIT) {
                switch (*YYCURSOR++) {
  
        return T_COMMENT;
  }
- #line 3033 "Zend/zend_language_scanner.c"
 -#line 3030 "Zend/zend_language_scanner.c"
 -yy177:
 -              YYDEBUG(177, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3038 "Zend/zend_language_scanner.c"
  yy178:
                YYDEBUG(178, *YYCURSOR);
 +              ++YYCURSOR;
 +yy179:
 +              YYDEBUG(179, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2002 "Zend/zend_language_scanner.l"
 -#line 2000 "Zend/zend_language_scanner.l"
++#line 2004 "Zend/zend_language_scanner.l"
                {
        register char *s, *t;
        char *end;
        }
        return T_CONSTANT_ENCAPSED_STRING;
  }
- #line 3108 "Zend/zend_language_scanner.c"
 -#line 3105 "Zend/zend_language_scanner.c"
 -yy179:
 -              YYDEBUG(179, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3113 "Zend/zend_language_scanner.c"
  yy180:
                YYDEBUG(180, *YYCURSOR);
 +              ++YYCURSOR;
 +yy181:
 +              YYDEBUG(181, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2071 "Zend/zend_language_scanner.l"
 -#line 2069 "Zend/zend_language_scanner.l"
++#line 2073 "Zend/zend_language_scanner.l"
                {
        int bprefix = (yytext[0] != '"') ? 1 : 0;
  
        BEGIN(ST_DOUBLE_QUOTES);
        return '"';
  }
- #line 3156 "Zend/zend_language_scanner.c"
 -#line 3153 "Zend/zend_language_scanner.c"
 -yy181:
 -              YYDEBUG(181, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3161 "Zend/zend_language_scanner.c"
 +yy182:
                YYDEBUG(182, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(183, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2162 "Zend/zend_language_scanner.l"
 -#line 2159 "Zend/zend_language_scanner.l"
++#line 2163 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_BACKQUOTE);
        return '`';
  }
- #line 3167 "Zend/zend_language_scanner.c"
 -#line 3164 "Zend/zend_language_scanner.c"
 -yy183:
 -              YYDEBUG(183, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3172 "Zend/zend_language_scanner.c"
 +yy184:
                YYDEBUG(184, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(185, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2420 "Zend/zend_language_scanner.l"
 -#line 2422 "Zend/zend_language_scanner.l"
++#line 2426 "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 3182 "Zend/zend_language_scanner.c"
 -#line 3179 "Zend/zend_language_scanner.c"
 -yy185:
 -              YYDEBUG(185, *YYCURSOR);
++#line 3187 "Zend/zend_language_scanner.c"
 +yy186:
 +              YYDEBUG(186, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
@@@ -3196,24 -3193,24 +3201,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 1579 "Zend/zend_language_scanner.l"
 -#line 1577 "Zend/zend_language_scanner.l"
++#line 1581 "Zend/zend_language_scanner.l"
                {
        zendlval->value.dval = zend_strtod(yytext, NULL);
        zendlval->type = IS_DOUBLE;
        return T_DNUMBER;
  }
- #line 3215 "Zend/zend_language_scanner.c"
 -#line 3212 "Zend/zend_language_scanner.c"
 -yy190:
 -              YYDEBUG(190, *YYCURSOR);
++#line 3220 "Zend/zend_language_scanner.c"
 +yy191:
 +              YYDEBUG(191, *YYCURSOR);
                yyaccept = 2;
                YYMARKER = ++YYCURSOR;
                YYFILL(3);
@@@ -3297,13 -3294,13 +3302,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 1489 "Zend/zend_language_scanner.l"
 -#line 1487 "Zend/zend_language_scanner.l"
++#line 1491 "Zend/zend_language_scanner.l"
                {
        char *bin = yytext + 2; /* Skip "0b" */
        int len = yyleng - 2;
                return T_DNUMBER;
        }
  }
- #line 3332 "Zend/zend_language_scanner.c"
 -#line 3329 "Zend/zend_language_scanner.c"
 -yy202:
 -              YYDEBUG(202, *YYCURSOR);
++#line 3337 "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 1535 "Zend/zend_language_scanner.l"
 -#line 1533 "Zend/zend_language_scanner.l"
++#line 1537 "Zend/zend_language_scanner.l"
                {
        char *hex = yytext + 2; /* Skip "0x" */
        int len = yyleng - 2;
                return T_DNUMBER;
        }
  }
- #line 3369 "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 3374 "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 1979 "Zend/zend_language_scanner.l"
 -#line 1977 "Zend/zend_language_scanner.l"
++#line 1981 "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 3386 "Zend/zend_language_scanner.c"
 -#line 3383 "Zend/zend_language_scanner.c"
 -yy207:
 -              YYDEBUG(207, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              goto yy206;
++#line 3391 "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 1881 "Zend/zend_language_scanner.l"
 -#line 1879 "Zend/zend_language_scanner.l"
++#line 1883 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
  }
- #line 3426 "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 3431 "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 1434 "Zend/zend_language_scanner.l"
 -#line 1432 "Zend/zend_language_scanner.l"
++#line 1436 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_XOR;
  }
- #line 3444 "Zend/zend_language_scanner.c"
 -#line 3441 "Zend/zend_language_scanner.c"
 -yy215:
 -              YYDEBUG(215, *YYCURSOR);
++#line 3449 "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 1426 "Zend/zend_language_scanner.l"
 -#line 1424 "Zend/zend_language_scanner.l"
++#line 1428 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_OR;
  }
- #line 3457 "Zend/zend_language_scanner.c"
 -#line 3454 "Zend/zend_language_scanner.c"
 -yy217:
 -              YYDEBUG(217, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3462 "Zend/zend_language_scanner.c"
 +yy218:
                YYDEBUG(218, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(219, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1414 "Zend/zend_language_scanner.l"
 -#line 1412 "Zend/zend_language_scanner.l"
++#line 1416 "Zend/zend_language_scanner.l"
                {
        return T_XOR_EQUAL;
  }
- #line 3467 "Zend/zend_language_scanner.c"
 -#line 3464 "Zend/zend_language_scanner.c"
 -yy219:
 -              YYDEBUG(219, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3472 "Zend/zend_language_scanner.c"
 +yy220:
                YYDEBUG(220, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(221, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1418 "Zend/zend_language_scanner.l"
 -#line 1416 "Zend/zend_language_scanner.l"
++#line 1420 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_OR;
  }
- #line 3477 "Zend/zend_language_scanner.c"
 -#line 3474 "Zend/zend_language_scanner.c"
 -yy221:
 -              YYDEBUG(221, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3482 "Zend/zend_language_scanner.c"
 +yy222:
                YYDEBUG(222, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(223, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1410 "Zend/zend_language_scanner.l"
 -#line 1408 "Zend/zend_language_scanner.l"
++#line 1412 "Zend/zend_language_scanner.l"
                {
        return T_OR_EQUAL;
  }
- #line 3487 "Zend/zend_language_scanner.c"
 -#line 3484 "Zend/zend_language_scanner.c"
 -yy223:
 -              YYDEBUG(223, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3492 "Zend/zend_language_scanner.c"
 +yy224:
                YYDEBUG(224, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(225, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1422 "Zend/zend_language_scanner.l"
 -#line 1420 "Zend/zend_language_scanner.l"
++#line 1424 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_AND;
  }
- #line 3497 "Zend/zend_language_scanner.c"
 -#line 3494 "Zend/zend_language_scanner.c"
 -yy225:
 -              YYDEBUG(225, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3502 "Zend/zend_language_scanner.c"
 +yy226:
                YYDEBUG(226, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(227, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1406 "Zend/zend_language_scanner.l"
 -#line 1404 "Zend/zend_language_scanner.l"
++#line 1408 "Zend/zend_language_scanner.l"
                {
        return T_AND_EQUAL;
  }
- #line 3507 "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 3512 "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 1988 "Zend/zend_language_scanner.l"
 -#line 1986 "Zend/zend_language_scanner.l"
++#line 1990 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                BEGIN(INITIAL);
                return yytext[0];
        }
  }
- #line 3529 "Zend/zend_language_scanner.c"
 -#line 3526 "Zend/zend_language_scanner.c"
 -yy229:
 -              YYDEBUG(229, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3534 "Zend/zend_language_scanner.c"
 +yy230:
                YYDEBUG(230, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(231, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1394 "Zend/zend_language_scanner.l"
 -#line 1392 "Zend/zend_language_scanner.l"
++#line 1396 "Zend/zend_language_scanner.l"
                {
        return T_MOD_EQUAL;
  }
- #line 3539 "Zend/zend_language_scanner.c"
 -#line 3536 "Zend/zend_language_scanner.c"
 -yy231:
 -              YYDEBUG(231, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              goto yy228;
++#line 3544 "Zend/zend_language_scanner.c"
  yy232:
                YYDEBUG(232, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -3551,35 -3548,35 +3556,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 1390 "Zend/zend_language_scanner.l"
 -#line 1388 "Zend/zend_language_scanner.l"
++#line 1392 "Zend/zend_language_scanner.l"
                {
        return T_CONCAT_EQUAL;
  }
- #line 3574 "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 3579 "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 1945 "Zend/zend_language_scanner.l"
 -#line 1943 "Zend/zend_language_scanner.l"
++#line 1947 "Zend/zend_language_scanner.l"
                {
        int doc_com;
  
  
        return T_COMMENT;
  }
- #line 3617 "Zend/zend_language_scanner.c"
 -#line 3614 "Zend/zend_language_scanner.c"
 -yy239:
 -              YYDEBUG(239, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              goto yy176;
++#line 3622 "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 1386 "Zend/zend_language_scanner.l"
 -#line 1384 "Zend/zend_language_scanner.l"
++#line 1388 "Zend/zend_language_scanner.l"
                {
        return T_DIV_EQUAL;
  }
- #line 3631 "Zend/zend_language_scanner.c"
 -#line 3628 "Zend/zend_language_scanner.c"
 -yy242:
 -              YYDEBUG(242, *YYCURSOR);
++#line 3636 "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 1382 "Zend/zend_language_scanner.l"
 -#line 1380 "Zend/zend_language_scanner.l"
++#line 1384 "Zend/zend_language_scanner.l"
                {
        return T_MUL_EQUAL;
  }
- #line 3658 "Zend/zend_language_scanner.c"
 -#line 3655 "Zend/zend_language_scanner.c"
 -yy247:
 -              YYDEBUG(247, *YYCURSOR);
 -              ++YYCURSOR;
 -              if ((yych = *YYCURSOR) == '=') goto yy251;
++#line 3663 "Zend/zend_language_scanner.c"
 +yy248:
                YYDEBUG(248, *YYCURSOR);
 +              ++YYCURSOR;
 +              if ((yych = *YYCURSOR) == '=') goto yy252;
 +              YYDEBUG(249, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1442 "Zend/zend_language_scanner.l"
 -#line 1440 "Zend/zend_language_scanner.l"
++#line 1444 "Zend/zend_language_scanner.l"
                {
        return T_SR;
  }
- #line 3669 "Zend/zend_language_scanner.c"
 -#line 3666 "Zend/zend_language_scanner.c"
 -yy249:
 -              YYDEBUG(249, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3674 "Zend/zend_language_scanner.c"
 +yy250:
                YYDEBUG(250, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(251, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1370 "Zend/zend_language_scanner.l"
 -#line 1368 "Zend/zend_language_scanner.l"
++#line 1372 "Zend/zend_language_scanner.l"
                {
        return T_IS_GREATER_OR_EQUAL;
  }
- #line 3679 "Zend/zend_language_scanner.c"
 -#line 3676 "Zend/zend_language_scanner.c"
 -yy251:
 -              YYDEBUG(251, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3684 "Zend/zend_language_scanner.c"
 +yy252:
                YYDEBUG(252, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(253, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1402 "Zend/zend_language_scanner.l"
 -#line 1400 "Zend/zend_language_scanner.l"
++#line 1404 "Zend/zend_language_scanner.l"
                {
        return T_SR_EQUAL;
  }
- #line 3689 "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 3694 "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 1438 "Zend/zend_language_scanner.l"
 -#line 1436 "Zend/zend_language_scanner.l"
++#line 1440 "Zend/zend_language_scanner.l"
                {
        return T_SL;
  }
- #line 3704 "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 3709 "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 1366 "Zend/zend_language_scanner.l"
 -#line 1364 "Zend/zend_language_scanner.l"
++#line 1368 "Zend/zend_language_scanner.l"
                {
        return T_IS_SMALLER_OR_EQUAL;
  }
- #line 3720 "Zend/zend_language_scanner.c"
 -#line 3717 "Zend/zend_language_scanner.c"
 -yy258:
 -              YYDEBUG(258, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3725 "Zend/zend_language_scanner.c"
  yy259:
                YYDEBUG(259, *YYCURSOR);
 +              ++YYCURSOR;
 +yy260:
 +              YYDEBUG(260, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1362 "Zend/zend_language_scanner.l"
 -#line 1360 "Zend/zend_language_scanner.l"
++#line 1364 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_EQUAL;
  }
- #line 3731 "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 3736 "Zend/zend_language_scanner.c"
  yy261:
                YYDEBUG(261, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -3758,33 -3755,33 +3763,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 1398 "Zend/zend_language_scanner.l"
 -#line 1396 "Zend/zend_language_scanner.l"
++#line 1400 "Zend/zend_language_scanner.l"
                {
        return T_SL_EQUAL;
  }
- #line 3786 "Zend/zend_language_scanner.c"
 -#line 3783 "Zend/zend_language_scanner.c"
 -yy269:
 -              YYDEBUG(269, *YYCURSOR);
++#line 3791 "Zend/zend_language_scanner.c"
 +yy270:
 +              YYDEBUG(270, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(2);
                yych = *YYCURSOR;
@@@ -3867,27 -3864,27 +3872,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 2113 "Zend/zend_language_scanner.l"
 -#line 2111 "Zend/zend_language_scanner.l"
++#line 2115 "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 3939 "Zend/zend_language_scanner.c"
 -#line 3935 "Zend/zend_language_scanner.c"
 -yy280:
 -              YYDEBUG(280, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == '\n') goto yy278;
 -              goto yy279;
++#line 3943 "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 1354 "Zend/zend_language_scanner.l"
 -#line 1352 "Zend/zend_language_scanner.l"
++#line 1356 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_IDENTICAL;
  }
- #line 3983 "Zend/zend_language_scanner.c"
 -#line 3979 "Zend/zend_language_scanner.c"
 -yy286:
 -              YYDEBUG(286, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3987 "Zend/zend_language_scanner.c"
 +yy287:
                YYDEBUG(287, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(288, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1374 "Zend/zend_language_scanner.l"
 -#line 1372 "Zend/zend_language_scanner.l"
++#line 1376 "Zend/zend_language_scanner.l"
                {
        return T_PLUS_EQUAL;
  }
- #line 3993 "Zend/zend_language_scanner.c"
 -#line 3989 "Zend/zend_language_scanner.c"
 -yy288:
 -              YYDEBUG(288, *YYCURSOR);
 -              ++YYCURSOR;
++#line 3997 "Zend/zend_language_scanner.c"
 +yy289:
                YYDEBUG(289, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(290, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1342 "Zend/zend_language_scanner.l"
 -#line 1340 "Zend/zend_language_scanner.l"
++#line 1344 "Zend/zend_language_scanner.l"
                {
        return T_INC;
  }
- #line 4003 "Zend/zend_language_scanner.c"
 -#line 3999 "Zend/zend_language_scanner.c"
 -yy290:
 -              YYDEBUG(290, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy291;
 -              if (yych != 's') goto yy186;
++#line 4007 "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 1330 "Zend/zend_language_scanner.l"
 -#line 1328 "Zend/zend_language_scanner.l"
++#line 1332 "Zend/zend_language_scanner.l"
                {
        return T_LIST;
  }
- #line 4026 "Zend/zend_language_scanner.c"
 -#line 4022 "Zend/zend_language_scanner.c"
 -yy294:
 -              YYDEBUG(294, *YYCURSOR);
 -              ++YYCURSOR;
 -              if ((yych = *YYCURSOR) == '=') goto yy298;
++#line 4030 "Zend/zend_language_scanner.c"
 +yy295:
                YYDEBUG(295, *YYCURSOR);
 +              ++YYCURSOR;
 +              if ((yych = *YYCURSOR) == '=') goto yy299;
 +              YYDEBUG(296, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1358 "Zend/zend_language_scanner.l"
 -#line 1356 "Zend/zend_language_scanner.l"
++#line 1360 "Zend/zend_language_scanner.l"
                {
        return T_IS_EQUAL;
  }
- #line 4037 "Zend/zend_language_scanner.c"
 -#line 4033 "Zend/zend_language_scanner.c"
 -yy296:
 -              YYDEBUG(296, *YYCURSOR);
 -              ++YYCURSOR;
++#line 4041 "Zend/zend_language_scanner.c"
 +yy297:
                YYDEBUG(297, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(298, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1326 "Zend/zend_language_scanner.l"
 -#line 1324 "Zend/zend_language_scanner.l"
++#line 1328 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_ARROW;
  }
- #line 4047 "Zend/zend_language_scanner.c"
 -#line 4043 "Zend/zend_language_scanner.c"
 -yy298:
 -              YYDEBUG(298, *YYCURSOR);
 -              ++YYCURSOR;
++#line 4051 "Zend/zend_language_scanner.c"
 +yy299:
                YYDEBUG(299, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(300, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1350 "Zend/zend_language_scanner.l"
 -#line 1348 "Zend/zend_language_scanner.l"
++#line 1352 "Zend/zend_language_scanner.l"
                {
        return T_IS_IDENTICAL;
  }
- #line 4057 "Zend/zend_language_scanner.c"
 -#line 4053 "Zend/zend_language_scanner.c"
 -yy300:
 -              YYDEBUG(300, *YYCURSOR);
++#line 4061 "Zend/zend_language_scanner.c"
 +yy301:
 +              YYDEBUG(301, *YYCURSOR);
                yych = *++YYCURSOR;
                YYDEBUG(-1, yych);
                switch (yych) {
@@@ -4167,23 -4168,18 +4171,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 1714 "Zend/zend_language_scanner.l"
 -#line 1712 "Zend/zend_language_scanner.l"
++#line 1716 "Zend/zend_language_scanner.l"
                {
        if (CG(current_namespace)) {
                *zendlval = *CG(current_namespace);
        }
        return T_NS_C;
  }
- #line 4197 "Zend/zend_language_scanner.c"
 -#line 4193 "Zend/zend_language_scanner.c"
 -yy320:
 -              YYDEBUG(320, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy321;
 -              if (yych != 'r') goto yy186;
++#line 4201 "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 1687 "Zend/zend_language_scanner.l"
 -#line 1685 "Zend/zend_language_scanner.l"
++#line 1689 "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 4244 "Zend/zend_language_scanner.c"
 -#line 4240 "Zend/zend_language_scanner.c"
 -yy325:
 -              YYDEBUG(325, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy326;
 -              if (yych != 'n') goto yy186;
++#line 4248 "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 1669 "Zend/zend_language_scanner.l"
 -#line 1667 "Zend/zend_language_scanner.l"
++#line 1671 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = CG(zend_lineno);
        zendlval->type = IS_LONG;
        return T_LINE;
  }
- #line 4275 "Zend/zend_language_scanner.c"
 -#line 4271 "Zend/zend_language_scanner.c"
 -yy331:
 -              YYDEBUG(331, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy332;
 -              if (yych != 't') goto yy186;
++#line 4279 "Zend/zend_language_scanner.c"
  yy332:
                YYDEBUG(332, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4290,23 -4291,18 +4294,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 1648 "Zend/zend_language_scanner.l"
 -#line 1646 "Zend/zend_language_scanner.l"
++#line 1650 "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 4331 "Zend/zend_language_scanner.c"
 -#line 4327 "Zend/zend_language_scanner.c"
 -yy339:
 -              YYDEBUG(339, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy350;
 -              if (yych == 'l') goto yy350;
 -              goto yy186;
++#line 4335 "Zend/zend_language_scanner.c"
  yy340:
                YYDEBUG(340, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4362,23 -4363,18 +4366,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 1632 "Zend/zend_language_scanner.l"
 -#line 1630 "Zend/zend_language_scanner.l"
++#line 1634 "Zend/zend_language_scanner.l"
                {
        const char *func_name = NULL;
  
        zendlval->type = IS_STRING;
        return T_FUNC_C;
  }
- #line 4398 "Zend/zend_language_scanner.c"
 -#line 4394 "Zend/zend_language_scanner.c"
 -yy350:
 -              YYDEBUG(350, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy351;
 -              if (yych != 'e') goto yy186;
++#line 4402 "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 1675 "Zend/zend_language_scanner.l"
 -#line 1673 "Zend/zend_language_scanner.l"
++#line 1677 "Zend/zend_language_scanner.l"
                {
        char *filename = zend_get_compiled_filename(TSRMLS_C);
  
        zendlval->type = IS_STRING;
        return T_FILE;
  }
- #line 4430 "Zend/zend_language_scanner.c"
 -#line 4426 "Zend/zend_language_scanner.c"
 -yy355:
 -              YYDEBUG(355, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy356;
 -              if (yych != 'a') goto yy186;
++#line 4434 "Zend/zend_language_scanner.c"
  yy356:
                YYDEBUG(356, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4440,23 -4441,18 +4444,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 1612 "Zend/zend_language_scanner.l"
 -#line 1610 "Zend/zend_language_scanner.l"
++#line 1614 "Zend/zend_language_scanner.l"
                {
        const char *trait_name = NULL;
        
        
        return T_TRAIT_C;
  }
- #line 4480 "Zend/zend_language_scanner.c"
 -#line 4476 "Zend/zend_language_scanner.c"
 -yy362:
 -              YYDEBUG(362, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy363;
 -              if (yych != 'a') goto yy186;
++#line 4484 "Zend/zend_language_scanner.c"
  yy363:
                YYDEBUG(363, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4490,23 -4491,18 +4494,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 1585 "Zend/zend_language_scanner.l"
 -#line 1583 "Zend/zend_language_scanner.l"
++#line 1587 "Zend/zend_language_scanner.l"
                {
        const char *class_name = NULL;
        
        }
        return T_CLASS_C;
  }
- #line 4537 "Zend/zend_language_scanner.c"
 -#line 4533 "Zend/zend_language_scanner.c"
 -yy369:
 -              YYDEBUG(369, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy370;
 -              if (yych != 'l') goto yy186;
++#line 4541 "Zend/zend_language_scanner.c"
  yy370:
                YYDEBUG(370, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4580,75 -4581,70 +4584,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);
 +              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 1294 "Zend/zend_language_scanner.l"
 -#line 1292 "Zend/zend_language_scanner.l"
++#line 1296 "Zend/zend_language_scanner.l"
                {
        return T_HALT_COMPILER;
  }
- #line 4603 "Zend/zend_language_scanner.c"
 -#line 4599 "Zend/zend_language_scanner.c"
 -yy382:
 -              YYDEBUG(382, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy386;
 -              if (yych == 's') goto yy386;
 -              goto yy186;
++#line 4607 "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 1274 "Zend/zend_language_scanner.l"
 -#line 1272 "Zend/zend_language_scanner.l"
++#line 1276 "Zend/zend_language_scanner.l"
                {
        return T_USE;
  }
- #line 4627 "Zend/zend_language_scanner.c"
 -#line 4623 "Zend/zend_language_scanner.c"
 -yy386:
 -              YYDEBUG(386, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy387;
 -              if (yych != 'e') goto yy186;
++#line 4631 "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 1322 "Zend/zend_language_scanner.l"
 -#line 1320 "Zend/zend_language_scanner.l"
++#line 1324 "Zend/zend_language_scanner.l"
                {
        return T_UNSET;
  }
- #line 4650 "Zend/zend_language_scanner.c"
 -#line 4646 "Zend/zend_language_scanner.c"
 -yy390:
 -              YYDEBUG(390, *YYCURSOR);
++#line 4654 "Zend/zend_language_scanner.c"
 +yy391:
 +              YYDEBUG(391, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(7);
                yych = *YYCURSOR;
@@@ -4805,24 -4801,29 +4809,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 1222 "Zend/zend_language_scanner.l"
 -#line 1220 "Zend/zend_language_scanner.l"
++#line 1224 "Zend/zend_language_scanner.l"
                {
        return T_INT_CAST;
  }
- #line 4826 "Zend/zend_language_scanner.c"
 -#line 4822 "Zend/zend_language_scanner.c"
 -yy408:
 -              YYDEBUG(408, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy409;
 -              if (yych != 'e') goto yy193;
++#line 4830 "Zend/zend_language_scanner.c"
  yy409:
                YYDEBUG(409, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4854,23 -4850,28 +4858,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 1226 "Zend/zend_language_scanner.l"
 -#line 1224 "Zend/zend_language_scanner.l"
++#line 1228 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_CAST;
  }
- #line 4874 "Zend/zend_language_scanner.c"
 -#line 4870 "Zend/zend_language_scanner.c"
 -yy417:
 -              YYDEBUG(417, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'U') goto yy418;
 -              if (yych != 'u') goto yy193;
++#line 4878 "Zend/zend_language_scanner.c"
  yy418:
                YYDEBUG(418, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4928,23 -4924,28 +4932,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 1230 "Zend/zend_language_scanner.l"
 -#line 1228 "Zend/zend_language_scanner.l"
++#line 1232 "Zend/zend_language_scanner.l"
                {
        return T_STRING_CAST;
  }
- #line 4948 "Zend/zend_language_scanner.c"
 -#line 4944 "Zend/zend_language_scanner.c"
 -yy431:
 -              YYDEBUG(431, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy432;
 -              if (yych != 'r') goto yy193;
++#line 4952 "Zend/zend_language_scanner.c"
  yy432:
                YYDEBUG(432, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -4965,23 -4961,28 +4969,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 1234 "Zend/zend_language_scanner.l"
 -#line 1232 "Zend/zend_language_scanner.l"
++#line 1236 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY_CAST;
  }
- #line 4985 "Zend/zend_language_scanner.c"
 -#line 4981 "Zend/zend_language_scanner.c"
 -yy438:
 -              YYDEBUG(438, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'J') goto yy439;
 -              if (yych != 'j') goto yy193;
++#line 4989 "Zend/zend_language_scanner.c"
  yy439:
                YYDEBUG(439, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5007,23 -5003,29 +5011,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 1238 "Zend/zend_language_scanner.l"
 -#line 1236 "Zend/zend_language_scanner.l"
++#line 1240 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_CAST;
  }
- #line 5027 "Zend/zend_language_scanner.c"
 -#line 5023 "Zend/zend_language_scanner.c"
 -yy446:
 -              YYDEBUG(446, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy456;
 -              if (yych == 'n') goto yy456;
 -              goto yy193;
++#line 5031 "Zend/zend_language_scanner.c"
  yy447:
                YYDEBUG(447, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5051,24 -5047,29 +5055,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 1242 "Zend/zend_language_scanner.l"
 -#line 1240 "Zend/zend_language_scanner.l"
++#line 1244 "Zend/zend_language_scanner.l"
                {
        return T_BOOL_CAST;
  }
- #line 5072 "Zend/zend_language_scanner.c"
 -#line 5068 "Zend/zend_language_scanner.c"
 -yy454:
 -              YYDEBUG(454, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy455;
 -              if (yych != 'a') goto yy193;
++#line 5076 "Zend/zend_language_scanner.c"
  yy455:
                YYDEBUG(455, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5116,65 -5112,70 +5120,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 1246 "Zend/zend_language_scanner.l"
 -#line 1244 "Zend/zend_language_scanner.l"
++#line 1248 "Zend/zend_language_scanner.l"
                {
        return T_UNSET_CAST;
  }
- #line 5136 "Zend/zend_language_scanner.c"
 -#line 5132 "Zend/zend_language_scanner.c"
 -yy466:
 -              YYDEBUG(466, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy467;
 -              if (yych != 'r') goto yy186;
++#line 5140 "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 1218 "Zend/zend_language_scanner.l"
 -#line 1216 "Zend/zend_language_scanner.l"
++#line 1220 "Zend/zend_language_scanner.l"
                {
        return T_VAR;
  }
- #line 5154 "Zend/zend_language_scanner.c"
 -#line 5150 "Zend/zend_language_scanner.c"
 -yy469:
 -              YYDEBUG(469, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'M') goto yy473;
 -              if (yych == 'm') goto yy473;
 -              goto yy186;
++#line 5158 "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 1210 "Zend/zend_language_scanner.l"
 -#line 1208 "Zend/zend_language_scanner.l"
++#line 1212 "Zend/zend_language_scanner.l"
                {
        return T_NEW;
  }
- #line 5178 "Zend/zend_language_scanner.c"
 -#line 5174 "Zend/zend_language_scanner.c"
 -yy473:
 -              YYDEBUG(473, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy474;
 -              if (yych != 'e') goto yy186;
++#line 5182 "Zend/zend_language_scanner.c"
  yy474:
                YYDEBUG(474, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5198,99 -5199,99 +5202,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 1270 "Zend/zend_language_scanner.l"
 -#line 1268 "Zend/zend_language_scanner.l"
++#line 1272 "Zend/zend_language_scanner.l"
                {
        return T_NAMESPACE;
  }
- #line 5221 "Zend/zend_language_scanner.c"
 -#line 5217 "Zend/zend_language_scanner.c"
 -yy481:
 -              YYDEBUG(481, *YYCURSOR);
 -              ++YYCURSOR;
++#line 5225 "Zend/zend_language_scanner.c"
 +yy482:
                YYDEBUG(482, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(483, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1202 "Zend/zend_language_scanner.l"
 -#line 1200 "Zend/zend_language_scanner.l"
++#line 1204 "Zend/zend_language_scanner.l"
                {
        return T_PAAMAYIM_NEKUDOTAYIM;
  }
- #line 5231 "Zend/zend_language_scanner.c"
 -#line 5227 "Zend/zend_language_scanner.c"
 -yy483:
 -              YYDEBUG(483, *YYCURSOR);
++#line 5235 "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 1378 "Zend/zend_language_scanner.l"
 -#line 1376 "Zend/zend_language_scanner.l"
++#line 1380 "Zend/zend_language_scanner.l"
                {
        return T_MINUS_EQUAL;
  }
- #line 5257 "Zend/zend_language_scanner.c"
 -#line 5253 "Zend/zend_language_scanner.c"
 -yy487:
 -              YYDEBUG(487, *YYCURSOR);
 -              ++YYCURSOR;
++#line 5261 "Zend/zend_language_scanner.c"
 +yy488:
                YYDEBUG(488, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(489, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1346 "Zend/zend_language_scanner.l"
 -#line 1344 "Zend/zend_language_scanner.l"
++#line 1348 "Zend/zend_language_scanner.l"
                {
        return T_DEC;
  }
- #line 5267 "Zend/zend_language_scanner.c"
 -#line 5263 "Zend/zend_language_scanner.c"
 -yy489:
 -              YYDEBUG(489, *YYCURSOR);
 -              ++YYCURSOR;
++#line 5271 "Zend/zend_language_scanner.c"
 +yy490:
                YYDEBUG(490, *YYCURSOR);
 +              ++YYCURSOR;
 +              YYDEBUG(491, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1172 "Zend/zend_language_scanner.l"
 -#line 1170 "Zend/zend_language_scanner.l"
++#line 1174 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
        return T_OBJECT_OPERATOR;
  }
- #line 5278 "Zend/zend_language_scanner.c"
 -#line 5274 "Zend/zend_language_scanner.c"
 -yy491:
 -              YYDEBUG(491, *YYCURSOR);
++#line 5282 "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;
@@@ -5304,42 -5305,42 +5308,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 1318 "Zend/zend_language_scanner.l"
 -#line 1316 "Zend/zend_language_scanner.l"
++#line 1320 "Zend/zend_language_scanner.l"
                {
        return T_PUBLIC;
  }
- #line 5327 "Zend/zend_language_scanner.c"
 -#line 5323 "Zend/zend_language_scanner.c"
 -yy498:
 -              YYDEBUG(498, *YYCURSOR);
++#line 5331 "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;
@@@ -5363,26 -5364,27 +5367,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 1314 "Zend/zend_language_scanner.l"
 -#line 1312 "Zend/zend_language_scanner.l"
++#line 1316 "Zend/zend_language_scanner.l"
                {
        return T_PROTECTED;
  }
- #line 5386 "Zend/zend_language_scanner.c"
 -#line 5382 "Zend/zend_language_scanner.c"
 -yy507:
 -              YYDEBUG(507, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy513;
 -              if (yych == 't') goto yy513;
 -              goto yy186;
++#line 5390 "Zend/zend_language_scanner.c"
  yy508:
                YYDEBUG(508, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5397,39 -5398,40 +5401,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 1310 "Zend/zend_language_scanner.l"
 -#line 1308 "Zend/zend_language_scanner.l"
++#line 1312 "Zend/zend_language_scanner.l"
                {
        return T_PRIVATE;
  }
- #line 5420 "Zend/zend_language_scanner.c"
 -#line 5416 "Zend/zend_language_scanner.c"
 -yy513:
 -              YYDEBUG(513, *YYCURSOR);
++#line 5424 "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 1148 "Zend/zend_language_scanner.l"
 -#line 1146 "Zend/zend_language_scanner.l"
++#line 1150 "Zend/zend_language_scanner.l"
                {
        return T_PRINT;
  }
- #line 5433 "Zend/zend_language_scanner.c"
 -#line 5429 "Zend/zend_language_scanner.c"
 -yy515:
 -              YYDEBUG(515, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy520;
 -              if (yych == 'o') goto yy520;
 -              goto yy186;
++#line 5437 "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 1140 "Zend/zend_language_scanner.l"
 -#line 1138 "Zend/zend_language_scanner.l"
++#line 1142 "Zend/zend_language_scanner.l"
                {
        return T_GOTO;
  }
- #line 5462 "Zend/zend_language_scanner.c"
 -#line 5458 "Zend/zend_language_scanner.c"
 -yy520:
 -              YYDEBUG(520, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'B') goto yy521;
 -              if (yych != 'b') goto yy186;
++#line 5466 "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 1282 "Zend/zend_language_scanner.l"
 -#line 1280 "Zend/zend_language_scanner.l"
++#line 1284 "Zend/zend_language_scanner.l"
                {
        return T_GLOBAL;
  }
- #line 5490 "Zend/zend_language_scanner.c"
 -#line 5486 "Zend/zend_language_scanner.c"
 -yy525:
 -              YYDEBUG(525, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == '<') goto yy533;
 -              goto yy193;
++#line 5494 "Zend/zend_language_scanner.c"
  yy526:
                YYDEBUG(526, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5508,26 -5509,26 +5512,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 1132 "Zend/zend_language_scanner.l"
 -#line 1130 "Zend/zend_language_scanner.l"
++#line 1134 "Zend/zend_language_scanner.l"
                {
        return T_BREAK;
  }
- #line 5531 "Zend/zend_language_scanner.c"
 -#line 5527 "Zend/zend_language_scanner.c"
 -yy533:
 -              YYDEBUG(533, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == '<') goto yy269;
 -              goto yy193;
++#line 5535 "Zend/zend_language_scanner.c"
  yy534:
                YYDEBUG(534, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5552,26 -5553,26 +5556,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 1116 "Zend/zend_language_scanner.l"
 -#line 1114 "Zend/zend_language_scanner.l"
++#line 1118 "Zend/zend_language_scanner.l"
                {
        return T_SWITCH;
  }
- #line 5575 "Zend/zend_language_scanner.c"
 -#line 5571 "Zend/zend_language_scanner.c"
 -yy541:
 -              YYDEBUG(541, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy542;
 -              if (yych != 't') goto yy186;
++#line 5579 "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 1298 "Zend/zend_language_scanner.l"
 -#line 1296 "Zend/zend_language_scanner.l"
++#line 1300 "Zend/zend_language_scanner.l"
                {
        return T_STATIC;
  }
- #line 5603 "Zend/zend_language_scanner.c"
 -#line 5599 "Zend/zend_language_scanner.c"
 -yy546:
 -              YYDEBUG(546, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy557;
 -              if (yych == 's') goto yy557;
 -              goto yy186;
++#line 5607 "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 1112 "Zend/zend_language_scanner.l"
 -#line 1110 "Zend/zend_language_scanner.l"
++#line 1114 "Zend/zend_language_scanner.l"
                {
        return T_AS;
  }
- #line 5634 "Zend/zend_language_scanner.c"
 -#line 5630 "Zend/zend_language_scanner.c"
 -yy551:
 -              YYDEBUG(551, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy552;
 -              if (yych != 'a') goto yy186;
++#line 5638 "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 1334 "Zend/zend_language_scanner.l"
 -#line 1332 "Zend/zend_language_scanner.l"
++#line 1336 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY;
  }
- #line 5657 "Zend/zend_language_scanner.c"
 -#line 5653 "Zend/zend_language_scanner.c"
 -yy555:
 -              YYDEBUG(555, *YYCURSOR);
++#line 5661 "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 1430 "Zend/zend_language_scanner.l"
 -#line 1428 "Zend/zend_language_scanner.l"
++#line 1432 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_AND;
  }
- #line 5670 "Zend/zend_language_scanner.c"
 -#line 5666 "Zend/zend_language_scanner.c"
 -yy557:
 -              YYDEBUG(557, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy558;
 -              if (yych != 't') goto yy186;
++#line 5674 "Zend/zend_language_scanner.c"
  yy558:
                YYDEBUG(558, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5685,26 -5686,26 +5689,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 1302 "Zend/zend_language_scanner.l"
 -#line 1300 "Zend/zend_language_scanner.l"
++#line 1304 "Zend/zend_language_scanner.l"
                {
        return T_ABSTRACT;
  }
- #line 5708 "Zend/zend_language_scanner.c"
 -#line 5704 "Zend/zend_language_scanner.c"
 -yy564:
 -              YYDEBUG(564, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy565;
 -              if (yych != 'i') goto yy186;
++#line 5712 "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 1072 "Zend/zend_language_scanner.l"
 -#line 1070 "Zend/zend_language_scanner.l"
++#line 1074 "Zend/zend_language_scanner.l"
                {
        return T_WHILE;
  }
- #line 5736 "Zend/zend_language_scanner.c"
 -#line 5732 "Zend/zend_language_scanner.c"
 -yy569:
 -              YYDEBUG(569, *YYCURSOR);
++#line 5740 "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 1056 "Zend/zend_language_scanner.l"
 -#line 1054 "Zend/zend_language_scanner.l"
++#line 1058 "Zend/zend_language_scanner.l"
                {
        return T_IF;
  }
- #line 5749 "Zend/zend_language_scanner.c"
 -#line 5745 "Zend/zend_language_scanner.c"
 -yy571:
 -              YYDEBUG(571, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'P') goto yy613;
 -              if (yych == 'p') goto yy613;
 -              goto yy186;
++#line 5753 "Zend/zend_language_scanner.c"
  yy572:
                YYDEBUG(572, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5782,26 -5783,27 +5786,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 1286 "Zend/zend_language_scanner.l"
 -#line 1284 "Zend/zend_language_scanner.l"
++#line 1288 "Zend/zend_language_scanner.l"
                {
        return T_ISSET;
  }
- #line 5805 "Zend/zend_language_scanner.c"
 -#line 5801 "Zend/zend_language_scanner.c"
 -yy578:
 -              YYDEBUG(578, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy599;
 -              if (yych == 't') goto yy599;
 -              goto yy186;
++#line 5809 "Zend/zend_language_scanner.c"
  yy579:
                YYDEBUG(579, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5846,20 -5842,25 +5850,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 1254 "Zend/zend_language_scanner.l"
 -#line 1252 "Zend/zend_language_scanner.l"
++#line 1256 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE;
  }
- #line 5863 "Zend/zend_language_scanner.c"
 -#line 5859 "Zend/zend_language_scanner.c"
 -yy586:
 -              YYDEBUG(586, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy587;
 -              if (yych != 'o') goto yy186;
++#line 5867 "Zend/zend_language_scanner.c"
  yy587:
                YYDEBUG(587, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5873,26 -5874,26 +5877,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 1258 "Zend/zend_language_scanner.l"
 -#line 1256 "Zend/zend_language_scanner.l"
++#line 1260 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE_ONCE;
  }
- #line 5896 "Zend/zend_language_scanner.c"
 -#line 5892 "Zend/zend_language_scanner.c"
 -yy592:
 -              YYDEBUG(592, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy593;
 -              if (yych != 'r') goto yy186;
++#line 5900 "Zend/zend_language_scanner.c"
  yy593:
                YYDEBUG(593, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5911,41 -5912,42 +5915,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 1156 "Zend/zend_language_scanner.l"
 -#line 1154 "Zend/zend_language_scanner.l"
++#line 1158 "Zend/zend_language_scanner.l"
                {
        return T_INTERFACE;
  }
- #line 5934 "Zend/zend_language_scanner.c"
 -#line 5930 "Zend/zend_language_scanner.c"
 -yy599:
 -              YYDEBUG(599, *YYCURSOR);
++#line 5938 "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;
@@@ -5965,26 -5966,26 +5969,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 1278 "Zend/zend_language_scanner.l"
 -#line 1276 "Zend/zend_language_scanner.l"
++#line 1280 "Zend/zend_language_scanner.l"
                {
          return T_INSTEADOF;
  }
- #line 5988 "Zend/zend_language_scanner.c"
 -#line 5984 "Zend/zend_language_scanner.c"
 -yy607:
 -              YYDEBUG(607, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy608;
 -              if (yych != 'c') goto yy186;
++#line 5992 "Zend/zend_language_scanner.c"
  yy608:
                YYDEBUG(608, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -5998,26 -5999,26 +6002,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 1108 "Zend/zend_language_scanner.l"
 -#line 1106 "Zend/zend_language_scanner.l"
++#line 1110 "Zend/zend_language_scanner.l"
                {
        return T_INSTANCEOF;
  }
- #line 6021 "Zend/zend_language_scanner.c"
 -#line 6017 "Zend/zend_language_scanner.c"
 -yy613:
 -              YYDEBUG(613, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy614;
 -              if (yych != 'l') goto yy186;
++#line 6025 "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 1168 "Zend/zend_language_scanner.l"
 -#line 1166 "Zend/zend_language_scanner.l"
++#line 1170 "Zend/zend_language_scanner.l"
                {
        return T_IMPLEMENTS;
  }
- #line 6069 "Zend/zend_language_scanner.c"
 -#line 6065 "Zend/zend_language_scanner.c"
 -yy622:
 -              YYDEBUG(622, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy630;
 -              if (yych == 'r') goto yy630;
 -              goto yy186;
++#line 6073 "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 1040 "Zend/zend_language_scanner.l"
 -#line 1038 "Zend/zend_language_scanner.l"
++#line 1042 "Zend/zend_language_scanner.l"
                {
        return T_TRY;
  }
- #line 6101 "Zend/zend_language_scanner.c"
 -#line 6097 "Zend/zend_language_scanner.c"
 -yy626:
 -              YYDEBUG(626, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy627;
 -              if (yych != 'i') goto yy186;
++#line 6105 "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 1160 "Zend/zend_language_scanner.l"
 -#line 1158 "Zend/zend_language_scanner.l"
++#line 1162 "Zend/zend_language_scanner.l"
                {
        return T_TRAIT;
  }
- #line 6124 "Zend/zend_language_scanner.c"
 -#line 6120 "Zend/zend_language_scanner.c"
 -yy630:
 -              YYDEBUG(630, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy631;
 -              if (yych != 'o') goto yy186;
++#line 6128 "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 1052 "Zend/zend_language_scanner.l"
 -#line 1050 "Zend/zend_language_scanner.l"
++#line 1054 "Zend/zend_language_scanner.l"
                {
        return T_THROW;
  }
- #line 6147 "Zend/zend_language_scanner.c"
 -#line 6143 "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 6151 "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 1036 "Zend/zend_language_scanner.l"
++#line 1038 "Zend/zend_language_scanner.l"
 +              {
 +      return T_YIELD;
 +}
- #line 6175 "Zend/zend_language_scanner.c"
++#line 6179 "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 1260 "Zend/zend_language_scanner.l"
 -              {
 -      return T_REQUIRE;
 -}
 -#line 6208 "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;
@@@ -6214,29 -6228,16 +6218,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 1262 "Zend/zend_language_scanner.l"
+ #line 1264 "Zend/zend_language_scanner.l"
                {
 -      return T_REQUIRE_ONCE;
 +      return T_REQUIRE;
  }
- #line 6240 "Zend/zend_language_scanner.c"
 -#line 6241 "Zend/zend_language_scanner.c"
++#line 6244 "Zend/zend_language_scanner.c"
  yy648:
                YYDEBUG(648, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6246,55 -6247,22 +6250,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 1266 "Zend/zend_language_scanner.l"
++#line 1268 "Zend/zend_language_scanner.l"
 +              {
 +      return T_REQUIRE_ONCE;
 +}
- #line 6273 "Zend/zend_language_scanner.c"
++#line 6277 "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 1032 "Zend/zend_language_scanner.l"
+ #line 1034 "Zend/zend_language_scanner.l"
                {
        return T_RETURN;
  }
- #line 6296 "Zend/zend_language_scanner.c"
 -#line 6264 "Zend/zend_language_scanner.c"
 -yy652:
 -              YYDEBUG(652, *YYCURSOR);
++#line 6300 "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 1136 "Zend/zend_language_scanner.l"
 -#line 1134 "Zend/zend_language_scanner.l"
++#line 1138 "Zend/zend_language_scanner.l"
                {
        return T_CONTINUE;
  }
- #line 6390 "Zend/zend_language_scanner.c"
 -#line 6358 "Zend/zend_language_scanner.c"
 -yy663:
 -              YYDEBUG(663, *YYCURSOR);
++#line 6394 "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 1028 "Zend/zend_language_scanner.l"
+ #line 1030 "Zend/zend_language_scanner.l"
                {
        return T_CONST;
  }
- #line 6403 "Zend/zend_language_scanner.c"
 -#line 6371 "Zend/zend_language_scanner.c"
 -yy665:
 -              YYDEBUG(665, *YYCURSOR);
++#line 6407 "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 1214 "Zend/zend_language_scanner.l"
 -#line 1212 "Zend/zend_language_scanner.l"
++#line 1216 "Zend/zend_language_scanner.l"
                {
        return T_CLONE;
  }
- #line 6432 "Zend/zend_language_scanner.c"
 -#line 6400 "Zend/zend_language_scanner.c"
 -yy670:
 -              YYDEBUG(670, *YYCURSOR);
++#line 6436 "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 1152 "Zend/zend_language_scanner.l"
 -#line 1150 "Zend/zend_language_scanner.l"
++#line 1154 "Zend/zend_language_scanner.l"
                {
        return T_CLASS;
  }
- #line 6450 "Zend/zend_language_scanner.c"
 -#line 6418 "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 6454 "Zend/zend_language_scanner.c"
  yy679:
                YYDEBUG(679, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6477,57 -6481,53 +6481,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 1338 "Zend/zend_language_scanner.l"
 -#line 1042 "Zend/zend_language_scanner.l"
++#line 1340 "Zend/zend_language_scanner.l"
                {
 -      return T_CATCH;
 + return T_CALLABLE;
  }
- #line 6500 "Zend/zend_language_scanner.c"
 -#line 6499 "Zend/zend_language_scanner.c"
 -yy687:
 -              YYDEBUG(687, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy704;
 -              if (yych == 'n') goto yy704;
 -              goto yy186;
++#line 6504 "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 1124 "Zend/zend_language_scanner.l"
++#line 1126 "Zend/zend_language_scanner.l"
 +              {
 +      return T_CASE;
 +}
- #line 6513 "Zend/zend_language_scanner.c"
++#line 6517 "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 1044 "Zend/zend_language_scanner.l"
++#line 1046 "Zend/zend_language_scanner.l"
 +              {
 +      return T_CATCH;
 +}
- #line 6531 "Zend/zend_language_scanner.c"
++#line 6535 "Zend/zend_language_scanner.c"
  yy693:
                YYDEBUG(693, *YYCURSOR);
                yych = *++YYCURSOR;
  yy694:
                YYDEBUG(694, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy695;
 -              if (yych != 'n') goto yy186;
 +              if (yych == 'R') goto yy703;
 +              if (yych == 'r') goto yy703;
 +              goto yy187;
  yy695:
                YYDEBUG(695, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'N') goto yy696;
 +              if (yych != 'n') goto yy187;
 +yy696:
 +              YYDEBUG(696, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'C') goto yy697;
 +              if (yych != 'c') goto yy187;
 +yy697:
 +              YYDEBUG(697, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'T') goto yy698;
 +              if (yych != 't') goto yy187;
 +yy698:
 +              YYDEBUG(698, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'I') goto yy699;
 +              if (yych != 'i') goto yy187;
 +yy699:
 +              YYDEBUG(699, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'O') goto yy700;
 +              if (yych != 'o') goto yy187;
 +yy700:
 +              YYDEBUG(700, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'N') goto yy701;
 +              if (yych != 'n') goto yy187;
 +yy701:
 +              YYDEBUG(701, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(696, *YYCURSOR);
 +              YYDEBUG(702, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1024 "Zend/zend_language_scanner.l"
+ #line 1026 "Zend/zend_language_scanner.l"
                {
        return T_FUNCTION;
  }
- #line 6586 "Zend/zend_language_scanner.c"
 -#line 6554 "Zend/zend_language_scanner.c"
 -yy697:
 -              YYDEBUG(697, *YYCURSOR);
++#line 6590 "Zend/zend_language_scanner.c"
 +yy703:
 +              YYDEBUG(703, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '@') {
                        }
                } else {
                        if (yych <= 'd') {
 -                              if (yych != '`') goto yy185;
 +                              if (yych != '`') goto yy186;
                        } else {
 -                              if (yych <= 'e') goto yy699;
 -                              if (yych <= 'z') goto yy185;
 -                              if (yych >= 0x7F) goto yy185;
 +                              if (yych <= 'e') goto yy705;
 +                              if (yych <= 'z') goto yy186;
 +                              if (yych >= 0x7F) goto yy186;
                        }
                }
 -yy698:
 -              YYDEBUG(698, *YYCURSOR);
 +yy704:
 +              YYDEBUG(704, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1084 "Zend/zend_language_scanner.l"
 -#line 1082 "Zend/zend_language_scanner.l"
++#line 1086 "Zend/zend_language_scanner.l"
                {
        return T_FOR;
  }
- #line 6614 "Zend/zend_language_scanner.c"
 -#line 6582 "Zend/zend_language_scanner.c"
 -yy699:
 -              YYDEBUG(699, *YYCURSOR);
++#line 6618 "Zend/zend_language_scanner.c"
 +yy705:
 +              YYDEBUG(705, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy700;
 -              if (yych != 'a') goto yy186;
 -yy700:
 -              YYDEBUG(700, *YYCURSOR);
 +              if (yych == 'A') goto yy706;
 +              if (yych != 'a') goto yy187;
 +yy706:
 +              YYDEBUG(706, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy701;
 -              if (yych != 'c') goto yy186;
 -yy701:
 -              YYDEBUG(701, *YYCURSOR);
 +              if (yych == 'C') goto yy707;
 +              if (yych != 'c') goto yy187;
 +yy707:
 +              YYDEBUG(707, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'H') goto yy702;
 -              if (yych != 'h') goto yy186;
 -yy702:
 -              YYDEBUG(702, *YYCURSOR);
 +              if (yych == 'H') goto yy708;
 +              if (yych != 'h') goto yy187;
 +yy708:
 +              YYDEBUG(708, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(703, *YYCURSOR);
 +              YYDEBUG(709, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1092 "Zend/zend_language_scanner.l"
 -#line 1090 "Zend/zend_language_scanner.l"
++#line 1094 "Zend/zend_language_scanner.l"
                {
        return T_FOREACH;
  }
- #line 6642 "Zend/zend_language_scanner.c"
 -#line 6610 "Zend/zend_language_scanner.c"
 -yy704:
 -              YYDEBUG(704, *YYCURSOR);
++#line 6646 "Zend/zend_language_scanner.c"
 +yy710:
 +              YYDEBUG(710, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy705;
 -              if (yych != 'a') goto yy186;
 -yy705:
 -              YYDEBUG(705, *YYCURSOR);
 +              if (yych == 'A') goto yy711;
 +              if (yych != 'a') goto yy187;
 +yy711:
 +              YYDEBUG(711, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy706;
 -              if (yych != 'l') goto yy186;
 -yy706:
 -              YYDEBUG(706, *YYCURSOR);
 +              if (yych == 'L') goto yy712;
 +              if (yych != 'l') goto yy187;
 +yy712:
 +              YYDEBUG(712, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '@') {
                        }
                } else {
                        if (yych <= 'k') {
 -                              if (yych != '`') goto yy185;
 +                              if (yych != '`') goto yy186;
                        } else {
 -                              if (yych <= 'l') goto yy708;
 -                              if (yych <= 'z') goto yy185;
 -                              if (yych >= 0x7F) goto yy185;
 +                              if (yych <= 'l') goto yy714;
 +                              if (yych <= 'z') goto yy186;
 +                              if (yych >= 0x7F) goto yy186;
                        }
                }
 -yy707:
 -              YYDEBUG(707, *YYCURSOR);
 +yy713:
 +              YYDEBUG(713, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1306 "Zend/zend_language_scanner.l"
 -#line 1304 "Zend/zend_language_scanner.l"
++#line 1308 "Zend/zend_language_scanner.l"
                {
        return T_FINAL;
  }
- #line 6680 "Zend/zend_language_scanner.c"
 -#line 6648 "Zend/zend_language_scanner.c"
 -yy708:
 -              YYDEBUG(708, *YYCURSOR);
++#line 6684 "Zend/zend_language_scanner.c"
 +yy714:
 +              YYDEBUG(714, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'Y') goto yy709;
 -              if (yych != 'y') goto yy186;
 -yy709:
 -              YYDEBUG(709, *YYCURSOR);
 +              if (yych == 'Y') goto yy715;
 +              if (yych != 'y') goto yy187;
 +yy715:
 +              YYDEBUG(715, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(710, *YYCURSOR);
 +              YYDEBUG(716, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1048 "Zend/zend_language_scanner.l"
 -#line 1046 "Zend/zend_language_scanner.l"
++#line 1050 "Zend/zend_language_scanner.l"
                {
        return T_FINALLY;
  }
- #line 6698 "Zend/zend_language_scanner.c"
 -#line 6666 "Zend/zend_language_scanner.c"
 -yy711:
 -              YYDEBUG(711, *YYCURSOR);
++#line 6702 "Zend/zend_language_scanner.c"
 +yy717:
 +              YYDEBUG(717, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'F') {
 -                      if (yych == 'C') goto yy717;
 -                      if (yych <= 'E') goto yy186;
 -                      goto yy718;
 +                      if (yych == 'C') goto yy723;
 +                      if (yych <= 'E') goto yy187;
 +                      goto yy724;
                } else {
                        if (yych <= 'c') {
 -                              if (yych <= 'b') goto yy186;
 -                              goto yy717;
 +                              if (yych <= 'b') goto yy187;
 +                              goto yy723;
                        } else {
 -                              if (yych == 'f') goto yy718;
 -                              goto yy186;
 +                              if (yych == 'f') goto yy724;
 +                              goto yy187;
                        }
                }
 -yy712:
 -              YYDEBUG(712, *YYCURSOR);
 +yy718:
 +              YYDEBUG(718, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy715;
 -              if (yych == 'e') goto yy715;
 -              goto yy186;
 -yy713:
 -              YYDEBUG(713, *YYCURSOR);
 +              if (yych == 'E') goto yy721;
 +              if (yych == 'e') goto yy721;
 +              goto yy187;
 +yy719:
 +              YYDEBUG(719, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(714, *YYCURSOR);
 +              YYDEBUG(720, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1080 "Zend/zend_language_scanner.l"
 -#line 1078 "Zend/zend_language_scanner.l"
++#line 1082 "Zend/zend_language_scanner.l"
                {
        return T_DO;
  }
- #line 6733 "Zend/zend_language_scanner.c"
 -#line 6701 "Zend/zend_language_scanner.c"
 -yy715:
 -              YYDEBUG(715, *YYCURSOR);
++#line 6737 "Zend/zend_language_scanner.c"
 +yy721:
 +              YYDEBUG(721, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(716, *YYCURSOR);
 +              YYDEBUG(722, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1020 "Zend/zend_language_scanner.l"
+ #line 1022 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
  }
- #line 6746 "Zend/zend_language_scanner.c"
 -#line 6714 "Zend/zend_language_scanner.c"
 -yy717:
 -              YYDEBUG(717, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy724;
 -              if (yych == 'l') goto yy724;
 -              goto yy186;
 -yy718:
 -              YYDEBUG(718, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy719;
 -              if (yych != 'a') goto yy186;
 -yy719:
 -              YYDEBUG(719, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'U') goto yy720;
 -              if (yych != 'u') goto yy186;
 -yy720:
 -              YYDEBUG(720, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy721;
 -              if (yych != 'l') goto yy186;
 -yy721:
 -              YYDEBUG(721, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy722;
 -              if (yych != 't') goto yy186;
 -yy722:
 -              YYDEBUG(722, *YYCURSOR);
 -              ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 -              }
++#line 6750 "Zend/zend_language_scanner.c"
 +yy723:
                YYDEBUG(723, *YYCURSOR);
 -              yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1126 "Zend/zend_language_scanner.l"
 -              {
 -      return T_DEFAULT;
 -}
 -#line 6753 "Zend/zend_language_scanner.c"
 +              yych = *++YYCURSOR;
 +              if (yych == 'L') goto yy730;
 +              if (yych == 'l') goto yy730;
 +              goto yy187;
  yy724:
                YYDEBUG(724, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6762,26 -6763,27 +6766,26 @@@ yy725
  yy726:
                YYDEBUG(726, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy727;
 -              if (yych != 'e') goto yy186;
 +              if (yych == 'L') goto yy727;
 +              if (yych != 'l') goto yy187;
  yy727:
                YYDEBUG(727, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'T') goto yy728;
 +              if (yych != 't') goto yy187;
 +yy728:
 +              YYDEBUG(728, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(728, *YYCURSOR);
 +              YYDEBUG(729, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1128 "Zend/zend_language_scanner.l"
 -#line 1098 "Zend/zend_language_scanner.l"
++#line 1130 "Zend/zend_language_scanner.l"
                {
 -      return T_DECLARE;
 +      return T_DEFAULT;
  }
- #line 6785 "Zend/zend_language_scanner.c"
 -#line 6781 "Zend/zend_language_scanner.c"
 -yy729:
 -              YYDEBUG(729, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'H') goto yy791;
 -              if (yych == 'h') goto yy791;
 -              goto yy186;
++#line 6789 "Zend/zend_language_scanner.c"
  yy730:
                YYDEBUG(730, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6795,21 -6799,30 +6799,21 @@@ yy731
  yy732:
                YYDEBUG(732, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'D') goto yy747;
 -              if (yych == 'd') goto yy747;
 -              goto yy186;
 +              if (yych == 'E') goto yy733;
 +              if (yych != 'e') goto yy187;
  yy733:
                YYDEBUG(733, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy744;
 -              if (yych == 'a') goto yy744;
 -              goto yy186;
 -yy734:
 -              YYDEBUG(734, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych <= 'T') {
 -                      if (yych == 'I') goto yy735;
 -                      if (yych <= 'S') goto yy186;
 -                      goto yy736;
 -              } else {
 -                      if (yych <= 'i') {
 -                              if (yych <= 'h') goto yy186;
 -                      } else {
 -                              if (yych == 't') goto yy736;
 -                              goto yy186;
 -                      }
 +              ++YYCURSOR;
 +              if (yybm[0+(yych = *YYCURSOR)] & 4) {
 +                      goto yy186;
                }
- #line 1100 "Zend/zend_language_scanner.l"
 +              YYDEBUG(734, *YYCURSOR);
 +              yyleng = YYCURSOR - SCNG(yy_text);
- #line 6813 "Zend/zend_language_scanner.c"
++#line 1102 "Zend/zend_language_scanner.l"
 +              {
 +      return T_DECLARE;
 +}
++#line 6817 "Zend/zend_language_scanner.c"
  yy735:
                YYDEBUG(735, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -6837,96 -6847,54 +6841,96 @@@ yy738
  yy739:
                YYDEBUG(739, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy740;
 -              if (yych != 's') goto yy186;
 +              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(741, *YYCURSOR);
 +              YYDEBUG(747, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1164 "Zend/zend_language_scanner.l"
 -#line 1162 "Zend/zend_language_scanner.l"
++#line 1166 "Zend/zend_language_scanner.l"
                {
        return T_EXTENDS;
  }
- #line 6897 "Zend/zend_language_scanner.c"
 -#line 6865 "Zend/zend_language_scanner.c"
 -yy742:
 -              YYDEBUG(742, *YYCURSOR);
++#line 6901 "Zend/zend_language_scanner.c"
 +yy748:
 +              YYDEBUG(748, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(743, *YYCURSOR);
 +              YYDEBUG(749, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1016 "Zend/zend_language_scanner.l"
+ #line 1018 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
  }
- #line 6910 "Zend/zend_language_scanner.c"
 -#line 6878 "Zend/zend_language_scanner.c"
 -yy744:
 -              YYDEBUG(744, *YYCURSOR);
++#line 6914 "Zend/zend_language_scanner.c"
 +yy750:
 +              YYDEBUG(750, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy745;
 -              if (yych != 'l') goto yy186;
 -yy745:
 -              YYDEBUG(745, *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(746, *YYCURSOR);
 +              YYDEBUG(752, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1250 "Zend/zend_language_scanner.l"
 -#line 1248 "Zend/zend_language_scanner.l"
++#line 1252 "Zend/zend_language_scanner.l"
                {
        return T_EVAL;
  }
- #line 6928 "Zend/zend_language_scanner.c"
 -#line 6896 "Zend/zend_language_scanner.c"
 -yy747:
 -              YYDEBUG(747, *YYCURSOR);
++#line 6932 "Zend/zend_language_scanner.c"
 +yy753:
 +              YYDEBUG(753, *YYCURSOR);
                yych = *++YYCURSOR;
                YYDEBUG(-1, yych);
                switch (yych) {
@@@ -6994,64 -6995,31 +6998,64 @@@ yy762
                }
                YYDEBUG(763, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1076 "Zend/zend_language_scanner.l"
 -#line 1118 "Zend/zend_language_scanner.l"
++#line 1078 "Zend/zend_language_scanner.l"
                {
 -      return T_ENDSWITCH;
 +      return T_ENDWHILE;
  }
- #line 7002 "Zend/zend_language_scanner.c"
 -#line 7003 "Zend/zend_language_scanner.c"
++#line 7006 "Zend/zend_language_scanner.c"
  yy764:
                YYDEBUG(764, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'I') goto yy765;
 +              if (yych != 'i') goto yy187;
 +yy765:
 +              YYDEBUG(765, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'T') goto yy766;
 +              if (yych != 't') goto yy187;
 +yy766:
 +              YYDEBUG(766, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'C') goto yy767;
 +              if (yych != 'c') goto yy187;
 +yy767:
 +              YYDEBUG(767, *YYCURSOR);
 +              yych = *++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(765, *YYCURSOR);
 +              YYDEBUG(769, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1120 "Zend/zend_language_scanner.l"
 -#line 1062 "Zend/zend_language_scanner.l"
++#line 1122 "Zend/zend_language_scanner.l"
 +              {
 +      return T_ENDSWITCH;
 +}
- #line 7035 "Zend/zend_language_scanner.c"
++#line 7039 "Zend/zend_language_scanner.c"
 +yy770:
 +              YYDEBUG(770, *YYCURSOR);
 +              ++YYCURSOR;
 +              if (yybm[0+(yych = *YYCURSOR)] & 4) {
 +                      goto yy186;
 +              }
 +              YYDEBUG(771, *YYCURSOR);
 +              yyleng = YYCURSOR - SCNG(yy_text);
- #line 1064 "Zend/zend_language_scanner.l"
++#line 1066 "Zend/zend_language_scanner.l"
                {
        return T_ENDIF;
  }
- #line 7048 "Zend/zend_language_scanner.c"
 -#line 7016 "Zend/zend_language_scanner.c"
 -yy766:
 -              YYDEBUG(766, *YYCURSOR);
++#line 7052 "Zend/zend_language_scanner.c"
 +yy772:
 +              YYDEBUG(772, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy767;
 -              if (yych != 'r') goto yy186;
 -yy767:
 -              YYDEBUG(767, *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 yy769;
 -                              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;
                        }
                }
 -yy768:
 -              YYDEBUG(768, *YYCURSOR);
 +yy774:
 +              YYDEBUG(774, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1088 "Zend/zend_language_scanner.l"
 -#line 1086 "Zend/zend_language_scanner.l"
++#line 1090 "Zend/zend_language_scanner.l"
                {
        return T_ENDFOR;
  }
- #line 7081 "Zend/zend_language_scanner.c"
 -#line 7049 "Zend/zend_language_scanner.c"
 -yy769:
 -              YYDEBUG(769, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy770;
 -              if (yych != 'a') goto yy186;
 -yy770:
 -              YYDEBUG(770, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy771;
 -              if (yych != 'c') goto yy186;
 -yy771:
 -              YYDEBUG(771, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'H') goto yy772;
 -              if (yych != 'h') goto yy186;
 -yy772:
 -              YYDEBUG(772, *YYCURSOR);
 -              ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 -              }
 -              YYDEBUG(773, *YYCURSOR);
 -              yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1094 "Zend/zend_language_scanner.l"
 -              {
 -      return T_ENDFOREACH;
 -}
 -#line 7077 "Zend/zend_language_scanner.c"
 -yy774:
 -              YYDEBUG(774, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy775;
 -              if (yych != 'c') goto yy186;
++#line 7085 "Zend/zend_language_scanner.c"
  yy775:
                YYDEBUG(775, *YYCURSOR);
                yych = *++YYCURSOR;
@@@ -7091,26 -7092,26 +7095,26 @@@ yy776
  yy777:
                YYDEBUG(777, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy778;
 -              if (yych != 'r') goto yy186;
 +              if (yych == 'H') goto yy778;
 +              if (yych != 'h') goto yy187;
  yy778:
                YYDEBUG(778, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy779;
 -              if (yych != 'e') goto yy186;
 -yy779:
 -              YYDEBUG(779, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
 -                      goto yy185;
 +                      goto yy186;
                }
 -              YYDEBUG(780, *YYCURSOR);
 +              YYDEBUG(779, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1096 "Zend/zend_language_scanner.l"
 -#line 1102 "Zend/zend_language_scanner.l"
++#line 1098 "Zend/zend_language_scanner.l"
                {
 -      return T_ENDDECLARE;
 +      return T_ENDFOREACH;
  }
- #line 7109 "Zend/zend_language_scanner.c"
 -#line 7115 "Zend/zend_language_scanner.c"
++#line 7113 "Zend/zend_language_scanner.c"
 +yy780:
 +              YYDEBUG(780, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'C') goto yy781;
 +              if (yych != 'c') goto yy187;
  yy781:
                YYDEBUG(781, *YYCURSOR);
                yych = *++YYCURSOR;
  yy782:
                YYDEBUG(782, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'Y') goto yy783;
 -              if (yych != 'y') goto yy186;
 +              if (yych == 'A') goto yy783;
 +              if (yych != 'a') goto yy187;
  yy783:
                YYDEBUG(783, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'R') goto yy784;
 +              if (yych != 'r') goto yy187;
 +yy784:
 +              YYDEBUG(784, *YYCURSOR);
 +              yych = *++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(784, *YYCURSOR);
 +              YYDEBUG(786, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1104 "Zend/zend_language_scanner.l"
 -#line 1288 "Zend/zend_language_scanner.l"
++#line 1106 "Zend/zend_language_scanner.l"
 +              {
 +      return T_ENDDECLARE;
 +}
- #line 7147 "Zend/zend_language_scanner.c"
++#line 7151 "Zend/zend_language_scanner.c"
 +yy787:
 +              YYDEBUG(787, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'T') goto yy788;
 +              if (yych != 't') goto yy187;
 +yy788:
 +              YYDEBUG(788, *YYCURSOR);
 +              yych = *++YYCURSOR;
 +              if (yych == 'Y') goto yy789;
 +              if (yych != 'y') goto yy187;
 +yy789:
 +              YYDEBUG(789, *YYCURSOR);
 +              ++YYCURSOR;
 +              if (yybm[0+(yych = *YYCURSOR)] & 4) {
 +                      goto yy186;
 +              }
 +              YYDEBUG(790, *YYCURSOR);
 +              yyleng = YYCURSOR - SCNG(yy_text);
- #line 1290 "Zend/zend_language_scanner.l"
++#line 1292 "Zend/zend_language_scanner.l"
                {
        return T_EMPTY;
  }
- #line 7170 "Zend/zend_language_scanner.c"
 -#line 7138 "Zend/zend_language_scanner.c"
 -yy785:
 -              YYDEBUG(785, *YYCURSOR);
++#line 7174 "Zend/zend_language_scanner.c"
 +yy791:
 +              YYDEBUG(791, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy786;
 -              if (yych != 'e') goto yy186;
 -yy786:
 -              YYDEBUG(786, *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 yy788;
 -                              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;
                        }
                }
 -yy787:
 -              YYDEBUG(787, *YYCURSOR);
 +yy793:
 +              YYDEBUG(793, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1068 "Zend/zend_language_scanner.l"
 -#line 1066 "Zend/zend_language_scanner.l"
++#line 1070 "Zend/zend_language_scanner.l"
                {
        return T_ELSE;
  }
- #line 7203 "Zend/zend_language_scanner.c"
 -#line 7171 "Zend/zend_language_scanner.c"
 -yy788:
 -              YYDEBUG(788, *YYCURSOR);
++#line 7207 "Zend/zend_language_scanner.c"
 +yy794:
 +              YYDEBUG(794, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'F') goto yy789;
 -              if (yych != 'f') goto yy186;
 -yy789:
 -              YYDEBUG(789, *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(790, *YYCURSOR);
 +              YYDEBUG(796, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1060 "Zend/zend_language_scanner.l"
 -#line 1058 "Zend/zend_language_scanner.l"
++#line 1062 "Zend/zend_language_scanner.l"
                {
        return T_ELSEIF;
  }
- #line 7221 "Zend/zend_language_scanner.c"
 -#line 7189 "Zend/zend_language_scanner.c"
 -yy791:
 -              YYDEBUG(791, *YYCURSOR);
++#line 7225 "Zend/zend_language_scanner.c"
 +yy797:
 +              YYDEBUG(797, *YYCURSOR);
                yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy792;
 -              if (yych != 'o') goto yy186;
 -yy792:
 -              YYDEBUG(792, *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(793, *YYCURSOR);
 +              YYDEBUG(799, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1144 "Zend/zend_language_scanner.l"
 -#line 1142 "Zend/zend_language_scanner.l"
++#line 1146 "Zend/zend_language_scanner.l"
                {
        return T_ECHO;
  }
- #line 7239 "Zend/zend_language_scanner.c"
 -#line 7207 "Zend/zend_language_scanner.c"
++#line 7243 "Zend/zend_language_scanner.c"
        }
  /* *********************************** */
  yyc_ST_LOOKING_FOR_PROPERTY:
                        }
                } else {
                        if (yych <= '_') {
 -                              if (yych <= '@') goto yy802;
 -                              if (yych <= 'Z') goto yy800;
 -                              if (yych <= '^') goto yy802;
 -                              goto yy800;
 +                              if (yych <= '@') goto yy808;
 +                              if (yych <= 'Z') goto yy806;
 +                              if (yych <= '^') goto yy808;
 +                              goto yy806;
                        } else {
 -                              if (yych <= '`') goto yy802;
 -                              if (yych <= 'z') goto yy800;
 -                              if (yych <= '~') goto yy802;
 -                              goto yy800;
 +                              if (yych <= '`') goto yy808;
 +                              if (yych <= 'z') goto yy806;
 +                              if (yych <= '~') goto yy808;
 +                              goto yy806;
                        }
                }
 -yy796:
 -              YYDEBUG(796, *YYCURSOR);
 +yy802:
 +              YYDEBUG(802, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
 -              goto yy808;
 -yy797:
 -              YYDEBUG(797, *YYCURSOR);
 +              goto yy814;
 +yy803:
 +              YYDEBUG(803, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1177 "Zend/zend_language_scanner.l"
 -#line 1175 "Zend/zend_language_scanner.l"
++#line 1179 "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 7320 "Zend/zend_language_scanner.c"
 -#line 7288 "Zend/zend_language_scanner.c"
 -yy798:
 -              YYDEBUG(798, *YYCURSOR);
++#line 7324 "Zend/zend_language_scanner.c"
 +yy804:
 +              YYDEBUG(804, *YYCURSOR);
                ++YYCURSOR;
 -              if ((yych = *YYCURSOR) == '>') goto yy805;
 -yy799:
 -              YYDEBUG(799, *YYCURSOR);
 +              if ((yych = *YYCURSOR) == '>') goto yy811;
 +yy805:
 +              YYDEBUG(805, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1196 "Zend/zend_language_scanner.l"
 -#line 1194 "Zend/zend_language_scanner.l"
++#line 1198 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state(TSRMLS_C);
        goto restart;
  }
- #line 7334 "Zend/zend_language_scanner.c"
 -#line 7302 "Zend/zend_language_scanner.c"
 -yy800:
 -              YYDEBUG(800, *YYCURSOR);
++#line 7338 "Zend/zend_language_scanner.c"
 +yy806:
 +              YYDEBUG(806, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
 -              goto yy804;
 -yy801:
 -              YYDEBUG(801, *YYCURSOR);
 +              goto yy810;
 +yy807:
 +              YYDEBUG(807, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1189 "Zend/zend_language_scanner.l"
 -#line 1187 "Zend/zend_language_scanner.l"
++#line 1191 "Zend/zend_language_scanner.l"
                {
        yy_pop_state(TSRMLS_C);
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
        return T_STRING;
  }
- #line 7350 "Zend/zend_language_scanner.c"
 -#line 7318 "Zend/zend_language_scanner.c"
 -yy802:
 -              YYDEBUG(802, *YYCURSOR);
++#line 7354 "Zend/zend_language_scanner.c"
 +yy808:
 +              YYDEBUG(808, *YYCURSOR);
                yych = *++YYCURSOR;
 -              goto yy799;
 -yy803:
 -              YYDEBUG(803, *YYCURSOR);
 +              goto yy805;
 +yy809:
 +              YYDEBUG(809, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -yy804:
 -              YYDEBUG(804, *YYCURSOR);
 +yy810:
 +              YYDEBUG(810, *YYCURSOR);
                if (yybm[0+yych] & 64) {
 -                      goto yy803;
 +                      goto yy809;
                }
 -              goto yy801;
 -yy805:
 -              YYDEBUG(805, *YYCURSOR);
 +              goto yy807;
 +yy811:
 +              YYDEBUG(811, *YYCURSOR);
                ++YYCURSOR;
 -              YYDEBUG(806, *YYCURSOR);
 +              YYDEBUG(812, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1185 "Zend/zend_language_scanner.l"
 -#line 1183 "Zend/zend_language_scanner.l"
++#line 1187 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_OPERATOR;
  }
- #line 7375 "Zend/zend_language_scanner.c"
 -#line 7343 "Zend/zend_language_scanner.c"
 -yy807:
 -              YYDEBUG(807, *YYCURSOR);
++#line 7379 "Zend/zend_language_scanner.c"
 +yy813:
 +              YYDEBUG(813, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
@@@ -7447,48 -7415,48 +7451,48 @@@ yy817
                        }
                } else {
                        if (yych <= '|') {
 -                              if (yych <= '`') goto yy812;
 -                              if (yych <= 'z') goto yy815;
 +                              if (yych <= '`') goto yy818;
 +                              if (yych <= 'z') goto yy821;
                        } else {
 -                              if (yych != '~') goto yy815;
 +                              if (yych != '~') goto yy821;
                        }
                }
 -yy812:
 -              YYDEBUG(812, *YYCURSOR);
 +yy818:
 +              YYDEBUG(818, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1482 "Zend/zend_language_scanner.l"
 -#line 1480 "Zend/zend_language_scanner.l"
++#line 1484 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state(TSRMLS_C);
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        goto restart;
  }
- #line 7467 "Zend/zend_language_scanner.c"
 -#line 7435 "Zend/zend_language_scanner.c"
 -yy813:
 -              YYDEBUG(813, *YYCURSOR);
++#line 7471 "Zend/zend_language_scanner.c"
 +yy819:
 +              YYDEBUG(819, *YYCURSOR);
                yych = *++YYCURSOR;
 -              goto yy812;
 -yy814:
 -              YYDEBUG(814, *YYCURSOR);
 +              goto yy818;
 +yy820:
 +              YYDEBUG(820, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -yy815:
 -              YYDEBUG(815, *YYCURSOR);
 +yy821:
 +              YYDEBUG(821, *YYCURSOR);
                if (yybm[0+yych] & 128) {
 -                      goto yy814;
 +                      goto yy820;
                }
 -              if (yych == '[') goto yy817;
 -              if (yych == '}') goto yy817;
 -              YYDEBUG(816, *YYCURSOR);
 +              if (yych == '[') goto yy823;
 +              if (yych == '}') goto yy823;
 +              YYDEBUG(822, *YYCURSOR);
                YYCURSOR = YYMARKER;
 -              goto yy812;
 -yy817:
 -              YYDEBUG(817, *YYCURSOR);
 +              goto yy818;
 +yy823:
 +              YYDEBUG(823, *YYCURSOR);
                ++YYCURSOR;
 -              YYDEBUG(818, *YYCURSOR);
 +              YYDEBUG(824, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1472 "Zend/zend_language_scanner.l"
 -#line 1470 "Zend/zend_language_scanner.l"
++#line 1474 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        zend_copy_value(zendlval, yytext, yyleng);
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return T_STRING_VARNAME;
  }
- #line 7501 "Zend/zend_language_scanner.c"
 -#line 7469 "Zend/zend_language_scanner.c"
++#line 7505 "Zend/zend_language_scanner.c"
        }
  /* *********************************** */
  yyc_ST_NOWDOC:
 -      YYDEBUG(819, *YYCURSOR);
 +      YYDEBUG(825, *YYCURSOR);
        YYFILL(1);
        yych = *YYCURSOR;
 -      YYDEBUG(821, *YYCURSOR);
 +      YYDEBUG(827, *YYCURSOR);
        ++YYCURSOR;
 -      YYDEBUG(822, *YYCURSOR);
 +      YYDEBUG(828, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
--#line 2364 "Zend/zend_language_scanner.l"
++#line 2368 "Zend/zend_language_scanner.l"
        {
        int newline = 0;
  
@@@ -7563,7 -7533,7 +7569,7 @@@ nowdoc_scan_done
        HANDLE_NEWLINES(yytext, yyleng - newline);
        return T_ENCAPSED_AND_WHITESPACE;
  }
- #line 7567 "Zend/zend_language_scanner.c"
 -#line 7537 "Zend/zend_language_scanner.c"
++#line 7573 "Zend/zend_language_scanner.c"
  /* *********************************** */
  yyc_ST_VAR_OFFSET:
        {
@@@ -7661,16 -7631,16 +7667,16 @@@ yy831
                        }
                } else {
                        if (yych <= 'b') {
 -                              if (yych <= 'X') goto yy848;
 -                              if (yych >= 'b') goto yy846;
 +                              if (yych <= 'X') goto yy854;
 +                              if (yych >= 'b') goto yy852;
                        } else {
 -                              if (yych == 'x') goto yy848;
 +                              if (yych == 'x') goto yy854;
                        }
                }
 -yy826:
 -              YYDEBUG(826, *YYCURSOR);
 +yy832:
 +              YYDEBUG(832, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1560 "Zend/zend_language_scanner.l"
 -#line 1558 "Zend/zend_language_scanner.l"
++#line 1562 "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 7686 "Zend/zend_language_scanner.c"
 -#line 7656 "Zend/zend_language_scanner.c"
 -yy827:
 -              YYDEBUG(827, *YYCURSOR);
++#line 7692 "Zend/zend_language_scanner.c"
 +yy833:
 +              YYDEBUG(833, *YYCURSOR);
                yych = *++YYCURSOR;
 -              goto yy845;
 -yy828:
 -              YYDEBUG(828, *YYCURSOR);
 +              goto yy851;
 +yy834:
 +              YYDEBUG(834, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '_') {
 -                      if (yych <= '@') goto yy829;
 -                      if (yych <= 'Z') goto yy841;
 -                      if (yych >= '_') goto yy841;
 +                      if (yych <= '@') goto yy835;
 +                      if (yych <= 'Z') goto yy847;
 +                      if (yych >= '_') goto yy847;
                } else {
 -                      if (yych <= '`') goto yy829;
 -                      if (yych <= 'z') goto yy841;
 -                      if (yych >= 0x7F) goto yy841;
 +                      if (yych <= '`') goto yy835;
 +                      if (yych <= 'z') goto yy847;
 +                      if (yych >= 0x7F) goto yy847;
                }
 -yy829:
 -              YYDEBUG(829, *YYCURSOR);
 +yy835:
 +              YYDEBUG(835, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1892 "Zend/zend_language_scanner.l"
 -#line 1890 "Zend/zend_language_scanner.l"
++#line 1894 "Zend/zend_language_scanner.l"
                {
        /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
        return yytext[0];
  }
- #line 7711 "Zend/zend_language_scanner.c"
 -#line 7681 "Zend/zend_language_scanner.c"
 -yy830:
 -              YYDEBUG(830, *YYCURSOR);
++#line 7717 "Zend/zend_language_scanner.c"
 +yy836:
 +              YYDEBUG(836, *YYCURSOR);
                ++YYCURSOR;
 -              YYDEBUG(831, *YYCURSOR);
 +              YYDEBUG(837, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1887 "Zend/zend_language_scanner.l"
 -#line 1885 "Zend/zend_language_scanner.l"
++#line 1889 "Zend/zend_language_scanner.l"
                {
        yy_pop_state(TSRMLS_C);
        return ']';
  }
- #line 7722 "Zend/zend_language_scanner.c"
 -#line 7692 "Zend/zend_language_scanner.c"
 -yy832:
 -              YYDEBUG(832, *YYCURSOR);
++#line 7728 "Zend/zend_language_scanner.c"
 +yy838:
 +              YYDEBUG(838, *YYCURSOR);
                yych = *++YYCURSOR;
 -              goto yy829;
 -yy833:
 -              YYDEBUG(833, *YYCURSOR);
 +              goto yy835;
 +yy839:
 +              YYDEBUG(839, *YYCURSOR);
                ++YYCURSOR;
 -              YYDEBUG(834, *YYCURSOR);
 +              YYDEBUG(840, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1897 "Zend/zend_language_scanner.l"
 -#line 1895 "Zend/zend_language_scanner.l"
++#line 1899 "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 7739 "Zend/zend_language_scanner.c"
 -#line 7709 "Zend/zend_language_scanner.c"
 -yy835:
 -              YYDEBUG(835, *YYCURSOR);
++#line 7745 "Zend/zend_language_scanner.c"
 +yy841:
 +              YYDEBUG(841, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
 -              goto yy840;
 -yy836:
 -              YYDEBUG(836, *YYCURSOR);
 +              goto yy846;
 +yy842:
 +              YYDEBUG(842, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1904 "Zend/zend_language_scanner.l"
 -#line 1902 "Zend/zend_language_scanner.l"
++#line 1906 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
        return T_STRING;
  }
- #line 7754 "Zend/zend_language_scanner.c"
 -#line 7724 "Zend/zend_language_scanner.c"
 -yy837:
 -              YYDEBUG(837, *YYCURSOR);
++#line 7760 "Zend/zend_language_scanner.c"
 +yy843:
 +              YYDEBUG(843, *YYCURSOR);
                ++YYCURSOR;
 -              YYDEBUG(838, *YYCURSOR);
 +              YYDEBUG(844, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 2420 "Zend/zend_language_scanner.l"
 -#line 2422 "Zend/zend_language_scanner.l"
++#line 2426 "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 7769 "Zend/zend_language_scanner.c"
 -#line 7739 "Zend/zend_language_scanner.c"
 -yy839:
 -              YYDEBUG(839, *YYCURSOR);
++#line 7775 "Zend/zend_language_scanner.c"
 +yy845:
 +              YYDEBUG(845, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
@@@ -7792,24 -7762,24 +7798,24 @@@ yy847
                        }
                } else {
                        if (yych <= '`') {
 -                              if (yych <= '_') goto yy841;
 +                              if (yych <= '_') goto yy847;
                        } else {
 -                              if (yych <= 'z') goto yy841;
 -                              if (yych >= 0x7F) goto yy841;
 +                              if (yych <= 'z') goto yy847;
 +                              if (yych >= 0x7F) goto yy847;
                        }
                }
 -yy843:
 -              YYDEBUG(843, *YYCURSOR);
 +yy849:
 +              YYDEBUG(849, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1881 "Zend/zend_language_scanner.l"
 -#line 1879 "Zend/zend_language_scanner.l"
++#line 1883 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
  }
- #line 7811 "Zend/zend_language_scanner.c"
 -#line 7781 "Zend/zend_language_scanner.c"
 -yy844:
 -              YYDEBUG(844, *YYCURSOR);
++#line 7817 "Zend/zend_language_scanner.c"
 +yy850:
 +              YYDEBUG(850, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
@@@ -7841,22 -7811,22 +7847,22 @@@ yy855
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -              YYDEBUG(850, *YYCURSOR);
 -              if (yych <= '/') goto yy851;
 -              if (yych <= '9') goto yy849;
 -yy851:
 -              YYDEBUG(851, *YYCURSOR);
 +              YYDEBUG(856, *YYCURSOR);
 +              if (yych <= '/') goto yy857;
 +              if (yych <= '9') goto yy855;
 +yy857:
 +              YYDEBUG(857, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
- #line 1572 "Zend/zend_language_scanner.l"
 -#line 1570 "Zend/zend_language_scanner.l"
++#line 1574 "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 7858 "Zend/zend_language_scanner.c"
 -#line 7828 "Zend/zend_language_scanner.c"
 -yy852:
 -              YYDEBUG(852, *YYCURSOR);
++#line 7864 "Zend/zend_language_scanner.c"
 +yy858:
 +              YYDEBUG(858, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
@@@ -7870,13 -7840,13 +7876,13 @@@ yy860
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
 -              YYDEBUG(855, *YYCURSOR);
 +              YYDEBUG(861, *YYCURSOR);
                if (yybm[0+yych] & 128) {
 -                      goto yy854;
 +                      goto yy860;
                }
 -              goto yy851;
 +              goto yy857;
        }
  }
- #line 2429 "Zend/zend_language_scanner.l"
 -#line 2431 "Zend/zend_language_scanner.l"
++#line 2435 "Zend/zend_language_scanner.l"
  
  }
Simple merge
index 2281cc728921ee8a792a425ea2bfc11eb52d0f9e,5309ac2327886f94aa3b669d28a647e6dd1d358a..47df7e92de3166463215df34c3b5ef6f2923f0f6
@@@ -1,4 -1,4 +1,4 @@@
- /* Generated by re2c 0.13.5 on Mon Aug 13 16:40:42 2012 */
 -/* Generated by re2c 0.13.5 on Sun Aug 19 20:57:55 2012 */
++/* Generated by re2c 0.13.5 on Mon Aug 20 13:34:50 2012 */
  #line 3 "Zend/zend_language_scanner_defs.h"
  
  enum YYCONDTYPE {
Simple merge
index 49ee3148e3d039b7d542d1e520e92e1744dd7d4e,1da4c12440a38f270f39edad6635b7fa646ff623..f8955c5bf507deb30022b0696b8509111d667162
@@@ -5344,208 -5317,50 +5344,208 @@@ ZEND_VM_HANDLER(156, ZEND_SEPARATE, VAR
        ZEND_VM_NEXT_OPCODE();
  }
  
- ZEND_VM_HANDLER(159, ZEND_LEAVE, ANY, ANY) {
+ ZEND_VM_HANDLER(159, ZEND_LEAVE, ANY, ANY)
  {
-     USE_OPLINE;
+       USE_OPLINE
+       zend_uint i, op_num = opline - EG(active_op_array)->opcodes;
        SAVE_OPLINE();
-     zend_uint i, op_num = opline - EG(active_op_array)->opcodes;
-     zend_exception_restore(TSRMLS_C);
-     if (EX(leaving)) {
-         zend_uint catch_op_num = 0, finally_op_num = 0;
-         for (i = 0; i < EX(leaving); i++) {
-             if (EG(active_op_array)->try_catch_array[i].try_op > op_num) {
-                 break;
-             } 
-             if (op_num < EG(active_op_array)->try_catch_array[i].finally_op) {
-                 finally_op_num = EG(active_op_array)->try_catch_array[i].finally_op;
-             }
-             if (EG(exception)) {
-                 if (op_num < EG(active_op_array)->try_catch_array[i].catch_op) {
-                     catch_op_num = EG(active_op_array)->try_catch_array[i].catch_op;
-                 }
-             }
-         }
-         if (catch_op_num && finally_op_num) {
-             if (catch_op_num > finally_op_num) {
-                 ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[finally_op_num]);
-                 ZEND_VM_CONTINUE();
-             } else {
-                 EX(leaving) = 0;
-                 ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[catch_op_num]);
-                 ZEND_VM_CONTINUE();
-             }
-         } else if (catch_op_num) {
-             ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[catch_op_num]);
-             ZEND_VM_CONTINUE();
-         } else if (finally_op_num) {
-             ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[finally_op_num]);
-             ZEND_VM_CONTINUE();
-         } else {
-             ZEND_VM_DISPATCH_TO_HELPER(zend_leave_helper);
-         }
-     } else {
-         ZEND_VM_NEXT_OPCODE();
-     }
+       zend_exception_restore(TSRMLS_C);
+       if (EX(leaving)) {
+               zend_uint catch_op_num = 0, finally_op_num = 0;
+               for (i = 0; i < EX(leaving); i++) {
+                       if (EG(active_op_array)->try_catch_array[i].try_op > op_num) {
+                               break;
+                       } 
+                       if (op_num < EG(active_op_array)->try_catch_array[i].finally_op) {
+                               finally_op_num = EG(active_op_array)->try_catch_array[i].finally_op;
+                       }
+                       if (EG(exception)) {
+                               if (op_num < EG(active_op_array)->try_catch_array[i].catch_op) {
+                                       catch_op_num = EG(active_op_array)->try_catch_array[i].catch_op;
+                               }
+                       }
+               }
+               if (catch_op_num && finally_op_num) {
+                       if (catch_op_num > finally_op_num) {
+                               ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[finally_op_num]);
+                               ZEND_VM_CONTINUE();
+                       } else {
+                               EX(leaving) = 0;
+                               ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[catch_op_num]);
+                               ZEND_VM_CONTINUE();
+                       }
+               } else if (catch_op_num) {
+                       ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[catch_op_num]);
+                       ZEND_VM_CONTINUE();
+               } else if (finally_op_num) {
+                       ZEND_VM_SET_OPCODE(&EX(op_array)->opcodes[finally_op_num]);
+                       ZEND_VM_CONTINUE();
+               } else {
+                       ZEND_VM_DISPATCH_TO_HELPER(zend_leave_helper);
+               }
+       } else {
+               ZEND_VM_NEXT_OPCODE();
+       }
  }
  
 +ZEND_VM_HANDLER(160, ZEND_YIELD, CONST|TMP|VAR|CV|UNUSED, CONST|TMP|VAR|CV|UNUSED)
 +{
 +      USE_OPLINE
 +
 +      /* The generator object is stored in return_value_ptr_ptr */
 +      zend_generator *generator = (zend_generator *) EG(return_value_ptr_ptr);
 +
 +      /* Destroy the previously yielded value */
 +      if (generator->value) {
 +              zval_ptr_dtor(&generator->value);
 +      }
 +
 +      /* Destroy the previously yielded key */
 +      if (generator->key) {
 +              zval_ptr_dtor(&generator->key);
 +      }
 +
 +      /* Set the new yielded value */
 +      if (OP1_TYPE != IS_UNUSED) {
 +              zend_free_op free_op1;
 +
 +              if (EX(op_array)->fn_flags & ZEND_ACC_RETURN_REFERENCE) {
 +                      /* Constants and temporary variables aren't yieldable by reference,
 +                       * but we still allow them with a notice. */
 +                      if (OP1_TYPE == IS_CONST || OP1_TYPE == IS_TMP_VAR) {
 +                              zval *value, *copy;
 +
 +                              zend_error(E_NOTICE, "Only variable references should be yielded by reference");
 +
 +                              value = GET_OP1_ZVAL_PTR(BP_VAR_R);
 +                              ALLOC_ZVAL(copy);
 +                              INIT_PZVAL_COPY(copy, value);
 +
 +                              /* Temporary variables don't need ctor copying */
 +                              if (!IS_OP1_TMP_FREE()) {
 +                                      zval_copy_ctor(copy);
 +                              }
 +
 +                              generator->value = copy;
 +                      } else {
 +                              zval **value_ptr = GET_OP1_ZVAL_PTR_PTR(BP_VAR_W);
 +
 +                              if (OP1_TYPE == IS_VAR && UNEXPECTED(value_ptr == NULL)) {
 +                                      zend_error_noreturn(E_ERROR, "Cannot yield string offsets by reference");
 +                              }
 +
 +                              /* If a function call result is yielded and the function did
 +                               * not return by reference we throw a notice. */
 +                              if (OP1_TYPE == IS_VAR && !Z_ISREF_PP(value_ptr)
 +                                  && !(opline->extended_value == ZEND_RETURNS_FUNCTION
 +                                       && EX_T(opline->op1.var).var.fcall_returned_reference)
 +                                  && EX_T(opline->op1.var).var.ptr_ptr == &EX_T(opline->op1.var).var.ptr) {
 +                                      zend_error(E_NOTICE, "Only variable references should be yielded by reference");
 +
 +                                      Z_ADDREF_PP(value_ptr);
 +                                      generator->value = *value_ptr;
 +                              } else {
 +                                      SEPARATE_ZVAL_TO_MAKE_IS_REF(value_ptr);
 +                                      Z_ADDREF_PP(value_ptr);
 +                                      generator->value = *value_ptr;
 +                              }
 +
 +                              FREE_OP1_IF_VAR();
 +                      }
 +              } else {
 +                      zval *value = GET_OP1_ZVAL_PTR(BP_VAR_R);
 +
 +                      /* Consts, temporary variables and references need copying */
 +                      if (OP1_TYPE == IS_CONST || OP1_TYPE == IS_TMP_VAR
 +                              || (PZVAL_IS_REF(value) && Z_REFCOUNT_P(value) > 0)
 +                      ) {
 +                              zval *copy;
 +
 +                              ALLOC_ZVAL(copy);
 +                              INIT_PZVAL_COPY(copy, value);
 +
 +                              /* Temporary variables don't need ctor copying */
 +                              if (!IS_OP1_TMP_FREE()) {
 +                                      zval_copy_ctor(copy);
 +                              }
 +
 +                              generator->value = copy;
 +                      } else {
 +                              Z_ADDREF_P(value);
 +                              generator->value = value;
 +                      }
 +
 +                      FREE_OP1_IF_VAR();
 +              }
 +      } else {
 +              /* If no value was specified yield null */
 +              Z_ADDREF(EG(uninitialized_zval));
 +              generator->value = &EG(uninitialized_zval);
 +      }
 +
 +      /* Set the new yielded key */
 +      if (OP2_TYPE != IS_UNUSED) {
 +              zend_free_op free_op2;
 +              zval *key = GET_OP2_ZVAL_PTR(BP_VAR_R);
 +
 +              /* Consts, temporary variables and references need copying */
 +              if (OP2_TYPE == IS_CONST || OP2_TYPE == IS_TMP_VAR
 +                      || (PZVAL_IS_REF(key) && Z_REFCOUNT_P(key) > 0)
 +              ) {
 +                      zval *copy;
 +
 +                      ALLOC_ZVAL(copy);
 +                      INIT_PZVAL_COPY(copy, key);
 +
 +                      /* Temporary variables don't need ctor copying */
 +                      if (!IS_OP1_TMP_FREE()) {
 +                              zval_copy_ctor(copy);
 +                      }
 +
 +                      generator->key = copy;
 +              } else {
 +                      Z_ADDREF_P(key);
 +                      generator->key = key;
 +              }
 +
 +              if (Z_TYPE_P(generator->key) == IS_LONG
 +                  && Z_LVAL_P(generator->key) > generator->largest_used_integer_key
 +              ) {
 +                      generator->largest_used_integer_key = Z_LVAL_P(generator->key);
 +              }
 +
 +              FREE_OP2_IF_VAR();
 +      } else {
 +              /* If no key was specified we use auto-increment keys */
 +              generator->largest_used_integer_key++;
 +
 +              ALLOC_INIT_ZVAL(generator->key);
 +              ZVAL_LONG(generator->key, generator->largest_used_integer_key);
 +      }
 +
 +      /* If a value is sent it should go into the result var */
 +      generator->send_target = &EX_T(opline->result.var);
 +
 +      /* Initialize the sent value to NULL */
 +      Z_ADDREF(EG(uninitialized_zval));
 +      AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
 +
 +      /* We increment to the next op, so we are at the correct position when the
 +       * generator is resumed. */
 +      ZEND_VM_INC_OPCODE();
 +
 +      /* The GOTO VM uses a local opline variable. We need to set the opline
 +       * variable in execute_data so we don't resume at an old position. */
 +      SAVE_OPLINE();
 +
 +      ZEND_VM_RETURN();
 +}
 +
 +ZEND_VM_HANDLER(161, ZEND_DELEGATE_YIELD, CONST|TMP|VAR|CV, ANY)
 +{
 +      ZEND_VM_NEXT_OPCODE();
 +}
 +
  ZEND_VM_EXPORT_HELPER(zend_do_fcall, zend_do_fcall_common_helper)
Simple merge
index 85fa343db1e8f9e035a75542f869e06a53267b77,a915bb8eacca0e14215a57834d7bec9f333fd126..c1b3e57662414c795b406d2cabbe1b472edb9c2d
@@@ -108,9 -108,9 +108,10 @@@ void tokenizer_register_constants(INIT_
        REGISTER_LONG_CONSTANT("T_FUNCTION", T_FUNCTION, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("T_CONST", T_CONST, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("T_RETURN", T_RETURN, CONST_CS | CONST_PERSISTENT);
 +      REGISTER_LONG_CONSTANT("T_YIELD", T_YIELD, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("T_TRY", T_TRY, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("T_CATCH", T_CATCH, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("T_FINALLY", T_FINALLY, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("T_THROW", T_THROW, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("T_USE", T_USE, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("T_INSTEADOF", T_INSTEADOF, CONST_CS | CONST_PERSISTENT);
@@@ -243,9 -243,9 +244,10 @@@ char *get_token_type_name(int token_typ
                case T_FUNCTION: return "T_FUNCTION";
                case T_CONST: return "T_CONST";
                case T_RETURN: return "T_RETURN";
 +              case T_YIELD: return "T_YIELD";
                case T_TRY: return "T_TRY";
                case T_CATCH: return "T_CATCH";
+               case T_FINALLY: return "T_FINALLY";
                case T_THROW: return "T_THROW";
                case T_USE: return "T_USE";
                case T_INSTEADOF: return "T_INSTEADOF";