]> granicus.if.org Git - php/commitdiff
- add binary suport, FR #50638, as defined in RFC https://wiki.php.net/rfc/binnotatio...
authorPierre Joye <pajoye@php.net>
Wed, 27 Jul 2011 00:14:02 +0000 (00:14 +0000)
committerPierre Joye <pajoye@php.net>
Wed, 27 Jul 2011 00:14:02 +0000 (00:14 +0000)
NEWS
Zend/zend_language_scanner.c
Zend/zend_language_scanner.l
Zend/zend_language_scanner_defs.h
Zend/zend_strtod.c
Zend/zend_strtod.h

diff --git a/NEWS b/NEWS
index f91b6905b17b527ed716dd2ac82451ac3c7e7384..fa43b3417de9ab795efdd923c8f5f0f717afb9c8 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -4,7 +4,8 @@
 - Added features:
  . Short array syntax, see UPGRADING guide for full details (rsky0711 at gmail 
    . com, sebastian.deutsch at 9elements . com, Pierre)
+ . Binary numbers format (0b001010). (John Harris at gmail dot com)
+
 - Removed features:
   . Removed magic_quotes_gpc, magic_quotes_runtime and magic_quotes_sybase ini options.
     get_magic_quotes_gpc, get_magic_quotes_runtime are kept but always return
index 9b7ddd3c10b956186a7daefa2d3e6fb936e0b869..3535c3af7397350b6f060ef7a9161789d70c8310 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Thu Jun 23 19:47:38 2011 */
+/* Generated by re2c 0.13.5 on Wed Jul 27 02:02:52 2011 */
 #line 1 "Zend/zend_language_scanner.l"
 /*
    +----------------------------------------------------------------------+
@@ -1083,7 +1083,7 @@ yyc_INITIAL:
 yy3:
                YYDEBUG(3, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1712 "Zend/zend_language_scanner.l"
+#line 1733 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                return 0;
@@ -1161,7 +1161,7 @@ yy5:
 yy6:
                YYDEBUG(6, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1700 "Zend/zend_language_scanner.l"
+#line 1721 "Zend/zend_language_scanner.l"
                {
        if (CG(short_tags)) {
                zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1180,7 +1180,7 @@ yy7:
                if ((yych = *YYCURSOR) == '=') goto yy43;
                YYDEBUG(8, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1677 "Zend/zend_language_scanner.l"
+#line 1698 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1378,7 +1378,7 @@ yy35:
                ++YYCURSOR;
                YYDEBUG(38, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1637 "Zend/zend_language_scanner.l"
+#line 1658 "Zend/zend_language_scanner.l"
                {
        YYCTYPE *bracket = zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1));
 
@@ -1422,7 +1422,7 @@ yy43:
                ++YYCURSOR;
                YYDEBUG(44, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1655 "Zend/zend_language_scanner.l"
+#line 1676 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1440,7 +1440,7 @@ yy45:
                ++YYCURSOR;
                YYDEBUG(46, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1668 "Zend/zend_language_scanner.l"
+#line 1689 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
@@ -1475,7 +1475,7 @@ yy50:
 yy51:
                YYDEBUG(51, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1690 "Zend/zend_language_scanner.l"
+#line 1711 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
@@ -1555,7 +1555,7 @@ yyc_ST_BACKQUOTE:
 yy56:
                YYDEBUG(56, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2163 "Zend/zend_language_scanner.l"
+#line 2184 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                return 0;
@@ -1607,7 +1607,7 @@ yy58:
                ++YYCURSOR;
                YYDEBUG(59, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2107 "Zend/zend_language_scanner.l"
+#line 2128 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '`';
@@ -1622,7 +1622,7 @@ yy61:
                ++YYCURSOR;
                YYDEBUG(62, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2094 "Zend/zend_language_scanner.l"
+#line 2115 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
@@ -1645,7 +1645,7 @@ yy63:
 yy65:
                YYDEBUG(65, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1794 "Zend/zend_language_scanner.l"
+#line 1815 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
@@ -1657,7 +1657,7 @@ yy66:
                ++YYCURSOR;
                YYDEBUG(67, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1430 "Zend/zend_language_scanner.l"
+#line 1431 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
@@ -1676,7 +1676,7 @@ yy70:
                ++YYCURSOR;
                YYDEBUG(71, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1786 "Zend/zend_language_scanner.l"
+#line 1807 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -1702,7 +1702,7 @@ yy73:
                ++YYCURSOR;
                YYDEBUG(74, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1776 "Zend/zend_language_scanner.l"
+#line 1797 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -1778,7 +1778,7 @@ yy77:
 yy78:
                YYDEBUG(78, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2113 "Zend/zend_language_scanner.l"
+#line 2134 "Zend/zend_language_scanner.l"
                {
        if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
                YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
@@ -1838,7 +1838,7 @@ yy80:
                ++YYCURSOR;
                YYDEBUG(81, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2102 "Zend/zend_language_scanner.l"
+#line 2123 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '"';
@@ -1853,7 +1853,7 @@ yy83:
                ++YYCURSOR;
                YYDEBUG(84, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2094 "Zend/zend_language_scanner.l"
+#line 2115 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
@@ -1876,7 +1876,7 @@ yy85:
 yy87:
                YYDEBUG(87, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1794 "Zend/zend_language_scanner.l"
+#line 1815 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
@@ -1888,7 +1888,7 @@ yy88:
                ++YYCURSOR;
                YYDEBUG(89, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1430 "Zend/zend_language_scanner.l"
+#line 1431 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
@@ -1907,7 +1907,7 @@ yy92:
                ++YYCURSOR;
                YYDEBUG(93, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1786 "Zend/zend_language_scanner.l"
+#line 1807 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -1933,7 +1933,7 @@ yy95:
                ++YYCURSOR;
                YYDEBUG(96, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1776 "Zend/zend_language_scanner.l"
+#line 1797 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -1952,7 +1952,7 @@ yyc_ST_END_HEREDOC:
        ++YYCURSOR;
        YYDEBUG(100, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 2081 "Zend/zend_language_scanner.l"
+#line 2102 "Zend/zend_language_scanner.l"
        {
        YYCURSOR += CG(heredoc_len) - 1;
        yyleng = CG(heredoc_len);
@@ -2026,7 +2026,7 @@ yy103:
 yy104:
                YYDEBUG(104, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2205 "Zend/zend_language_scanner.l"
+#line 2226 "Zend/zend_language_scanner.l"
                {
        int newline = 0;
 
@@ -2112,7 +2112,7 @@ yy107:
                ++YYCURSOR;
                YYDEBUG(108, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2094 "Zend/zend_language_scanner.l"
+#line 2115 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
@@ -2135,7 +2135,7 @@ yy109:
 yy111:
                YYDEBUG(111, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1794 "Zend/zend_language_scanner.l"
+#line 1815 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
@@ -2147,7 +2147,7 @@ yy112:
                ++YYCURSOR;
                YYDEBUG(113, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1430 "Zend/zend_language_scanner.l"
+#line 1431 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
@@ -2166,7 +2166,7 @@ yy116:
                ++YYCURSOR;
                YYDEBUG(117, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1786 "Zend/zend_language_scanner.l"
+#line 1807 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -2192,7 +2192,7 @@ yy119:
                ++YYCURSOR;
                YYDEBUG(120, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1776 "Zend/zend_language_scanner.l"
+#line 1797 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -2212,32 +2212,32 @@ yyc_ST_IN_SCRIPTING:
                          0,   0,   0,   0,   0,   0,   0,   0, 
                        192,   0,   0,   0,   0,   0,   0,   0, 
                          0,   0,   0,   0,   0,   0,   0,   0, 
-                        56,  56,  56,  56,  56,  56,  56,  56
-                        56,  56,   0,   0,   0,   0,   0,   0, 
-                         0,  40,  40,  40,  40,  40,  40,   8
-                         8,   8,   8,   8,   8,   8,   8,   8
-                         8,   8,   8,   8,   8,   8,   8,   8
-                         8,   8,   8,   0,   0,   0,   0,   8
-                         0,  40,  40,  40,  40,  40,  40,   8
-                         8,   8,   8,   8,   8,   8,   8,   8
-                         8,   8,   8,   8,   8,   8,   8,   8
-                         8,   8,   8,   0,   0,   0,   0,   8
-                         8,   8,   8,   8,   8,   8,   8,   8
-                         8,   8,   8,   8,   8,   8,   8,   8
-                         8,   8,   8,   8,   8,   8,   8,   8
-                         8,   8,   8,   8,   8,   8,   8,   8
-                         8,   8,   8,   8,   8,   8,   8,   8
-                         8,   8,   8,   8,   8,   8,   8,   8
-                         8,   8,   8,   8,   8,   8,   8,   8
-                         8,   8,   8,   8,   8,   8,   8,   8
-                         8,   8,   8,   8,   8,   8,   8,   8
-                         8,   8,   8,   8,   8,   8,   8,   8
-                         8,   8,   8,   8,   8,   8,   8,   8
-                         8,   8,   8,   8,   8,   8,   8,   8
-                         8,   8,   8,   8,   8,   8,   8,   8
-                         8,   8,   8,   8,   8,   8,   8,   8
-                         8,   8,   8,   8,   8,   8,   8,   8
-                         8,   8,   8,   8,   8,   8,   8,   8
+                        60,  60,  44,  44,  44,  44,  44,  44
+                        44,  44,   0,   0,   0,   0,   0,   0, 
+                         0,  36,  36,  36,  36,  36,  36,   4
+                         4,   4,   4,   4,   4,   4,   4,   4
+                         4,   4,   4,   4,   4,   4,   4,   4
+                         4,   4,   4,   0,   0,   0,   0,   4
+                         0,  36,  36,  36,  36,  36,  36,   4
+                         4,   4,   4,   4,   4,   4,   4,   4
+                         4,   4,   4,   4,   4,   4,   4,   4
+                         4,   4,   4,   0,   0,   0,   0,   4
+                         4,   4,   4,   4,   4,   4,   4,   4
+                         4,   4,   4,   4,   4,   4,   4,   4
+                         4,   4,   4,   4,   4,   4,   4,   4
+                         4,   4,   4,   4,   4,   4,   4,   4
+                         4,   4,   4,   4,   4,   4,   4,   4
+                         4,   4,   4,   4,   4,   4,   4,   4
+                         4,   4,   4,   4,   4,   4,   4,   4
+                         4,   4,   4,   4,   4,   4,   4,   4
+                         4,   4,   4,   4,   4,   4,   4,   4
+                         4,   4,   4,   4,   4,   4,   4,   4
+                         4,   4,   4,   4,   4,   4,   4,   4
+                         4,   4,   4,   4,   4,   4,   4,   4
+                         4,   4,   4,   4,   4,   4,   4,   4
+                         4,   4,   4,   4,   4,   4,   4,   4
+                         4,   4,   4,   4,   4,   4,   4,   4
+                         4,   4,   4,   4,   4,   4,   4,   4
                };
                YYDEBUG(121, *YYCURSOR);
                YYFILL(16);
@@ -2365,23 +2365,23 @@ yy123:
                YYDEBUG(-1, yych);
                switch ((yych = *YYCURSOR)) {
                case 'C':
-               case 'c':       goto yy707;
+               case 'c':       goto yy711;
                case 'L':
-               case 'l':       goto yy708;
+               case 'l':       goto yy712;
                case 'M':
-               case 'm':       goto yy709;
+               case 'm':       goto yy713;
                case 'N':
-               case 'n':       goto yy710;
+               case 'n':       goto yy714;
                case 'V':
-               case 'v':       goto yy711;
+               case 'v':       goto yy715;
                case 'X':
-               case 'x':       goto yy712;
+               case 'x':       goto yy716;
                default:        goto yy186;
                }
 yy124:
                YYDEBUG(124, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1817 "Zend/zend_language_scanner.l"
+#line 1838 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
@@ -2393,20 +2393,20 @@ yy125:
                yych = *++YYCURSOR;
                if (yych <= 'O') {
                        if (yych <= 'H') {
-                               if (yych == 'E') goto yy689;
+                               if (yych == 'E') goto yy693;
                                goto yy186;
                        } else {
-                               if (yych <= 'I') goto yy690;
+                               if (yych <= 'I') goto yy694;
                                if (yych <= 'N') goto yy186;
-                               goto yy691;
+                               goto yy695;
                        }
                } else {
                        if (yych <= 'h') {
-                               if (yych == 'e') goto yy689;
+                               if (yych == 'e') goto yy693;
                                goto yy186;
                        } else {
-                               if (yych <= 'i') goto yy690;
-                               if (yych == 'o') goto yy691;
+                               if (yych <= 'i') goto yy694;
+                               if (yych == 'o') goto yy695;
                                goto yy186;
                        }
                }
@@ -2415,20 +2415,20 @@ yy126:
                yych = *++YYCURSOR;
                if (yych <= 'U') {
                        if (yych <= 'N') {
-                               if (yych == 'I') goto yy668;
+                               if (yych == 'I') goto yy672;
                                goto yy186;
                        } else {
-                               if (yych <= 'O') goto yy669;
+                               if (yych <= 'O') goto yy673;
                                if (yych <= 'T') goto yy186;
-                               goto yy670;
+                               goto yy674;
                        }
                } else {
                        if (yych <= 'n') {
-                               if (yych == 'i') goto yy668;
+                               if (yych == 'i') goto yy672;
                                goto yy186;
                        } else {
-                               if (yych <= 'o') goto yy669;
-                               if (yych == 'u') goto yy670;
+                               if (yych <= 'o') goto yy673;
+                               if (yych == 'u') goto yy674;
                                goto yy186;
                        }
                }
@@ -2437,42 +2437,42 @@ yy127:
                yych = *++YYCURSOR;
                if (yych <= 'O') {
                        if (yych <= 'K') {
-                               if (yych == 'A') goto yy640;
+                               if (yych == 'A') goto yy644;
                                goto yy186;
                        } else {
-                               if (yych <= 'L') goto yy641;
+                               if (yych <= 'L') goto yy645;
                                if (yych <= 'N') goto yy186;
-                               goto yy642;
+                               goto yy646;
                        }
                } else {
                        if (yych <= 'k') {
-                               if (yych == 'a') goto yy640;
+                               if (yych == 'a') goto yy644;
                                goto yy186;
                        } else {
-                               if (yych <= 'l') goto yy641;
-                               if (yych == 'o') goto yy642;
+                               if (yych <= 'l') goto yy645;
+                               if (yych == 'o') goto yy646;
                                goto yy186;
                        }
                }
 yy128:
                YYDEBUG(128, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy622;
-               if (yych == 'e') goto yy622;
+               if (yych == 'E') goto yy626;
+               if (yych == 'e') goto yy626;
                goto yy186;
 yy129:
                YYDEBUG(129, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'R') {
-                       if (yych == 'H') goto yy610;
+                       if (yych == 'H') goto yy614;
                        if (yych <= 'Q') goto yy186;
-                       goto yy611;
+                       goto yy615;
                } else {
                        if (yych <= 'h') {
                                if (yych <= 'g') goto yy186;
-                               goto yy610;
+                               goto yy614;
                        } else {
-                               if (yych == 'r') goto yy611;
+                               if (yych == 'r') goto yy615;
                                goto yy186;
                        }
                }
@@ -2481,53 +2481,53 @@ yy130:
                yych = *++YYCURSOR;
                if (yych <= 'S') {
                        if (yych <= 'L') {
-                               if (yych == 'F') goto yy557;
+                               if (yych == 'F') goto yy561;
                                goto yy186;
                        } else {
-                               if (yych <= 'M') goto yy559;
-                               if (yych <= 'N') goto yy560;
+                               if (yych <= 'M') goto yy563;
+                               if (yych <= 'N') goto yy564;
                                if (yych <= 'R') goto yy186;
-                               goto yy561;
+                               goto yy565;
                        }
                } else {
                        if (yych <= 'm') {
-                               if (yych == 'f') goto yy557;
+                               if (yych == 'f') goto yy561;
                                if (yych <= 'l') goto yy186;
-                               goto yy559;
+                               goto yy563;
                        } else {
-                               if (yych <= 'n') goto yy560;
-                               if (yych == 's') goto yy561;
+                               if (yych <= 'n') goto yy564;
+                               if (yych == 's') goto yy565;
                                goto yy186;
                        }
                }
 yy131:
                YYDEBUG(131, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy552;
-               if (yych == 'h') goto yy552;
+               if (yych == 'H') goto yy556;
+               if (yych == 'h') goto yy556;
                goto yy186;
 yy132:
                YYDEBUG(132, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'S') {
                        if (yych <= 'M') {
-                               if (yych == 'B') goto yy534;
+                               if (yych == 'B') goto yy538;
                                goto yy186;
                        } else {
-                               if (yych <= 'N') goto yy535;
+                               if (yych <= 'N') goto yy539;
                                if (yych <= 'Q') goto yy186;
-                               if (yych <= 'R') goto yy536;
-                               goto yy537;
+                               if (yych <= 'R') goto yy540;
+                               goto yy541;
                        }
                } else {
                        if (yych <= 'n') {
-                               if (yych == 'b') goto yy534;
+                               if (yych == 'b') goto yy538;
                                if (yych <= 'm') goto yy186;
-                               goto yy535;
+                               goto yy539;
                        } else {
                                if (yych <= 'q') goto yy186;
-                               if (yych <= 'r') goto yy536;
-                               if (yych <= 's') goto yy537;
+                               if (yych <= 'r') goto yy540;
+                               if (yych <= 's') goto yy541;
                                goto yy186;
                        }
                }
@@ -2535,15 +2535,15 @@ yy133:
                YYDEBUG(133, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'W') {
-                       if (yych == 'T') goto yy522;
+                       if (yych == 'T') goto yy526;
                        if (yych <= 'V') goto yy186;
-                       goto yy523;
+                       goto yy527;
                } else {
                        if (yych <= 't') {
                                if (yych <= 's') goto yy186;
-                               goto yy522;
+                               goto yy526;
                        } else {
-                               if (yych == 'w') goto yy523;
+                               if (yych == 'w') goto yy527;
                                goto yy186;
                        }
                }
@@ -2554,18 +2554,18 @@ yy134:
                if (yych <= ';') {
                        if (yych <= '"') {
                                if (yych <= '!') goto yy186;
-                               goto yy514;
+                               goto yy518;
                        } else {
-                               if (yych == '\'') goto yy515;
+                               if (yych == '\'') goto yy519;
                                goto yy186;
                        }
                } else {
                        if (yych <= 'R') {
-                               if (yych <= '<') goto yy513;
+                               if (yych <= '<') goto yy517;
                                if (yych <= 'Q') goto yy186;
-                               goto yy516;
+                               goto yy520;
                        } else {
-                               if (yych == 'r') goto yy516;
+                               if (yych == 'r') goto yy520;
                                goto yy186;
                        }
                }
@@ -2573,15 +2573,15 @@ yy135:
                YYDEBUG(135, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'O') {
-                       if (yych == 'L') goto yy503;
+                       if (yych == 'L') goto yy507;
                        if (yych <= 'N') goto yy186;
-                       goto yy504;
+                       goto yy508;
                } else {
                        if (yych <= 'l') {
                                if (yych <= 'k') goto yy186;
-                               goto yy503;
+                               goto yy507;
                        } else {
-                               if (yych == 'o') goto yy504;
+                               if (yych == 'o') goto yy508;
                                goto yy186;
                        }
                }
@@ -2589,15 +2589,15 @@ yy136:
                YYDEBUG(136, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'U') {
-                       if (yych == 'R') goto yy479;
+                       if (yych == 'R') goto yy483;
                        if (yych <= 'T') goto yy186;
-                       goto yy480;
+                       goto yy484;
                } else {
                        if (yych <= 'r') {
                                if (yych <= 'q') goto yy186;
-                               goto yy479;
+                               goto yy483;
                        } else {
-                               if (yych == 'u') goto yy480;
+                               if (yych == 'u') goto yy484;
                                goto yy186;
                        }
                }
@@ -2605,15 +2605,15 @@ yy137:
                YYDEBUG(137, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '<') {
-                       if (yych == '-') goto yy475;
+                       if (yych == '-') goto yy479;
                } else {
-                       if (yych <= '=') goto yy473;
-                       if (yych <= '>') goto yy477;
+                       if (yych <= '=') goto yy477;
+                       if (yych <= '>') goto yy481;
                }
 yy138:
                YYDEBUG(138, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1419 "Zend/zend_language_scanner.l"
+#line 1420 "Zend/zend_language_scanner.l"
                {
        return yytext[0];
 }
@@ -2622,11 +2622,11 @@ yy139:
                YYDEBUG(139, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
-               goto yy472;
+               goto yy476;
 yy140:
                YYDEBUG(140, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1154 "Zend/zend_language_scanner.l"
+#line 1155 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
@@ -2638,14 +2638,14 @@ yy140:
 yy141:
                YYDEBUG(141, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == ':') goto yy469;
+               if (yych == ':') goto yy473;
                goto yy138;
 yy142:
                YYDEBUG(142, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(143, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1183 "Zend/zend_language_scanner.l"
+#line 1184 "Zend/zend_language_scanner.l"
                {
        return T_NS_SEPARATOR;
 }
@@ -2654,23 +2654,23 @@ yy144:
                YYDEBUG(144, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'E') {
-                       if (yych == 'A') goto yy457;
+                       if (yych == 'A') goto yy461;
                        if (yych <= 'D') goto yy186;
-                       goto yy458;
+                       goto yy462;
                } else {
                        if (yych <= 'a') {
                                if (yych <= '`') goto yy186;
-                               goto yy457;
+                               goto yy461;
                        } else {
-                               if (yych == 'e') goto yy458;
+                               if (yych == 'e') goto yy462;
                                goto yy186;
                        }
                }
 yy145:
                YYDEBUG(145, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy454;
-               if (yych == 'a') goto yy454;
+               if (yych == 'A') goto yy458;
+               if (yych == 'a') goto yy458;
                goto yy186;
 yy146:
                YYDEBUG(146, *YYCURSOR);
@@ -2679,47 +2679,47 @@ yy146:
                if (yych <= 'S') {
                        if (yych <= 'D') {
                                if (yych <= ' ') {
-                                       if (yych == '\t') goto yy379;
+                                       if (yych == '\t') goto yy383;
                                        if (yych <= 0x1F) goto yy138;
-                                       goto yy379;
+                                       goto yy383;
                                } else {
                                        if (yych <= '@') goto yy138;
                                        if (yych == 'C') goto yy138;
-                                       goto yy379;
+                                       goto yy383;
                                }
                        } else {
                                if (yych <= 'I') {
-                                       if (yych == 'F') goto yy379;
+                                       if (yych == 'F') goto yy383;
                                        if (yych <= 'H') goto yy138;
-                                       goto yy379;
+                                       goto yy383;
                                } else {
-                                       if (yych == 'O') goto yy379;
+                                       if (yych == 'O') goto yy383;
                                        if (yych <= 'Q') goto yy138;
-                                       goto yy379;
+                                       goto yy383;
                                }
                        }
                } else {
                        if (yych <= 'f') {
                                if (yych <= 'b') {
-                                       if (yych == 'U') goto yy379;
+                                       if (yych == 'U') goto yy383;
                                        if (yych <= '`') goto yy138;
-                                       goto yy379;
+                                       goto yy383;
                                } else {
-                                       if (yych == 'd') goto yy379;
+                                       if (yych == 'd') goto yy383;
                                        if (yych <= 'e') goto yy138;
-                                       goto yy379;
+                                       goto yy383;
                                }
                        } else {
                                if (yych <= 'o') {
-                                       if (yych == 'i') goto yy379;
+                                       if (yych == 'i') goto yy383;
                                        if (yych <= 'n') goto yy138;
-                                       goto yy379;
+                                       goto yy383;
                                } else {
                                        if (yych <= 's') {
                                                if (yych <= 'q') goto yy138;
-                                               goto yy379;
+                                               goto yy383;
                                        } else {
-                                               if (yych == 'u') goto yy379;
+                                               if (yych == 'u') goto yy383;
                                                goto yy138;
                                        }
                                }
@@ -2729,139 +2729,139 @@ yy147:
                YYDEBUG(147, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'S') {
-                       if (yych == 'N') goto yy370;
+                       if (yych == 'N') goto yy374;
                        if (yych <= 'R') goto yy186;
-                       goto yy371;
+                       goto yy375;
                } else {
                        if (yych <= 'n') {
                                if (yych <= 'm') goto yy186;
-                               goto yy370;
+                               goto yy374;
                        } else {
-                               if (yych == 's') goto yy371;
+                               if (yych == 's') goto yy375;
                                goto yy186;
                        }
                }
 yy148:
                YYDEBUG(148, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '_') goto yy296;
+               if (yych == '_') goto yy300;
                goto yy186;
 yy149:
                YYDEBUG(149, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= '<') goto yy138;
-               if (yych <= '=') goto yy290;
-               if (yych <= '>') goto yy292;
+               if (yych <= '=') goto yy294;
+               if (yych <= '>') goto yy296;
                goto yy138;
 yy150:
                YYDEBUG(150, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy286;
-               if (yych == 'i') goto yy286;
+               if (yych == 'I') goto yy290;
+               if (yych == 'i') goto yy290;
                goto yy186;
 yy151:
                YYDEBUG(151, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '+') goto yy284;
-               if (yych == '=') goto yy282;
+               if (yych == '+') goto yy288;
+               if (yych == '=') goto yy286;
                goto yy138;
 yy152:
                YYDEBUG(152, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '=') goto yy279;
+               if (yych == '=') goto yy283;
                goto yy138;
 yy153:
                YYDEBUG(153, *YYCURSOR);
                yyaccept = 1;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= ';') {
-                       if (yych == '/') goto yy251;
+                       if (yych == '/') goto yy255;
                        goto yy138;
                } else {
-                       if (yych <= '<') goto yy249;
-                       if (yych <= '=') goto yy252;
-                       if (yych <= '>') goto yy254;
+                       if (yych <= '<') goto yy253;
+                       if (yych <= '=') goto yy256;
+                       if (yych <= '>') goto yy258;
                        goto yy138;
                }
 yy154:
                YYDEBUG(154, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= '<') goto yy138;
-               if (yych <= '=') goto yy245;
-               if (yych <= '>') goto yy243;
+               if (yych <= '=') goto yy249;
+               if (yych <= '>') goto yy247;
                goto yy138;
 yy155:
                YYDEBUG(155, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '=') goto yy241;
+               if (yych == '=') goto yy245;
                goto yy138;
 yy156:
                YYDEBUG(156, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= '.') {
-                       if (yych == '*') goto yy233;
+                       if (yych == '*') goto yy237;
                        goto yy138;
                } else {
-                       if (yych <= '/') goto yy235;
-                       if (yych == '=') goto yy236;
+                       if (yych <= '/') goto yy239;
+                       if (yych == '=') goto yy240;
                        goto yy138;
                }
 yy157:
                YYDEBUG(157, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= '/') goto yy138;
-               if (yych <= '9') goto yy229;
-               if (yych == '=') goto yy231;
+               if (yych <= '9') goto yy233;
+               if (yych == '=') goto yy235;
                goto yy138;
 yy158:
                YYDEBUG(158, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= '<') goto yy138;
-               if (yych <= '=') goto yy225;
-               if (yych <= '>') goto yy223;
+               if (yych <= '=') goto yy229;
+               if (yych <= '>') goto yy227;
                goto yy138;
 yy159:
                YYDEBUG(159, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '&') goto yy219;
-               if (yych == '=') goto yy221;
+               if (yych == '&') goto yy223;
+               if (yych == '=') goto yy225;
                goto yy138;
 yy160:
                YYDEBUG(160, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '=') goto yy217;
-               if (yych == '|') goto yy215;
+               if (yych == '=') goto yy221;
+               if (yych == '|') goto yy219;
                goto yy138;
 yy161:
                YYDEBUG(161, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '=') goto yy213;
+               if (yych == '=') goto yy217;
                goto yy138;
 yy162:
                YYDEBUG(162, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy211;
-               if (yych == 'r') goto yy211;
+               if (yych == 'R') goto yy215;
+               if (yych == 'r') goto yy215;
                goto yy186;
 yy163:
                YYDEBUG(163, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy208;
-               if (yych == 'o') goto yy208;
+               if (yych == 'O') goto yy212;
+               if (yych == 'o') goto yy212;
                goto yy186;
 yy164:
                YYDEBUG(164, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= '_') {
                        if (yych <= '@') goto yy138;
-                       if (yych <= 'Z') goto yy205;
+                       if (yych <= 'Z') goto yy209;
                        if (yych <= '^') goto yy138;
-                       goto yy205;
+                       goto yy209;
                } else {
                        if (yych <= '`') goto yy138;
-                       if (yych <= 'z') goto yy205;
+                       if (yych <= 'z') goto yy209;
                        if (yych <= '~') goto yy138;
-                       goto yy205;
+                       goto yy209;
                }
 yy165:
                YYDEBUG(165, *YYCURSOR);
@@ -2870,14 +2870,14 @@ yy165:
 yy166:
                YYDEBUG(166, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '>') goto yy201;
+               if (yych == '>') goto yy205;
                goto yy138;
 yy167:
                YYDEBUG(167, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(168, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1424 "Zend/zend_language_scanner.l"
+#line 1425 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return '{';
@@ -2888,7 +2888,7 @@ yy169:
                ++YYCURSOR;
                YYDEBUG(170, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1436 "Zend/zend_language_scanner.l"
+#line 1437 "Zend/zend_language_scanner.l"
                {
        RESET_DOC_COMMENT();
        if (!zend_stack_is_empty(&SCNG(state_stack))) {
@@ -2902,24 +2902,29 @@ yy171:
                yyaccept = 2;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= 'E') {
-                       if (yych <= '/') {
+                       if (yych <= '9') {
                                if (yych == '.') goto yy187;
+                               if (yych >= '0') goto yy190;
                        } else {
-                               if (yych <= '9') goto yy190;
+                               if (yych == 'B') goto yy198;
                                if (yych >= 'E') goto yy192;
                        }
                } else {
-                       if (yych <= 'd') {
+                       if (yych <= 'b') {
                                if (yych == 'X') goto yy197;
+                               if (yych >= 'b') goto yy198;
                        } else {
-                               if (yych <= 'e') goto yy192;
-                               if (yych == 'x') goto yy197;
+                               if (yych <= 'e') {
+                                       if (yych >= 'e') goto yy192;
+                               } else {
+                                       if (yych == 'x') goto yy197;
+                               }
                        }
                }
 yy172:
                YYDEBUG(172, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1462 "Zend/zend_language_scanner.l"
+#line 1483 "Zend/zend_language_scanner.l"
                {
        if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
                zendlval->value.lval = strtol(yytext, NULL, 0);
@@ -2940,7 +2945,7 @@ yy172:
        zendlval->type = IS_LONG;
        return T_LNUMBER;
 }
-#line 2944 "Zend/zend_language_scanner.c"
+#line 2949 "Zend/zend_language_scanner.c"
 yy173:
                YYDEBUG(173, *YYCURSOR);
                yyaccept = 2;
@@ -2968,7 +2973,7 @@ yy175:
 yy176:
                YYDEBUG(176, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1824 "Zend/zend_language_scanner.l"
+#line 1845 "Zend/zend_language_scanner.l"
                {
        while (YYCURSOR < YYLIMIT) {
                switch (*YYCURSOR++) {
@@ -3002,14 +3007,14 @@ yy176:
 
        return T_COMMENT;
 }
-#line 3006 "Zend/zend_language_scanner.c"
+#line 3011 "Zend/zend_language_scanner.c"
 yy177:
                YYDEBUG(177, *YYCURSOR);
                ++YYCURSOR;
 yy178:
                YYDEBUG(178, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1915 "Zend/zend_language_scanner.l"
+#line 1936 "Zend/zend_language_scanner.l"
                {
        register char *s, *t;
        char *end;
@@ -3077,14 +3082,14 @@ yy178:
        }
        return T_CONSTANT_ENCAPSED_STRING;
 }
-#line 3081 "Zend/zend_language_scanner.c"
+#line 3086 "Zend/zend_language_scanner.c"
 yy179:
                YYDEBUG(179, *YYCURSOR);
                ++YYCURSOR;
 yy180:
                YYDEBUG(180, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1984 "Zend/zend_language_scanner.l"
+#line 2005 "Zend/zend_language_scanner.l"
                {
        int bprefix = (yytext[0] != '"') ? 1 : 0;
 
@@ -3125,24 +3130,24 @@ yy180:
        BEGIN(ST_DOUBLE_QUOTES);
        return '"';
 }
-#line 3129 "Zend/zend_language_scanner.c"
+#line 3134 "Zend/zend_language_scanner.c"
 yy181:
                YYDEBUG(181, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(182, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2075 "Zend/zend_language_scanner.l"
+#line 2096 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_BACKQUOTE);
        return '`';
 }
-#line 3140 "Zend/zend_language_scanner.c"
+#line 3145 "Zend/zend_language_scanner.c"
 yy183:
                YYDEBUG(183, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(184, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2333 "Zend/zend_language_scanner.l"
+#line 2354 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                return 0;
@@ -3151,7 +3156,7 @@ yy183:
        zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
        goto restart;
 }
-#line 3155 "Zend/zend_language_scanner.c"
+#line 3160 "Zend/zend_language_scanner.c"
 yy185:
                YYDEBUG(185, *YYCURSOR);
                ++YYCURSOR;
@@ -3159,7 +3164,7 @@ yy185:
                yych = *YYCURSOR;
 yy186:
                YYDEBUG(186, *YYCURSOR);
-               if (yybm[0+yych] & 8) {
+               if (yybm[0+yych] & 4) {
                        goto yy185;
                }
                goto yy124;
@@ -3170,7 +3175,7 @@ yy187:
                YYFILL(3);
                yych = *YYCURSOR;
                YYDEBUG(188, *YYCURSOR);
-               if (yybm[0+yych] & 16) {
+               if (yybm[0+yych] & 8) {
                        goto yy187;
                }
                if (yych == 'E') goto yy192;
@@ -3178,13 +3183,13 @@ yy187:
 yy189:
                YYDEBUG(189, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1523 "Zend/zend_language_scanner.l"
+#line 1544 "Zend/zend_language_scanner.l"
                {
        zendlval->value.dval = zend_strtod(yytext, NULL);
        zendlval->type = IS_DOUBLE;
        return T_DNUMBER;
 }
-#line 3188 "Zend/zend_language_scanner.c"
+#line 3193 "Zend/zend_language_scanner.c"
 yy190:
                YYDEBUG(190, *YYCURSOR);
                yyaccept = 2;
@@ -3231,10 +3236,10 @@ yy193:
                                if (yyaccept <= 3) {
                                        goto yy189;
                                } else {
-                                       goto yy234;
+                                       goto yy238;
                                }
                        } else {
-                               goto yy250;
+                               goto yy254;
                        }
                }
 yy194:
@@ -3255,21 +3260,61 @@ yy197:
                YYDEBUG(197, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yybm[0+yych] & 32) {
-                       goto yy198;
+                       goto yy202;
                }
                goto yy193;
 yy198:
                YYDEBUG(198, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yybm[0+yych] & 16) {
+                       goto yy199;
+               }
+               goto yy193;
+yy199:
+               YYDEBUG(199, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(199, *YYCURSOR);
+               YYDEBUG(200, *YYCURSOR);
+               if (yybm[0+yych] & 16) {
+                       goto yy199;
+               }
+               YYDEBUG(201, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 1462 "Zend/zend_language_scanner.l"
+               {
+       char *bin = yytext + 2; /* Skip "0b" */
+       int len = yyleng - 2;
+
+       /* Skip any leading 0s */
+       while (*bin == '0') {
+               ++bin;
+               --len;
+       }
+
+       if (len < SIZEOF_LONG * 2) {
+               zendlval->value.lval = strtol(bin, NULL, 2);
+               zendlval->type = IS_LONG;
+               return T_LNUMBER;
+       } else {
+               zendlval->value.dval = zend_bin_strtod(bin, NULL);
+               zendlval->type = IS_DOUBLE;
+               return T_DNUMBER;
+       }
+}
+#line 3306 "Zend/zend_language_scanner.c"
+yy202:
+               YYDEBUG(202, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
+               YYDEBUG(203, *YYCURSOR);
                if (yybm[0+yych] & 32) {
-                       goto yy198;
+                       goto yy202;
                }
-               YYDEBUG(200, *YYCURSOR);
+               YYDEBUG(204, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1483 "Zend/zend_language_scanner.l"
+#line 1504 "Zend/zend_language_scanner.l"
                {
        char *hex = yytext + 2; /* Skip "0x" */
        int len = yyleng - 2;
@@ -3290,16 +3335,16 @@ yy198:
                return T_DNUMBER;
        }
 }
-#line 3294 "Zend/zend_language_scanner.c"
-yy201:
-               YYDEBUG(201, *YYCURSOR);
+#line 3339 "Zend/zend_language_scanner.c"
+yy205:
+               YYDEBUG(205, *YYCURSOR);
                ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '\n') goto yy203;
-               if (yych == '\r') goto yy204;
-yy202:
-               YYDEBUG(202, *YYCURSOR);
+               if ((yych = *YYCURSOR) == '\n') goto yy207;
+               if (yych == '\r') goto yy208;
+yy206:
+               YYDEBUG(206, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1892 "Zend/zend_language_scanner.l"
+#line 1913 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
@@ -3307,137 +3352,137 @@ yy202:
        BEGIN(INITIAL);
        return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
 }
-#line 3311 "Zend/zend_language_scanner.c"
-yy203:
-               YYDEBUG(203, *YYCURSOR);
+#line 3356 "Zend/zend_language_scanner.c"
+yy207:
+               YYDEBUG(207, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy202;
-yy204:
-               YYDEBUG(204, *YYCURSOR);
+               goto yy206;
+yy208:
+               YYDEBUG(208, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '\n') goto yy203;
-               goto yy202;
-yy205:
-               YYDEBUG(205, *YYCURSOR);
+               if (yych == '\n') goto yy207;
+               goto yy206;
+yy209:
+               YYDEBUG(209, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(206, *YYCURSOR);
+               YYDEBUG(210, *YYCURSOR);
                if (yych <= '^') {
                        if (yych <= '9') {
-                               if (yych >= '0') goto yy205;
+                               if (yych >= '0') goto yy209;
                        } else {
-                               if (yych <= '@') goto yy207;
-                               if (yych <= 'Z') goto yy205;
+                               if (yych <= '@') goto yy211;
+                               if (yych <= 'Z') goto yy209;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych <= '_') goto yy205;
+                               if (yych <= '_') goto yy209;
                        } else {
-                               if (yych <= 'z') goto yy205;
-                               if (yych >= 0x7F) goto yy205;
+                               if (yych <= 'z') goto yy209;
+                               if (yych >= 0x7F) goto yy209;
                        }
                }
-yy207:
-               YYDEBUG(207, *YYCURSOR);
+yy211:
+               YYDEBUG(211, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1794 "Zend/zend_language_scanner.l"
+#line 1815 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 3351 "Zend/zend_language_scanner.c"
-yy208:
-               YYDEBUG(208, *YYCURSOR);
+#line 3396 "Zend/zend_language_scanner.c"
+yy212:
+               YYDEBUG(212, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy209;
+               if (yych == 'R') goto yy213;
                if (yych != 'r') goto yy186;
-yy209:
-               YYDEBUG(209, *YYCURSOR);
+yy213:
+               YYDEBUG(213, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(210, *YYCURSOR);
+               YYDEBUG(214, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1407 "Zend/zend_language_scanner.l"
+#line 1408 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_XOR;
 }
-#line 3369 "Zend/zend_language_scanner.c"
-yy211:
-               YYDEBUG(211, *YYCURSOR);
+#line 3414 "Zend/zend_language_scanner.c"
+yy215:
+               YYDEBUG(215, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(212, *YYCURSOR);
+               YYDEBUG(216, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1399 "Zend/zend_language_scanner.l"
+#line 1400 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_OR;
 }
-#line 3382 "Zend/zend_language_scanner.c"
-yy213:
-               YYDEBUG(213, *YYCURSOR);
+#line 3427 "Zend/zend_language_scanner.c"
+yy217:
+               YYDEBUG(217, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(214, *YYCURSOR);
+               YYDEBUG(218, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1387 "Zend/zend_language_scanner.l"
+#line 1388 "Zend/zend_language_scanner.l"
                {
        return T_XOR_EQUAL;
 }
-#line 3392 "Zend/zend_language_scanner.c"
-yy215:
-               YYDEBUG(215, *YYCURSOR);
+#line 3437 "Zend/zend_language_scanner.c"
+yy219:
+               YYDEBUG(219, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(216, *YYCURSOR);
+               YYDEBUG(220, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1391 "Zend/zend_language_scanner.l"
+#line 1392 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_OR;
 }
-#line 3402 "Zend/zend_language_scanner.c"
-yy217:
-               YYDEBUG(217, *YYCURSOR);
+#line 3447 "Zend/zend_language_scanner.c"
+yy221:
+               YYDEBUG(221, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(218, *YYCURSOR);
+               YYDEBUG(222, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1383 "Zend/zend_language_scanner.l"
+#line 1384 "Zend/zend_language_scanner.l"
                {
        return T_OR_EQUAL;
 }
-#line 3412 "Zend/zend_language_scanner.c"
-yy219:
-               YYDEBUG(219, *YYCURSOR);
+#line 3457 "Zend/zend_language_scanner.c"
+yy223:
+               YYDEBUG(223, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(220, *YYCURSOR);
+               YYDEBUG(224, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1395 "Zend/zend_language_scanner.l"
+#line 1396 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_AND;
 }
-#line 3422 "Zend/zend_language_scanner.c"
-yy221:
-               YYDEBUG(221, *YYCURSOR);
+#line 3467 "Zend/zend_language_scanner.c"
+yy225:
+               YYDEBUG(225, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(222, *YYCURSOR);
+               YYDEBUG(226, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1379 "Zend/zend_language_scanner.l"
+#line 1380 "Zend/zend_language_scanner.l"
                {
        return T_AND_EQUAL;
 }
-#line 3432 "Zend/zend_language_scanner.c"
-yy223:
-               YYDEBUG(223, *YYCURSOR);
+#line 3477 "Zend/zend_language_scanner.c"
+yy227:
+               YYDEBUG(227, *YYCURSOR);
                ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '\n') goto yy227;
-               if (yych == '\r') goto yy228;
-yy224:
-               YYDEBUG(224, *YYCURSOR);
+               if ((yych = *YYCURSOR) == '\n') goto yy231;
+               if (yych == '\r') goto yy232;
+yy228:
+               YYDEBUG(228, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1901 "Zend/zend_language_scanner.l"
+#line 1922 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                BEGIN(INITIAL);
@@ -3450,61 +3495,61 @@ yy224:
                return yytext[0];
        }
 }
-#line 3454 "Zend/zend_language_scanner.c"
-yy225:
-               YYDEBUG(225, *YYCURSOR);
+#line 3499 "Zend/zend_language_scanner.c"
+yy229:
+               YYDEBUG(229, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(226, *YYCURSOR);
+               YYDEBUG(230, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1367 "Zend/zend_language_scanner.l"
+#line 1368 "Zend/zend_language_scanner.l"
                {
        return T_MOD_EQUAL;
 }
-#line 3464 "Zend/zend_language_scanner.c"
-yy227:
-               YYDEBUG(227, *YYCURSOR);
+#line 3509 "Zend/zend_language_scanner.c"
+yy231:
+               YYDEBUG(231, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy224;
-yy228:
-               YYDEBUG(228, *YYCURSOR);
+               goto yy228;
+yy232:
+               YYDEBUG(232, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '\n') goto yy227;
-               goto yy224;
-yy229:
-               YYDEBUG(229, *YYCURSOR);
+               if (yych == '\n') goto yy231;
+               goto yy228;
+yy233:
+               YYDEBUG(233, *YYCURSOR);
                yyaccept = 3;
                YYMARKER = ++YYCURSOR;
                YYFILL(3);
                yych = *YYCURSOR;
-               YYDEBUG(230, *YYCURSOR);
+               YYDEBUG(234, *YYCURSOR);
                if (yych <= 'D') {
                        if (yych <= '/') goto yy189;
-                       if (yych <= '9') goto yy229;
+                       if (yych <= '9') goto yy233;
                        goto yy189;
                } else {
                        if (yych <= 'E') goto yy192;
                        if (yych == 'e') goto yy192;
                        goto yy189;
                }
-yy231:
-               YYDEBUG(231, *YYCURSOR);
+yy235:
+               YYDEBUG(235, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(232, *YYCURSOR);
+               YYDEBUG(236, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1363 "Zend/zend_language_scanner.l"
+#line 1364 "Zend/zend_language_scanner.l"
                {
        return T_CONCAT_EQUAL;
 }
-#line 3499 "Zend/zend_language_scanner.c"
-yy233:
-               YYDEBUG(233, *YYCURSOR);
+#line 3544 "Zend/zend_language_scanner.c"
+yy237:
+               YYDEBUG(237, *YYCURSOR);
                yyaccept = 4;
                yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == '*') goto yy238;
-yy234:
-               YYDEBUG(234, *YYCURSOR);
+               if (yych == '*') goto yy242;
+yy238:
+               YYDEBUG(238, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1858 "Zend/zend_language_scanner.l"
+#line 1879 "Zend/zend_language_scanner.l"
                {
        int doc_com;
 
@@ -3538,281 +3583,281 @@ yy234:
 
        return T_COMMENT;
 }
-#line 3542 "Zend/zend_language_scanner.c"
-yy235:
-               YYDEBUG(235, *YYCURSOR);
+#line 3587 "Zend/zend_language_scanner.c"
+yy239:
+               YYDEBUG(239, *YYCURSOR);
                yych = *++YYCURSOR;
                goto yy176;
-yy236:
-               YYDEBUG(236, *YYCURSOR);
+yy240:
+               YYDEBUG(240, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(237, *YYCURSOR);
+               YYDEBUG(241, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1359 "Zend/zend_language_scanner.l"
+#line 1360 "Zend/zend_language_scanner.l"
                {
        return T_DIV_EQUAL;
 }
-#line 3556 "Zend/zend_language_scanner.c"
-yy238:
-               YYDEBUG(238, *YYCURSOR);
+#line 3601 "Zend/zend_language_scanner.c"
+yy242:
+               YYDEBUG(242, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yybm[0+yych] & 64) {
-                       goto yy239;
+                       goto yy243;
                }
                goto yy193;
-yy239:
-               YYDEBUG(239, *YYCURSOR);
+yy243:
+               YYDEBUG(243, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(240, *YYCURSOR);
+               YYDEBUG(244, *YYCURSOR);
                if (yybm[0+yych] & 64) {
-                       goto yy239;
+                       goto yy243;
                }
-               goto yy234;
-yy241:
-               YYDEBUG(241, *YYCURSOR);
+               goto yy238;
+yy245:
+               YYDEBUG(245, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(242, *YYCURSOR);
+               YYDEBUG(246, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1355 "Zend/zend_language_scanner.l"
+#line 1356 "Zend/zend_language_scanner.l"
                {
        return T_MUL_EQUAL;
 }
-#line 3583 "Zend/zend_language_scanner.c"
-yy243:
-               YYDEBUG(243, *YYCURSOR);
+#line 3628 "Zend/zend_language_scanner.c"
+yy247:
+               YYDEBUG(247, *YYCURSOR);
                ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '=') goto yy247;
-               YYDEBUG(244, *YYCURSOR);
+               if ((yych = *YYCURSOR) == '=') goto yy251;
+               YYDEBUG(248, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1415 "Zend/zend_language_scanner.l"
+#line 1416 "Zend/zend_language_scanner.l"
                {
        return T_SR;
 }
-#line 3594 "Zend/zend_language_scanner.c"
-yy245:
-               YYDEBUG(245, *YYCURSOR);
+#line 3639 "Zend/zend_language_scanner.c"
+yy249:
+               YYDEBUG(249, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(246, *YYCURSOR);
+               YYDEBUG(250, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1343 "Zend/zend_language_scanner.l"
+#line 1344 "Zend/zend_language_scanner.l"
                {
        return T_IS_GREATER_OR_EQUAL;
 }
-#line 3604 "Zend/zend_language_scanner.c"
-yy247:
-               YYDEBUG(247, *YYCURSOR);
+#line 3649 "Zend/zend_language_scanner.c"
+yy251:
+               YYDEBUG(251, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(248, *YYCURSOR);
+               YYDEBUG(252, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1375 "Zend/zend_language_scanner.l"
+#line 1376 "Zend/zend_language_scanner.l"
                {
        return T_SR_EQUAL;
 }
-#line 3614 "Zend/zend_language_scanner.c"
-yy249:
-               YYDEBUG(249, *YYCURSOR);
+#line 3659 "Zend/zend_language_scanner.c"
+yy253:
+               YYDEBUG(253, *YYCURSOR);
                yyaccept = 5;
                yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= ';') goto yy250;
-               if (yych <= '<') goto yy265;
-               if (yych <= '=') goto yy263;
-yy250:
-               YYDEBUG(250, *YYCURSOR);
+               if (yych <= ';') goto yy254;
+               if (yych <= '<') goto yy269;
+               if (yych <= '=') goto yy267;
+yy254:
+               YYDEBUG(254, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1411 "Zend/zend_language_scanner.l"
+#line 1412 "Zend/zend_language_scanner.l"
                {
        return T_SL;
 }
-#line 3629 "Zend/zend_language_scanner.c"
-yy251:
-               YYDEBUG(251, *YYCURSOR);
+#line 3674 "Zend/zend_language_scanner.c"
+yy255:
+               YYDEBUG(255, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy256;
-               if (yych == 's') goto yy256;
+               if (yych == 'S') goto yy260;
+               if (yych == 's') goto yy260;
                goto yy193;
-yy252:
-               YYDEBUG(252, *YYCURSOR);
+yy256:
+               YYDEBUG(256, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(253, *YYCURSOR);
+               YYDEBUG(257, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1339 "Zend/zend_language_scanner.l"
+#line 1340 "Zend/zend_language_scanner.l"
                {
        return T_IS_SMALLER_OR_EQUAL;
 }
-#line 3645 "Zend/zend_language_scanner.c"
-yy254:
-               YYDEBUG(254, *YYCURSOR);
+#line 3690 "Zend/zend_language_scanner.c"
+yy258:
+               YYDEBUG(258, *YYCURSOR);
                ++YYCURSOR;
-yy255:
-               YYDEBUG(255, *YYCURSOR);
+yy259:
+               YYDEBUG(259, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1335 "Zend/zend_language_scanner.l"
+#line 1336 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_EQUAL;
 }
-#line 3656 "Zend/zend_language_scanner.c"
-yy256:
-               YYDEBUG(256, *YYCURSOR);
+#line 3701 "Zend/zend_language_scanner.c"
+yy260:
+               YYDEBUG(260, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy257;
+               if (yych == 'C') goto yy261;
                if (yych != 'c') goto yy193;
-yy257:
-               YYDEBUG(257, *YYCURSOR);
+yy261:
+               YYDEBUG(261, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy258;
+               if (yych == 'R') goto yy262;
                if (yych != 'r') goto yy193;
-yy258:
-               YYDEBUG(258, *YYCURSOR);
+yy262:
+               YYDEBUG(262, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy259;
+               if (yych == 'I') goto yy263;
                if (yych != 'i') goto yy193;
-yy259:
-               YYDEBUG(259, *YYCURSOR);
+yy263:
+               YYDEBUG(263, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'P') goto yy260;
+               if (yych == 'P') goto yy264;
                if (yych != 'p') goto yy193;
-yy260:
-               YYDEBUG(260, *YYCURSOR);
+yy264:
+               YYDEBUG(264, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy261;
+               if (yych == 'T') goto yy265;
                if (yych != 't') goto yy193;
-yy261:
-               YYDEBUG(261, *YYCURSOR);
+yy265:
+               YYDEBUG(265, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(3);
                yych = *YYCURSOR;
-               YYDEBUG(262, *YYCURSOR);
+               YYDEBUG(266, *YYCURSOR);
                if (yych <= '\r') {
                        if (yych <= 0x08) goto yy193;
-                       if (yych <= '\n') goto yy261;
+                       if (yych <= '\n') goto yy265;
                        if (yych <= '\f') goto yy193;
-                       goto yy261;
+                       goto yy265;
                } else {
                        if (yych <= ' ') {
                                if (yych <= 0x1F) goto yy193;
-                               goto yy261;
+                               goto yy265;
                        } else {
-                               if (yych == '>') goto yy201;
+                               if (yych == '>') goto yy205;
                                goto yy193;
                        }
                }
-yy263:
-               YYDEBUG(263, *YYCURSOR);
+yy267:
+               YYDEBUG(267, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(264, *YYCURSOR);
+               YYDEBUG(268, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1371 "Zend/zend_language_scanner.l"
+#line 1372 "Zend/zend_language_scanner.l"
                {
        return T_SL_EQUAL;
 }
-#line 3711 "Zend/zend_language_scanner.c"
-yy265:
-               YYDEBUG(265, *YYCURSOR);
+#line 3756 "Zend/zend_language_scanner.c"
+yy269:
+               YYDEBUG(269, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(2);
                yych = *YYCURSOR;
-               YYDEBUG(266, *YYCURSOR);
+               YYDEBUG(270, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy265;
+                       goto yy269;
                }
                if (yych <= 'Z') {
                        if (yych <= '&') {
-                               if (yych == '"') goto yy270;
+                               if (yych == '"') goto yy274;
                                goto yy193;
                        } else {
-                               if (yych <= '\'') goto yy269;
+                               if (yych <= '\'') goto yy273;
                                if (yych <= '@') goto yy193;
                        }
                } else {
                        if (yych <= '`') {
                                if (yych != '_') goto yy193;
                        } else {
-                               if (yych <= 'z') goto yy267;
+                               if (yych <= 'z') goto yy271;
                                if (yych <= '~') goto yy193;
                        }
                }
-yy267:
-               YYDEBUG(267, *YYCURSOR);
+yy271:
+               YYDEBUG(271, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(2);
                yych = *YYCURSOR;
-               YYDEBUG(268, *YYCURSOR);
+               YYDEBUG(272, *YYCURSOR);
                if (yych <= '@') {
                        if (yych <= '\f') {
-                               if (yych == '\n') goto yy274;
+                               if (yych == '\n') goto yy278;
                                goto yy193;
                        } else {
-                               if (yych <= '\r') goto yy276;
+                               if (yych <= '\r') goto yy280;
                                if (yych <= '/') goto yy193;
-                               if (yych <= '9') goto yy267;
+                               if (yych <= '9') goto yy271;
                                goto yy193;
                        }
                } else {
                        if (yych <= '_') {
-                               if (yych <= 'Z') goto yy267;
+                               if (yych <= 'Z') goto yy271;
                                if (yych <= '^') goto yy193;
-                               goto yy267;
+                               goto yy271;
                        } else {
                                if (yych <= '`') goto yy193;
-                               if (yych <= 'z') goto yy267;
+                               if (yych <= 'z') goto yy271;
                                if (yych <= '~') goto yy193;
-                               goto yy267;
+                               goto yy271;
                        }
                }
-yy269:
-               YYDEBUG(269, *YYCURSOR);
+yy273:
+               YYDEBUG(273, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych == '\'') goto yy193;
-               if (yych <= '/') goto yy278;
+               if (yych <= '/') goto yy282;
                if (yych <= '9') goto yy193;
-               goto yy278;
-yy270:
-               YYDEBUG(270, *YYCURSOR);
+               goto yy282;
+yy274:
+               YYDEBUG(274, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych == '"') goto yy193;
-               if (yych <= '/') goto yy272;
+               if (yych <= '/') goto yy276;
                if (yych <= '9') goto yy193;
-               goto yy272;
-yy271:
-               YYDEBUG(271, *YYCURSOR);
+               goto yy276;
+yy275:
+               YYDEBUG(275, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(3);
                yych = *YYCURSOR;
-yy272:
-               YYDEBUG(272, *YYCURSOR);
+yy276:
+               YYDEBUG(276, *YYCURSOR);
                if (yych <= 'Z') {
                        if (yych <= '/') {
                                if (yych != '"') goto yy193;
                        } else {
-                               if (yych <= '9') goto yy271;
+                               if (yych <= '9') goto yy275;
                                if (yych <= '@') goto yy193;
-                               goto yy271;
+                               goto yy275;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych == '_') goto yy271;
+                               if (yych == '_') goto yy275;
                                goto yy193;
                        } else {
-                               if (yych <= 'z') goto yy271;
+                               if (yych <= 'z') goto yy275;
                                if (yych <= '~') goto yy193;
-                               goto yy271;
+                               goto yy275;
                        }
                }
-yy273:
-               YYDEBUG(273, *YYCURSOR);
+yy277:
+               YYDEBUG(277, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '\n') goto yy274;
-               if (yych == '\r') goto yy276;
+               if (yych == '\n') goto yy278;
+               if (yych == '\r') goto yy280;
                goto yy193;
-yy274:
-               YYDEBUG(274, *YYCURSOR);
+yy278:
+               YYDEBUG(278, *YYCURSOR);
                ++YYCURSOR;
-yy275:
-               YYDEBUG(275, *YYCURSOR);
+yy279:
+               YYDEBUG(279, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2026 "Zend/zend_language_scanner.l"
+#line 2047 "Zend/zend_language_scanner.l"
                {
        char *s;
        int bprefix = (yytext[0] != '<') ? 1 : 0;
@@ -3860,247 +3905,247 @@ yy275:
 
        return T_START_HEREDOC;
 }
-#line 3864 "Zend/zend_language_scanner.c"
-yy276:
-               YYDEBUG(276, *YYCURSOR);
+#line 3909 "Zend/zend_language_scanner.c"
+yy280:
+               YYDEBUG(280, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '\n') goto yy274;
-               goto yy275;
-yy277:
-               YYDEBUG(277, *YYCURSOR);
+               if (yych == '\n') goto yy278;
+               goto yy279;
+yy281:
+               YYDEBUG(281, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(3);
                yych = *YYCURSOR;
-yy278:
-               YYDEBUG(278, *YYCURSOR);
+yy282:
+               YYDEBUG(282, *YYCURSOR);
                if (yych <= 'Z') {
                        if (yych <= '/') {
-                               if (yych == '\'') goto yy273;
+                               if (yych == '\'') goto yy277;
                                goto yy193;
                        } else {
-                               if (yych <= '9') goto yy277;
+                               if (yych <= '9') goto yy281;
                                if (yych <= '@') goto yy193;
-                               goto yy277;
+                               goto yy281;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych == '_') goto yy277;
+                               if (yych == '_') goto yy281;
                                goto yy193;
                        } else {
-                               if (yych <= 'z') goto yy277;
+                               if (yych <= 'z') goto yy281;
                                if (yych <= '~') goto yy193;
-                               goto yy277;
+                               goto yy281;
                        }
                }
-yy279:
-               YYDEBUG(279, *YYCURSOR);
+yy283:
+               YYDEBUG(283, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '=') goto yy255;
-               YYDEBUG(280, *YYCURSOR);
+               if (yych != '=') goto yy259;
+               YYDEBUG(284, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(281, *YYCURSOR);
+               YYDEBUG(285, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1327 "Zend/zend_language_scanner.l"
+#line 1328 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_IDENTICAL;
 }
-#line 3908 "Zend/zend_language_scanner.c"
-yy282:
-               YYDEBUG(282, *YYCURSOR);
+#line 3953 "Zend/zend_language_scanner.c"
+yy286:
+               YYDEBUG(286, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(283, *YYCURSOR);
+               YYDEBUG(287, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1347 "Zend/zend_language_scanner.l"
+#line 1348 "Zend/zend_language_scanner.l"
                {
        return T_PLUS_EQUAL;
 }
-#line 3918 "Zend/zend_language_scanner.c"
-yy284:
-               YYDEBUG(284, *YYCURSOR);
+#line 3963 "Zend/zend_language_scanner.c"
+yy288:
+               YYDEBUG(288, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(285, *YYCURSOR);
+               YYDEBUG(289, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1315 "Zend/zend_language_scanner.l"
+#line 1316 "Zend/zend_language_scanner.l"
                {
        return T_INC;
 }
-#line 3928 "Zend/zend_language_scanner.c"
-yy286:
-               YYDEBUG(286, *YYCURSOR);
+#line 3973 "Zend/zend_language_scanner.c"
+yy290:
+               YYDEBUG(290, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy287;
+               if (yych == 'S') goto yy291;
                if (yych != 's') goto yy186;
-yy287:
-               YYDEBUG(287, *YYCURSOR);
+yy291:
+               YYDEBUG(291, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy288;
+               if (yych == 'T') goto yy292;
                if (yych != 't') goto yy186;
-yy288:
-               YYDEBUG(288, *YYCURSOR);
+yy292:
+               YYDEBUG(292, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(289, *YYCURSOR);
+               YYDEBUG(293, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1307 "Zend/zend_language_scanner.l"
+#line 1308 "Zend/zend_language_scanner.l"
                {
        return T_LIST;
 }
-#line 3951 "Zend/zend_language_scanner.c"
-yy290:
-               YYDEBUG(290, *YYCURSOR);
+#line 3996 "Zend/zend_language_scanner.c"
+yy294:
+               YYDEBUG(294, *YYCURSOR);
                ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '=') goto yy294;
-               YYDEBUG(291, *YYCURSOR);
+               if ((yych = *YYCURSOR) == '=') goto yy298;
+               YYDEBUG(295, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1331 "Zend/zend_language_scanner.l"
+#line 1332 "Zend/zend_language_scanner.l"
                {
        return T_IS_EQUAL;
 }
-#line 3962 "Zend/zend_language_scanner.c"
-yy292:
-               YYDEBUG(292, *YYCURSOR);
+#line 4007 "Zend/zend_language_scanner.c"
+yy296:
+               YYDEBUG(296, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(293, *YYCURSOR);
+               YYDEBUG(297, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1303 "Zend/zend_language_scanner.l"
+#line 1304 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_ARROW;
 }
-#line 3972 "Zend/zend_language_scanner.c"
-yy294:
-               YYDEBUG(294, *YYCURSOR);
+#line 4017 "Zend/zend_language_scanner.c"
+yy298:
+               YYDEBUG(298, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(295, *YYCURSOR);
+               YYDEBUG(299, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1323 "Zend/zend_language_scanner.l"
+#line 1324 "Zend/zend_language_scanner.l"
                {
        return T_IS_IDENTICAL;
 }
-#line 3982 "Zend/zend_language_scanner.c"
-yy296:
-               YYDEBUG(296, *YYCURSOR);
+#line 4027 "Zend/zend_language_scanner.c"
+yy300:
+               YYDEBUG(300, *YYCURSOR);
                yych = *++YYCURSOR;
                YYDEBUG(-1, yych);
                switch (yych) {
                case 'C':
-               case 'c':       goto yy298;
+               case 'c':       goto yy302;
                case 'D':
-               case 'd':       goto yy302;
+               case 'd':       goto yy306;
                case 'F':
-               case 'f':       goto yy299;
+               case 'f':       goto yy303;
                case 'H':
-               case 'h':       goto yy297;
+               case 'h':       goto yy301;
                case 'L':
-               case 'l':       goto yy301;
+               case 'l':       goto yy305;
                case 'M':
-               case 'm':       goto yy300;
+               case 'm':       goto yy304;
                case 'N':
-               case 'n':       goto yy303;
+               case 'n':       goto yy307;
                default:        goto yy186;
                }
-yy297:
-               YYDEBUG(297, *YYCURSOR);
+yy301:
+               YYDEBUG(301, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy357;
-               if (yych == 'a') goto yy357;
+               if (yych == 'A') goto yy361;
+               if (yych == 'a') goto yy361;
                goto yy186;
-yy298:
-               YYDEBUG(298, *YYCURSOR);
+yy302:
+               YYDEBUG(302, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy350;
-               if (yych == 'l') goto yy350;
+               if (yych == 'L') goto yy354;
+               if (yych == 'l') goto yy354;
                goto yy186;
-yy299:
-               YYDEBUG(299, *YYCURSOR);
+yy303:
+               YYDEBUG(303, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'U') {
-                       if (yych == 'I') goto yy334;
+                       if (yych == 'I') goto yy338;
                        if (yych <= 'T') goto yy186;
-                       goto yy335;
+                       goto yy339;
                } else {
                        if (yych <= 'i') {
                                if (yych <= 'h') goto yy186;
-                               goto yy334;
+                               goto yy338;
                        } else {
-                               if (yych == 'u') goto yy335;
+                               if (yych == 'u') goto yy339;
                                goto yy186;
                        }
                }
-yy300:
-               YYDEBUG(300, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy326;
-               if (yych == 'e') goto yy326;
-               goto yy186;
-yy301:
-               YYDEBUG(301, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy320;
-               if (yych == 'i') goto yy320;
-               goto yy186;
-yy302:
-               YYDEBUG(302, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy315;
-               if (yych == 'i') goto yy315;
-               goto yy186;
-yy303:
-               YYDEBUG(303, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy304;
-               if (yych != 'a') goto yy186;
 yy304:
                YYDEBUG(304, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'M') goto yy305;
-               if (yych != 'm') goto yy186;
+               if (yych == 'E') goto yy330;
+               if (yych == 'e') goto yy330;
+               goto yy186;
 yy305:
                YYDEBUG(305, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy306;
-               if (yych != 'e') goto yy186;
+               if (yych == 'I') goto yy324;
+               if (yych == 'i') goto yy324;
+               goto yy186;
 yy306:
                YYDEBUG(306, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy307;
-               if (yych != 's') goto yy186;
+               if (yych == 'I') goto yy319;
+               if (yych == 'i') goto yy319;
+               goto yy186;
 yy307:
                YYDEBUG(307, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'P') goto yy308;
-               if (yych != 'p') goto yy186;
+               if (yych == 'A') goto yy308;
+               if (yych != 'a') goto yy186;
 yy308:
                YYDEBUG(308, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy309;
-               if (yych != 'a') goto yy186;
+               if (yych == 'M') goto yy309;
+               if (yych != 'm') goto yy186;
 yy309:
                YYDEBUG(309, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy310;
-               if (yych != 'c') goto yy186;
+               if (yych == 'E') goto yy310;
+               if (yych != 'e') goto yy186;
 yy310:
                YYDEBUG(310, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy311;
-               if (yych != 'e') goto yy186;
+               if (yych == 'S') goto yy311;
+               if (yych != 's') goto yy186;
 yy311:
                YYDEBUG(311, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy186;
+               if (yych == 'P') goto yy312;
+               if (yych != 'p') goto yy186;
+yy312:
                YYDEBUG(312, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy186;
+               if (yych == 'A') goto yy313;
+               if (yych != 'a') goto yy186;
+yy313:
                YYDEBUG(313, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'C') goto yy314;
+               if (yych != 'c') goto yy186;
+yy314:
+               YYDEBUG(314, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy315;
+               if (yych != 'e') goto yy186;
+yy315:
+               YYDEBUG(315, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy186;
+               YYDEBUG(316, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy186;
+               YYDEBUG(317, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(314, *YYCURSOR);
+               YYDEBUG(318, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1627 "Zend/zend_language_scanner.l"
+#line 1648 "Zend/zend_language_scanner.l"
                {
        if (CG(current_namespace)) {
                *zendlval = *CG(current_namespace);
@@ -4110,27 +4155,27 @@ yy311:
        }
        return T_NS_C;
 }
-#line 4114 "Zend/zend_language_scanner.c"
-yy315:
-               YYDEBUG(315, *YYCURSOR);
+#line 4159 "Zend/zend_language_scanner.c"
+yy319:
+               YYDEBUG(319, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy316;
+               if (yych == 'R') goto yy320;
                if (yych != 'r') goto yy186;
-yy316:
-               YYDEBUG(316, *YYCURSOR);
+yy320:
+               YYDEBUG(320, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych != '_') goto yy186;
-               YYDEBUG(317, *YYCURSOR);
+               YYDEBUG(321, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych != '_') goto yy186;
-               YYDEBUG(318, *YYCURSOR);
+               YYDEBUG(322, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(319, *YYCURSOR);
+               YYDEBUG(323, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1600 "Zend/zend_language_scanner.l"
+#line 1621 "Zend/zend_language_scanner.l"
                {
        char *filename = zend_get_compiled_filename(TSRMLS_C);
        const size_t filename_len = strlen(filename);
@@ -4157,73 +4202,73 @@ yy316:
        zendlval->type = IS_STRING;
        return T_DIR;
 }
-#line 4161 "Zend/zend_language_scanner.c"
-yy320:
-               YYDEBUG(320, *YYCURSOR);
+#line 4206 "Zend/zend_language_scanner.c"
+yy324:
+               YYDEBUG(324, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy321;
+               if (yych == 'N') goto yy325;
                if (yych != 'n') goto yy186;
-yy321:
-               YYDEBUG(321, *YYCURSOR);
+yy325:
+               YYDEBUG(325, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy322;
+               if (yych == 'E') goto yy326;
                if (yych != 'e') goto yy186;
-yy322:
-               YYDEBUG(322, *YYCURSOR);
+yy326:
+               YYDEBUG(326, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych != '_') goto yy186;
-               YYDEBUG(323, *YYCURSOR);
+               YYDEBUG(327, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych != '_') goto yy186;
-               YYDEBUG(324, *YYCURSOR);
+               YYDEBUG(328, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(325, *YYCURSOR);
+               YYDEBUG(329, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1582 "Zend/zend_language_scanner.l"
+#line 1603 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = CG(zend_lineno);
        zendlval->type = IS_LONG;
        return T_LINE;
 }
-#line 4192 "Zend/zend_language_scanner.c"
-yy326:
-               YYDEBUG(326, *YYCURSOR);
+#line 4237 "Zend/zend_language_scanner.c"
+yy330:
+               YYDEBUG(330, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy327;
+               if (yych == 'T') goto yy331;
                if (yych != 't') goto yy186;
-yy327:
-               YYDEBUG(327, *YYCURSOR);
+yy331:
+               YYDEBUG(331, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy328;
+               if (yych == 'H') goto yy332;
                if (yych != 'h') goto yy186;
-yy328:
-               YYDEBUG(328, *YYCURSOR);
+yy332:
+               YYDEBUG(332, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy329;
+               if (yych == 'O') goto yy333;
                if (yych != 'o') goto yy186;
-yy329:
-               YYDEBUG(329, *YYCURSOR);
+yy333:
+               YYDEBUG(333, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy330;
+               if (yych == 'D') goto yy334;
                if (yych != 'd') goto yy186;
-yy330:
-               YYDEBUG(330, *YYCURSOR);
+yy334:
+               YYDEBUG(334, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych != '_') goto yy186;
-               YYDEBUG(331, *YYCURSOR);
+               YYDEBUG(335, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych != '_') goto yy186;
-               YYDEBUG(332, *YYCURSOR);
+               YYDEBUG(336, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(333, *YYCURSOR);
+               YYDEBUG(337, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1561 "Zend/zend_language_scanner.l"
+#line 1582 "Zend/zend_language_scanner.l"
                {
        char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL;
        char *func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL;
@@ -4244,58 +4289,58 @@ yy330:
        zendlval->type = IS_STRING;
        return T_METHOD_C;
 }
-#line 4248 "Zend/zend_language_scanner.c"
-yy334:
-               YYDEBUG(334, *YYCURSOR);
+#line 4293 "Zend/zend_language_scanner.c"
+yy338:
+               YYDEBUG(338, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy345;
-               if (yych == 'l') goto yy345;
+               if (yych == 'L') goto yy349;
+               if (yych == 'l') goto yy349;
                goto yy186;
-yy335:
-               YYDEBUG(335, *YYCURSOR);
+yy339:
+               YYDEBUG(339, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy336;
+               if (yych == 'N') goto yy340;
                if (yych != 'n') goto yy186;
-yy336:
-               YYDEBUG(336, *YYCURSOR);
+yy340:
+               YYDEBUG(340, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy337;
+               if (yych == 'C') goto yy341;
                if (yych != 'c') goto yy186;
-yy337:
-               YYDEBUG(337, *YYCURSOR);
+yy341:
+               YYDEBUG(341, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy338;
+               if (yych == 'T') goto yy342;
                if (yych != 't') goto yy186;
-yy338:
-               YYDEBUG(338, *YYCURSOR);
+yy342:
+               YYDEBUG(342, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy339;
+               if (yych == 'I') goto yy343;
                if (yych != 'i') goto yy186;
-yy339:
-               YYDEBUG(339, *YYCURSOR);
+yy343:
+               YYDEBUG(343, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy340;
+               if (yych == 'O') goto yy344;
                if (yych != 'o') goto yy186;
-yy340:
-               YYDEBUG(340, *YYCURSOR);
+yy344:
+               YYDEBUG(344, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy341;
+               if (yych == 'N') goto yy345;
                if (yych != 'n') goto yy186;
-yy341:
-               YYDEBUG(341, *YYCURSOR);
+yy345:
+               YYDEBUG(345, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych != '_') goto yy186;
-               YYDEBUG(342, *YYCURSOR);
+               YYDEBUG(346, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych != '_') goto yy186;
-               YYDEBUG(343, *YYCURSOR);
+               YYDEBUG(347, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(344, *YYCURSOR);
+               YYDEBUG(348, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1545 "Zend/zend_language_scanner.l"
+#line 1566 "Zend/zend_language_scanner.l"
                {
        char *func_name = NULL;
 
@@ -4311,27 +4356,27 @@ yy341:
        zendlval->type = IS_STRING;
        return T_FUNC_C;
 }
-#line 4315 "Zend/zend_language_scanner.c"
-yy345:
-               YYDEBUG(345, *YYCURSOR);
+#line 4360 "Zend/zend_language_scanner.c"
+yy349:
+               YYDEBUG(349, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy346;
+               if (yych == 'E') goto yy350;
                if (yych != 'e') goto yy186;
-yy346:
-               YYDEBUG(346, *YYCURSOR);
+yy350:
+               YYDEBUG(350, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych != '_') goto yy186;
-               YYDEBUG(347, *YYCURSOR);
+               YYDEBUG(351, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych != '_') goto yy186;
-               YYDEBUG(348, *YYCURSOR);
+               YYDEBUG(352, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(349, *YYCURSOR);
+               YYDEBUG(353, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1588 "Zend/zend_language_scanner.l"
+#line 1609 "Zend/zend_language_scanner.l"
                {
        char *filename = zend_get_compiled_filename(TSRMLS_C);
 
@@ -4343,37 +4388,37 @@ yy346:
        zendlval->type = IS_STRING;
        return T_FILE;
 }
-#line 4347 "Zend/zend_language_scanner.c"
-yy350:
-               YYDEBUG(350, *YYCURSOR);
+#line 4392 "Zend/zend_language_scanner.c"
+yy354:
+               YYDEBUG(354, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy351;
+               if (yych == 'A') goto yy355;
                if (yych != 'a') goto yy186;
-yy351:
-               YYDEBUG(351, *YYCURSOR);
+yy355:
+               YYDEBUG(355, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy352;
+               if (yych == 'S') goto yy356;
                if (yych != 's') goto yy186;
-yy352:
-               YYDEBUG(352, *YYCURSOR);
+yy356:
+               YYDEBUG(356, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy353;
+               if (yych == 'S') goto yy357;
                if (yych != 's') goto yy186;
-yy353:
-               YYDEBUG(353, *YYCURSOR);
+yy357:
+               YYDEBUG(357, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych != '_') goto yy186;
-               YYDEBUG(354, *YYCURSOR);
+               YYDEBUG(358, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych != '_') goto yy186;
-               YYDEBUG(355, *YYCURSOR);
+               YYDEBUG(359, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(356, *YYCURSOR);
+               YYDEBUG(360, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1529 "Zend/zend_language_scanner.l"
+#line 1550 "Zend/zend_language_scanner.l"
                {
        char *class_name = NULL;
 
@@ -4389,2470 +4434,2447 @@ yy353:
        zendlval->type = IS_STRING;
        return T_CLASS_C;
 }
-#line 4393 "Zend/zend_language_scanner.c"
-yy357:
-               YYDEBUG(357, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy358;
-               if (yych != 'l') goto yy186;
-yy358:
-               YYDEBUG(358, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy359;
-               if (yych != 't') goto yy186;
-yy359:
-               YYDEBUG(359, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '_') goto yy186;
-               YYDEBUG(360, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy361;
-               if (yych != 'c') goto yy186;
+#line 4438 "Zend/zend_language_scanner.c"
 yy361:
                YYDEBUG(361, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy362;
-               if (yych != 'o') goto yy186;
+               if (yych == 'L') goto yy362;
+               if (yych != 'l') goto yy186;
 yy362:
                YYDEBUG(362, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'M') goto yy363;
-               if (yych != 'm') goto yy186;
+               if (yych == 'T') goto yy363;
+               if (yych != 't') goto yy186;
 yy363:
                YYDEBUG(363, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'P') goto yy364;
-               if (yych != 'p') goto yy186;
-yy364:
+               if (yych != '_') goto yy186;
                YYDEBUG(364, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy365;
-               if (yych != 'i') goto yy186;
+               if (yych == 'C') goto yy365;
+               if (yych != 'c') goto yy186;
 yy365:
                YYDEBUG(365, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy366;
-               if (yych != 'l') goto yy186;
+               if (yych == 'O') goto yy366;
+               if (yych != 'o') goto yy186;
 yy366:
                YYDEBUG(366, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy367;
-               if (yych != 'e') goto yy186;
+               if (yych == 'M') goto yy367;
+               if (yych != 'm') goto yy186;
 yy367:
                YYDEBUG(367, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy368;
-               if (yych != 'r') goto yy186;
+               if (yych == 'P') goto yy368;
+               if (yych != 'p') goto yy186;
 yy368:
                YYDEBUG(368, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy185;
-               }
+               yych = *++YYCURSOR;
+               if (yych == 'I') goto yy369;
+               if (yych != 'i') goto yy186;
+yy369:
                YYDEBUG(369, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1271 "Zend/zend_language_scanner.l"
-               {
-       return T_HALT_COMPILER;
-}
-#line 4459 "Zend/zend_language_scanner.c"
+               yych = *++YYCURSOR;
+               if (yych == 'L') goto yy370;
+               if (yych != 'l') goto yy186;
 yy370:
                YYDEBUG(370, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy374;
-               if (yych == 's') goto yy374;
-               goto yy186;
+               if (yych == 'E') goto yy371;
+               if (yych != 'e') goto yy186;
 yy371:
                YYDEBUG(371, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy372;
-               if (yych != 'e') goto yy186;
+               if (yych == 'R') goto yy372;
+               if (yych != 'r') goto yy186;
 yy372:
                YYDEBUG(372, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
                YYDEBUG(373, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1251 "Zend/zend_language_scanner.l"
+#line 1272 "Zend/zend_language_scanner.l"
                {
-       return T_USE;
+       return T_HALT_COMPILER;
 }
-#line 4483 "Zend/zend_language_scanner.c"
+#line 4504 "Zend/zend_language_scanner.c"
 yy374:
                YYDEBUG(374, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy375;
-               if (yych != 'e') goto yy186;
+               if (yych == 'S') goto yy378;
+               if (yych == 's') goto yy378;
+               goto yy186;
 yy375:
                YYDEBUG(375, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy376;
-               if (yych != 't') goto yy186;
+               if (yych == 'E') goto yy376;
+               if (yych != 'e') goto yy186;
 yy376:
                YYDEBUG(376, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
                YYDEBUG(377, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1299 "Zend/zend_language_scanner.l"
+#line 1252 "Zend/zend_language_scanner.l"
                {
-       return T_UNSET;
+       return T_USE;
 }
-#line 4506 "Zend/zend_language_scanner.c"
+#line 4528 "Zend/zend_language_scanner.c"
 yy378:
                YYDEBUG(378, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy379;
+               if (yych != 'e') goto yy186;
+yy379:
+               YYDEBUG(379, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy380;
+               if (yych != 't') goto yy186;
+yy380:
+               YYDEBUG(380, *YYCURSOR);
+               ++YYCURSOR;
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
+               YYDEBUG(381, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 1300 "Zend/zend_language_scanner.l"
+               {
+       return T_UNSET;
+}
+#line 4551 "Zend/zend_language_scanner.c"
+yy382:
+               YYDEBUG(382, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(7);
                yych = *YYCURSOR;
-yy379:
-               YYDEBUG(379, *YYCURSOR);
+yy383:
+               YYDEBUG(383, *YYCURSOR);
                if (yych <= 'S') {
                        if (yych <= 'D') {
                                if (yych <= ' ') {
-                                       if (yych == '\t') goto yy378;
+                                       if (yych == '\t') goto yy382;
                                        if (yych <= 0x1F) goto yy193;
-                                       goto yy378;
+                                       goto yy382;
                                } else {
                                        if (yych <= 'A') {
                                                if (yych <= '@') goto yy193;
-                                               goto yy383;
+                                               goto yy387;
                                        } else {
-                                               if (yych <= 'B') goto yy381;
+                                               if (yych <= 'B') goto yy385;
                                                if (yych <= 'C') goto yy193;
-                                               goto yy386;
+                                               goto yy390;
                                        }
                                }
                        } else {
                                if (yych <= 'I') {
-                                       if (yych == 'F') goto yy387;
+                                       if (yych == 'F') goto yy391;
                                        if (yych <= 'H') goto yy193;
-                                       goto yy388;
+                                       goto yy392;
                                } else {
                                        if (yych <= 'O') {
                                                if (yych <= 'N') goto yy193;
-                                               goto yy382;
+                                               goto yy386;
                                        } else {
                                                if (yych <= 'Q') goto yy193;
-                                               if (yych <= 'R') goto yy385;
-                                               goto yy384;
+                                               if (yych <= 'R') goto yy389;
+                                               goto yy388;
                                        }
                                }
                        }
                } else {
                        if (yych <= 'f') {
                                if (yych <= 'a') {
-                                       if (yych == 'U') goto yy380;
+                                       if (yych == 'U') goto yy384;
                                        if (yych <= '`') goto yy193;
-                                       goto yy383;
+                                       goto yy387;
                                } else {
                                        if (yych <= 'c') {
-                                               if (yych <= 'b') goto yy381;
+                                               if (yych <= 'b') goto yy385;
                                                goto yy193;
                                        } else {
-                                               if (yych <= 'd') goto yy386;
+                                               if (yych <= 'd') goto yy390;
                                                if (yych <= 'e') goto yy193;
-                                               goto yy387;
+                                               goto yy391;
                                        }
                                }
                        } else {
                                if (yych <= 'q') {
                                        if (yych <= 'i') {
                                                if (yych <= 'h') goto yy193;
-                                               goto yy388;
+                                               goto yy392;
                                        } else {
-                                               if (yych == 'o') goto yy382;
+                                               if (yych == 'o') goto yy386;
                                                goto yy193;
                                        }
                                } else {
                                        if (yych <= 's') {
-                                               if (yych <= 'r') goto yy385;
-                                               goto yy384;
+                                               if (yych <= 'r') goto yy389;
+                                               goto yy388;
                                        } else {
                                                if (yych != 'u') goto yy193;
                                        }
                                }
                        }
                }
-yy380:
-               YYDEBUG(380, *YYCURSOR);
+yy384:
+               YYDEBUG(384, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy447;
-               if (yych == 'n') goto yy447;
+               if (yych == 'N') goto yy451;
+               if (yych == 'n') goto yy451;
                goto yy193;
-yy381:
-               YYDEBUG(381, *YYCURSOR);
+yy385:
+               YYDEBUG(385, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'O') {
-                       if (yych == 'I') goto yy434;
+                       if (yych == 'I') goto yy438;
                        if (yych <= 'N') goto yy193;
-                       goto yy435;
+                       goto yy439;
                } else {
                        if (yych <= 'i') {
                                if (yych <= 'h') goto yy193;
-                               goto yy434;
+                               goto yy438;
                        } else {
-                               if (yych == 'o') goto yy435;
+                               if (yych == 'o') goto yy439;
                                goto yy193;
                        }
                }
-yy382:
-               YYDEBUG(382, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'B') goto yy426;
-               if (yych == 'b') goto yy426;
-               goto yy193;
-yy383:
-               YYDEBUG(383, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy419;
-               if (yych == 'r') goto yy419;
-               goto yy193;
-yy384:
-               YYDEBUG(384, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy411;
-               if (yych == 't') goto yy411;
-               goto yy193;
-yy385:
-               YYDEBUG(385, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy409;
-               if (yych == 'e') goto yy409;
-               goto yy193;
 yy386:
                YYDEBUG(386, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy405;
-               if (yych == 'o') goto yy405;
+               if (yych == 'B') goto yy430;
+               if (yych == 'b') goto yy430;
                goto yy193;
 yy387:
                YYDEBUG(387, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy398;
-               if (yych == 'l') goto yy398;
+               if (yych == 'R') goto yy423;
+               if (yych == 'r') goto yy423;
                goto yy193;
 yy388:
                YYDEBUG(388, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy389;
-               if (yych != 'n') goto yy193;
+               if (yych == 'T') goto yy415;
+               if (yych == 't') goto yy415;
+               goto yy193;
 yy389:
                YYDEBUG(389, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy390;
-               if (yych != 't') goto yy193;
+               if (yych == 'E') goto yy413;
+               if (yych == 'e') goto yy413;
+               goto yy193;
 yy390:
                YYDEBUG(390, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy391;
-               if (yych != 'e') goto yy393;
+               if (yych == 'O') goto yy409;
+               if (yych == 'o') goto yy409;
+               goto yy193;
 yy391:
                YYDEBUG(391, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'G') goto yy396;
-               if (yych == 'g') goto yy396;
+               if (yych == 'L') goto yy402;
+               if (yych == 'l') goto yy402;
                goto yy193;
 yy392:
                YYDEBUG(392, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'N') goto yy393;
+               if (yych != 'n') goto yy193;
+yy393:
+               YYDEBUG(393, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy394;
+               if (yych != 't') goto yy193;
+yy394:
+               YYDEBUG(394, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy395;
+               if (yych != 'e') goto yy397;
+yy395:
+               YYDEBUG(395, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'G') goto yy400;
+               if (yych == 'g') goto yy400;
+               goto yy193;
+yy396:
+               YYDEBUG(396, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy393:
-               YYDEBUG(393, *YYCURSOR);
+yy397:
+               YYDEBUG(397, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy392;
+                       if (yych == '\t') goto yy396;
                        goto yy193;
                } else {
-                       if (yych <= ' ') goto yy392;
+                       if (yych <= ' ') goto yy396;
                        if (yych != ')') goto yy193;
                }
-               YYDEBUG(394, *YYCURSOR);
+               YYDEBUG(398, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(395, *YYCURSOR);
+               YYDEBUG(399, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1199 "Zend/zend_language_scanner.l"
+#line 1200 "Zend/zend_language_scanner.l"
                {
        return T_INT_CAST;
 }
-#line 4682 "Zend/zend_language_scanner.c"
-yy396:
-               YYDEBUG(396, *YYCURSOR);
+#line 4727 "Zend/zend_language_scanner.c"
+yy400:
+               YYDEBUG(400, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy397;
+               if (yych == 'E') goto yy401;
                if (yych != 'e') goto yy193;
-yy397:
-               YYDEBUG(397, *YYCURSOR);
+yy401:
+               YYDEBUG(401, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy392;
-               if (yych == 'r') goto yy392;
+               if (yych == 'R') goto yy396;
+               if (yych == 'r') goto yy396;
                goto yy193;
-yy398:
-               YYDEBUG(398, *YYCURSOR);
+yy402:
+               YYDEBUG(402, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy399;
+               if (yych == 'O') goto yy403;
                if (yych != 'o') goto yy193;
-yy399:
-               YYDEBUG(399, *YYCURSOR);
+yy403:
+               YYDEBUG(403, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy400;
+               if (yych == 'A') goto yy404;
                if (yych != 'a') goto yy193;
-yy400:
-               YYDEBUG(400, *YYCURSOR);
+yy404:
+               YYDEBUG(404, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy401;
+               if (yych == 'T') goto yy405;
                if (yych != 't') goto yy193;
-yy401:
-               YYDEBUG(401, *YYCURSOR);
+yy405:
+               YYDEBUG(405, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(402, *YYCURSOR);
+               YYDEBUG(406, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy401;
+                       if (yych == '\t') goto yy405;
                        goto yy193;
                } else {
-                       if (yych <= ' ') goto yy401;
+                       if (yych <= ' ') goto yy405;
                        if (yych != ')') goto yy193;
                }
-               YYDEBUG(403, *YYCURSOR);
+               YYDEBUG(407, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(404, *YYCURSOR);
+               YYDEBUG(408, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1203 "Zend/zend_language_scanner.l"
+#line 1204 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_CAST;
 }
-#line 4730 "Zend/zend_language_scanner.c"
-yy405:
-               YYDEBUG(405, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'U') goto yy406;
-               if (yych != 'u') goto yy193;
-yy406:
-               YYDEBUG(406, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'B') goto yy407;
-               if (yych != 'b') goto yy193;
-yy407:
-               YYDEBUG(407, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy408;
-               if (yych != 'l') goto yy193;
-yy408:
-               YYDEBUG(408, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy401;
-               if (yych == 'e') goto yy401;
-               goto yy193;
+#line 4775 "Zend/zend_language_scanner.c"
 yy409:
                YYDEBUG(409, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy410;
-               if (yych != 'a') goto yy193;
+               if (yych == 'U') goto yy410;
+               if (yych != 'u') goto yy193;
 yy410:
                YYDEBUG(410, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy401;
-               if (yych == 'l') goto yy401;
-               goto yy193;
+               if (yych == 'B') goto yy411;
+               if (yych != 'b') goto yy193;
 yy411:
                YYDEBUG(411, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy412;
-               if (yych != 'r') goto yy193;
+               if (yych == 'L') goto yy412;
+               if (yych != 'l') goto yy193;
 yy412:
                YYDEBUG(412, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy413;
-               if (yych != 'i') goto yy193;
+               if (yych == 'E') goto yy405;
+               if (yych == 'e') goto yy405;
+               goto yy193;
 yy413:
                YYDEBUG(413, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy414;
-               if (yych != 'n') goto yy193;
+               if (yych == 'A') goto yy414;
+               if (yych != 'a') goto yy193;
 yy414:
                YYDEBUG(414, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'G') goto yy415;
-               if (yych != 'g') goto yy193;
+               if (yych == 'L') goto yy405;
+               if (yych == 'l') goto yy405;
+               goto yy193;
 yy415:
                YYDEBUG(415, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'R') goto yy416;
+               if (yych != 'r') goto yy193;
+yy416:
+               YYDEBUG(416, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'I') goto yy417;
+               if (yych != 'i') goto yy193;
+yy417:
+               YYDEBUG(417, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'N') goto yy418;
+               if (yych != 'n') goto yy193;
+yy418:
+               YYDEBUG(418, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'G') goto yy419;
+               if (yych != 'g') goto yy193;
+yy419:
+               YYDEBUG(419, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(416, *YYCURSOR);
+               YYDEBUG(420, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy415;
+                       if (yych == '\t') goto yy419;
                        goto yy193;
                } else {
-                       if (yych <= ' ') goto yy415;
+                       if (yych <= ' ') goto yy419;
                        if (yych != ')') goto yy193;
                }
-               YYDEBUG(417, *YYCURSOR);
+               YYDEBUG(421, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(418, *YYCURSOR);
+               YYDEBUG(422, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1207 "Zend/zend_language_scanner.l"
+#line 1208 "Zend/zend_language_scanner.l"
                {
        return T_STRING_CAST;
 }
-#line 4804 "Zend/zend_language_scanner.c"
-yy419:
-               YYDEBUG(419, *YYCURSOR);
+#line 4849 "Zend/zend_language_scanner.c"
+yy423:
+               YYDEBUG(423, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy420;
+               if (yych == 'R') goto yy424;
                if (yych != 'r') goto yy193;
-yy420:
-               YYDEBUG(420, *YYCURSOR);
+yy424:
+               YYDEBUG(424, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy421;
+               if (yych == 'A') goto yy425;
                if (yych != 'a') goto yy193;
-yy421:
-               YYDEBUG(421, *YYCURSOR);
+yy425:
+               YYDEBUG(425, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy422;
+               if (yych == 'Y') goto yy426;
                if (yych != 'y') goto yy193;
-yy422:
-               YYDEBUG(422, *YYCURSOR);
+yy426:
+               YYDEBUG(426, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(423, *YYCURSOR);
+               YYDEBUG(427, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy422;
+                       if (yych == '\t') goto yy426;
                        goto yy193;
                } else {
-                       if (yych <= ' ') goto yy422;
+                       if (yych <= ' ') goto yy426;
                        if (yych != ')') goto yy193;
                }
-               YYDEBUG(424, *YYCURSOR);
+               YYDEBUG(428, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(425, *YYCURSOR);
+               YYDEBUG(429, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1211 "Zend/zend_language_scanner.l"
+#line 1212 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY_CAST;
 }
-#line 4841 "Zend/zend_language_scanner.c"
-yy426:
-               YYDEBUG(426, *YYCURSOR);
+#line 4886 "Zend/zend_language_scanner.c"
+yy430:
+               YYDEBUG(430, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'J') goto yy427;
+               if (yych == 'J') goto yy431;
                if (yych != 'j') goto yy193;
-yy427:
-               YYDEBUG(427, *YYCURSOR);
+yy431:
+               YYDEBUG(431, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy428;
+               if (yych == 'E') goto yy432;
                if (yych != 'e') goto yy193;
-yy428:
-               YYDEBUG(428, *YYCURSOR);
+yy432:
+               YYDEBUG(432, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy429;
+               if (yych == 'C') goto yy433;
                if (yych != 'c') goto yy193;
-yy429:
-               YYDEBUG(429, *YYCURSOR);
+yy433:
+               YYDEBUG(433, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy430;
+               if (yych == 'T') goto yy434;
                if (yych != 't') goto yy193;
-yy430:
-               YYDEBUG(430, *YYCURSOR);
+yy434:
+               YYDEBUG(434, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(431, *YYCURSOR);
+               YYDEBUG(435, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy430;
+                       if (yych == '\t') goto yy434;
                        goto yy193;
                } else {
-                       if (yych <= ' ') goto yy430;
+                       if (yych <= ' ') goto yy434;
                        if (yych != ')') goto yy193;
                }
-               YYDEBUG(432, *YYCURSOR);
+               YYDEBUG(436, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(433, *YYCURSOR);
+               YYDEBUG(437, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1215 "Zend/zend_language_scanner.l"
+#line 1216 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_CAST;
 }
-#line 4883 "Zend/zend_language_scanner.c"
-yy434:
-               YYDEBUG(434, *YYCURSOR);
+#line 4928 "Zend/zend_language_scanner.c"
+yy438:
+               YYDEBUG(438, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy444;
-               if (yych == 'n') goto yy444;
+               if (yych == 'N') goto yy448;
+               if (yych == 'n') goto yy448;
                goto yy193;
-yy435:
-               YYDEBUG(435, *YYCURSOR);
+yy439:
+               YYDEBUG(439, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy436;
+               if (yych == 'O') goto yy440;
                if (yych != 'o') goto yy193;
-yy436:
-               YYDEBUG(436, *YYCURSOR);
+yy440:
+               YYDEBUG(440, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy437;
+               if (yych == 'L') goto yy441;
                if (yych != 'l') goto yy193;
-yy437:
-               YYDEBUG(437, *YYCURSOR);
+yy441:
+               YYDEBUG(441, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy442;
-               if (yych == 'e') goto yy442;
-               goto yy439;
-yy438:
-               YYDEBUG(438, *YYCURSOR);
+               if (yych == 'E') goto yy446;
+               if (yych == 'e') goto yy446;
+               goto yy443;
+yy442:
+               YYDEBUG(442, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy439:
-               YYDEBUG(439, *YYCURSOR);
+yy443:
+               YYDEBUG(443, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy438;
+                       if (yych == '\t') goto yy442;
                        goto yy193;
                } else {
-                       if (yych <= ' ') goto yy438;
+                       if (yych <= ' ') goto yy442;
                        if (yych != ')') goto yy193;
                }
-               YYDEBUG(440, *YYCURSOR);
+               YYDEBUG(444, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(441, *YYCURSOR);
+               YYDEBUG(445, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1219 "Zend/zend_language_scanner.l"
+#line 1220 "Zend/zend_language_scanner.l"
                {
        return T_BOOL_CAST;
 }
-#line 4928 "Zend/zend_language_scanner.c"
-yy442:
-               YYDEBUG(442, *YYCURSOR);
+#line 4973 "Zend/zend_language_scanner.c"
+yy446:
+               YYDEBUG(446, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy443;
+               if (yych == 'A') goto yy447;
                if (yych != 'a') goto yy193;
-yy443:
-               YYDEBUG(443, *YYCURSOR);
+yy447:
+               YYDEBUG(447, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy438;
-               if (yych == 'n') goto yy438;
+               if (yych == 'N') goto yy442;
+               if (yych == 'n') goto yy442;
                goto yy193;
-yy444:
-               YYDEBUG(444, *YYCURSOR);
+yy448:
+               YYDEBUG(448, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy445;
+               if (yych == 'A') goto yy449;
                if (yych != 'a') goto yy193;
-yy445:
-               YYDEBUG(445, *YYCURSOR);
+yy449:
+               YYDEBUG(449, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy446;
+               if (yych == 'R') goto yy450;
                if (yych != 'r') goto yy193;
-yy446:
-               YYDEBUG(446, *YYCURSOR);
+yy450:
+               YYDEBUG(450, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy415;
-               if (yych == 'y') goto yy415;
+               if (yych == 'Y') goto yy419;
+               if (yych == 'y') goto yy419;
                goto yy193;
-yy447:
-               YYDEBUG(447, *YYCURSOR);
+yy451:
+               YYDEBUG(451, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy448;
+               if (yych == 'S') goto yy452;
                if (yych != 's') goto yy193;
-yy448:
-               YYDEBUG(448, *YYCURSOR);
+yy452:
+               YYDEBUG(452, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy449;
+               if (yych == 'E') goto yy453;
                if (yych != 'e') goto yy193;
-yy449:
-               YYDEBUG(449, *YYCURSOR);
+yy453:
+               YYDEBUG(453, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy450;
+               if (yych == 'T') goto yy454;
                if (yych != 't') goto yy193;
-yy450:
-               YYDEBUG(450, *YYCURSOR);
+yy454:
+               YYDEBUG(454, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(451, *YYCURSOR);
+               YYDEBUG(455, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy450;
+                       if (yych == '\t') goto yy454;
                        goto yy193;
                } else {
-                       if (yych <= ' ') goto yy450;
+                       if (yych <= ' ') goto yy454;
                        if (yych != ')') goto yy193;
                }
-               YYDEBUG(452, *YYCURSOR);
+               YYDEBUG(456, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(453, *YYCURSOR);
+               YYDEBUG(457, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1223 "Zend/zend_language_scanner.l"
+#line 1224 "Zend/zend_language_scanner.l"
                {
        return T_UNSET_CAST;
 }
-#line 4992 "Zend/zend_language_scanner.c"
-yy454:
-               YYDEBUG(454, *YYCURSOR);
+#line 5037 "Zend/zend_language_scanner.c"
+yy458:
+               YYDEBUG(458, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy455;
+               if (yych == 'R') goto yy459;
                if (yych != 'r') goto yy186;
-yy455:
-               YYDEBUG(455, *YYCURSOR);
+yy459:
+               YYDEBUG(459, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(456, *YYCURSOR);
+               YYDEBUG(460, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1195 "Zend/zend_language_scanner.l"
+#line 1196 "Zend/zend_language_scanner.l"
                {
        return T_VAR;
 }
-#line 5010 "Zend/zend_language_scanner.c"
-yy457:
-               YYDEBUG(457, *YYCURSOR);
+#line 5055 "Zend/zend_language_scanner.c"
+yy461:
+               YYDEBUG(461, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'M') goto yy461;
-               if (yych == 'm') goto yy461;
+               if (yych == 'M') goto yy465;
+               if (yych == 'm') goto yy465;
                goto yy186;
-yy458:
-               YYDEBUG(458, *YYCURSOR);
+yy462:
+               YYDEBUG(462, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'W') goto yy459;
+               if (yych == 'W') goto yy463;
                if (yych != 'w') goto yy186;
-yy459:
-               YYDEBUG(459, *YYCURSOR);
+yy463:
+               YYDEBUG(463, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(460, *YYCURSOR);
+               YYDEBUG(464, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1187 "Zend/zend_language_scanner.l"
+#line 1188 "Zend/zend_language_scanner.l"
                {
        return T_NEW;
 }
-#line 5034 "Zend/zend_language_scanner.c"
-yy461:
-               YYDEBUG(461, *YYCURSOR);
+#line 5079 "Zend/zend_language_scanner.c"
+yy465:
+               YYDEBUG(465, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy462;
+               if (yych == 'E') goto yy466;
                if (yych != 'e') goto yy186;
-yy462:
-               YYDEBUG(462, *YYCURSOR);
+yy466:
+               YYDEBUG(466, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy463;
+               if (yych == 'S') goto yy467;
                if (yych != 's') goto yy186;
-yy463:
-               YYDEBUG(463, *YYCURSOR);
+yy467:
+               YYDEBUG(467, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'P') goto yy464;
+               if (yych == 'P') goto yy468;
                if (yych != 'p') goto yy186;
-yy464:
-               YYDEBUG(464, *YYCURSOR);
+yy468:
+               YYDEBUG(468, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy465;
+               if (yych == 'A') goto yy469;
                if (yych != 'a') goto yy186;
-yy465:
-               YYDEBUG(465, *YYCURSOR);
+yy469:
+               YYDEBUG(469, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy466;
+               if (yych == 'C') goto yy470;
                if (yych != 'c') goto yy186;
-yy466:
-               YYDEBUG(466, *YYCURSOR);
+yy470:
+               YYDEBUG(470, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy467;
+               if (yych == 'E') goto yy471;
                if (yych != 'e') goto yy186;
-yy467:
-               YYDEBUG(467, *YYCURSOR);
+yy471:
+               YYDEBUG(471, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(468, *YYCURSOR);
+               YYDEBUG(472, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1247 "Zend/zend_language_scanner.l"
+#line 1248 "Zend/zend_language_scanner.l"
                {
        return T_NAMESPACE;
 }
-#line 5077 "Zend/zend_language_scanner.c"
-yy469:
-               YYDEBUG(469, *YYCURSOR);
+#line 5122 "Zend/zend_language_scanner.c"
+yy473:
+               YYDEBUG(473, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(470, *YYCURSOR);
+               YYDEBUG(474, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1179 "Zend/zend_language_scanner.l"
+#line 1180 "Zend/zend_language_scanner.l"
                {
        return T_PAAMAYIM_NEKUDOTAYIM;
 }
-#line 5087 "Zend/zend_language_scanner.c"
-yy471:
-               YYDEBUG(471, *YYCURSOR);
+#line 5132 "Zend/zend_language_scanner.c"
+yy475:
+               YYDEBUG(475, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy472:
-               YYDEBUG(472, *YYCURSOR);
+yy476:
+               YYDEBUG(476, *YYCURSOR);
                if (yych <= '\f') {
                        if (yych <= 0x08) goto yy140;
-                       if (yych <= '\n') goto yy471;
+                       if (yych <= '\n') goto yy475;
                        goto yy140;
                } else {
-                       if (yych <= '\r') goto yy471;
-                       if (yych == ' ') goto yy471;
+                       if (yych <= '\r') goto yy475;
+                       if (yych == ' ') goto yy475;
                        goto yy140;
                }
-yy473:
-               YYDEBUG(473, *YYCURSOR);
+yy477:
+               YYDEBUG(477, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(474, *YYCURSOR);
+               YYDEBUG(478, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1351 "Zend/zend_language_scanner.l"
+#line 1352 "Zend/zend_language_scanner.l"
                {
        return T_MINUS_EQUAL;
 }
-#line 5113 "Zend/zend_language_scanner.c"
-yy475:
-               YYDEBUG(475, *YYCURSOR);
+#line 5158 "Zend/zend_language_scanner.c"
+yy479:
+               YYDEBUG(479, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(476, *YYCURSOR);
+               YYDEBUG(480, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1319 "Zend/zend_language_scanner.l"
+#line 1320 "Zend/zend_language_scanner.l"
                {
        return T_DEC;
 }
-#line 5123 "Zend/zend_language_scanner.c"
-yy477:
-               YYDEBUG(477, *YYCURSOR);
+#line 5168 "Zend/zend_language_scanner.c"
+yy481:
+               YYDEBUG(481, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(478, *YYCURSOR);
+               YYDEBUG(482, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1149 "Zend/zend_language_scanner.l"
+#line 1150 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
        return T_OBJECT_OPERATOR;
 }
-#line 5134 "Zend/zend_language_scanner.c"
-yy479:
-               YYDEBUG(479, *YYCURSOR);
+#line 5179 "Zend/zend_language_scanner.c"
+yy483:
+               YYDEBUG(483, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'O') {
-                       if (yych == 'I') goto yy486;
+                       if (yych == 'I') goto yy490;
                        if (yych <= 'N') goto yy186;
-                       goto yy487;
+                       goto yy491;
                } else {
                        if (yych <= 'i') {
                                if (yych <= 'h') goto yy186;
-                               goto yy486;
+                               goto yy490;
                        } else {
-                               if (yych == 'o') goto yy487;
+                               if (yych == 'o') goto yy491;
                                goto yy186;
                        }
                }
-yy480:
-               YYDEBUG(480, *YYCURSOR);
+yy484:
+               YYDEBUG(484, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'B') goto yy481;
+               if (yych == 'B') goto yy485;
                if (yych != 'b') goto yy186;
-yy481:
-               YYDEBUG(481, *YYCURSOR);
+yy485:
+               YYDEBUG(485, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy482;
+               if (yych == 'L') goto yy486;
                if (yych != 'l') goto yy186;
-yy482:
-               YYDEBUG(482, *YYCURSOR);
+yy486:
+               YYDEBUG(486, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy483;
+               if (yych == 'I') goto yy487;
                if (yych != 'i') goto yy186;
-yy483:
-               YYDEBUG(483, *YYCURSOR);
+yy487:
+               YYDEBUG(487, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy484;
+               if (yych == 'C') goto yy488;
                if (yych != 'c') goto yy186;
-yy484:
-               YYDEBUG(484, *YYCURSOR);
+yy488:
+               YYDEBUG(488, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(485, *YYCURSOR);
+               YYDEBUG(489, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1295 "Zend/zend_language_scanner.l"
+#line 1296 "Zend/zend_language_scanner.l"
                {
        return T_PUBLIC;
 }
-#line 5183 "Zend/zend_language_scanner.c"
-yy486:
-               YYDEBUG(486, *YYCURSOR);
+#line 5228 "Zend/zend_language_scanner.c"
+yy490:
+               YYDEBUG(490, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'V') {
-                       if (yych == 'N') goto yy495;
+                       if (yych == 'N') goto yy499;
                        if (yych <= 'U') goto yy186;
-                       goto yy496;
+                       goto yy500;
                } else {
                        if (yych <= 'n') {
                                if (yych <= 'm') goto yy186;
-                               goto yy495;
+                               goto yy499;
                        } else {
-                               if (yych == 'v') goto yy496;
+                               if (yych == 'v') goto yy500;
                                goto yy186;
                        }
                }
-yy487:
-               YYDEBUG(487, *YYCURSOR);
+yy491:
+               YYDEBUG(491, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy488;
+               if (yych == 'T') goto yy492;
                if (yych != 't') goto yy186;
-yy488:
-               YYDEBUG(488, *YYCURSOR);
+yy492:
+               YYDEBUG(492, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy489;
+               if (yych == 'E') goto yy493;
                if (yych != 'e') goto yy186;
-yy489:
-               YYDEBUG(489, *YYCURSOR);
+yy493:
+               YYDEBUG(493, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy490;
+               if (yych == 'C') goto yy494;
                if (yych != 'c') goto yy186;
-yy490:
-               YYDEBUG(490, *YYCURSOR);
+yy494:
+               YYDEBUG(494, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy491;
+               if (yych == 'T') goto yy495;
                if (yych != 't') goto yy186;
-yy491:
-               YYDEBUG(491, *YYCURSOR);
+yy495:
+               YYDEBUG(495, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy492;
+               if (yych == 'E') goto yy496;
                if (yych != 'e') goto yy186;
-yy492:
-               YYDEBUG(492, *YYCURSOR);
+yy496:
+               YYDEBUG(496, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy493;
+               if (yych == 'D') goto yy497;
                if (yych != 'd') goto yy186;
-yy493:
-               YYDEBUG(493, *YYCURSOR);
+yy497:
+               YYDEBUG(497, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(494, *YYCURSOR);
+               YYDEBUG(498, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1291 "Zend/zend_language_scanner.l"
+#line 1292 "Zend/zend_language_scanner.l"
                {
        return T_PROTECTED;
 }
-#line 5242 "Zend/zend_language_scanner.c"
-yy495:
-               YYDEBUG(495, *YYCURSOR);
+#line 5287 "Zend/zend_language_scanner.c"
+yy499:
+               YYDEBUG(499, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy501;
-               if (yych == 't') goto yy501;
+               if (yych == 'T') goto yy505;
+               if (yych == 't') goto yy505;
                goto yy186;
-yy496:
-               YYDEBUG(496, *YYCURSOR);
+yy500:
+               YYDEBUG(500, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy497;
+               if (yych == 'A') goto yy501;
                if (yych != 'a') goto yy186;
-yy497:
-               YYDEBUG(497, *YYCURSOR);
+yy501:
+               YYDEBUG(501, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy498;
+               if (yych == 'T') goto yy502;
                if (yych != 't') goto yy186;
-yy498:
-               YYDEBUG(498, *YYCURSOR);
+yy502:
+               YYDEBUG(502, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy499;
+               if (yych == 'E') goto yy503;
                if (yych != 'e') goto yy186;
-yy499:
-               YYDEBUG(499, *YYCURSOR);
+yy503:
+               YYDEBUG(503, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(500, *YYCURSOR);
+               YYDEBUG(504, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1287 "Zend/zend_language_scanner.l"
+#line 1288 "Zend/zend_language_scanner.l"
                {
        return T_PRIVATE;
 }
-#line 5276 "Zend/zend_language_scanner.c"
-yy501:
-               YYDEBUG(501, *YYCURSOR);
+#line 5321 "Zend/zend_language_scanner.c"
+yy505:
+               YYDEBUG(505, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(502, *YYCURSOR);
+               YYDEBUG(506, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1125 "Zend/zend_language_scanner.l"
+#line 1126 "Zend/zend_language_scanner.l"
                {
        return T_PRINT;
 }
-#line 5289 "Zend/zend_language_scanner.c"
-yy503:
-               YYDEBUG(503, *YYCURSOR);
+#line 5334 "Zend/zend_language_scanner.c"
+yy507:
+               YYDEBUG(507, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy508;
-               if (yych == 'o') goto yy508;
+               if (yych == 'O') goto yy512;
+               if (yych == 'o') goto yy512;
                goto yy186;
-yy504:
-               YYDEBUG(504, *YYCURSOR);
+yy508:
+               YYDEBUG(508, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy505;
+               if (yych == 'T') goto yy509;
                if (yych != 't') goto yy186;
-yy505:
-               YYDEBUG(505, *YYCURSOR);
+yy509:
+               YYDEBUG(509, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy506;
+               if (yych == 'O') goto yy510;
                if (yych != 'o') goto yy186;
-yy506:
-               YYDEBUG(506, *YYCURSOR);
+yy510:
+               YYDEBUG(510, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(507, *YYCURSOR);
+               YYDEBUG(511, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1117 "Zend/zend_language_scanner.l"
+#line 1118 "Zend/zend_language_scanner.l"
                {
        return T_GOTO;
 }
-#line 5318 "Zend/zend_language_scanner.c"
-yy508:
-               YYDEBUG(508, *YYCURSOR);
+#line 5363 "Zend/zend_language_scanner.c"
+yy512:
+               YYDEBUG(512, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'B') goto yy509;
+               if (yych == 'B') goto yy513;
                if (yych != 'b') goto yy186;
-yy509:
-               YYDEBUG(509, *YYCURSOR);
+yy513:
+               YYDEBUG(513, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy510;
+               if (yych == 'A') goto yy514;
                if (yych != 'a') goto yy186;
-yy510:
-               YYDEBUG(510, *YYCURSOR);
+yy514:
+               YYDEBUG(514, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy511;
+               if (yych == 'L') goto yy515;
                if (yych != 'l') goto yy186;
-yy511:
-               YYDEBUG(511, *YYCURSOR);
+yy515:
+               YYDEBUG(515, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(512, *YYCURSOR);
+               YYDEBUG(516, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1259 "Zend/zend_language_scanner.l"
+#line 1260 "Zend/zend_language_scanner.l"
                {
        return T_GLOBAL;
 }
-#line 5346 "Zend/zend_language_scanner.c"
-yy513:
-               YYDEBUG(513, *YYCURSOR);
+#line 5391 "Zend/zend_language_scanner.c"
+yy517:
+               YYDEBUG(517, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '<') goto yy521;
+               if (yych == '<') goto yy525;
                goto yy193;
-yy514:
-               YYDEBUG(514, *YYCURSOR);
+yy518:
+               YYDEBUG(518, *YYCURSOR);
                yych = *++YYCURSOR;
                goto yy180;
-yy515:
-               YYDEBUG(515, *YYCURSOR);
+yy519:
+               YYDEBUG(519, *YYCURSOR);
                yych = *++YYCURSOR;
                goto yy178;
-yy516:
-               YYDEBUG(516, *YYCURSOR);
+yy520:
+               YYDEBUG(520, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy517;
+               if (yych == 'E') goto yy521;
                if (yych != 'e') goto yy186;
-yy517:
-               YYDEBUG(517, *YYCURSOR);
+yy521:
+               YYDEBUG(521, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy518;
+               if (yych == 'A') goto yy522;
                if (yych != 'a') goto yy186;
-yy518:
-               YYDEBUG(518, *YYCURSOR);
+yy522:
+               YYDEBUG(522, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'K') goto yy519;
+               if (yych == 'K') goto yy523;
                if (yych != 'k') goto yy186;
-yy519:
-               YYDEBUG(519, *YYCURSOR);
+yy523:
+               YYDEBUG(523, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(520, *YYCURSOR);
+               YYDEBUG(524, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1109 "Zend/zend_language_scanner.l"
+#line 1110 "Zend/zend_language_scanner.l"
                {
        return T_BREAK;
 }
-#line 5387 "Zend/zend_language_scanner.c"
-yy521:
-               YYDEBUG(521, *YYCURSOR);
+#line 5432 "Zend/zend_language_scanner.c"
+yy525:
+               YYDEBUG(525, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '<') goto yy265;
+               if (yych == '<') goto yy269;
                goto yy193;
-yy522:
-               YYDEBUG(522, *YYCURSOR);
+yy526:
+               YYDEBUG(526, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy529;
-               if (yych == 'a') goto yy529;
+               if (yych == 'A') goto yy533;
+               if (yych == 'a') goto yy533;
                goto yy186;
-yy523:
-               YYDEBUG(523, *YYCURSOR);
+yy527:
+               YYDEBUG(527, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy524;
+               if (yych == 'I') goto yy528;
                if (yych != 'i') goto yy186;
-yy524:
-               YYDEBUG(524, *YYCURSOR);
+yy528:
+               YYDEBUG(528, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy525;
+               if (yych == 'T') goto yy529;
                if (yych != 't') goto yy186;
-yy525:
-               YYDEBUG(525, *YYCURSOR);
+yy529:
+               YYDEBUG(529, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy526;
+               if (yych == 'C') goto yy530;
                if (yych != 'c') goto yy186;
-yy526:
-               YYDEBUG(526, *YYCURSOR);
+yy530:
+               YYDEBUG(530, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy527;
+               if (yych == 'H') goto yy531;
                if (yych != 'h') goto yy186;
-yy527:
-               YYDEBUG(527, *YYCURSOR);
+yy531:
+               YYDEBUG(531, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(528, *YYCURSOR);
+               YYDEBUG(532, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1093 "Zend/zend_language_scanner.l"
+#line 1094 "Zend/zend_language_scanner.l"
                {
        return T_SWITCH;
 }
-#line 5431 "Zend/zend_language_scanner.c"
-yy529:
-               YYDEBUG(529, *YYCURSOR);
+#line 5476 "Zend/zend_language_scanner.c"
+yy533:
+               YYDEBUG(533, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy530;
+               if (yych == 'T') goto yy534;
                if (yych != 't') goto yy186;
-yy530:
-               YYDEBUG(530, *YYCURSOR);
+yy534:
+               YYDEBUG(534, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy531;
+               if (yych == 'I') goto yy535;
                if (yych != 'i') goto yy186;
-yy531:
-               YYDEBUG(531, *YYCURSOR);
+yy535:
+               YYDEBUG(535, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy532;
+               if (yych == 'C') goto yy536;
                if (yych != 'c') goto yy186;
-yy532:
-               YYDEBUG(532, *YYCURSOR);
+yy536:
+               YYDEBUG(536, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(533, *YYCURSOR);
+               YYDEBUG(537, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1275 "Zend/zend_language_scanner.l"
+#line 1276 "Zend/zend_language_scanner.l"
                {
        return T_STATIC;
 }
-#line 5459 "Zend/zend_language_scanner.c"
-yy534:
-               YYDEBUG(534, *YYCURSOR);
+#line 5504 "Zend/zend_language_scanner.c"
+yy538:
+               YYDEBUG(538, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy545;
-               if (yych == 's') goto yy545;
+               if (yych == 'S') goto yy549;
+               if (yych == 's') goto yy549;
                goto yy186;
-yy535:
-               YYDEBUG(535, *YYCURSOR);
+yy539:
+               YYDEBUG(539, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy543;
-               if (yych == 'd') goto yy543;
+               if (yych == 'D') goto yy547;
+               if (yych == 'd') goto yy547;
                goto yy186;
-yy536:
-               YYDEBUG(536, *YYCURSOR);
+yy540:
+               YYDEBUG(540, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy539;
-               if (yych == 'r') goto yy539;
+               if (yych == 'R') goto yy543;
+               if (yych == 'r') goto yy543;
                goto yy186;
-yy537:
-               YYDEBUG(537, *YYCURSOR);
+yy541:
+               YYDEBUG(541, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(538, *YYCURSOR);
+               YYDEBUG(542, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1089 "Zend/zend_language_scanner.l"
+#line 1090 "Zend/zend_language_scanner.l"
                {
        return T_AS;
 }
-#line 5490 "Zend/zend_language_scanner.c"
-yy539:
-               YYDEBUG(539, *YYCURSOR);
+#line 5535 "Zend/zend_language_scanner.c"
+yy543:
+               YYDEBUG(543, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy540;
+               if (yych == 'A') goto yy544;
                if (yych != 'a') goto yy186;
-yy540:
-               YYDEBUG(540, *YYCURSOR);
+yy544:
+               YYDEBUG(544, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy541;
+               if (yych == 'Y') goto yy545;
                if (yych != 'y') goto yy186;
-yy541:
-               YYDEBUG(541, *YYCURSOR);
+yy545:
+               YYDEBUG(545, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(542, *YYCURSOR);
+               YYDEBUG(546, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1311 "Zend/zend_language_scanner.l"
+#line 1312 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY;
 }
-#line 5513 "Zend/zend_language_scanner.c"
-yy543:
-               YYDEBUG(543, *YYCURSOR);
+#line 5558 "Zend/zend_language_scanner.c"
+yy547:
+               YYDEBUG(547, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(544, *YYCURSOR);
+               YYDEBUG(548, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1403 "Zend/zend_language_scanner.l"
+#line 1404 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_AND;
 }
-#line 5526 "Zend/zend_language_scanner.c"
-yy545:
-               YYDEBUG(545, *YYCURSOR);
+#line 5571 "Zend/zend_language_scanner.c"
+yy549:
+               YYDEBUG(549, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy546;
+               if (yych == 'T') goto yy550;
                if (yych != 't') goto yy186;
-yy546:
-               YYDEBUG(546, *YYCURSOR);
+yy550:
+               YYDEBUG(550, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy547;
+               if (yych == 'R') goto yy551;
                if (yych != 'r') goto yy186;
-yy547:
-               YYDEBUG(547, *YYCURSOR);
+yy551:
+               YYDEBUG(551, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy548;
+               if (yych == 'A') goto yy552;
                if (yych != 'a') goto yy186;
-yy548:
-               YYDEBUG(548, *YYCURSOR);
+yy552:
+               YYDEBUG(552, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy549;
+               if (yych == 'C') goto yy553;
                if (yych != 'c') goto yy186;
-yy549:
-               YYDEBUG(549, *YYCURSOR);
+yy553:
+               YYDEBUG(553, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy550;
+               if (yych == 'T') goto yy554;
                if (yych != 't') goto yy186;
-yy550:
-               YYDEBUG(550, *YYCURSOR);
+yy554:
+               YYDEBUG(554, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(551, *YYCURSOR);
+               YYDEBUG(555, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1279 "Zend/zend_language_scanner.l"
+#line 1280 "Zend/zend_language_scanner.l"
                {
        return T_ABSTRACT;
 }
-#line 5564 "Zend/zend_language_scanner.c"
-yy552:
-               YYDEBUG(552, *YYCURSOR);
+#line 5609 "Zend/zend_language_scanner.c"
+yy556:
+               YYDEBUG(556, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy553;
+               if (yych == 'I') goto yy557;
                if (yych != 'i') goto yy186;
-yy553:
-               YYDEBUG(553, *YYCURSOR);
+yy557:
+               YYDEBUG(557, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy554;
+               if (yych == 'L') goto yy558;
                if (yych != 'l') goto yy186;
-yy554:
-               YYDEBUG(554, *YYCURSOR);
+yy558:
+               YYDEBUG(558, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy555;
+               if (yych == 'E') goto yy559;
                if (yych != 'e') goto yy186;
-yy555:
-               YYDEBUG(555, *YYCURSOR);
+yy559:
+               YYDEBUG(559, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(556, *YYCURSOR);
+               YYDEBUG(560, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1049 "Zend/zend_language_scanner.l"
+#line 1050 "Zend/zend_language_scanner.l"
                {
        return T_WHILE;
 }
-#line 5592 "Zend/zend_language_scanner.c"
-yy557:
-               YYDEBUG(557, *YYCURSOR);
+#line 5637 "Zend/zend_language_scanner.c"
+yy561:
+               YYDEBUG(561, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(558, *YYCURSOR);
+               YYDEBUG(562, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1033 "Zend/zend_language_scanner.l"
+#line 1034 "Zend/zend_language_scanner.l"
                {
        return T_IF;
 }
-#line 5605 "Zend/zend_language_scanner.c"
-yy559:
-               YYDEBUG(559, *YYCURSOR);
+#line 5650 "Zend/zend_language_scanner.c"
+yy563:
+               YYDEBUG(563, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'P') goto yy601;
-               if (yych == 'p') goto yy601;
+               if (yych == 'P') goto yy605;
+               if (yych == 'p') goto yy605;
                goto yy186;
-yy560:
-               YYDEBUG(560, *YYCURSOR);
+yy564:
+               YYDEBUG(564, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'T') {
                        if (yych <= 'C') {
                                if (yych <= 'B') goto yy186;
-                               goto yy568;
+                               goto yy572;
                        } else {
                                if (yych <= 'R') goto yy186;
-                               if (yych <= 'S') goto yy566;
-                               goto yy567;
+                               if (yych <= 'S') goto yy570;
+                               goto yy571;
                        }
                } else {
                        if (yych <= 'r') {
-                               if (yych == 'c') goto yy568;
+                               if (yych == 'c') goto yy572;
                                goto yy186;
                        } else {
-                               if (yych <= 's') goto yy566;
-                               if (yych <= 't') goto yy567;
+                               if (yych <= 's') goto yy570;
+                               if (yych <= 't') goto yy571;
                                goto yy186;
                        }
                }
-yy561:
-               YYDEBUG(561, *YYCURSOR);
+yy565:
+               YYDEBUG(565, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy562;
+               if (yych == 'S') goto yy566;
                if (yych != 's') goto yy186;
-yy562:
-               YYDEBUG(562, *YYCURSOR);
+yy566:
+               YYDEBUG(566, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy563;
+               if (yych == 'E') goto yy567;
                if (yych != 'e') goto yy186;
-yy563:
-               YYDEBUG(563, *YYCURSOR);
+yy567:
+               YYDEBUG(567, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy564;
+               if (yych == 'T') goto yy568;
                if (yych != 't') goto yy186;
-yy564:
-               YYDEBUG(564, *YYCURSOR);
+yy568:
+               YYDEBUG(568, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(565, *YYCURSOR);
+               YYDEBUG(569, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1263 "Zend/zend_language_scanner.l"
+#line 1264 "Zend/zend_language_scanner.l"
                {
        return T_ISSET;
 }
-#line 5661 "Zend/zend_language_scanner.c"
-yy566:
-               YYDEBUG(566, *YYCURSOR);
+#line 5706 "Zend/zend_language_scanner.c"
+yy570:
+               YYDEBUG(570, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy587;
-               if (yych == 't') goto yy587;
+               if (yych == 'T') goto yy591;
+               if (yych == 't') goto yy591;
                goto yy186;
-yy567:
-               YYDEBUG(567, *YYCURSOR);
+yy571:
+               YYDEBUG(571, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy580;
-               if (yych == 'e') goto yy580;
+               if (yych == 'E') goto yy584;
+               if (yych == 'e') goto yy584;
                goto yy186;
-yy568:
-               YYDEBUG(568, *YYCURSOR);
+yy572:
+               YYDEBUG(572, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy569;
+               if (yych == 'L') goto yy573;
                if (yych != 'l') goto yy186;
-yy569:
-               YYDEBUG(569, *YYCURSOR);
+yy573:
+               YYDEBUG(573, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'U') goto yy570;
+               if (yych == 'U') goto yy574;
                if (yych != 'u') goto yy186;
-yy570:
-               YYDEBUG(570, *YYCURSOR);
+yy574:
+               YYDEBUG(574, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy571;
+               if (yych == 'D') goto yy575;
                if (yych != 'd') goto yy186;
-yy571:
-               YYDEBUG(571, *YYCURSOR);
+yy575:
+               YYDEBUG(575, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy572;
+               if (yych == 'E') goto yy576;
                if (yych != 'e') goto yy186;
-yy572:
-               YYDEBUG(572, *YYCURSOR);
+yy576:
+               YYDEBUG(576, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '9') {
                                if (yych >= '0') goto yy185;
                        } else {
-                               if (yych <= '@') goto yy573;
+                               if (yych <= '@') goto yy577;
                                if (yych <= 'Z') goto yy185;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych <= '_') goto yy574;
+                               if (yych <= '_') goto yy578;
                        } else {
                                if (yych <= 'z') goto yy185;
                                if (yych >= 0x7F) goto yy185;
                        }
                }
-yy573:
-               YYDEBUG(573, *YYCURSOR);
+yy577:
+               YYDEBUG(577, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1231 "Zend/zend_language_scanner.l"
+#line 1232 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE;
 }
-#line 5719 "Zend/zend_language_scanner.c"
-yy574:
-               YYDEBUG(574, *YYCURSOR);
+#line 5764 "Zend/zend_language_scanner.c"
+yy578:
+               YYDEBUG(578, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy575;
+               if (yych == 'O') goto yy579;
                if (yych != 'o') goto yy186;
-yy575:
-               YYDEBUG(575, *YYCURSOR);
+yy579:
+               YYDEBUG(579, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy576;
+               if (yych == 'N') goto yy580;
                if (yych != 'n') goto yy186;
-yy576:
-               YYDEBUG(576, *YYCURSOR);
+yy580:
+               YYDEBUG(580, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy577;
+               if (yych == 'C') goto yy581;
                if (yych != 'c') goto yy186;
-yy577:
-               YYDEBUG(577, *YYCURSOR);
+yy581:
+               YYDEBUG(581, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy578;
+               if (yych == 'E') goto yy582;
                if (yych != 'e') goto yy186;
-yy578:
-               YYDEBUG(578, *YYCURSOR);
+yy582:
+               YYDEBUG(582, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(579, *YYCURSOR);
+               YYDEBUG(583, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1235 "Zend/zend_language_scanner.l"
+#line 1236 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE_ONCE;
 }
-#line 5752 "Zend/zend_language_scanner.c"
-yy580:
-               YYDEBUG(580, *YYCURSOR);
+#line 5797 "Zend/zend_language_scanner.c"
+yy584:
+               YYDEBUG(584, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy581;
+               if (yych == 'R') goto yy585;
                if (yych != 'r') goto yy186;
-yy581:
-               YYDEBUG(581, *YYCURSOR);
+yy585:
+               YYDEBUG(585, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'F') goto yy582;
+               if (yych == 'F') goto yy586;
                if (yych != 'f') goto yy186;
-yy582:
-               YYDEBUG(582, *YYCURSOR);
+yy586:
+               YYDEBUG(586, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy583;
+               if (yych == 'A') goto yy587;
                if (yych != 'a') goto yy186;
-yy583:
-               YYDEBUG(583, *YYCURSOR);
+yy587:
+               YYDEBUG(587, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy584;
+               if (yych == 'C') goto yy588;
                if (yych != 'c') goto yy186;
-yy584:
-               YYDEBUG(584, *YYCURSOR);
+yy588:
+               YYDEBUG(588, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy585;
+               if (yych == 'E') goto yy589;
                if (yych != 'e') goto yy186;
-yy585:
-               YYDEBUG(585, *YYCURSOR);
+yy589:
+               YYDEBUG(589, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(586, *YYCURSOR);
+               YYDEBUG(590, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1133 "Zend/zend_language_scanner.l"
+#line 1134 "Zend/zend_language_scanner.l"
                {
        return T_INTERFACE;
 }
-#line 5790 "Zend/zend_language_scanner.c"
-yy587:
-               YYDEBUG(587, *YYCURSOR);
+#line 5835 "Zend/zend_language_scanner.c"
+yy591:
+               YYDEBUG(591, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'E') {
-                       if (yych == 'A') goto yy588;
+                       if (yych == 'A') goto yy592;
                        if (yych <= 'D') goto yy186;
-                       goto yy589;
+                       goto yy593;
                } else {
                        if (yych <= 'a') {
                                if (yych <= '`') goto yy186;
                        } else {
-                               if (yych == 'e') goto yy589;
+                               if (yych == 'e') goto yy593;
                                goto yy186;
                        }
                }
-yy588:
-               YYDEBUG(588, *YYCURSOR);
+yy592:
+               YYDEBUG(592, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy595;
-               if (yych == 'n') goto yy595;
+               if (yych == 'N') goto yy599;
+               if (yych == 'n') goto yy599;
                goto yy186;
-yy589:
-               YYDEBUG(589, *YYCURSOR);
+yy593:
+               YYDEBUG(593, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy590;
+               if (yych == 'A') goto yy594;
                if (yych != 'a') goto yy186;
-yy590:
-               YYDEBUG(590, *YYCURSOR);
+yy594:
+               YYDEBUG(594, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy591;
+               if (yych == 'D') goto yy595;
                if (yych != 'd') goto yy186;
-yy591:
-               YYDEBUG(591, *YYCURSOR);
+yy595:
+               YYDEBUG(595, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy592;
+               if (yych == 'O') goto yy596;
                if (yych != 'o') goto yy186;
-yy592:
-               YYDEBUG(592, *YYCURSOR);
+yy596:
+               YYDEBUG(596, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'F') goto yy593;
+               if (yych == 'F') goto yy597;
                if (yych != 'f') goto yy186;
-yy593:
-               YYDEBUG(593, *YYCURSOR);
+yy597:
+               YYDEBUG(597, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(594, *YYCURSOR);
+               YYDEBUG(598, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1255 "Zend/zend_language_scanner.l"
+#line 1256 "Zend/zend_language_scanner.l"
                {
         return T_INSTEADOF;
 }
-#line 5844 "Zend/zend_language_scanner.c"
-yy595:
-               YYDEBUG(595, *YYCURSOR);
+#line 5889 "Zend/zend_language_scanner.c"
+yy599:
+               YYDEBUG(599, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy596;
+               if (yych == 'C') goto yy600;
                if (yych != 'c') goto yy186;
-yy596:
-               YYDEBUG(596, *YYCURSOR);
+yy600:
+               YYDEBUG(600, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy597;
+               if (yych == 'E') goto yy601;
                if (yych != 'e') goto yy186;
-yy597:
-               YYDEBUG(597, *YYCURSOR);
+yy601:
+               YYDEBUG(601, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy598;
+               if (yych == 'O') goto yy602;
                if (yych != 'o') goto yy186;
-yy598:
-               YYDEBUG(598, *YYCURSOR);
+yy602:
+               YYDEBUG(602, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'F') goto yy599;
-               if (yych != 'f') goto yy186;
-yy599:
-               YYDEBUG(599, *YYCURSOR);
+               if (yych == 'F') goto yy603;
+               if (yych != 'f') goto yy186;
+yy603:
+               YYDEBUG(603, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(600, *YYCURSOR);
+               YYDEBUG(604, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1085 "Zend/zend_language_scanner.l"
+#line 1086 "Zend/zend_language_scanner.l"
                {
        return T_INSTANCEOF;
 }
-#line 5877 "Zend/zend_language_scanner.c"
-yy601:
-               YYDEBUG(601, *YYCURSOR);
+#line 5922 "Zend/zend_language_scanner.c"
+yy605:
+               YYDEBUG(605, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy602;
+               if (yych == 'L') goto yy606;
                if (yych != 'l') goto yy186;
-yy602:
-               YYDEBUG(602, *YYCURSOR);
+yy606:
+               YYDEBUG(606, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy603;
+               if (yych == 'E') goto yy607;
                if (yych != 'e') goto yy186;
-yy603:
-               YYDEBUG(603, *YYCURSOR);
+yy607:
+               YYDEBUG(607, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'M') goto yy604;
+               if (yych == 'M') goto yy608;
                if (yych != 'm') goto yy186;
-yy604:
-               YYDEBUG(604, *YYCURSOR);
+yy608:
+               YYDEBUG(608, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy605;
+               if (yych == 'E') goto yy609;
                if (yych != 'e') goto yy186;
-yy605:
-               YYDEBUG(605, *YYCURSOR);
+yy609:
+               YYDEBUG(609, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy606;
+               if (yych == 'N') goto yy610;
                if (yych != 'n') goto yy186;
-yy606:
-               YYDEBUG(606, *YYCURSOR);
+yy610:
+               YYDEBUG(610, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy607;
+               if (yych == 'T') goto yy611;
                if (yych != 't') goto yy186;
-yy607:
-               YYDEBUG(607, *YYCURSOR);
+yy611:
+               YYDEBUG(611, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy608;
+               if (yych == 'S') goto yy612;
                if (yych != 's') goto yy186;
-yy608:
-               YYDEBUG(608, *YYCURSOR);
+yy612:
+               YYDEBUG(612, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(609, *YYCURSOR);
+               YYDEBUG(613, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1145 "Zend/zend_language_scanner.l"
+#line 1146 "Zend/zend_language_scanner.l"
                {
        return T_IMPLEMENTS;
 }
-#line 5925 "Zend/zend_language_scanner.c"
-yy610:
-               YYDEBUG(610, *YYCURSOR);
+#line 5970 "Zend/zend_language_scanner.c"
+yy614:
+               YYDEBUG(614, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy618;
-               if (yych == 'r') goto yy618;
+               if (yych == 'R') goto yy622;
+               if (yych == 'r') goto yy622;
                goto yy186;
-yy611:
-               YYDEBUG(611, *YYCURSOR);
+yy615:
+               YYDEBUG(615, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'Y') {
-                       if (yych == 'A') goto yy614;
+                       if (yych == 'A') goto yy618;
                        if (yych <= 'X') goto yy186;
                } else {
                        if (yych <= 'a') {
                                if (yych <= '`') goto yy186;
-                               goto yy614;
+                               goto yy618;
                        } else {
                                if (yych != 'y') goto yy186;
                        }
                }
-               YYDEBUG(612, *YYCURSOR);
+               YYDEBUG(616, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(613, *YYCURSOR);
+               YYDEBUG(617, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1021 "Zend/zend_language_scanner.l"
+#line 1022 "Zend/zend_language_scanner.l"
                {
        return T_TRY;
 }
-#line 5957 "Zend/zend_language_scanner.c"
-yy614:
-               YYDEBUG(614, *YYCURSOR);
+#line 6002 "Zend/zend_language_scanner.c"
+yy618:
+               YYDEBUG(618, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy615;
+               if (yych == 'I') goto yy619;
                if (yych != 'i') goto yy186;
-yy615:
-               YYDEBUG(615, *YYCURSOR);
+yy619:
+               YYDEBUG(619, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy616;
+               if (yych == 'T') goto yy620;
                if (yych != 't') goto yy186;
-yy616:
-               YYDEBUG(616, *YYCURSOR);
+yy620:
+               YYDEBUG(620, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(617, *YYCURSOR);
+               YYDEBUG(621, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1137 "Zend/zend_language_scanner.l"
+#line 1138 "Zend/zend_language_scanner.l"
                {
        return T_TRAIT;
 }
-#line 5980 "Zend/zend_language_scanner.c"
-yy618:
-               YYDEBUG(618, *YYCURSOR);
+#line 6025 "Zend/zend_language_scanner.c"
+yy622:
+               YYDEBUG(622, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy619;
+               if (yych == 'O') goto yy623;
                if (yych != 'o') goto yy186;
-yy619:
-               YYDEBUG(619, *YYCURSOR);
+yy623:
+               YYDEBUG(623, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'W') goto yy620;
+               if (yych == 'W') goto yy624;
                if (yych != 'w') goto yy186;
-yy620:
-               YYDEBUG(620, *YYCURSOR);
+yy624:
+               YYDEBUG(624, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(621, *YYCURSOR);
+               YYDEBUG(625, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1029 "Zend/zend_language_scanner.l"
+#line 1030 "Zend/zend_language_scanner.l"
                {
        return T_THROW;
 }
-#line 6003 "Zend/zend_language_scanner.c"
-yy622:
-               YYDEBUG(622, *YYCURSOR);
+#line 6048 "Zend/zend_language_scanner.c"
+yy626:
+               YYDEBUG(626, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'T') {
-                       if (yych == 'Q') goto yy624;
+                       if (yych == 'Q') goto yy628;
                        if (yych <= 'S') goto yy186;
                } else {
                        if (yych <= 'q') {
                                if (yych <= 'p') goto yy186;
-                               goto yy624;
+                               goto yy628;
                        } else {
                                if (yych != 't') goto yy186;
                        }
                }
-               YYDEBUG(623, *YYCURSOR);
+               YYDEBUG(627, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'U') goto yy636;
-               if (yych == 'u') goto yy636;
+               if (yych == 'U') goto yy640;
+               if (yych == 'u') goto yy640;
                goto yy186;
-yy624:
-               YYDEBUG(624, *YYCURSOR);
+yy628:
+               YYDEBUG(628, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'U') goto yy625;
+               if (yych == 'U') goto yy629;
                if (yych != 'u') goto yy186;
-yy625:
-               YYDEBUG(625, *YYCURSOR);
+yy629:
+               YYDEBUG(629, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy626;
+               if (yych == 'I') goto yy630;
                if (yych != 'i') goto yy186;
-yy626:
-               YYDEBUG(626, *YYCURSOR);
+yy630:
+               YYDEBUG(630, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy627;
+               if (yych == 'R') goto yy631;
                if (yych != 'r') goto yy186;
-yy627:
-               YYDEBUG(627, *YYCURSOR);
+yy631:
+               YYDEBUG(631, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy628;
+               if (yych == 'E') goto yy632;
                if (yych != 'e') goto yy186;
-yy628:
-               YYDEBUG(628, *YYCURSOR);
+yy632:
+               YYDEBUG(632, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '9') {
                                if (yych >= '0') goto yy185;
                        } else {
-                               if (yych <= '@') goto yy629;
+                               if (yych <= '@') goto yy633;
                                if (yych <= 'Z') goto yy185;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych <= '_') goto yy630;
+                               if (yych <= '_') goto yy634;
                        } else {
                                if (yych <= 'z') goto yy185;
                                if (yych >= 0x7F) goto yy185;
                        }
                }
-yy629:
-               YYDEBUG(629, *YYCURSOR);
+yy633:
+               YYDEBUG(633, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1239 "Zend/zend_language_scanner.l"
+#line 1240 "Zend/zend_language_scanner.l"
                {
        return T_REQUIRE;
 }
-#line 6068 "Zend/zend_language_scanner.c"
-yy630:
-               YYDEBUG(630, *YYCURSOR);
+#line 6113 "Zend/zend_language_scanner.c"
+yy634:
+               YYDEBUG(634, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy631;
+               if (yych == 'O') goto yy635;
                if (yych != 'o') goto yy186;
-yy631:
-               YYDEBUG(631, *YYCURSOR);
+yy635:
+               YYDEBUG(635, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy632;
+               if (yych == 'N') goto yy636;
                if (yych != 'n') goto yy186;
-yy632:
-               YYDEBUG(632, *YYCURSOR);
+yy636:
+               YYDEBUG(636, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy633;
+               if (yych == 'C') goto yy637;
                if (yych != 'c') goto yy186;
-yy633:
-               YYDEBUG(633, *YYCURSOR);
+yy637:
+               YYDEBUG(637, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy634;
+               if (yych == 'E') goto yy638;
                if (yych != 'e') goto yy186;
-yy634:
-               YYDEBUG(634, *YYCURSOR);
+yy638:
+               YYDEBUG(638, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(635, *YYCURSOR);
+               YYDEBUG(639, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1243 "Zend/zend_language_scanner.l"
+#line 1244 "Zend/zend_language_scanner.l"
                {
        return T_REQUIRE_ONCE;
 }
-#line 6101 "Zend/zend_language_scanner.c"
-yy636:
-               YYDEBUG(636, *YYCURSOR);
+#line 6146 "Zend/zend_language_scanner.c"
+yy640:
+               YYDEBUG(640, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy637;
+               if (yych == 'R') goto yy641;
                if (yych != 'r') goto yy186;
-yy637:
-               YYDEBUG(637, *YYCURSOR);
+yy641:
+               YYDEBUG(641, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy638;
+               if (yych == 'N') goto yy642;
                if (yych != 'n') goto yy186;
-yy638:
-               YYDEBUG(638, *YYCURSOR);
+yy642:
+               YYDEBUG(642, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(639, *YYCURSOR);
+               YYDEBUG(643, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1017 "Zend/zend_language_scanner.l"
+#line 1018 "Zend/zend_language_scanner.l"
                {
        return T_RETURN;
 }
-#line 6124 "Zend/zend_language_scanner.c"
-yy640:
-               YYDEBUG(640, *YYCURSOR);
+#line 6169 "Zend/zend_language_scanner.c"
+yy644:
+               YYDEBUG(644, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'T') {
                        if (yych <= 'R') goto yy186;
-                       if (yych <= 'S') goto yy662;
-                       goto yy661;
+                       if (yych <= 'S') goto yy666;
+                       goto yy665;
                } else {
                        if (yych <= 'r') goto yy186;
-                       if (yych <= 's') goto yy662;
-                       if (yych <= 't') goto yy661;
+                       if (yych <= 's') goto yy666;
+                       if (yych <= 't') goto yy665;
                        goto yy186;
                }
-yy641:
-               YYDEBUG(641, *YYCURSOR);
+yy645:
+               YYDEBUG(645, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'O') {
-                       if (yych == 'A') goto yy653;
+                       if (yych == 'A') goto yy657;
                        if (yych <= 'N') goto yy186;
-                       goto yy654;
+                       goto yy658;
                } else {
                        if (yych <= 'a') {
                                if (yych <= '`') goto yy186;
-                               goto yy653;
+                               goto yy657;
                        } else {
-                               if (yych == 'o') goto yy654;
+                               if (yych == 'o') goto yy658;
                                goto yy186;
                        }
                }
-yy642:
-               YYDEBUG(642, *YYCURSOR);
+yy646:
+               YYDEBUG(646, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy643;
+               if (yych == 'N') goto yy647;
                if (yych != 'n') goto yy186;
-yy643:
-               YYDEBUG(643, *YYCURSOR);
+yy647:
+               YYDEBUG(647, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'T') {
                        if (yych <= 'R') goto yy186;
-                       if (yych >= 'T') goto yy645;
+                       if (yych >= 'T') goto yy649;
                } else {
                        if (yych <= 'r') goto yy186;
-                       if (yych <= 's') goto yy644;
-                       if (yych <= 't') goto yy645;
+                       if (yych <= 's') goto yy648;
+                       if (yych <= 't') goto yy649;
                        goto yy186;
                }
-yy644:
-               YYDEBUG(644, *YYCURSOR);
+yy648:
+               YYDEBUG(648, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy651;
-               if (yych == 't') goto yy651;
+               if (yych == 'T') goto yy655;
+               if (yych == 't') goto yy655;
                goto yy186;
-yy645:
-               YYDEBUG(645, *YYCURSOR);
+yy649:
+               YYDEBUG(649, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy646;
+               if (yych == 'I') goto yy650;
                if (yych != 'i') goto yy186;
-yy646:
-               YYDEBUG(646, *YYCURSOR);
+yy650:
+               YYDEBUG(650, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy647;
+               if (yych == 'N') goto yy651;
                if (yych != 'n') goto yy186;
-yy647:
-               YYDEBUG(647, *YYCURSOR);
+yy651:
+               YYDEBUG(651, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'U') goto yy648;
+               if (yych == 'U') goto yy652;
                if (yych != 'u') goto yy186;
-yy648:
-               YYDEBUG(648, *YYCURSOR);
+yy652:
+               YYDEBUG(652, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy649;
+               if (yych == 'E') goto yy653;
                if (yych != 'e') goto yy186;
-yy649:
-               YYDEBUG(649, *YYCURSOR);
+yy653:
+               YYDEBUG(653, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(650, *YYCURSOR);
+               YYDEBUG(654, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1113 "Zend/zend_language_scanner.l"
+#line 1114 "Zend/zend_language_scanner.l"
                {
        return T_CONTINUE;
 }
-#line 6209 "Zend/zend_language_scanner.c"
-yy651:
-               YYDEBUG(651, *YYCURSOR);
+#line 6254 "Zend/zend_language_scanner.c"
+yy655:
+               YYDEBUG(655, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(652, *YYCURSOR);
+               YYDEBUG(656, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1013 "Zend/zend_language_scanner.l"
+#line 1014 "Zend/zend_language_scanner.l"
                {
        return T_CONST;
 }
-#line 6222 "Zend/zend_language_scanner.c"
-yy653:
-               YYDEBUG(653, *YYCURSOR);
+#line 6267 "Zend/zend_language_scanner.c"
+yy657:
+               YYDEBUG(657, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy658;
-               if (yych == 's') goto yy658;
+               if (yych == 'S') goto yy662;
+               if (yych == 's') goto yy662;
                goto yy186;
-yy654:
-               YYDEBUG(654, *YYCURSOR);
+yy658:
+               YYDEBUG(658, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy655;
+               if (yych == 'N') goto yy659;
                if (yych != 'n') goto yy186;
-yy655:
-               YYDEBUG(655, *YYCURSOR);
+yy659:
+               YYDEBUG(659, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy656;
+               if (yych == 'E') goto yy660;
                if (yych != 'e') goto yy186;
-yy656:
-               YYDEBUG(656, *YYCURSOR);
+yy660:
+               YYDEBUG(660, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(657, *YYCURSOR);
+               YYDEBUG(661, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1191 "Zend/zend_language_scanner.l"
+#line 1192 "Zend/zend_language_scanner.l"
                {
        return T_CLONE;
 }
-#line 6251 "Zend/zend_language_scanner.c"
-yy658:
-               YYDEBUG(658, *YYCURSOR);
+#line 6296 "Zend/zend_language_scanner.c"
+yy662:
+               YYDEBUG(662, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy659;
+               if (yych == 'S') goto yy663;
                if (yych != 's') goto yy186;
-yy659:
-               YYDEBUG(659, *YYCURSOR);
+yy663:
+               YYDEBUG(663, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(660, *YYCURSOR);
+               YYDEBUG(664, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1129 "Zend/zend_language_scanner.l"
+#line 1130 "Zend/zend_language_scanner.l"
                {
        return T_CLASS;
 }
-#line 6269 "Zend/zend_language_scanner.c"
-yy661:
-               YYDEBUG(661, *YYCURSOR);
+#line 6314 "Zend/zend_language_scanner.c"
+yy665:
+               YYDEBUG(665, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy665;
-               if (yych == 'c') goto yy665;
+               if (yych == 'C') goto yy669;
+               if (yych == 'c') goto yy669;
                goto yy186;
-yy662:
-               YYDEBUG(662, *YYCURSOR);
+yy666:
+               YYDEBUG(666, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy663;
+               if (yych == 'E') goto yy667;
                if (yych != 'e') goto yy186;
-yy663:
-               YYDEBUG(663, *YYCURSOR);
+yy667:
+               YYDEBUG(667, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(664, *YYCURSOR);
+               YYDEBUG(668, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1101 "Zend/zend_language_scanner.l"
+#line 1102 "Zend/zend_language_scanner.l"
                {
        return T_CASE;
 }
-#line 6293 "Zend/zend_language_scanner.c"
-yy665:
-               YYDEBUG(665, *YYCURSOR);
+#line 6338 "Zend/zend_language_scanner.c"
+yy669:
+               YYDEBUG(669, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy666;
+               if (yych == 'H') goto yy670;
                if (yych != 'h') goto yy186;
-yy666:
-               YYDEBUG(666, *YYCURSOR);
+yy670:
+               YYDEBUG(670, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(667, *YYCURSOR);
+               YYDEBUG(671, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1025 "Zend/zend_language_scanner.l"
+#line 1026 "Zend/zend_language_scanner.l"
                {
        return T_CATCH;
 }
-#line 6311 "Zend/zend_language_scanner.c"
-yy668:
-               YYDEBUG(668, *YYCURSOR);
+#line 6356 "Zend/zend_language_scanner.c"
+yy672:
+               YYDEBUG(672, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy685;
-               if (yych == 'n') goto yy685;
+               if (yych == 'N') goto yy689;
+               if (yych == 'n') goto yy689;
                goto yy186;
-yy669:
-               YYDEBUG(669, *YYCURSOR);
+yy673:
+               YYDEBUG(673, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy678;
-               if (yych == 'r') goto yy678;
+               if (yych == 'R') goto yy682;
+               if (yych == 'r') goto yy682;
                goto yy186;
-yy670:
-               YYDEBUG(670, *YYCURSOR);
+yy674:
+               YYDEBUG(674, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy671;
+               if (yych == 'N') goto yy675;
                if (yych != 'n') goto yy186;
-yy671:
-               YYDEBUG(671, *YYCURSOR);
+yy675:
+               YYDEBUG(675, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy672;
+               if (yych == 'C') goto yy676;
                if (yych != 'c') goto yy186;
-yy672:
-               YYDEBUG(672, *YYCURSOR);
+yy676:
+               YYDEBUG(676, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy673;
+               if (yych == 'T') goto yy677;
                if (yych != 't') goto yy186;
-yy673:
-               YYDEBUG(673, *YYCURSOR);
+yy677:
+               YYDEBUG(677, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy674;
+               if (yych == 'I') goto yy678;
                if (yych != 'i') goto yy186;
-yy674:
-               YYDEBUG(674, *YYCURSOR);
+yy678:
+               YYDEBUG(678, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy675;
+               if (yych == 'O') goto yy679;
                if (yych != 'o') goto yy186;
-yy675:
-               YYDEBUG(675, *YYCURSOR);
+yy679:
+               YYDEBUG(679, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy676;
+               if (yych == 'N') goto yy680;
                if (yych != 'n') goto yy186;
-yy676:
-               YYDEBUG(676, *YYCURSOR);
+yy680:
+               YYDEBUG(680, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(677, *YYCURSOR);
+               YYDEBUG(681, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1009 "Zend/zend_language_scanner.l"
+#line 1010 "Zend/zend_language_scanner.l"
                {
        return T_FUNCTION;
 }
-#line 6366 "Zend/zend_language_scanner.c"
-yy678:
-               YYDEBUG(678, *YYCURSOR);
+#line 6411 "Zend/zend_language_scanner.c"
+yy682:
+               YYDEBUG(682, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '@') {
-                               if (yych <= '/') goto yy679;
+                               if (yych <= '/') goto yy683;
                                if (yych <= '9') goto yy185;
                        } else {
-                               if (yych == 'E') goto yy680;
+                               if (yych == 'E') goto yy684;
                                if (yych <= 'Z') goto yy185;
                        }
                } else {
                        if (yych <= 'd') {
                                if (yych != '`') goto yy185;
                        } else {
-                               if (yych <= 'e') goto yy680;
+                               if (yych <= 'e') goto yy684;
                                if (yych <= 'z') goto yy185;
                                if (yych >= 0x7F) goto yy185;
                        }
                }
-yy679:
-               YYDEBUG(679, *YYCURSOR);
+yy683:
+               YYDEBUG(683, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1061 "Zend/zend_language_scanner.l"
+#line 1062 "Zend/zend_language_scanner.l"
                {
        return T_FOR;
 }
-#line 6394 "Zend/zend_language_scanner.c"
-yy680:
-               YYDEBUG(680, *YYCURSOR);
+#line 6439 "Zend/zend_language_scanner.c"
+yy684:
+               YYDEBUG(684, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy681;
+               if (yych == 'A') goto yy685;
                if (yych != 'a') goto yy186;
-yy681:
-               YYDEBUG(681, *YYCURSOR);
+yy685:
+               YYDEBUG(685, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy682;
+               if (yych == 'C') goto yy686;
                if (yych != 'c') goto yy186;
-yy682:
-               YYDEBUG(682, *YYCURSOR);
+yy686:
+               YYDEBUG(686, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy683;
+               if (yych == 'H') goto yy687;
                if (yych != 'h') goto yy186;
-yy683:
-               YYDEBUG(683, *YYCURSOR);
+yy687:
+               YYDEBUG(687, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(684, *YYCURSOR);
+               YYDEBUG(688, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1069 "Zend/zend_language_scanner.l"
+#line 1070 "Zend/zend_language_scanner.l"
                {
        return T_FOREACH;
 }
-#line 6422 "Zend/zend_language_scanner.c"
-yy685:
-               YYDEBUG(685, *YYCURSOR);
+#line 6467 "Zend/zend_language_scanner.c"
+yy689:
+               YYDEBUG(689, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy686;
+               if (yych == 'A') goto yy690;
                if (yych != 'a') goto yy186;
-yy686:
-               YYDEBUG(686, *YYCURSOR);
+yy690:
+               YYDEBUG(690, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy687;
+               if (yych == 'L') goto yy691;
                if (yych != 'l') goto yy186;
-yy687:
-               YYDEBUG(687, *YYCURSOR);
+yy691:
+               YYDEBUG(691, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(688, *YYCURSOR);
+               YYDEBUG(692, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1283 "Zend/zend_language_scanner.l"
+#line 1284 "Zend/zend_language_scanner.l"
                {
        return T_FINAL;
 }
-#line 6445 "Zend/zend_language_scanner.c"
-yy689:
-               YYDEBUG(689, *YYCURSOR);
+#line 6490 "Zend/zend_language_scanner.c"
+yy693:
+               YYDEBUG(693, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'F') {
-                       if (yych == 'C') goto yy695;
+                       if (yych == 'C') goto yy699;
                        if (yych <= 'E') goto yy186;
-                       goto yy696;
+                       goto yy700;
                } else {
                        if (yych <= 'c') {
                                if (yych <= 'b') goto yy186;
-                               goto yy695;
+                               goto yy699;
                        } else {
-                               if (yych == 'f') goto yy696;
+                               if (yych == 'f') goto yy700;
                                goto yy186;
                        }
                }
-yy690:
-               YYDEBUG(690, *YYCURSOR);
+yy694:
+               YYDEBUG(694, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy693;
-               if (yych == 'e') goto yy693;
+               if (yych == 'E') goto yy697;
+               if (yych == 'e') goto yy697;
                goto yy186;
-yy691:
-               YYDEBUG(691, *YYCURSOR);
+yy695:
+               YYDEBUG(695, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(692, *YYCURSOR);
+               YYDEBUG(696, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1057 "Zend/zend_language_scanner.l"
+#line 1058 "Zend/zend_language_scanner.l"
                {
        return T_DO;
 }
-#line 6480 "Zend/zend_language_scanner.c"
-yy693:
-               YYDEBUG(693, *YYCURSOR);
+#line 6525 "Zend/zend_language_scanner.c"
+yy697:
+               YYDEBUG(697, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(694, *YYCURSOR);
+               YYDEBUG(698, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1005 "Zend/zend_language_scanner.l"
+#line 1006 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
 }
-#line 6493 "Zend/zend_language_scanner.c"
-yy695:
-               YYDEBUG(695, *YYCURSOR);
+#line 6538 "Zend/zend_language_scanner.c"
+yy699:
+               YYDEBUG(699, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy702;
-               if (yych == 'l') goto yy702;
+               if (yych == 'L') goto yy706;
+               if (yych == 'l') goto yy706;
                goto yy186;
-yy696:
-               YYDEBUG(696, *YYCURSOR);
+yy700:
+               YYDEBUG(700, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy697;
+               if (yych == 'A') goto yy701;
                if (yych != 'a') goto yy186;
-yy697:
-               YYDEBUG(697, *YYCURSOR);
+yy701:
+               YYDEBUG(701, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'U') goto yy698;
+               if (yych == 'U') goto yy702;
                if (yych != 'u') goto yy186;
-yy698:
-               YYDEBUG(698, *YYCURSOR);
+yy702:
+               YYDEBUG(702, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy699;
+               if (yych == 'L') goto yy703;
                if (yych != 'l') goto yy186;
-yy699:
-               YYDEBUG(699, *YYCURSOR);
+yy703:
+               YYDEBUG(703, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy700;
+               if (yych == 'T') goto yy704;
                if (yych != 't') goto yy186;
-yy700:
-               YYDEBUG(700, *YYCURSOR);
+yy704:
+               YYDEBUG(704, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(701, *YYCURSOR);
+               YYDEBUG(705, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1105 "Zend/zend_language_scanner.l"
+#line 1106 "Zend/zend_language_scanner.l"
                {
        return T_DEFAULT;
 }
-#line 6532 "Zend/zend_language_scanner.c"
-yy702:
-               YYDEBUG(702, *YYCURSOR);
+#line 6577 "Zend/zend_language_scanner.c"
+yy706:
+               YYDEBUG(706, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy703;
+               if (yych == 'A') goto yy707;
                if (yych != 'a') goto yy186;
-yy703:
-               YYDEBUG(703, *YYCURSOR);
+yy707:
+               YYDEBUG(707, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy704;
+               if (yych == 'R') goto yy708;
                if (yych != 'r') goto yy186;
-yy704:
-               YYDEBUG(704, *YYCURSOR);
+yy708:
+               YYDEBUG(708, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy705;
+               if (yych == 'E') goto yy709;
                if (yych != 'e') goto yy186;
-yy705:
-               YYDEBUG(705, *YYCURSOR);
+yy709:
+               YYDEBUG(709, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(706, *YYCURSOR);
+               YYDEBUG(710, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1077 "Zend/zend_language_scanner.l"
+#line 1078 "Zend/zend_language_scanner.l"
                {
        return T_DECLARE;
 }
-#line 6560 "Zend/zend_language_scanner.c"
-yy707:
-               YYDEBUG(707, *YYCURSOR);
+#line 6605 "Zend/zend_language_scanner.c"
+yy711:
+               YYDEBUG(711, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy769;
-               if (yych == 'h') goto yy769;
+               if (yych == 'H') goto yy773;
+               if (yych == 'h') goto yy773;
                goto yy186;
-yy708:
-               YYDEBUG(708, *YYCURSOR);
+yy712:
+               YYDEBUG(712, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy763;
-               if (yych == 's') goto yy763;
+               if (yych == 'S') goto yy767;
+               if (yych == 's') goto yy767;
                goto yy186;
-yy709:
-               YYDEBUG(709, *YYCURSOR);
+yy713:
+               YYDEBUG(713, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'P') goto yy759;
-               if (yych == 'p') goto yy759;
+               if (yych == 'P') goto yy763;
+               if (yych == 'p') goto yy763;
                goto yy186;
-yy710:
-               YYDEBUG(710, *YYCURSOR);
+yy714:
+               YYDEBUG(714, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy725;
-               if (yych == 'd') goto yy725;
+               if (yych == 'D') goto yy729;
+               if (yych == 'd') goto yy729;
                goto yy186;
-yy711:
-               YYDEBUG(711, *YYCURSOR);
+yy715:
+               YYDEBUG(715, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy722;
-               if (yych == 'a') goto yy722;
+               if (yych == 'A') goto yy726;
+               if (yych == 'a') goto yy726;
                goto yy186;
-yy712:
-               YYDEBUG(712, *YYCURSOR);
+yy716:
+               YYDEBUG(716, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'T') {
-                       if (yych == 'I') goto yy713;
+                       if (yych == 'I') goto yy717;
                        if (yych <= 'S') goto yy186;
-                       goto yy714;
+                       goto yy718;
                } else {
                        if (yych <= 'i') {
                                if (yych <= 'h') goto yy186;
                        } else {
-                               if (yych == 't') goto yy714;
+                               if (yych == 't') goto yy718;
                                goto yy186;
                        }
                }
-yy713:
-               YYDEBUG(713, *YYCURSOR);
+yy717:
+               YYDEBUG(717, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy720;
-               if (yych == 't') goto yy720;
+               if (yych == 'T') goto yy724;
+               if (yych == 't') goto yy724;
                goto yy186;
-yy714:
-               YYDEBUG(714, *YYCURSOR);
+yy718:
+               YYDEBUG(718, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy715;
+               if (yych == 'E') goto yy719;
                if (yych != 'e') goto yy186;
-yy715:
-               YYDEBUG(715, *YYCURSOR);
+yy719:
+               YYDEBUG(719, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy716;
+               if (yych == 'N') goto yy720;
                if (yych != 'n') goto yy186;
-yy716:
-               YYDEBUG(716, *YYCURSOR);
+yy720:
+               YYDEBUG(720, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy717;
+               if (yych == 'D') goto yy721;
                if (yych != 'd') goto yy186;
-yy717:
-               YYDEBUG(717, *YYCURSOR);
+yy721:
+               YYDEBUG(721, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy718;
+               if (yych == 'S') goto yy722;
                if (yych != 's') goto yy186;
-yy718:
-               YYDEBUG(718, *YYCURSOR);
+yy722:
+               YYDEBUG(722, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(719, *YYCURSOR);
+               YYDEBUG(723, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1141 "Zend/zend_language_scanner.l"
+#line 1142 "Zend/zend_language_scanner.l"
                {
        return T_EXTENDS;
 }
-#line 6644 "Zend/zend_language_scanner.c"
-yy720:
-               YYDEBUG(720, *YYCURSOR);
+#line 6689 "Zend/zend_language_scanner.c"
+yy724:
+               YYDEBUG(724, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(721, *YYCURSOR);
+               YYDEBUG(725, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1001 "Zend/zend_language_scanner.l"
+#line 1002 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
 }
-#line 6657 "Zend/zend_language_scanner.c"
-yy722:
-               YYDEBUG(722, *YYCURSOR);
+#line 6702 "Zend/zend_language_scanner.c"
+yy726:
+               YYDEBUG(726, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy723;
+               if (yych == 'L') goto yy727;
                if (yych != 'l') goto yy186;
-yy723:
-               YYDEBUG(723, *YYCURSOR);
+yy727:
+               YYDEBUG(727, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(724, *YYCURSOR);
+               YYDEBUG(728, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1227 "Zend/zend_language_scanner.l"
+#line 1228 "Zend/zend_language_scanner.l"
                {
        return T_EVAL;
 }
-#line 6675 "Zend/zend_language_scanner.c"
-yy725:
-               YYDEBUG(725, *YYCURSOR);
+#line 6720 "Zend/zend_language_scanner.c"
+yy729:
+               YYDEBUG(729, *YYCURSOR);
                yych = *++YYCURSOR;
                YYDEBUG(-1, yych);
                switch (yych) {
                case 'D':
-               case 'd':       goto yy726;
+               case 'd':       goto yy730;
                case 'F':
-               case 'f':       goto yy727;
+               case 'f':       goto yy731;
                case 'I':
-               case 'i':       goto yy728;
+               case 'i':       goto yy732;
                case 'S':
-               case 's':       goto yy729;
+               case 's':       goto yy733;
                case 'W':
-               case 'w':       goto yy730;
+               case 'w':       goto yy734;
                default:        goto yy186;
                }
-yy726:
-               YYDEBUG(726, *YYCURSOR);
+yy730:
+               YYDEBUG(730, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy752;
-               if (yych == 'e') goto yy752;
+               if (yych == 'E') goto yy756;
+               if (yych == 'e') goto yy756;
                goto yy186;
-yy727:
-               YYDEBUG(727, *YYCURSOR);
+yy731:
+               YYDEBUG(731, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy744;
-               if (yych == 'o') goto yy744;
+               if (yych == 'O') goto yy748;
+               if (yych == 'o') goto yy748;
                goto yy186;
-yy728:
-               YYDEBUG(728, *YYCURSOR);
+yy732:
+               YYDEBUG(732, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'F') goto yy742;
-               if (yych == 'f') goto yy742;
+               if (yych == 'F') goto yy746;
+               if (yych == 'f') goto yy746;
                goto yy186;
-yy729:
-               YYDEBUG(729, *YYCURSOR);
+yy733:
+               YYDEBUG(733, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'W') goto yy736;
-               if (yych == 'w') goto yy736;
+               if (yych == 'W') goto yy740;
+               if (yych == 'w') goto yy740;
                goto yy186;
-yy730:
-               YYDEBUG(730, *YYCURSOR);
+yy734:
+               YYDEBUG(734, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy731;
+               if (yych == 'H') goto yy735;
                if (yych != 'h') goto yy186;
-yy731:
-               YYDEBUG(731, *YYCURSOR);
+yy735:
+               YYDEBUG(735, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy732;
+               if (yych == 'I') goto yy736;
                if (yych != 'i') goto yy186;
-yy732:
-               YYDEBUG(732, *YYCURSOR);
+yy736:
+               YYDEBUG(736, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy733;
+               if (yych == 'L') goto yy737;
                if (yych != 'l') goto yy186;
-yy733:
-               YYDEBUG(733, *YYCURSOR);
+yy737:
+               YYDEBUG(737, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy734;
+               if (yych == 'E') goto yy738;
                if (yych != 'e') goto yy186;
-yy734:
-               YYDEBUG(734, *YYCURSOR);
+yy738:
+               YYDEBUG(738, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(735, *YYCURSOR);
+               YYDEBUG(739, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1053 "Zend/zend_language_scanner.l"
+#line 1054 "Zend/zend_language_scanner.l"
                {
        return T_ENDWHILE;
 }
-#line 6749 "Zend/zend_language_scanner.c"
-yy736:
-               YYDEBUG(736, *YYCURSOR);
+#line 6794 "Zend/zend_language_scanner.c"
+yy740:
+               YYDEBUG(740, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy737;
+               if (yych == 'I') goto yy741;
                if (yych != 'i') goto yy186;
-yy737:
-               YYDEBUG(737, *YYCURSOR);
+yy741:
+               YYDEBUG(741, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy738;
+               if (yych == 'T') goto yy742;
                if (yych != 't') goto yy186;
-yy738:
-               YYDEBUG(738, *YYCURSOR);
+yy742:
+               YYDEBUG(742, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy739;
+               if (yych == 'C') goto yy743;
                if (yych != 'c') goto yy186;
-yy739:
-               YYDEBUG(739, *YYCURSOR);
+yy743:
+               YYDEBUG(743, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy740;
+               if (yych == 'H') goto yy744;
                if (yych != 'h') goto yy186;
-yy740:
-               YYDEBUG(740, *YYCURSOR);
+yy744:
+               YYDEBUG(744, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(741, *YYCURSOR);
+               YYDEBUG(745, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1097 "Zend/zend_language_scanner.l"
+#line 1098 "Zend/zend_language_scanner.l"
                {
        return T_ENDSWITCH;
 }
-#line 6782 "Zend/zend_language_scanner.c"
-yy742:
-               YYDEBUG(742, *YYCURSOR);
+#line 6827 "Zend/zend_language_scanner.c"
+yy746:
+               YYDEBUG(746, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(743, *YYCURSOR);
+               YYDEBUG(747, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1041 "Zend/zend_language_scanner.l"
+#line 1042 "Zend/zend_language_scanner.l"
                {
        return T_ENDIF;
 }
-#line 6795 "Zend/zend_language_scanner.c"
-yy744:
-               YYDEBUG(744, *YYCURSOR);
+#line 6840 "Zend/zend_language_scanner.c"
+yy748:
+               YYDEBUG(748, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy745;
+               if (yych == 'R') goto yy749;
                if (yych != 'r') goto yy186;
-yy745:
-               YYDEBUG(745, *YYCURSOR);
+yy749:
+               YYDEBUG(749, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '@') {
-                               if (yych <= '/') goto yy746;
+                               if (yych <= '/') goto yy750;
                                if (yych <= '9') goto yy185;
                        } else {
-                               if (yych == 'E') goto yy747;
+                               if (yych == 'E') goto yy751;
                                if (yych <= 'Z') goto yy185;
                        }
                } else {
                        if (yych <= 'd') {
                                if (yych != '`') goto yy185;
                        } else {
-                               if (yych <= 'e') goto yy747;
+                               if (yych <= 'e') goto yy751;
                                if (yych <= 'z') goto yy185;
                                if (yych >= 0x7F) goto yy185;
                        }
                }
-yy746:
-               YYDEBUG(746, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1065 "Zend/zend_language_scanner.l"
-               {
-       return T_ENDFOR;
-}
-#line 6828 "Zend/zend_language_scanner.c"
-yy747:
-               YYDEBUG(747, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy748;
-               if (yych != 'a') goto yy186;
-yy748:
-               YYDEBUG(748, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy749;
-               if (yych != 'c') goto yy186;
-yy749:
-               YYDEBUG(749, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy750;
-               if (yych != 'h') goto yy186;
 yy750:
                YYDEBUG(750, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy185;
-               }
-               YYDEBUG(751, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1073 "Zend/zend_language_scanner.l"
+#line 1066 "Zend/zend_language_scanner.l"
                {
-       return T_ENDFOREACH;
+       return T_ENDFOR;
 }
-#line 6856 "Zend/zend_language_scanner.c"
+#line 6873 "Zend/zend_language_scanner.c"
+yy751:
+               YYDEBUG(751, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy752;
+               if (yych != 'a') goto yy186;
 yy752:
                YYDEBUG(752, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -6861,128 +6883,151 @@ yy752:
 yy753:
                YYDEBUG(753, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy754;
-               if (yych != 'l') goto yy186;
+               if (yych == 'H') goto yy754;
+               if (yych != 'h') goto yy186;
 yy754:
                YYDEBUG(754, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy755;
-               if (yych != 'a') goto yy186;
-yy755:
+               ++YYCURSOR;
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
                YYDEBUG(755, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy756;
-               if (yych != 'r') goto yy186;
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 1074 "Zend/zend_language_scanner.l"
+               {
+       return T_ENDFOREACH;
+}
+#line 6901 "Zend/zend_language_scanner.c"
 yy756:
                YYDEBUG(756, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy757;
-               if (yych != 'e') goto yy186;
+               if (yych == 'C') goto yy757;
+               if (yych != 'c') goto yy186;
 yy757:
                YYDEBUG(757, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy185;
-               }
+               yych = *++YYCURSOR;
+               if (yych == 'L') goto yy758;
+               if (yych != 'l') goto yy186;
+yy758:
                YYDEBUG(758, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1081 "Zend/zend_language_scanner.l"
-               {
-       return T_ENDDECLARE;
-}
-#line 6894 "Zend/zend_language_scanner.c"
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy759;
+               if (yych != 'a') goto yy186;
 yy759:
                YYDEBUG(759, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy760;
-               if (yych != 't') goto yy186;
+               if (yych == 'R') goto yy760;
+               if (yych != 'r') goto yy186;
 yy760:
                YYDEBUG(760, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy761;
-               if (yych != 'y') goto yy186;
+               if (yych == 'E') goto yy761;
+               if (yych != 'e') goto yy186;
 yy761:
                YYDEBUG(761, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
                YYDEBUG(762, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1267 "Zend/zend_language_scanner.l"
+#line 1082 "Zend/zend_language_scanner.l"
                {
-       return T_EMPTY;
+       return T_ENDDECLARE;
 }
-#line 6917 "Zend/zend_language_scanner.c"
+#line 6939 "Zend/zend_language_scanner.c"
 yy763:
                YYDEBUG(763, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy764;
-               if (yych != 'e') goto yy186;
+               if (yych == 'T') goto yy764;
+               if (yych != 't') goto yy186;
 yy764:
                YYDEBUG(764, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'Y') goto yy765;
+               if (yych != 'y') goto yy186;
+yy765:
+               YYDEBUG(765, *YYCURSOR);
+               ++YYCURSOR;
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
+               YYDEBUG(766, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 1268 "Zend/zend_language_scanner.l"
+               {
+       return T_EMPTY;
+}
+#line 6962 "Zend/zend_language_scanner.c"
+yy767:
+               YYDEBUG(767, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy768;
+               if (yych != 'e') goto yy186;
+yy768:
+               YYDEBUG(768, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '@') {
-                               if (yych <= '/') goto yy765;
+                               if (yych <= '/') goto yy769;
                                if (yych <= '9') goto yy185;
                        } else {
-                               if (yych == 'I') goto yy766;
+                               if (yych == 'I') goto yy770;
                                if (yych <= 'Z') goto yy185;
                        }
                } else {
                        if (yych <= 'h') {
                                if (yych != '`') goto yy185;
                        } else {
-                               if (yych <= 'i') goto yy766;
+                               if (yych <= 'i') goto yy770;
                                if (yych <= 'z') goto yy185;
                                if (yych >= 0x7F) goto yy185;
                        }
                }
-yy765:
-               YYDEBUG(765, *YYCURSOR);
+yy769:
+               YYDEBUG(769, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1045 "Zend/zend_language_scanner.l"
+#line 1046 "Zend/zend_language_scanner.l"
                {
        return T_ELSE;
 }
-#line 6950 "Zend/zend_language_scanner.c"
-yy766:
-               YYDEBUG(766, *YYCURSOR);
+#line 6995 "Zend/zend_language_scanner.c"
+yy770:
+               YYDEBUG(770, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'F') goto yy767;
+               if (yych == 'F') goto yy771;
                if (yych != 'f') goto yy186;
-yy767:
-               YYDEBUG(767, *YYCURSOR);
+yy771:
+               YYDEBUG(771, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(768, *YYCURSOR);
+               YYDEBUG(772, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1037 "Zend/zend_language_scanner.l"
+#line 1038 "Zend/zend_language_scanner.l"
                {
        return T_ELSEIF;
 }
-#line 6968 "Zend/zend_language_scanner.c"
-yy769:
-               YYDEBUG(769, *YYCURSOR);
+#line 7013 "Zend/zend_language_scanner.c"
+yy773:
+               YYDEBUG(773, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy770;
+               if (yych == 'O') goto yy774;
                if (yych != 'o') goto yy186;
-yy770:
-               YYDEBUG(770, *YYCURSOR);
+yy774:
+               YYDEBUG(774, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
                        goto yy185;
                }
-               YYDEBUG(771, *YYCURSOR);
+               YYDEBUG(775, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1121 "Zend/zend_language_scanner.l"
+#line 1122 "Zend/zend_language_scanner.l"
                {
        return T_ECHO;
 }
-#line 6986 "Zend/zend_language_scanner.c"
+#line 7031 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_LOOKING_FOR_PROPERTY:
@@ -7021,41 +7066,41 @@ yyc_ST_LOOKING_FOR_PROPERTY:
                         64,  64,  64,  64,  64,  64,  64,  64, 
                         64,  64,  64,  64,  64,  64,  64,  64, 
                };
-               YYDEBUG(772, *YYCURSOR);
+               YYDEBUG(776, *YYCURSOR);
                YYFILL(2);
                yych = *YYCURSOR;
                if (yych <= '-') {
                        if (yych <= '\r') {
-                               if (yych <= 0x08) goto yy780;
-                               if (yych <= '\n') goto yy774;
-                               if (yych <= '\f') goto yy780;
+                               if (yych <= 0x08) goto yy784;
+                               if (yych <= '\n') goto yy778;
+                               if (yych <= '\f') goto yy784;
                        } else {
-                               if (yych == ' ') goto yy774;
-                               if (yych <= ',') goto yy780;
-                               goto yy776;
+                               if (yych == ' ') goto yy778;
+                               if (yych <= ',') goto yy784;
+                               goto yy780;
                        }
                } else {
                        if (yych <= '_') {
-                               if (yych <= '@') goto yy780;
-                               if (yych <= 'Z') goto yy778;
-                               if (yych <= '^') goto yy780;
-                               goto yy778;
+                               if (yych <= '@') goto yy784;
+                               if (yych <= 'Z') goto yy782;
+                               if (yych <= '^') goto yy784;
+                               goto yy782;
                        } else {
-                               if (yych <= '`') goto yy780;
-                               if (yych <= 'z') goto yy778;
-                               if (yych <= '~') goto yy780;
-                               goto yy778;
+                               if (yych <= '`') goto yy784;
+                               if (yych <= 'z') goto yy782;
+                               if (yych <= '~') goto yy784;
+                               goto yy782;
                        }
                }
-yy774:
-               YYDEBUG(774, *YYCURSOR);
+yy778:
+               YYDEBUG(778, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
-               goto yy786;
-yy775:
-               YYDEBUG(775, *YYCURSOR);
+               goto yy790;
+yy779:
+               YYDEBUG(779, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1154 "Zend/zend_language_scanner.l"
+#line 1155 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
@@ -7063,73 +7108,73 @@ yy775:
        HANDLE_NEWLINES(yytext, yyleng);
        return T_WHITESPACE;
 }
-#line 7067 "Zend/zend_language_scanner.c"
-yy776:
-               YYDEBUG(776, *YYCURSOR);
+#line 7112 "Zend/zend_language_scanner.c"
+yy780:
+               YYDEBUG(780, *YYCURSOR);
                ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '>') goto yy783;
-yy777:
-               YYDEBUG(777, *YYCURSOR);
+               if ((yych = *YYCURSOR) == '>') goto yy787;
+yy781:
+               YYDEBUG(781, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1173 "Zend/zend_language_scanner.l"
+#line 1174 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state(TSRMLS_C);
        goto restart;
 }
-#line 7081 "Zend/zend_language_scanner.c"
-yy778:
-               YYDEBUG(778, *YYCURSOR);
+#line 7126 "Zend/zend_language_scanner.c"
+yy782:
+               YYDEBUG(782, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
-               goto yy782;
-yy779:
-               YYDEBUG(779, *YYCURSOR);
+               goto yy786;
+yy783:
+               YYDEBUG(783, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1166 "Zend/zend_language_scanner.l"
+#line 1167 "Zend/zend_language_scanner.l"
                {
        yy_pop_state(TSRMLS_C);
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
        return T_STRING;
 }
-#line 7097 "Zend/zend_language_scanner.c"
-yy780:
-               YYDEBUG(780, *YYCURSOR);
+#line 7142 "Zend/zend_language_scanner.c"
+yy784:
+               YYDEBUG(784, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy777;
-yy781:
-               YYDEBUG(781, *YYCURSOR);
+               goto yy781;
+yy785:
+               YYDEBUG(785, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy782:
-               YYDEBUG(782, *YYCURSOR);
+yy786:
+               YYDEBUG(786, *YYCURSOR);
                if (yybm[0+yych] & 64) {
-                       goto yy781;
+                       goto yy785;
                }
-               goto yy779;
-yy783:
-               YYDEBUG(783, *YYCURSOR);
+               goto yy783;
+yy787:
+               YYDEBUG(787, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(784, *YYCURSOR);
+               YYDEBUG(788, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1162 "Zend/zend_language_scanner.l"
+#line 1163 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_OPERATOR;
 }
-#line 7122 "Zend/zend_language_scanner.c"
-yy785:
-               YYDEBUG(785, *YYCURSOR);
+#line 7167 "Zend/zend_language_scanner.c"
+yy789:
+               YYDEBUG(789, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy786:
-               YYDEBUG(786, *YYCURSOR);
+yy790:
+               YYDEBUG(790, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy785;
+                       goto yy789;
                }
-               goto yy775;
+               goto yy779;
        }
 /* *********************************** */
 yyc_ST_LOOKING_FOR_VARNAME:
@@ -7168,27 +7213,27 @@ yyc_ST_LOOKING_FOR_VARNAME:
                        128, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
                };
-               YYDEBUG(787, *YYCURSOR);
+               YYDEBUG(791, *YYCURSOR);
                YYFILL(2);
                yych = *YYCURSOR;
                if (yych <= '_') {
-                       if (yych <= '@') goto yy791;
-                       if (yych <= 'Z') goto yy789;
-                       if (yych <= '^') goto yy791;
+                       if (yych <= '@') goto yy795;
+                       if (yych <= 'Z') goto yy793;
+                       if (yych <= '^') goto yy795;
                } else {
-                       if (yych <= '`') goto yy791;
-                       if (yych <= 'z') goto yy789;
-                       if (yych <= '~') goto yy791;
+                       if (yych <= '`') goto yy795;
+                       if (yych <= 'z') goto yy793;
+                       if (yych <= '~') goto yy795;
                }
-yy789:
-               YYDEBUG(789, *YYCURSOR);
+yy793:
+               YYDEBUG(793, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
-               goto yy794;
-yy790:
-               YYDEBUG(790, *YYCURSOR);
+               goto yy798;
+yy794:
+               YYDEBUG(794, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1445 "Zend/zend_language_scanner.l"
+#line 1446 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
@@ -7196,42 +7241,42 @@ yy790:
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return T_STRING_VARNAME;
 }
-#line 7200 "Zend/zend_language_scanner.c"
-yy791:
-               YYDEBUG(791, *YYCURSOR);
+#line 7245 "Zend/zend_language_scanner.c"
+yy795:
+               YYDEBUG(795, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(792, *YYCURSOR);
+               YYDEBUG(796, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1454 "Zend/zend_language_scanner.l"
+#line 1455 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state(TSRMLS_C);
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        goto restart;
 }
-#line 7213 "Zend/zend_language_scanner.c"
-yy793:
-               YYDEBUG(793, *YYCURSOR);
+#line 7258 "Zend/zend_language_scanner.c"
+yy797:
+               YYDEBUG(797, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy794:
-               YYDEBUG(794, *YYCURSOR);
+yy798:
+               YYDEBUG(798, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy793;
+                       goto yy797;
                }
-               goto yy790;
+               goto yy794;
        }
 /* *********************************** */
 yyc_ST_NOWDOC:
-       YYDEBUG(795, *YYCURSOR);
+       YYDEBUG(799, *YYCURSOR);
        YYFILL(1);
        yych = *YYCURSOR;
-       YYDEBUG(797, *YYCURSOR);
+       YYDEBUG(801, *YYCURSOR);
        ++YYCURSOR;
-       YYDEBUG(798, *YYCURSOR);
+       YYDEBUG(802, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 2277 "Zend/zend_language_scanner.l"
+#line 2298 "Zend/zend_language_scanner.l"
        {
        int newline = 0;
 
@@ -7286,7 +7331,7 @@ nowdoc_scan_done:
        HANDLE_NEWLINES(yytext, yyleng - newline);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 7290 "Zend/zend_language_scanner.c"
+#line 7335 "Zend/zend_language_scanner.c"
 /* *********************************** */
 yyc_ST_VAR_OFFSET:
        {
@@ -7297,96 +7342,103 @@ yyc_ST_VAR_OFFSET:
                          0,   0,   0,   0,   0,   0,   0,   0, 
                          0,   0,   0,   0,   0,   0,   0,   0, 
                          0,   0,   0,   0,   0,   0,   0,   0, 
-                       224, 224, 224, 224, 224, 224, 224, 224
-                       224, 224,   0,   0,   0,   0,   0,   0, 
-                         0, 160, 160, 160, 160, 160, 160,  32
-                        32,  32,  32,  32,  32,  32,  32,  32
-                        32,  32,  32,  32,  32,  32,  32,  32
-                        32,  32,  32,   0,   0,   0,   0,  32
-                         0, 160, 160, 160, 160, 160, 160,  32
-                        32,  32,  32,  32,  32,  32,  32,  32
-                        32,  32,  32,  32,  32,  32,  32,  32
-                        32,  32,  32,   0,   0,   0,   0,  32
-                        32,  32,  32,  32,  32,  32,  32,  32
-                        32,  32,  32,  32,  32,  32,  32,  32
-                        32,  32,  32,  32,  32,  32,  32,  32
-                        32,  32,  32,  32,  32,  32,  32,  32
-                        32,  32,  32,  32,  32,  32,  32,  32
-                        32,  32,  32,  32,  32,  32,  32,  32
-                        32,  32,  32,  32,  32,  32,  32,  32
-                        32,  32,  32,  32,  32,  32,  32,  32
-                        32,  32,  32,  32,  32,  32,  32,  32
-                        32,  32,  32,  32,  32,  32,  32,  32
-                        32,  32,  32,  32,  32,  32,  32,  32
-                        32,  32,  32,  32,  32,  32,  32,  32
-                        32,  32,  32,  32,  32,  32,  32,  32
-                        32,  32,  32,  32,  32,  32,  32,  32
-                        32,  32,  32,  32,  32,  32,  32,  32
-                        32,  32,  32,  32,  32,  32,  32,  32
+                       240, 240, 112, 112, 112, 112, 112, 112
+                       112, 112,   0,   0,   0,   0,   0,   0, 
+                         0,  80,  80,  80,  80,  80,  80,  16
+                        16,  16,  16,  16,  16,  16,  16,  16
+                        16,  16,  16,  16,  16,  16,  16,  16
+                        16,  16,  16,   0,   0,   0,   0,  16
+                         0,  80,  80,  80,  80,  80,  80,  16
+                        16,  16,  16,  16,  16,  16,  16,  16
+                        16,  16,  16,  16,  16,  16,  16,  16
+                        16,  16,  16,   0,   0,   0,   0,  16
+                        16,  16,  16,  16,  16,  16,  16,  16
+                        16,  16,  16,  16,  16,  16,  16,  16
+                        16,  16,  16,  16,  16,  16,  16,  16
+                        16,  16,  16,  16,  16,  16,  16,  16
+                        16,  16,  16,  16,  16,  16,  16,  16
+                        16,  16,  16,  16,  16,  16,  16,  16
+                        16,  16,  16,  16,  16,  16,  16,  16
+                        16,  16,  16,  16,  16,  16,  16,  16
+                        16,  16,  16,  16,  16,  16,  16,  16
+                        16,  16,  16,  16,  16,  16,  16,  16
+                        16,  16,  16,  16,  16,  16,  16,  16
+                        16,  16,  16,  16,  16,  16,  16,  16
+                        16,  16,  16,  16,  16,  16,  16,  16
+                        16,  16,  16,  16,  16,  16,  16,  16
+                        16,  16,  16,  16,  16,  16,  16,  16
+                        16,  16,  16,  16,  16,  16,  16,  16
                };
-               YYDEBUG(799, *YYCURSOR);
+               YYDEBUG(803, *YYCURSOR);
                YYFILL(3);
                yych = *YYCURSOR;
                if (yych <= '/') {
                        if (yych <= ' ') {
                                if (yych <= '\f') {
-                                       if (yych <= 0x08) goto yy813;
-                                       if (yych <= '\n') goto yy809;
-                                       goto yy813;
+                                       if (yych <= 0x08) goto yy817;
+                                       if (yych <= '\n') goto yy813;
+                                       goto yy817;
                                } else {
-                                       if (yych <= '\r') goto yy809;
-                                       if (yych <= 0x1F) goto yy813;
-                                       goto yy809;
+                                       if (yych <= '\r') goto yy813;
+                                       if (yych <= 0x1F) goto yy817;
+                                       goto yy813;
                                }
                        } else {
                                if (yych <= '$') {
-                                       if (yych <= '"') goto yy808;
-                                       if (yych <= '#') goto yy809;
-                                       goto yy804;
-                               } else {
-                                       if (yych == '\'') goto yy809;
+                                       if (yych <= '"') goto yy812;
+                                       if (yych <= '#') goto yy813;
                                        goto yy808;
+                               } else {
+                                       if (yych == '\'') goto yy813;
+                                       goto yy812;
                                }
                        }
                } else {
                        if (yych <= '\\') {
                                if (yych <= '@') {
-                                       if (yych <= '0') goto yy801;
-                                       if (yych <= '9') goto yy803;
-                                       goto yy808;
+                                       if (yych <= '0') goto yy805;
+                                       if (yych <= '9') goto yy807;
+                                       goto yy812;
                                } else {
-                                       if (yych <= 'Z') goto yy811;
-                                       if (yych <= '[') goto yy808;
-                                       goto yy809;
+                                       if (yych <= 'Z') goto yy815;
+                                       if (yych <= '[') goto yy812;
+                                       goto yy813;
                                }
                        } else {
                                if (yych <= '_') {
-                                       if (yych <= ']') goto yy806;
-                                       if (yych <= '^') goto yy808;
-                                       goto yy811;
+                                       if (yych <= ']') goto yy810;
+                                       if (yych <= '^') goto yy812;
+                                       goto yy815;
                                } else {
-                                       if (yych <= '`') goto yy808;
-                                       if (yych <= 'z') goto yy811;
-                                       if (yych <= '~') goto yy808;
-                                       goto yy811;
+                                       if (yych <= '`') goto yy812;
+                                       if (yych <= 'z') goto yy815;
+                                       if (yych <= '~') goto yy812;
+                                       goto yy815;
                                }
                        }
                }
-yy801:
-               YYDEBUG(801, *YYCURSOR);
+yy805:
+               YYDEBUG(805, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= 'W') {
-                       if (yych <= '/') goto yy802;
-                       if (yych <= '9') goto yy824;
+                       if (yych <= '9') {
+                               if (yych >= '0') goto yy829;
+                       } else {
+                               if (yych == 'B') goto yy826;
+                       }
                } else {
-                       if (yych <= 'X') goto yy822;
-                       if (yych == 'x') goto yy822;
+                       if (yych <= 'b') {
+                               if (yych <= 'X') goto yy828;
+                               if (yych >= 'b') goto yy826;
+                       } else {
+                               if (yych == 'x') goto yy828;
+                       }
                }
-yy802:
-               YYDEBUG(802, *YYCURSOR);
+yy806:
+               YYDEBUG(806, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1504 "Zend/zend_language_scanner.l"
+#line 1525 "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);
@@ -7398,81 +7450,81 @@ yy802:
        }
        return T_NUM_STRING;
 }
-#line 7402 "Zend/zend_language_scanner.c"
-yy803:
-               YYDEBUG(803, *YYCURSOR);
+#line 7454 "Zend/zend_language_scanner.c"
+yy807:
+               YYDEBUG(807, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy821;
-yy804:
-               YYDEBUG(804, *YYCURSOR);
+               goto yy825;
+yy808:
+               YYDEBUG(808, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '_') {
-                       if (yych <= '@') goto yy805;
-                       if (yych <= 'Z') goto yy817;
-                       if (yych >= '_') goto yy817;
+                       if (yych <= '@') goto yy809;
+                       if (yych <= 'Z') goto yy821;
+                       if (yych >= '_') goto yy821;
                } else {
-                       if (yych <= '`') goto yy805;
-                       if (yych <= 'z') goto yy817;
-                       if (yych >= 0x7F) goto yy817;
+                       if (yych <= '`') goto yy809;
+                       if (yych <= 'z') goto yy821;
+                       if (yych >= 0x7F) goto yy821;
                }
-yy805:
-               YYDEBUG(805, *YYCURSOR);
+yy809:
+               YYDEBUG(809, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1805 "Zend/zend_language_scanner.l"
+#line 1826 "Zend/zend_language_scanner.l"
                {
        /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
        return yytext[0];
 }
-#line 7427 "Zend/zend_language_scanner.c"
-yy806:
-               YYDEBUG(806, *YYCURSOR);
+#line 7479 "Zend/zend_language_scanner.c"
+yy810:
+               YYDEBUG(810, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(807, *YYCURSOR);
+               YYDEBUG(811, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1800 "Zend/zend_language_scanner.l"
+#line 1821 "Zend/zend_language_scanner.l"
                {
        yy_pop_state(TSRMLS_C);
        return ']';
 }
-#line 7438 "Zend/zend_language_scanner.c"
-yy808:
-               YYDEBUG(808, *YYCURSOR);
+#line 7490 "Zend/zend_language_scanner.c"
+yy812:
+               YYDEBUG(812, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy805;
-yy809:
-               YYDEBUG(809, *YYCURSOR);
+               goto yy809;
+yy813:
+               YYDEBUG(813, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(810, *YYCURSOR);
+               YYDEBUG(814, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1810 "Zend/zend_language_scanner.l"
+#line 1831 "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 7455 "Zend/zend_language_scanner.c"
-yy811:
-               YYDEBUG(811, *YYCURSOR);
+#line 7507 "Zend/zend_language_scanner.c"
+yy815:
+               YYDEBUG(815, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
-               goto yy816;
-yy812:
-               YYDEBUG(812, *YYCURSOR);
+               goto yy820;
+yy816:
+               YYDEBUG(816, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1817 "Zend/zend_language_scanner.l"
+#line 1838 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
        return T_STRING;
 }
-#line 7470 "Zend/zend_language_scanner.c"
-yy813:
-               YYDEBUG(813, *YYCURSOR);
+#line 7522 "Zend/zend_language_scanner.c"
+yy817:
+               YYDEBUG(817, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(814, *YYCURSOR);
+               YYDEBUG(818, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2333 "Zend/zend_language_scanner.l"
+#line 2354 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                return 0;
@@ -7481,100 +7533,118 @@ yy813:
        zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
        goto restart;
 }
-#line 7485 "Zend/zend_language_scanner.c"
-yy815:
-               YYDEBUG(815, *YYCURSOR);
+#line 7537 "Zend/zend_language_scanner.c"
+yy819:
+               YYDEBUG(819, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy816:
-               YYDEBUG(816, *YYCURSOR);
-               if (yybm[0+yych] & 32) {
-                       goto yy815;
+yy820:
+               YYDEBUG(820, *YYCURSOR);
+               if (yybm[0+yych] & 16) {
+                       goto yy819;
                }
-               goto yy812;
-yy817:
-               YYDEBUG(817, *YYCURSOR);
+               goto yy816;
+yy821:
+               YYDEBUG(821, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(818, *YYCURSOR);
+               YYDEBUG(822, *YYCURSOR);
                if (yych <= '^') {
                        if (yych <= '9') {
-                               if (yych >= '0') goto yy817;
+                               if (yych >= '0') goto yy821;
                        } else {
-                               if (yych <= '@') goto yy819;
-                               if (yych <= 'Z') goto yy817;
+                               if (yych <= '@') goto yy823;
+                               if (yych <= 'Z') goto yy821;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych <= '_') goto yy817;
+                               if (yych <= '_') goto yy821;
                        } else {
-                               if (yych <= 'z') goto yy817;
-                               if (yych >= 0x7F) goto yy817;
+                               if (yych <= 'z') goto yy821;
+                               if (yych >= 0x7F) goto yy821;
                        }
                }
-yy819:
-               YYDEBUG(819, *YYCURSOR);
+yy823:
+               YYDEBUG(823, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1794 "Zend/zend_language_scanner.l"
+#line 1815 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 7527 "Zend/zend_language_scanner.c"
-yy820:
-               YYDEBUG(820, *YYCURSOR);
+#line 7579 "Zend/zend_language_scanner.c"
+yy824:
+               YYDEBUG(824, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy821:
-               YYDEBUG(821, *YYCURSOR);
-               if (yybm[0+yych] & 64) {
-                       goto yy820;
+yy825:
+               YYDEBUG(825, *YYCURSOR);
+               if (yybm[0+yych] & 32) {
+                       goto yy824;
                }
-               goto yy802;
-yy822:
-               YYDEBUG(822, *YYCURSOR);
+               goto yy806;
+yy826:
+               YYDEBUG(826, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yybm[0+yych] & 128) {
-                       goto yy827;
+                       goto yy834;
                }
-               YYDEBUG(823, *YYCURSOR);
+yy827:
+               YYDEBUG(827, *YYCURSOR);
                YYCURSOR = YYMARKER;
-               goto yy802;
-yy824:
-               YYDEBUG(824, *YYCURSOR);
+               goto yy806;
+yy828:
+               YYDEBUG(828, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yybm[0+yych] & 64) {
+                       goto yy832;
+               }
+               goto yy827;
+yy829:
+               YYDEBUG(829, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(825, *YYCURSOR);
-               if (yych <= '/') goto yy826;
-               if (yych <= '9') goto yy824;
-yy826:
-               YYDEBUG(826, *YYCURSOR);
+               YYDEBUG(830, *YYCURSOR);
+               if (yych <= '/') goto yy831;
+               if (yych <= '9') goto yy829;
+yy831:
+               YYDEBUG(831, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1516 "Zend/zend_language_scanner.l"
+#line 1537 "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 7566 "Zend/zend_language_scanner.c"
-yy827:
-               YYDEBUG(827, *YYCURSOR);
+#line 7626 "Zend/zend_language_scanner.c"
+yy832:
+               YYDEBUG(832, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(828, *YYCURSOR);
+               YYDEBUG(833, *YYCURSOR);
+               if (yybm[0+yych] & 64) {
+                       goto yy832;
+               }
+               goto yy831;
+yy834:
+               YYDEBUG(834, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
+               YYDEBUG(835, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy827;
+                       goto yy834;
                }
-               goto yy826;
+               goto yy831;
        }
 }
-#line 2342 "Zend/zend_language_scanner.l"
+#line 2363 "Zend/zend_language_scanner.l"
 
 }
index 8c04cf76028686a297e1613f27701093e776f0c0..2af529d0bcbb0a57568732bc5cc5ed382c545f26 100644 (file)
@@ -987,6 +987,7 @@ LNUM        [0-9]+
 DNUM   ([0-9]*"."[0-9]+)|([0-9]+"."[0-9]*)
 EXPONENT_DNUM  (({LNUM}|{DNUM})[eE][+-]?{LNUM})
 HNUM   "0x"[0-9a-fA-F]+
+BNUM   "0b"[01]+
 LABEL  [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
 WHITESPACE [ \n\r\t]+
 TABS_AND_SPACES [ \t]*
@@ -1458,6 +1459,26 @@ NEWLINE ("\r"|"\n"|"\r\n")
        goto restart;
 }
 
+<ST_IN_SCRIPTING>{BNUM} {
+       char *bin = yytext + 2; /* Skip "0b" */
+       int len = yyleng - 2;
+
+       /* Skip any leading 0s */
+       while (*bin == '0') {
+               ++bin;
+               --len;
+       }
+
+       if (len < SIZEOF_LONG * 2) {
+               zendlval->value.lval = strtol(bin, NULL, 2);
+               zendlval->type = IS_LONG;
+               return T_LNUMBER;
+       } else {
+               zendlval->value.dval = zend_bin_strtod(bin, NULL);
+               zendlval->type = IS_DOUBLE;
+               return T_DNUMBER;
+       }
+}
 
 <ST_IN_SCRIPTING>{LNUM} {
        if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
@@ -1513,7 +1534,7 @@ NEWLINE ("\r"|"\n"|"\r\n")
        return T_NUM_STRING;
 }
 
-<ST_VAR_OFFSET>{LNUM}|{HNUM} { /* Offset must be treated as a string */
+<ST_VAR_OFFSET>{LNUM}|{HNUM}|{BNUM} { /* Offset must be treated as a string */
        zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
        zendlval->value.str.len = yyleng;
        zendlval->type = IS_STRING;
index cd44289e7ae90821cfdd001887d41dc973c6c720..ce0d0d9c97f97e62e27461237ddb96b059851df8 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Thu Jun 23 19:47:38 2011 */
+/* Generated by re2c 0.13.5 on Wed Jul 27 02:02:52 2011 */
 #line 3 "Zend/zend_language_scanner_defs.h"
 
 enum YYCONDTYPE {
index 62113bcd609b97eb9b6b12c7d3fc5e9a29086f38..3f41f85a28c0ae63ac69f0e4dc3ce7e2bfdfc262 100644 (file)
@@ -2639,6 +2639,44 @@ ZEND_API double zend_oct_strtod(const char *str, const char **endptr)
        return value;
 }
 
+ZEND_API double zend_bin_strtod(const char *str, const char **endptr)
+{
+       const char *s = str;
+       char            c;
+       double          value = 0;
+       int             any = 0;
+
+       if ('0' == *s && ('b' == s[1] || 'B' == s[1])) {
+               s += 2;
+       }
+
+       while ((c = *s++)) {
+               /*
+                * Verify the validity of the current character as a base-2 digit.  In
+                * the event that an invalid digit is found, halt the conversion and
+                * return the portion which has been converted thus far.
+                */
+               if ('0' == c || '1' == c)
+                       value = value * 2 + c - '0';
+               else
+                       break;
+
+               any = 1;
+       }
+
+       /*
+        * As with many strtoX implementations, should the subject sequence be
+        * empty or not well-formed, no conversion is performed and the original
+        * value of str is stored in *endptr, provided that endptr is not a null
+        * pointer.
+        */
+       if (NULL != endptr) {
+               *endptr = (char *)(any ? s - 1 : str);
+       }
+
+       return value;
+}
+
 /*
  * Local variables:
  * tab-width: 4
index 67554d2be44a1d86b56499ffc8a316e9f5339a0a..d8473068250367359ea79e81adb4f7c0b968ec9f 100644 (file)
@@ -30,6 +30,7 @@ ZEND_API char * zend_dtoa(double _d, int mode, int ndigits, int *decpt, int *sig
 ZEND_API double zend_strtod(const char *s00, const char **se);
 ZEND_API double zend_hex_strtod(const char *str, const char **endptr);
 ZEND_API double zend_oct_strtod(const char *str, const char **endptr);
+ZEND_API double zend_bin_strtod(const char *str, const char **endptr);
 ZEND_API int zend_startup_strtod(void);
 ZEND_API int zend_shutdown_strtod(void);
 END_EXTERN_C()