]> granicus.if.org Git - php/commitdiff
Blast off to space.
authorAndrea Faulds <ajf@ajf.me>
Mon, 19 Jan 2015 07:12:39 +0000 (07:12 +0000)
committerAndrea Faulds <ajf@ajf.me>
Thu, 29 Jan 2015 17:56:09 +0000 (17:56 +0000)
12 files changed:
NEWS
UPGRADING
Zend/zend_language_parser.y
Zend/zend_language_scanner.c
Zend/zend_language_scanner.l
Zend/zend_language_scanner_defs.h
Zend/zend_opcode.c
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
Zend/zend_vm_opcodes.c
Zend/zend_vm_opcodes.h
tests/lang/operators/operator_spaceship_basic.phpt [new file with mode: 0644]

diff --git a/NEWS b/NEWS
index 90949d5f78c4706ab31fb42560612598500d06d9..1da1e492a100d3e1fa39e3d65fc6ea663a562b0d 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -43,6 +43,7 @@
   . Invalid octal literals in source code now produce compile errors, fixes PHPSadness #31. (Andrea)
   . Removed dl() function on fpm-fcgi. (Nikita)
   . Removed support for hexadecimal numeric strings. (Nikita)
+  . Added <=> operator. (Andrea)
 
 - Date:
   . Fixed day_of_week function as it could sometimes return negative values
index cb82f99dd9df0631f052f19d2df2c984287890c7..43396f29efc6a2b3e1a01732cfa5937bc575cd70 100644 (file)
--- a/UPGRADING
+++ b/UPGRADING
@@ -121,6 +121,7 @@ PHP X.Y UPGRADE NOTES
   . Added \u{xxxxxx} Unicode Codepoint Escape Syntax for double-quoted strings
     and heredocs.
   . define() now supports arrays as constant values, fixing an oversight where define() did not support arrays yet const syntax did.
+  . Added the comparison operator (<=>), aka the spaceship operator.
 
 ========================================
 3. Changes in SAPI modules
index 7acec68b47ffc50150fc34aae6e73eddd6f8c934..340bb1b7b5cfbf56f37afebb88ab2805f6dc18ba 100644 (file)
@@ -76,7 +76,7 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
 %left '^'
 %left '&'
 %nonassoc T_IS_EQUAL T_IS_NOT_EQUAL T_IS_IDENTICAL T_IS_NOT_IDENTICAL
-%nonassoc '<' T_IS_SMALLER_OR_EQUAL '>' T_IS_GREATER_OR_EQUAL
+%nonassoc '<' T_IS_SMALLER_OR_EQUAL '>' T_IS_GREATER_OR_EQUAL T_SPACESHIP
 %left T_SL T_SR
 %left '+' '-' '.'
 %left '*' '/' '%'
@@ -131,6 +131,7 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
 %token T_IS_NOT_IDENTICAL "!== (T_IS_NOT_IDENTICAL)"
 %token T_IS_SMALLER_OR_EQUAL "<= (T_IS_SMALLER_OR_EQUAL)"
 %token T_IS_GREATER_OR_EQUAL ">= (T_IS_GREATER_OR_EQUAL)"
+%token T_SPACESHIP "<=> (T_SPACESHIP)"
 %token T_SL "<< (T_SL)"
 %token T_SR ">> (T_SR)"
 %token T_INSTANCEOF  "instanceof (T_INSTANCEOF)"
@@ -848,6 +849,8 @@ expr_without_variable:
                        { $$ = zend_ast_create(ZEND_AST_GREATER, $1, $3); }
        |       expr T_IS_GREATER_OR_EQUAL expr
                        { $$ = zend_ast_create(ZEND_AST_GREATER_EQUAL, $1, $3); }
+       |       expr T_SPACESHIP expr
+                       { $$ = zend_ast_create_binary_op(ZEND_SPACESHIP, $1, $3); }
        |       expr T_INSTANCEOF class_name_reference
                        { $$ = zend_ast_create(ZEND_AST_INSTANCEOF, $1, $3); }
        |       '(' expr ')' { $$ = $2; }
index 99c25554874c82252f1a5209376ead1dffd73c05..02cbf584ba01dbba1c83adb5eba3978b77d67e7f 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 */
+/* Generated by re2c 0.13.7.5 */
 #line 1 "Zend/zend_language_scanner.l"
 /*
    +----------------------------------------------------------------------+
@@ -1128,18 +1128,17 @@ restart:
        }
 /* *********************************** */
 yyc_INITIAL:
-
-       YYDEBUG(0, *YYCURSOR);
+       YYDEBUG(1, *YYCURSOR);
        YYFILL(7);
        yych = *YYCURSOR;
-       if (yych != '<') goto yy4;
-       YYDEBUG(2, *YYCURSOR);
-       ++YYCURSOR;
-       if ((yych = *YYCURSOR) == '?') goto yy5;
-yy3:
+       if (yych != '<') goto yy5;
        YYDEBUG(3, *YYCURSOR);
+       ++YYCURSOR;
+       if ((yych = *YYCURSOR) == '?') goto yy6;
+yy4:
+       YYDEBUG(4, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 1766 "Zend/zend_language_scanner.l"
+#line 1770 "Zend/zend_language_scanner.l"
        {
        if (YYCURSOR > YYLIMIT) {
                return 0;
@@ -1184,25 +1183,25 @@ inline_char_handler:
        HANDLE_NEWLINES(yytext, yyleng);
        return T_INLINE_HTML;
 }
-#line 1188 "Zend/zend_language_scanner.c"
-yy4:
-       YYDEBUG(4, *YYCURSOR);
-       yych = *++YYCURSOR;
-       goto yy3;
+#line 1187 "Zend/zend_language_scanner.c"
 yy5:
        YYDEBUG(5, *YYCURSOR);
+       yych = *++YYCURSOR;
+       goto yy4;
+yy6:
+       YYDEBUG(6, *YYCURSOR);
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        if (yych <= 'O') {
-               if (yych == '=') goto yy7;
+               if (yych == '=') goto yy8;
        } else {
-               if (yych <= 'P') goto yy9;
-               if (yych == 'p') goto yy9;
+               if (yych <= 'P') goto yy10;
+               if (yych == 'p') goto yy10;
        }
-yy6:
-       YYDEBUG(6, *YYCURSOR);
+yy7:
+       YYDEBUG(7, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 1757 "Zend/zend_language_scanner.l"
+#line 1761 "Zend/zend_language_scanner.l"
        {
        if (CG(short_tags)) {
                BEGIN(ST_IN_SCRIPTING);
@@ -1211,60 +1210,60 @@ yy6:
                goto inline_char_handler;
        }
 }
-#line 1215 "Zend/zend_language_scanner.c"
-yy7:
-       YYDEBUG(7, *YYCURSOR);
-       ++YYCURSOR;
+#line 1214 "Zend/zend_language_scanner.c"
+yy8:
        YYDEBUG(8, *YYCURSOR);
+       ++YYCURSOR;
+       YYDEBUG(9, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 1744 "Zend/zend_language_scanner.l"
+#line 1748 "Zend/zend_language_scanner.l"
        {
        BEGIN(ST_IN_SCRIPTING);
        return T_OPEN_TAG_WITH_ECHO;
 }
-#line 1226 "Zend/zend_language_scanner.c"
-yy9:
-       YYDEBUG(9, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'H') goto yy11;
-       if (yych == 'h') goto yy11;
+#line 1225 "Zend/zend_language_scanner.c"
 yy10:
        YYDEBUG(10, *YYCURSOR);
-       YYCURSOR = YYMARKER;
-       goto yy6;
+       yych = *++YYCURSOR;
+       if (yych == 'H') goto yy12;
+       if (yych == 'h') goto yy12;
 yy11:
        YYDEBUG(11, *YYCURSOR);
-       yych = *++YYCURSOR;
-       if (yych == 'P') goto yy12;
-       if (yych != 'p') goto yy10;
+       YYCURSOR = YYMARKER;
+       goto yy7;
 yy12:
        YYDEBUG(12, *YYCURSOR);
        yych = *++YYCURSOR;
+       if (yych == 'P') goto yy13;
+       if (yych != 'p') goto yy11;
+yy13:
+       YYDEBUG(13, *YYCURSOR);
+       yych = *++YYCURSOR;
        if (yych <= '\f') {
-               if (yych <= 0x08) goto yy10;
-               if (yych >= '\v') goto yy10;
+               if (yych <= 0x08) goto yy11;
+               if (yych >= '\v') goto yy11;
        } else {
-               if (yych <= '\r') goto yy15;
-               if (yych != ' ') goto yy10;
+               if (yych <= '\r') goto yy16;
+               if (yych != ' ') goto yy11;
        }
-yy13:
-       YYDEBUG(13, *YYCURSOR);
-       ++YYCURSOR;
 yy14:
        YYDEBUG(14, *YYCURSOR);
+       ++YYCURSOR;
+yy15:
+       YYDEBUG(15, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 1750 "Zend/zend_language_scanner.l"
+#line 1754 "Zend/zend_language_scanner.l"
        {
        HANDLE_NEWLINE(yytext[yyleng-1]);
        BEGIN(ST_IN_SCRIPTING);
        return T_OPEN_TAG;
 }
-#line 1263 "Zend/zend_language_scanner.c"
-yy15:
-       YYDEBUG(15, *YYCURSOR);
+#line 1262 "Zend/zend_language_scanner.c"
+yy16:
+       YYDEBUG(16, *YYCURSOR);
        ++YYCURSOR;
-       if ((yych = *YYCURSOR) == '\n') goto yy13;
-       goto yy14;
+       if ((yych = *YYCURSOR) == '\n') goto yy14;
+       goto yy15;
 /* *********************************** */
 yyc_ST_BACKQUOTE:
        {
@@ -1302,34 +1301,34 @@ yyc_ST_BACKQUOTE:
                        128, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
                };
-               YYDEBUG(16, *YYCURSOR);
+               YYDEBUG(17, *YYCURSOR);
                YYFILL(2);
                yych = *YYCURSOR;
                if (yych <= '_') {
-                       if (yych != '$') goto yy23;
+                       if (yych != '$') goto yy24;
                } else {
-                       if (yych <= '`') goto yy21;
-                       if (yych == '{') goto yy20;
-                       goto yy23;
+                       if (yych <= '`') goto yy22;
+                       if (yych == '{') goto yy21;
+                       goto yy24;
                }
-               YYDEBUG(18, *YYCURSOR);
+               YYDEBUG(19, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '_') {
-                       if (yych <= '@') goto yy19;
-                       if (yych <= 'Z') goto yy26;
-                       if (yych >= '_') goto yy26;
+                       if (yych <= '@') goto yy20;
+                       if (yych <= 'Z') goto yy27;
+                       if (yych >= '_') goto yy27;
                } else {
                        if (yych <= 'z') {
-                               if (yych >= 'a') goto yy26;
+                               if (yych >= 'a') goto yy27;
                        } else {
-                               if (yych <= '{') goto yy29;
-                               if (yych >= 0x7F) goto yy26;
+                               if (yych <= '{') goto yy30;
+                               if (yych >= 0x7F) goto yy27;
                        }
                }
-yy19:
-               YYDEBUG(19, *YYCURSOR);
+yy20:
+               YYDEBUG(20, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2176 "Zend/zend_language_scanner.l"
+#line 2180 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                return 0;
@@ -1370,86 +1369,87 @@ yy19:
        zend_scan_escape_string(zendlval, yytext, yyleng, '`');
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 1374 "Zend/zend_language_scanner.c"
-yy20:
-               YYDEBUG(20, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '$') goto yy24;
-               goto yy19;
+#line 1373 "Zend/zend_language_scanner.c"
 yy21:
                YYDEBUG(21, *YYCURSOR);
-               ++YYCURSOR;
+               yych = *++YYCURSOR;
+               if (yych == '$') goto yy25;
+               goto yy20;
+yy22:
                YYDEBUG(22, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(23, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2120 "Zend/zend_language_scanner.l"
+#line 2124 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '`';
 }
-#line 1390 "Zend/zend_language_scanner.c"
-yy23:
-               YYDEBUG(23, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy19;
+#line 1389 "Zend/zend_language_scanner.c"
 yy24:
                YYDEBUG(24, *YYCURSOR);
-               ++YYCURSOR;
+               yych = *++YYCURSOR;
+               goto yy20;
+yy25:
                YYDEBUG(25, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(26, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2107 "Zend/zend_language_scanner.l"
+#line 2111 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = (zend_long) '{';
        yy_push_state(ST_IN_SCRIPTING);
        yyless(1);
        return T_CURLY_OPEN;
 }
-#line 1407 "Zend/zend_language_scanner.c"
-yy26:
-               YYDEBUG(26, *YYCURSOR);
+#line 1406 "Zend/zend_language_scanner.c"
+yy27:
+               YYDEBUG(27, *YYCURSOR);
                yyaccept = 0;
                YYMARKER = ++YYCURSOR;
                YYFILL(3);
                yych = *YYCURSOR;
-               YYDEBUG(27, *YYCURSOR);
+               YYDEBUG(28, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy26;
+                       goto yy27;
                }
-               if (yych == '-') goto yy31;
-               if (yych == '[') goto yy33;
-yy28:
-               YYDEBUG(28, *YYCURSOR);
+               if (yych == '-') goto yy32;
+               if (yych <= '@') goto yy29;
+               if (yych <= '[') goto yy34;
+yy29:
+               YYDEBUG(29, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1831 "Zend/zend_language_scanner.l"
+#line 1835 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        return T_VARIABLE;
 }
 #line 1428 "Zend/zend_language_scanner.c"
-yy29:
-               YYDEBUG(29, *YYCURSOR);
-               ++YYCURSOR;
+yy30:
                YYDEBUG(30, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(31, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1555 "Zend/zend_language_scanner.l"
+#line 1559 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
 #line 1439 "Zend/zend_language_scanner.c"
-yy31:
-               YYDEBUG(31, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '>') goto yy35;
 yy32:
                YYDEBUG(32, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               goto yy28;
+               yych = *++YYCURSOR;
+               if (yych == '>') goto yy36;
 yy33:
                YYDEBUG(33, *YYCURSOR);
-               ++YYCURSOR;
+               YYCURSOR = YYMARKER;
+               goto yy29;
+yy34:
                YYDEBUG(34, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(35, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1824 "Zend/zend_language_scanner.l"
+#line 1828 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET);
@@ -1457,24 +1457,24 @@ yy33:
        return T_VARIABLE;
 }
 #line 1460 "Zend/zend_language_scanner.c"
-yy35:
-               YYDEBUG(35, *YYCURSOR);
+yy36:
+               YYDEBUG(36, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= '_') {
-                       if (yych <= '@') goto yy32;
-                       if (yych <= 'Z') goto yy36;
-                       if (yych <= '^') goto yy32;
+                       if (yych <= '@') goto yy33;
+                       if (yych <= 'Z') goto yy37;
+                       if (yych <= '^') goto yy33;
                } else {
-                       if (yych <= '`') goto yy32;
-                       if (yych <= 'z') goto yy36;
-                       if (yych <= '~') goto yy32;
+                       if (yych <= '`') goto yy33;
+                       if (yych <= 'z') goto yy37;
+                       if (yych <= '~') goto yy33;
                }
-yy36:
-               YYDEBUG(36, *YYCURSOR);
-               ++YYCURSOR;
+yy37:
                YYDEBUG(37, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(38, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1815 "Zend/zend_language_scanner.l"
+#line 1819 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY);
@@ -1520,36 +1520,36 @@ yyc_ST_DOUBLE_QUOTES:
                        128, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
                };
-               YYDEBUG(38, *YYCURSOR);
+               YYDEBUG(39, *YYCURSOR);
                YYFILL(2);
                yych = *YYCURSOR;
                if (yych <= '#') {
-                       if (yych == '"') goto yy43;
-                       goto yy45;
+                       if (yych == '"') goto yy44;
+                       goto yy46;
                } else {
-                       if (yych <= '$') goto yy40;
-                       if (yych == '{') goto yy42;
-                       goto yy45;
+                       if (yych <= '$') goto yy41;
+                       if (yych == '{') goto yy43;
+                       goto yy46;
                }
-yy40:
-               YYDEBUG(40, *YYCURSOR);
+yy41:
+               YYDEBUG(41, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '_') {
-                       if (yych <= '@') goto yy41;
-                       if (yych <= 'Z') goto yy48;
-                       if (yych >= '_') goto yy48;
+                       if (yych <= '@') goto yy42;
+                       if (yych <= 'Z') goto yy49;
+                       if (yych >= '_') goto yy49;
                } else {
                        if (yych <= 'z') {
-                               if (yych >= 'a') goto yy48;
+                               if (yych >= 'a') goto yy49;
                        } else {
-                               if (yych <= '{') goto yy51;
-                               if (yych >= 0x7F) goto yy48;
+                               if (yych <= '{') goto yy52;
+                               if (yych >= 0x7F) goto yy49;
                        }
                }
-yy41:
-               YYDEBUG(41, *YYCURSOR);
+yy42:
+               YYDEBUG(42, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2126 "Zend/zend_language_scanner.l"
+#line 2130 "Zend/zend_language_scanner.l"
                {
        if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
                YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
@@ -1599,32 +1599,32 @@ double_quotes_scan_done:
        return T_ENCAPSED_AND_WHITESPACE;
 }
 #line 1602 "Zend/zend_language_scanner.c"
-yy42:
-               YYDEBUG(42, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '$') goto yy46;
-               goto yy41;
 yy43:
                YYDEBUG(43, *YYCURSOR);
-               ++YYCURSOR;
+               yych = *++YYCURSOR;
+               if (yych == '$') goto yy47;
+               goto yy42;
+yy44:
                YYDEBUG(44, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(45, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2115 "Zend/zend_language_scanner.l"
+#line 2119 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '"';
 }
 #line 1618 "Zend/zend_language_scanner.c"
-yy45:
-               YYDEBUG(45, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy41;
 yy46:
                YYDEBUG(46, *YYCURSOR);
-               ++YYCURSOR;
+               yych = *++YYCURSOR;
+               goto yy42;
+yy47:
                YYDEBUG(47, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(48, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2107 "Zend/zend_language_scanner.l"
+#line 2111 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = (zend_long) '{';
        yy_push_state(ST_IN_SCRIPTING);
@@ -1632,95 +1632,96 @@ yy46:
        return T_CURLY_OPEN;
 }
 #line 1635 "Zend/zend_language_scanner.c"
-yy48:
-               YYDEBUG(48, *YYCURSOR);
+yy49:
+               YYDEBUG(49, *YYCURSOR);
                yyaccept = 0;
                YYMARKER = ++YYCURSOR;
                YYFILL(3);
                yych = *YYCURSOR;
-               YYDEBUG(49, *YYCURSOR);
+               YYDEBUG(50, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy48;
+                       goto yy49;
                }
-               if (yych == '-') goto yy53;
-               if (yych == '[') goto yy55;
-yy50:
-               YYDEBUG(50, *YYCURSOR);
+               if (yych == '-') goto yy54;
+               if (yych <= '@') goto yy51;
+               if (yych <= '[') goto yy56;
+yy51:
+               YYDEBUG(51, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1831 "Zend/zend_language_scanner.l"
+#line 1835 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        return T_VARIABLE;
 }
-#line 1656 "Zend/zend_language_scanner.c"
-yy51:
-               YYDEBUG(51, *YYCURSOR);
-               ++YYCURSOR;
+#line 1657 "Zend/zend_language_scanner.c"
+yy52:
                YYDEBUG(52, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(53, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1555 "Zend/zend_language_scanner.l"
+#line 1559 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 1667 "Zend/zend_language_scanner.c"
-yy53:
-               YYDEBUG(53, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '>') goto yy57;
+#line 1668 "Zend/zend_language_scanner.c"
 yy54:
                YYDEBUG(54, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               goto yy50;
+               yych = *++YYCURSOR;
+               if (yych == '>') goto yy58;
 yy55:
                YYDEBUG(55, *YYCURSOR);
-               ++YYCURSOR;
+               YYCURSOR = YYMARKER;
+               goto yy51;
+yy56:
                YYDEBUG(56, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(57, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1824 "Zend/zend_language_scanner.l"
+#line 1828 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET);
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        return T_VARIABLE;
 }
-#line 1688 "Zend/zend_language_scanner.c"
-yy57:
-               YYDEBUG(57, *YYCURSOR);
+#line 1689 "Zend/zend_language_scanner.c"
+yy58:
+               YYDEBUG(58, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= '_') {
-                       if (yych <= '@') goto yy54;
-                       if (yych <= 'Z') goto yy58;
-                       if (yych <= '^') goto yy54;
+                       if (yych <= '@') goto yy55;
+                       if (yych <= 'Z') goto yy59;
+                       if (yych <= '^') goto yy55;
                } else {
-                       if (yych <= '`') goto yy54;
-                       if (yych <= 'z') goto yy58;
-                       if (yych <= '~') goto yy54;
+                       if (yych <= '`') goto yy55;
+                       if (yych <= 'z') goto yy59;
+                       if (yych <= '~') goto yy55;
                }
-yy58:
-               YYDEBUG(58, *YYCURSOR);
-               ++YYCURSOR;
+yy59:
                YYDEBUG(59, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(60, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1815 "Zend/zend_language_scanner.l"
+#line 1819 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY);
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        return T_VARIABLE;
 }
-#line 1713 "Zend/zend_language_scanner.c"
+#line 1714 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_END_HEREDOC:
-       YYDEBUG(60, *YYCURSOR);
+       YYDEBUG(61, *YYCURSOR);
        YYFILL(1);
        yych = *YYCURSOR;
-       YYDEBUG(62, *YYCURSOR);
-       ++YYCURSOR;
        YYDEBUG(63, *YYCURSOR);
+       ++YYCURSOR;
+       YYDEBUG(64, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 2093 "Zend/zend_language_scanner.l"
+#line 2097 "Zend/zend_language_scanner.l"
        {
        zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack));
 
@@ -1733,7 +1734,7 @@ yyc_ST_END_HEREDOC:
        BEGIN(ST_IN_SCRIPTING);
        return T_END_HEREDOC;
 }
-#line 1737 "Zend/zend_language_scanner.c"
+#line 1738 "Zend/zend_language_scanner.c"
 /* *********************************** */
 yyc_ST_HEREDOC:
        {
@@ -1771,31 +1772,31 @@ yyc_ST_HEREDOC:
                        128, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
                };
-               YYDEBUG(64, *YYCURSOR);
+               YYDEBUG(65, *YYCURSOR);
                YYFILL(2);
                yych = *YYCURSOR;
-               if (yych == '$') goto yy66;
-               if (yych == '{') goto yy68;
-               goto yy69;
-yy66:
-               YYDEBUG(66, *YYCURSOR);
+               if (yych == '$') goto yy67;
+               if (yych == '{') goto yy69;
+               goto yy70;
+yy67:
+               YYDEBUG(67, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '_') {
-                       if (yych <= '@') goto yy67;
-                       if (yych <= 'Z') goto yy72;
-                       if (yych >= '_') goto yy72;
+                       if (yych <= '@') goto yy68;
+                       if (yych <= 'Z') goto yy73;
+                       if (yych >= '_') goto yy73;
                } else {
                        if (yych <= 'z') {
-                               if (yych >= 'a') goto yy72;
+                               if (yych >= 'a') goto yy73;
                        } else {
-                               if (yych <= '{') goto yy75;
-                               if (yych >= 0x7F) goto yy72;
+                               if (yych <= '{') goto yy76;
+                               if (yych >= 0x7F) goto yy73;
                        }
                }
-yy67:
-               YYDEBUG(67, *YYCURSOR);
+yy68:
+               YYDEBUG(68, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2218 "Zend/zend_language_scanner.l"
+#line 2222 "Zend/zend_language_scanner.l"
                {
        int newline = 0;
 
@@ -1868,107 +1869,108 @@ heredoc_scan_done:
        zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 1872 "Zend/zend_language_scanner.c"
-yy68:
-               YYDEBUG(68, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '$') goto yy70;
-               goto yy67;
+#line 1873 "Zend/zend_language_scanner.c"
 yy69:
                YYDEBUG(69, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy67;
+               if (yych == '$') goto yy71;
+               goto yy68;
 yy70:
                YYDEBUG(70, *YYCURSOR);
-               ++YYCURSOR;
+               yych = *++YYCURSOR;
+               goto yy68;
+yy71:
                YYDEBUG(71, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(72, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2107 "Zend/zend_language_scanner.l"
+#line 2111 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = (zend_long) '{';
        yy_push_state(ST_IN_SCRIPTING);
        yyless(1);
        return T_CURLY_OPEN;
 }
-#line 1894 "Zend/zend_language_scanner.c"
-yy72:
-               YYDEBUG(72, *YYCURSOR);
+#line 1895 "Zend/zend_language_scanner.c"
+yy73:
+               YYDEBUG(73, *YYCURSOR);
                yyaccept = 0;
                YYMARKER = ++YYCURSOR;
                YYFILL(3);
                yych = *YYCURSOR;
-               YYDEBUG(73, *YYCURSOR);
+               YYDEBUG(74, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy72;
+                       goto yy73;
                }
-               if (yych == '-') goto yy77;
-               if (yych == '[') goto yy79;
-yy74:
-               YYDEBUG(74, *YYCURSOR);
+               if (yych == '-') goto yy78;
+               if (yych <= '@') goto yy75;
+               if (yych <= '[') goto yy80;
+yy75:
+               YYDEBUG(75, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1831 "Zend/zend_language_scanner.l"
+#line 1835 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        return T_VARIABLE;
 }
-#line 1915 "Zend/zend_language_scanner.c"
-yy75:
-               YYDEBUG(75, *YYCURSOR);
-               ++YYCURSOR;
+#line 1917 "Zend/zend_language_scanner.c"
+yy76:
                YYDEBUG(76, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(77, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1555 "Zend/zend_language_scanner.l"
+#line 1559 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 1926 "Zend/zend_language_scanner.c"
-yy77:
-               YYDEBUG(77, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '>') goto yy81;
+#line 1928 "Zend/zend_language_scanner.c"
 yy78:
                YYDEBUG(78, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               goto yy74;
+               yych = *++YYCURSOR;
+               if (yych == '>') goto yy82;
 yy79:
                YYDEBUG(79, *YYCURSOR);
-               ++YYCURSOR;
+               YYCURSOR = YYMARKER;
+               goto yy75;
+yy80:
                YYDEBUG(80, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(81, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1824 "Zend/zend_language_scanner.l"
+#line 1828 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET);
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        return T_VARIABLE;
 }
-#line 1947 "Zend/zend_language_scanner.c"
-yy81:
-               YYDEBUG(81, *YYCURSOR);
+#line 1949 "Zend/zend_language_scanner.c"
+yy82:
+               YYDEBUG(82, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= '_') {
-                       if (yych <= '@') goto yy78;
-                       if (yych <= 'Z') goto yy82;
-                       if (yych <= '^') goto yy78;
+                       if (yych <= '@') goto yy79;
+                       if (yych <= 'Z') goto yy83;
+                       if (yych <= '^') goto yy79;
                } else {
-                       if (yych <= '`') goto yy78;
-                       if (yych <= 'z') goto yy82;
-                       if (yych <= '~') goto yy78;
+                       if (yych <= '`') goto yy79;
+                       if (yych <= 'z') goto yy83;
+                       if (yych <= '~') goto yy79;
                }
-yy82:
-               YYDEBUG(82, *YYCURSOR);
-               ++YYCURSOR;
+yy83:
                YYDEBUG(83, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(84, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1815 "Zend/zend_language_scanner.l"
+#line 1819 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY);
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        return T_VARIABLE;
 }
-#line 1972 "Zend/zend_language_scanner.c"
+#line 1974 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_IN_SCRIPTING:
@@ -2007,7 +2009,7 @@ yyc_ST_IN_SCRIPTING:
                          4,   4,   4,   4,   4,   4,   4,   4, 
                          4,   4,   4,   4,   4,   4,   4,   4, 
                };
-               YYDEBUG(84, *YYCURSOR);
+               YYDEBUG(85, *YYCURSOR);
                YYFILL(16);
                yych = *YYCURSOR;
                YYDEBUG(-1, yych);
@@ -2040,32 +2042,32 @@ yyc_ST_IN_SCRIPTING:
                case 0x1C:
                case 0x1D:
                case 0x1E:
-               case 0x1F:      goto yy147;
+               case 0x1F:      goto yy148;
                case '\t':
                case '\n':
                case '\r':
-               case ' ':       goto yy103;
-               case '!':       goto yy118;
-               case '"':       goto yy143;
-               case '#':       goto yy139;
-               case '$':       goto yy129;
-               case '%':       goto yy123;
-               case '&':       goto yy124;
-               case '\'':      goto yy141;
-               case '(':       goto yy112;
+               case ' ':       goto yy104;
+               case '!':       goto yy119;
+               case '"':       goto yy144;
+               case '#':       goto yy140;
+               case '$':       goto yy130;
+               case '%':       goto yy124;
+               case '&':       goto yy125;
+               case '\'':      goto yy142;
+               case '(':       goto yy113;
                case ')':
                case ',':
                case ';':
                case '@':
                case '[':
                case ']':
-               case '~':       goto yy130;
-               case '*':       goto yy121;
-               case '+':       goto yy117;
-               case '-':       goto yy101;
-               case '.':       goto yy108;
-               case '/':       goto yy122;
-               case '0':       goto yy135;
+               case '~':       goto yy131;
+               case '*':       goto yy122;
+               case '+':       goto yy118;
+               case '-':       goto yy102;
+               case '.':       goto yy109;
+               case '/':       goto yy123;
+               case '0':       goto yy136;
                case '1':
                case '2':
                case '3':
@@ -2074,594 +2076,594 @@ yyc_ST_IN_SCRIPTING:
                case '6':
                case '7':
                case '8':
-               case '9':       goto yy137;
-               case ':':       goto yy105;
-               case '<':       goto yy119;
-               case '=':       goto yy115;
-               case '>':       goto yy120;
-               case '?':       goto yy109;
+               case '9':       goto yy138;
+               case ':':       goto yy106;
+               case '<':       goto yy120;
+               case '=':       goto yy116;
+               case '>':       goto yy121;
+               case '?':       goto yy110;
                case 'A':
-               case 'a':       goto yy96;
+               case 'a':       goto yy97;
                case 'B':
-               case 'b':       goto yy98;
+               case 'b':       goto yy99;
                case 'C':
-               case 'c':       goto yy90;
+               case 'c':       goto yy91;
                case 'D':
-               case 'd':       goto yy88;
+               case 'd':       goto yy89;
                case 'E':
-               case 'e':       goto yy86;
+               case 'e':       goto yy87;
                case 'F':
-               case 'f':       goto yy89;
+               case 'f':       goto yy90;
                case 'G':
-               case 'g':       goto yy99;
+               case 'g':       goto yy100;
                case 'I':
-               case 'i':       goto yy94;
+               case 'i':       goto yy95;
                case 'L':
-               case 'l':       goto yy116;
+               case 'l':       goto yy117;
                case 'N':
-               case 'n':       goto yy110;
+               case 'n':       goto yy111;
                case 'O':
-               case 'o':       goto yy127;
+               case 'o':       goto yy128;
                case 'P':
-               case 'p':       goto yy100;
+               case 'p':       goto yy101;
                case 'R':
-               case 'r':       goto yy91;
+               case 'r':       goto yy92;
                case 'S':
-               case 's':       goto yy97;
+               case 's':       goto yy98;
                case 'T':
-               case 't':       goto yy93;
+               case 't':       goto yy94;
                case 'U':
-               case 'u':       goto yy113;
+               case 'u':       goto yy114;
                case 'V':
-               case 'v':       goto yy111;
+               case 'v':       goto yy112;
                case 'W':
-               case 'w':       goto yy95;
+               case 'w':       goto yy96;
                case 'X':
-               case 'x':       goto yy128;
+               case 'x':       goto yy129;
                case 'Y':
-               case 'y':       goto yy92;
-               case '\\':      goto yy106;
-               case '^':       goto yy126;
-               case '_':       goto yy114;
-               case '`':       goto yy145;
-               case '{':       goto yy131;
-               case '|':       goto yy125;
-               case '}':       goto yy133;
-               default:        goto yy138;
-               }
-yy86:
-               YYDEBUG(86, *YYCURSOR);
+               case 'y':       goto yy93;
+               case '\\':      goto yy107;
+               case '^':       goto yy127;
+               case '_':       goto yy115;
+               case '`':       goto yy146;
+               case '{':       goto yy132;
+               case '|':       goto yy126;
+               case '}':       goto yy134;
+               default:        goto yy139;
+               }
+yy87:
+               YYDEBUG(87, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(-1, yych);
                switch ((yych = *YYCURSOR)) {
                case 'C':
-               case 'c':       goto yy695;
+               case 'c':       goto yy698;
                case 'L':
-               case 'l':       goto yy696;
+               case 'l':       goto yy699;
                case 'M':
-               case 'm':       goto yy697;
+               case 'm':       goto yy700;
                case 'N':
-               case 'n':       goto yy698;
+               case 'n':       goto yy701;
                case 'V':
-               case 'v':       goto yy699;
+               case 'v':       goto yy702;
                case 'X':
-               case 'x':       goto yy700;
-               default:        goto yy150;
+               case 'x':       goto yy703;
+               default:        goto yy151;
                }
-yy87:
-               YYDEBUG(87, *YYCURSOR);
+yy88:
+               YYDEBUG(88, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1854 "Zend/zend_language_scanner.l"
+#line 1858 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        return T_STRING;
 }
-#line 2160 "Zend/zend_language_scanner.c"
-yy88:
-               YYDEBUG(88, *YYCURSOR);
+#line 2162 "Zend/zend_language_scanner.c"
+yy89:
+               YYDEBUG(89, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'O') {
                        if (yych <= 'H') {
-                               if (yych == 'E') goto yy677;
-                               goto yy150;
+                               if (yych == 'E') goto yy680;
+                               goto yy151;
                        } else {
-                               if (yych <= 'I') goto yy678;
-                               if (yych <= 'N') goto yy150;
-                               goto yy679;
+                               if (yych <= 'I') goto yy681;
+                               if (yych <= 'N') goto yy151;
+                               goto yy682;
                        }
                } else {
                        if (yych <= 'h') {
-                               if (yych == 'e') goto yy677;
-                               goto yy150;
+                               if (yych == 'e') goto yy680;
+                               goto yy151;
                        } else {
-                               if (yych <= 'i') goto yy678;
-                               if (yych == 'o') goto yy679;
-                               goto yy150;
+                               if (yych <= 'i') goto yy681;
+                               if (yych == 'o') goto yy682;
+                               goto yy151;
                        }
                }
-yy89:
-               YYDEBUG(89, *YYCURSOR);
+yy90:
+               YYDEBUG(90, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'U') {
                        if (yych <= 'N') {
-                               if (yych == 'I') goto yy653;
-                               goto yy150;
+                               if (yych == 'I') goto yy656;
+                               goto yy151;
                        } else {
-                               if (yych <= 'O') goto yy654;
-                               if (yych <= 'T') goto yy150;
-                               goto yy655;
+                               if (yych <= 'O') goto yy657;
+                               if (yych <= 'T') goto yy151;
+                               goto yy658;
                        }
                } else {
                        if (yych <= 'n') {
-                               if (yych == 'i') goto yy653;
-                               goto yy150;
+                               if (yych == 'i') goto yy656;
+                               goto yy151;
                        } else {
-                               if (yych <= 'o') goto yy654;
-                               if (yych == 'u') goto yy655;
-                               goto yy150;
+                               if (yych <= 'o') goto yy657;
+                               if (yych == 'u') goto yy658;
+                               goto yy151;
                        }
                }
-yy90:
-               YYDEBUG(90, *YYCURSOR);
+yy91:
+               YYDEBUG(91, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'O') {
                        if (yych <= 'K') {
-                               if (yych == 'A') goto yy618;
-                               goto yy150;
+                               if (yych == 'A') goto yy621;
+                               goto yy151;
                        } else {
-                               if (yych <= 'L') goto yy619;
-                               if (yych <= 'N') goto yy150;
-                               goto yy620;
+                               if (yych <= 'L') goto yy622;
+                               if (yych <= 'N') goto yy151;
+                               goto yy623;
                        }
                } else {
                        if (yych <= 'k') {
-                               if (yych == 'a') goto yy618;
-                               goto yy150;
+                               if (yych == 'a') goto yy621;
+                               goto yy151;
                        } else {
-                               if (yych <= 'l') goto yy619;
-                               if (yych == 'o') goto yy620;
-                               goto yy150;
+                               if (yych <= 'l') goto yy622;
+                               if (yych == 'o') goto yy623;
+                               goto yy151;
                        }
                }
-yy91:
-               YYDEBUG(91, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy600;
-               if (yych == 'e') goto yy600;
-               goto yy150;
 yy92:
                YYDEBUG(92, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy595;
-               if (yych == 'i') goto yy595;
-               goto yy150;
+               if (yych == 'E') goto yy603;
+               if (yych == 'e') goto yy603;
+               goto yy151;
 yy93:
                YYDEBUG(93, *YYCURSOR);
                yych = *++YYCURSOR;
+               if (yych == 'I') goto yy598;
+               if (yych == 'i') goto yy598;
+               goto yy151;
+yy94:
+               YYDEBUG(94, *YYCURSOR);
+               yych = *++YYCURSOR;
                if (yych <= 'R') {
-                       if (yych == 'H') goto yy583;
-                       if (yych <= 'Q') goto yy150;
-                       goto yy584;
+                       if (yych == 'H') goto yy586;
+                       if (yych <= 'Q') goto yy151;
+                       goto yy587;
                } else {
                        if (yych <= 'h') {
-                               if (yych <= 'g') goto yy150;
-                               goto yy583;
+                               if (yych <= 'g') goto yy151;
+                               goto yy586;
                        } else {
-                               if (yych == 'r') goto yy584;
-                               goto yy150;
+                               if (yych == 'r') goto yy587;
+                               goto yy151;
                        }
                }
-yy94:
-               YYDEBUG(94, *YYCURSOR);
+yy95:
+               YYDEBUG(95, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'S') {
                        if (yych <= 'L') {
-                               if (yych == 'F') goto yy530;
-                               goto yy150;
+                               if (yych == 'F') goto yy533;
+                               goto yy151;
                        } else {
-                               if (yych <= 'M') goto yy532;
-                               if (yych <= 'N') goto yy533;
-                               if (yych <= 'R') goto yy150;
-                               goto yy534;
+                               if (yych <= 'M') goto yy535;
+                               if (yych <= 'N') goto yy536;
+                               if (yych <= 'R') goto yy151;
+                               goto yy537;
                        }
                } else {
                        if (yych <= 'm') {
-                               if (yych == 'f') goto yy530;
-                               if (yych <= 'l') goto yy150;
-                               goto yy532;
+                               if (yych == 'f') goto yy533;
+                               if (yych <= 'l') goto yy151;
+                               goto yy535;
                        } else {
-                               if (yych <= 'n') goto yy533;
-                               if (yych == 's') goto yy534;
-                               goto yy150;
+                               if (yych <= 'n') goto yy536;
+                               if (yych == 's') goto yy537;
+                               goto yy151;
                        }
                }
-yy95:
-               YYDEBUG(95, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy525;
-               if (yych == 'h') goto yy525;
-               goto yy150;
 yy96:
                YYDEBUG(96, *YYCURSOR);
                yych = *++YYCURSOR;
+               if (yych == 'H') goto yy528;
+               if (yych == 'h') goto yy528;
+               goto yy151;
+yy97:
+               YYDEBUG(97, *YYCURSOR);
+               yych = *++YYCURSOR;
                if (yych <= 'S') {
                        if (yych <= 'M') {
-                               if (yych == 'B') goto yy507;
-                               goto yy150;
+                               if (yych == 'B') goto yy510;
+                               goto yy151;
                        } else {
-                               if (yych <= 'N') goto yy508;
-                               if (yych <= 'Q') goto yy150;
-                               if (yych <= 'R') goto yy509;
-                               goto yy510;
+                               if (yych <= 'N') goto yy511;
+                               if (yych <= 'Q') goto yy151;
+                               if (yych <= 'R') goto yy512;
+                               goto yy513;
                        }
                } else {
                        if (yych <= 'n') {
-                               if (yych == 'b') goto yy507;
-                               if (yych <= 'm') goto yy150;
-                               goto yy508;
+                               if (yych == 'b') goto yy510;
+                               if (yych <= 'm') goto yy151;
+                               goto yy511;
                        } else {
-                               if (yych <= 'q') goto yy150;
-                               if (yych <= 'r') goto yy509;
-                               if (yych <= 's') goto yy510;
-                               goto yy150;
+                               if (yych <= 'q') goto yy151;
+                               if (yych <= 'r') goto yy512;
+                               if (yych <= 's') goto yy513;
+                               goto yy151;
                        }
                }
-yy97:
-               YYDEBUG(97, *YYCURSOR);
+yy98:
+               YYDEBUG(98, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'W') {
-                       if (yych == 'T') goto yy495;
-                       if (yych <= 'V') goto yy150;
-                       goto yy496;
+                       if (yych == 'T') goto yy498;
+                       if (yych <= 'V') goto yy151;
+                       goto yy499;
                } else {
                        if (yych <= 't') {
-                               if (yych <= 's') goto yy150;
-                               goto yy495;
+                               if (yych <= 's') goto yy151;
+                               goto yy498;
                        } else {
-                               if (yych == 'w') goto yy496;
-                               goto yy150;
+                               if (yych == 'w') goto yy499;
+                               goto yy151;
                        }
                }
-yy98:
-               YYDEBUG(98, *YYCURSOR);
+yy99:
+               YYDEBUG(99, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= ';') {
                        if (yych <= '"') {
-                               if (yych <= '!') goto yy150;
-                               goto yy487;
+                               if (yych <= '!') goto yy151;
+                               goto yy490;
                        } else {
-                               if (yych == '\'') goto yy488;
-                               goto yy150;
+                               if (yych == '\'') goto yy491;
+                               goto yy151;
                        }
                } else {
                        if (yych <= 'R') {
-                               if (yych <= '<') goto yy486;
-                               if (yych <= 'Q') goto yy150;
-                               goto yy489;
+                               if (yych <= '<') goto yy489;
+                               if (yych <= 'Q') goto yy151;
+                               goto yy492;
                        } else {
-                               if (yych == 'r') goto yy489;
-                               goto yy150;
+                               if (yych == 'r') goto yy492;
+                               goto yy151;
                        }
                }
-yy99:
-               YYDEBUG(99, *YYCURSOR);
+yy100:
+               YYDEBUG(100, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'O') {
-                       if (yych == 'L') goto yy476;
-                       if (yych <= 'N') goto yy150;
-                       goto yy477;
+                       if (yych == 'L') goto yy479;
+                       if (yych <= 'N') goto yy151;
+                       goto yy480;
                } else {
                        if (yych <= 'l') {
-                               if (yych <= 'k') goto yy150;
-                               goto yy476;
+                               if (yych <= 'k') goto yy151;
+                               goto yy479;
                        } else {
-                               if (yych == 'o') goto yy477;
-                               goto yy150;
+                               if (yych == 'o') goto yy480;
+                               goto yy151;
                        }
                }
-yy100:
-               YYDEBUG(100, *YYCURSOR);
+yy101:
+               YYDEBUG(101, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'U') {
-                       if (yych == 'R') goto yy452;
-                       if (yych <= 'T') goto yy150;
-                       goto yy453;
+                       if (yych == 'R') goto yy455;
+                       if (yych <= 'T') goto yy151;
+                       goto yy456;
                } else {
                        if (yych <= 'r') {
-                               if (yych <= 'q') goto yy150;
-                               goto yy452;
+                               if (yych <= 'q') goto yy151;
+                               goto yy455;
                        } else {
-                               if (yych == 'u') goto yy453;
-                               goto yy150;
+                               if (yych == 'u') goto yy456;
+                               goto yy151;
                        }
                }
-yy101:
-               YYDEBUG(101, *YYCURSOR);
+yy102:
+               YYDEBUG(102, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '<') {
-                       if (yych == '-') goto yy448;
+                       if (yych == '-') goto yy451;
                } else {
-                       if (yych <= '=') goto yy446;
-                       if (yych <= '>') goto yy450;
+                       if (yych <= '=') goto yy449;
+                       if (yych <= '>') goto yy453;
                }
-yy102:
-               YYDEBUG(102, *YYCURSOR);
+yy103:
+               YYDEBUG(103, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1544 "Zend/zend_language_scanner.l"
+#line 1548 "Zend/zend_language_scanner.l"
                {
        return yytext[0];
 }
-#line 2396 "Zend/zend_language_scanner.c"
-yy103:
-               YYDEBUG(103, *YYCURSOR);
-               ++YYCURSOR;
-               yych = *YYCURSOR;
-               goto yy445;
+#line 2398 "Zend/zend_language_scanner.c"
 yy104:
                YYDEBUG(104, *YYCURSOR);
+               ++YYCURSOR;
+               yych = *YYCURSOR;
+               goto yy448;
+yy105:
+               YYDEBUG(105, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1263 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        return T_WHITESPACE;
 }
-#line 2410 "Zend/zend_language_scanner.c"
-yy105:
-               YYDEBUG(105, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == ':') goto yy442;
-               goto yy102;
+#line 2412 "Zend/zend_language_scanner.c"
 yy106:
                YYDEBUG(106, *YYCURSOR);
-               ++YYCURSOR;
+               yych = *++YYCURSOR;
+               if (yych == ':') goto yy445;
+               goto yy103;
+yy107:
                YYDEBUG(107, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(108, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1288 "Zend/zend_language_scanner.l"
                {
        return T_NS_SEPARATOR;
 }
-#line 2425 "Zend/zend_language_scanner.c"
-yy108:
-               YYDEBUG(108, *YYCURSOR);
+#line 2427 "Zend/zend_language_scanner.c"
+yy109:
+               YYDEBUG(109, *YYCURSOR);
                yyaccept = 1;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= '/') {
-                       if (yych == '.') goto yy439;
-                       goto yy102;
+                       if (yych == '.') goto yy442;
+                       goto yy103;
                } else {
-                       if (yych <= '9') goto yy435;
-                       if (yych == '=') goto yy437;
-                       goto yy102;
+                       if (yych <= '9') goto yy438;
+                       if (yych == '=') goto yy440;
+                       goto yy103;
                }
-yy109:
-               YYDEBUG(109, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '=') goto yy102;
-               if (yych <= '>') goto yy429;
-               if (yych <= '?') goto yy431;
-               goto yy102;
 yy110:
                YYDEBUG(110, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= 'E') {
-                       if (yych == 'A') goto yy417;
-                       if (yych <= 'D') goto yy150;
-                       goto yy418;
-               } else {
+               if (yych <= '=') goto yy103;
+               if (yych <= '>') goto yy432;
+               if (yych <= '?') goto yy434;
+               goto yy103;
+yy111:
+               YYDEBUG(111, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'E') {
+                       if (yych == 'A') goto yy420;
+                       if (yych <= 'D') goto yy151;
+                       goto yy421;
+               } else {
                        if (yych <= 'a') {
-                               if (yych <= '`') goto yy150;
-                               goto yy417;
+                               if (yych <= '`') goto yy151;
+                               goto yy420;
                        } else {
-                               if (yych == 'e') goto yy418;
-                               goto yy150;
+                               if (yych == 'e') goto yy421;
+                               goto yy151;
                        }
                }
-yy111:
-               YYDEBUG(111, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy414;
-               if (yych == 'a') goto yy414;
-               goto yy150;
 yy112:
                YYDEBUG(112, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy417;
+               if (yych == 'a') goto yy417;
+               goto yy151;
+yy113:
+               YYDEBUG(113, *YYCURSOR);
                yyaccept = 1;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= 'S') {
                        if (yych <= 'D') {
                                if (yych <= ' ') {
-                                       if (yych == '\t') goto yy339;
-                                       if (yych <= 0x1F) goto yy102;
-                                       goto yy339;
+                                       if (yych == '\t') goto yy342;
+                                       if (yych <= 0x1F) goto yy103;
+                                       goto yy342;
                                } else {
-                                       if (yych <= '@') goto yy102;
-                                       if (yych == 'C') goto yy102;
-                                       goto yy339;
+                                       if (yych <= '@') goto yy103;
+                                       if (yych == 'C') goto yy103;
+                                       goto yy342;
                                }
                        } else {
                                if (yych <= 'I') {
-                                       if (yych == 'F') goto yy339;
-                                       if (yych <= 'H') goto yy102;
-                                       goto yy339;
+                                       if (yych == 'F') goto yy342;
+                                       if (yych <= 'H') goto yy103;
+                                       goto yy342;
                                } else {
-                                       if (yych == 'O') goto yy339;
-                                       if (yych <= 'Q') goto yy102;
-                                       goto yy339;
+                                       if (yych == 'O') goto yy342;
+                                       if (yych <= 'Q') goto yy103;
+                                       goto yy342;
                                }
                        }
                } else {
                        if (yych <= 'f') {
                                if (yych <= 'b') {
-                                       if (yych == 'U') goto yy339;
-                                       if (yych <= '`') goto yy102;
-                                       goto yy339;
+                                       if (yych == 'U') goto yy342;
+                                       if (yych <= '`') goto yy103;
+                                       goto yy342;
                                } else {
-                                       if (yych == 'd') goto yy339;
-                                       if (yych <= 'e') goto yy102;
-                                       goto yy339;
+                                       if (yych == 'd') goto yy342;
+                                       if (yych <= 'e') goto yy103;
+                                       goto yy342;
                                }
                        } else {
                                if (yych <= 'o') {
-                                       if (yych == 'i') goto yy339;
-                                       if (yych <= 'n') goto yy102;
-                                       goto yy339;
+                                       if (yych == 'i') goto yy342;
+                                       if (yych <= 'n') goto yy103;
+                                       goto yy342;
                                } else {
                                        if (yych <= 's') {
-                                               if (yych <= 'q') goto yy102;
-                                               goto yy339;
+                                               if (yych <= 'q') goto yy103;
+                                               goto yy342;
                                        } else {
-                                               if (yych == 'u') goto yy339;
-                                               goto yy102;
+                                               if (yych == 'u') goto yy342;
+                                               goto yy103;
                                        }
                                }
                        }
                }
-yy113:
-               YYDEBUG(113, *YYCURSOR);
+yy114:
+               YYDEBUG(114, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'S') {
-                       if (yych == 'N') goto yy330;
-                       if (yych <= 'R') goto yy150;
-                       goto yy331;
+                       if (yych == 'N') goto yy333;
+                       if (yych <= 'R') goto yy151;
+                       goto yy334;
                } else {
                        if (yych <= 'n') {
-                               if (yych <= 'm') goto yy150;
-                               goto yy330;
+                               if (yych <= 'm') goto yy151;
+                               goto yy333;
                        } else {
-                               if (yych == 's') goto yy331;
-                               goto yy150;
+                               if (yych == 's') goto yy334;
+                               goto yy151;
                        }
                }
-yy114:
-               YYDEBUG(114, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '_') goto yy248;
-               goto yy150;
 yy115:
                YYDEBUG(115, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= '<') goto yy102;
-               if (yych <= '=') goto yy242;
-               if (yych <= '>') goto yy244;
-               goto yy102;
+               if (yych == '_') goto yy251;
+               goto yy151;
 yy116:
                YYDEBUG(116, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy238;
-               if (yych == 'i') goto yy238;
-               goto yy150;
+               if (yych <= '<') goto yy103;
+               if (yych <= '=') goto yy245;
+               if (yych <= '>') goto yy247;
+               goto yy103;
 yy117:
                YYDEBUG(117, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '+') goto yy236;
-               if (yych == '=') goto yy234;
-               goto yy102;
+               if (yych == 'I') goto yy241;
+               if (yych == 'i') goto yy241;
+               goto yy151;
 yy118:
                YYDEBUG(118, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '=') goto yy231;
-               goto yy102;
+               if (yych == '+') goto yy239;
+               if (yych == '=') goto yy237;
+               goto yy103;
 yy119:
                YYDEBUG(119, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= ';') goto yy102;
-               if (yych <= '<') goto yy209;
-               if (yych <= '=') goto yy211;
-               if (yych <= '>') goto yy213;
-               goto yy102;
+               if (yych == '=') goto yy234;
+               goto yy103;
 yy120:
                YYDEBUG(120, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= '<') goto yy102;
-               if (yych <= '=') goto yy205;
-               if (yych <= '>') goto yy203;
-               goto yy102;
+               if (yych <= ';') goto yy103;
+               if (yych <= '<') goto yy210;
+               if (yych <= '=') goto yy212;
+               if (yych <= '>') goto yy214;
+               goto yy103;
 yy121:
                YYDEBUG(121, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '*') goto yy197;
-               if (yych == '=') goto yy199;
-               goto yy102;
+               if (yych <= '<') goto yy103;
+               if (yych <= '=') goto yy206;
+               if (yych <= '>') goto yy204;
+               goto yy103;
 yy122:
                YYDEBUG(122, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= '.') {
-                       if (yych == '*') goto yy189;
-                       goto yy102;
-               } else {
-                       if (yych <= '/') goto yy191;
-                       if (yych == '=') goto yy192;
-                       goto yy102;
-               }
+               if (yych == '*') goto yy198;
+               if (yych == '=') goto yy200;
+               goto yy103;
 yy123:
                YYDEBUG(123, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '=') goto yy187;
-               goto yy102;
+               if (yych <= '.') {
+                       if (yych == '*') goto yy190;
+                       goto yy103;
+               } else {
+                       if (yych <= '/') goto yy192;
+                       if (yych == '=') goto yy193;
+                       goto yy103;
+               }
 yy124:
                YYDEBUG(124, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '&') goto yy183;
-               if (yych == '=') goto yy185;
-               goto yy102;
+               if (yych == '=') goto yy188;
+               goto yy103;
 yy125:
                YYDEBUG(125, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '=') goto yy181;
-               if (yych == '|') goto yy179;
-               goto yy102;
+               if (yych == '&') goto yy184;
+               if (yych == '=') goto yy186;
+               goto yy103;
 yy126:
                YYDEBUG(126, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '=') goto yy177;
-               goto yy102;
+               if (yych == '=') goto yy182;
+               if (yych == '|') goto yy180;
+               goto yy103;
 yy127:
                YYDEBUG(127, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy175;
-               if (yych == 'r') goto yy175;
-               goto yy150;
+               if (yych == '=') goto yy178;
+               goto yy103;
 yy128:
                YYDEBUG(128, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy172;
-               if (yych == 'o') goto yy172;
-               goto yy150;
+               if (yych == 'R') goto yy176;
+               if (yych == 'r') goto yy176;
+               goto yy151;
 yy129:
                YYDEBUG(129, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= '_') {
-                       if (yych <= '@') goto yy102;
-                       if (yych <= 'Z') goto yy169;
-                       if (yych <= '^') goto yy102;
-                       goto yy169;
-               } else {
-                       if (yych <= '`') goto yy102;
-                       if (yych <= 'z') goto yy169;
-                       if (yych <= '~') goto yy102;
-                       goto yy169;
-               }
+               if (yych == 'O') goto yy173;
+               if (yych == 'o') goto yy173;
+               goto yy151;
 yy130:
                YYDEBUG(130, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy102;
+               if (yych <= '_') {
+                       if (yych <= '@') goto yy103;
+                       if (yych <= 'Z') goto yy170;
+                       if (yych <= '^') goto yy103;
+                       goto yy170;
+               } else {
+                       if (yych <= '`') goto yy103;
+                       if (yych <= 'z') goto yy170;
+                       if (yych <= '~') goto yy103;
+                       goto yy170;
+               }
 yy131:
                YYDEBUG(131, *YYCURSOR);
-               ++YYCURSOR;
+               yych = *++YYCURSOR;
+               goto yy103;
+yy132:
                YYDEBUG(132, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(133, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1549 "Zend/zend_language_scanner.l"
+#line 1553 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_IN_SCRIPTING);
        return '{';
 }
-#line 2659 "Zend/zend_language_scanner.c"
-yy133:
-               YYDEBUG(133, *YYCURSOR);
-               ++YYCURSOR;
+#line 2661 "Zend/zend_language_scanner.c"
+yy134:
                YYDEBUG(134, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(135, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1561 "Zend/zend_language_scanner.l"
+#line 1565 "Zend/zend_language_scanner.l"
                {
        RESET_DOC_COMMENT();
        if (!zend_stack_is_empty(&SCNG(state_stack))) {
@@ -2669,35 +2671,35 @@ yy133:
        }
        return '}';
 }
-#line 2673 "Zend/zend_language_scanner.c"
-yy135:
-               YYDEBUG(135, *YYCURSOR);
+#line 2675 "Zend/zend_language_scanner.c"
+yy136:
+               YYDEBUG(136, *YYCURSOR);
                yyaccept = 2;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= 'E') {
                        if (yych <= '9') {
-                               if (yych == '.') goto yy151;
-                               if (yych >= '0') goto yy154;
+                               if (yych == '.') goto yy152;
+                               if (yych >= '0') goto yy155;
                        } else {
-                               if (yych == 'B') goto yy162;
-                               if (yych >= 'E') goto yy156;
+                               if (yych == 'B') goto yy163;
+                               if (yych >= 'E') goto yy157;
                        }
                } else {
                        if (yych <= 'b') {
-                               if (yych == 'X') goto yy161;
-                               if (yych >= 'b') goto yy162;
+                               if (yych == 'X') goto yy162;
+                               if (yych >= 'b') goto yy163;
                        } else {
                                if (yych <= 'e') {
-                                       if (yych >= 'e') goto yy156;
+                                       if (yych >= 'e') goto yy157;
                                } else {
-                                       if (yych == 'x') goto yy161;
+                                       if (yych == 'x') goto yy162;
                                }
                        }
                }
-yy136:
-               YYDEBUG(136, *YYCURSOR);
+yy137:
+               YYDEBUG(137, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1614 "Zend/zend_language_scanner.l"
+#line 1618 "Zend/zend_language_scanner.l"
                {
        char *end;
        if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
@@ -2736,35 +2738,35 @@ yy136:
        }
        return T_LNUMBER;
 }
-#line 2740 "Zend/zend_language_scanner.c"
-yy137:
-               YYDEBUG(137, *YYCURSOR);
+#line 2742 "Zend/zend_language_scanner.c"
+yy138:
+               YYDEBUG(138, *YYCURSOR);
                yyaccept = 2;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= '9') {
-                       if (yych == '.') goto yy151;
-                       if (yych <= '/') goto yy136;
-                       goto yy154;
+                       if (yych == '.') goto yy152;
+                       if (yych <= '/') goto yy137;
+                       goto yy155;
                } else {
                        if (yych <= 'E') {
-                               if (yych <= 'D') goto yy136;
-                               goto yy156;
+                               if (yych <= 'D') goto yy137;
+                               goto yy157;
                        } else {
-                               if (yych == 'e') goto yy156;
-                               goto yy136;
+                               if (yych == 'e') goto yy157;
+                               goto yy137;
                        }
                }
-yy138:
-               YYDEBUG(138, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy150;
 yy139:
                YYDEBUG(139, *YYCURSOR);
-               ++YYCURSOR;
+               yych = *++YYCURSOR;
+               goto yy151;
 yy140:
                YYDEBUG(140, *YYCURSOR);
+               ++YYCURSOR;
+yy141:
+               YYDEBUG(141, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1860 "Zend/zend_language_scanner.l"
+#line 1864 "Zend/zend_language_scanner.l"
                {
        while (YYCURSOR < YYLIMIT) {
                switch (*YYCURSOR++) {
@@ -2793,14 +2795,14 @@ yy140:
 
        return T_COMMENT;
 }
-#line 2797 "Zend/zend_language_scanner.c"
-yy141:
-               YYDEBUG(141, *YYCURSOR);
-               ++YYCURSOR;
+#line 2799 "Zend/zend_language_scanner.c"
 yy142:
                YYDEBUG(142, *YYCURSOR);
+               ++YYCURSOR;
+yy143:
+               YYDEBUG(143, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1928 "Zend/zend_language_scanner.l"
+#line 1932 "Zend/zend_language_scanner.l"
                {
        register char *s, *t;
        char *end;
@@ -2868,14 +2870,14 @@ yy142:
        }
        return T_CONSTANT_ENCAPSED_STRING;
 }
-#line 2872 "Zend/zend_language_scanner.c"
-yy143:
-               YYDEBUG(143, *YYCURSOR);
-               ++YYCURSOR;
+#line 2874 "Zend/zend_language_scanner.c"
 yy144:
                YYDEBUG(144, *YYCURSOR);
+               ++YYCURSOR;
+yy145:
+               YYDEBUG(145, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1997 "Zend/zend_language_scanner.l"
+#line 2001 "Zend/zend_language_scanner.l"
                {
        int bprefix = (yytext[0] != '"') ? 1 : 0;
 
@@ -2916,24 +2918,24 @@ yy144:
        BEGIN(ST_DOUBLE_QUOTES);
        return '"';
 }
-#line 2920 "Zend/zend_language_scanner.c"
-yy145:
-               YYDEBUG(145, *YYCURSOR);
-               ++YYCURSOR;
+#line 2922 "Zend/zend_language_scanner.c"
+yy146:
                YYDEBUG(146, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(147, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2087 "Zend/zend_language_scanner.l"
+#line 2091 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_BACKQUOTE);
        return '`';
 }
-#line 2931 "Zend/zend_language_scanner.c"
-yy147:
-               YYDEBUG(147, *YYCURSOR);
-               ++YYCURSOR;
+#line 2933 "Zend/zend_language_scanner.c"
+yy148:
                YYDEBUG(148, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(149, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2349 "Zend/zend_language_scanner.l"
+#line 2353 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                return 0;
@@ -2942,34 +2944,34 @@ yy147:
        zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
        goto restart;
 }
-#line 2946 "Zend/zend_language_scanner.c"
-yy149:
-               YYDEBUG(149, *YYCURSOR);
+#line 2948 "Zend/zend_language_scanner.c"
+yy150:
+               YYDEBUG(150, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy150:
-               YYDEBUG(150, *YYCURSOR);
-               if (yybm[0+yych] & 4) {
-                       goto yy149;
-               }
-               goto yy87;
 yy151:
                YYDEBUG(151, *YYCURSOR);
+               if (yybm[0+yych] & 4) {
+                       goto yy150;
+               }
+               goto yy88;
+yy152:
+               YYDEBUG(152, *YYCURSOR);
                yyaccept = 3;
                YYMARKER = ++YYCURSOR;
                YYFILL(3);
                yych = *YYCURSOR;
-               YYDEBUG(152, *YYCURSOR);
+               YYDEBUG(153, *YYCURSOR);
                if (yybm[0+yych] & 8) {
-                       goto yy151;
+                       goto yy152;
                }
-               if (yych == 'E') goto yy156;
-               if (yych == 'e') goto yy156;
-yy153:
-               YYDEBUG(153, *YYCURSOR);
+               if (yych == 'E') goto yy157;
+               if (yych == 'e') goto yy157;
+yy154:
+               YYDEBUG(154, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1702 "Zend/zend_language_scanner.l"
+#line 1706 "Zend/zend_language_scanner.l"
                {
        const char *end;
 
@@ -2978,99 +2980,99 @@ yy153:
        ZEND_ASSERT(end == yytext + yyleng);
        return T_DNUMBER;
 }
-#line 2982 "Zend/zend_language_scanner.c"
-yy154:
-               YYDEBUG(154, *YYCURSOR);
+#line 2984 "Zend/zend_language_scanner.c"
+yy155:
+               YYDEBUG(155, *YYCURSOR);
                yyaccept = 2;
                YYMARKER = ++YYCURSOR;
                YYFILL(3);
                yych = *YYCURSOR;
-               YYDEBUG(155, *YYCURSOR);
+               YYDEBUG(156, *YYCURSOR);
                if (yych <= '9') {
-                       if (yych == '.') goto yy151;
-                       if (yych <= '/') goto yy136;
-                       goto yy154;
+                       if (yych == '.') goto yy152;
+                       if (yych <= '/') goto yy137;
+                       goto yy155;
                } else {
                        if (yych <= 'E') {
-                               if (yych <= 'D') goto yy136;
+                               if (yych <= 'D') goto yy137;
                        } else {
-                               if (yych != 'e') goto yy136;
+                               if (yych != 'e') goto yy137;
                        }
                }
-yy156:
-               YYDEBUG(156, *YYCURSOR);
+yy157:
+               YYDEBUG(157, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= ',') {
-                       if (yych == '+') goto yy158;
+                       if (yych == '+') goto yy159;
                } else {
-                       if (yych <= '-') goto yy158;
-                       if (yych <= '/') goto yy157;
-                       if (yych <= '9') goto yy159;
+                       if (yych <= '-') goto yy159;
+                       if (yych <= '/') goto yy158;
+                       if (yych <= '9') goto yy160;
                }
-yy157:
-               YYDEBUG(157, *YYCURSOR);
+yy158:
+               YYDEBUG(158, *YYCURSOR);
                YYCURSOR = YYMARKER;
                if (yyaccept <= 2) {
                        if (yyaccept <= 1) {
-                               if (yyaccept <= 0) {
-                                       goto yy87;
+                               if (yyaccept == 0) {
+                                       goto yy88;
                                } else {
-                                       goto yy102;
+                                       goto yy103;
                                }
                        } else {
-                               goto yy136;
+                               goto yy137;
                        }
                } else {
                        if (yyaccept <= 4) {
-                               if (yyaccept <= 3) {
-                                       goto yy153;
+                               if (yyaccept == 3) {
+                                       goto yy154;
                                } else {
-                                       goto yy190;
+                                       goto yy191;
                                }
                        } else {
-                               goto yy210;
+                               goto yy211;
                        }
                }
-yy158:
-               YYDEBUG(158, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '/') goto yy157;
-               if (yych >= ':') goto yy157;
 yy159:
                YYDEBUG(159, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= '/') goto yy158;
+               if (yych >= ':') goto yy158;
+yy160:
+               YYDEBUG(160, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(160, *YYCURSOR);
-               if (yych <= '/') goto yy153;
-               if (yych <= '9') goto yy159;
-               goto yy153;
-yy161:
                YYDEBUG(161, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 32) {
-                       goto yy166;
-               }
-               goto yy157;
+               if (yych <= '/') goto yy154;
+               if (yych <= '9') goto yy160;
+               goto yy154;
 yy162:
                YYDEBUG(162, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy163;
+               if (yybm[0+yych] & 32) {
+                       goto yy167;
                }
-               goto yy157;
+               goto yy158;
 yy163:
                YYDEBUG(163, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yybm[0+yych] & 16) {
+                       goto yy164;
+               }
+               goto yy158;
+yy164:
+               YYDEBUG(164, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(164, *YYCURSOR);
+               YYDEBUG(165, *YYCURSOR);
                if (yybm[0+yych] & 16) {
-                       goto yy163;
+                       goto yy164;
                }
-               YYDEBUG(165, *YYCURSOR);
+               YYDEBUG(166, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1586 "Zend/zend_language_scanner.l"
+#line 1590 "Zend/zend_language_scanner.l"
                {
        char *bin = yytext + 2; /* Skip "0b" */
        int len = yyleng - 2;
@@ -3098,19 +3100,19 @@ yy163:
                return T_DNUMBER;
        }
 }
-#line 3102 "Zend/zend_language_scanner.c"
-yy166:
-               YYDEBUG(166, *YYCURSOR);
+#line 3104 "Zend/zend_language_scanner.c"
+yy167:
+               YYDEBUG(167, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(167, *YYCURSOR);
+               YYDEBUG(168, *YYCURSOR);
                if (yybm[0+yych] & 32) {
-                       goto yy166;
+                       goto yy167;
                }
-               YYDEBUG(168, *YYCURSOR);
+               YYDEBUG(169, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1653 "Zend/zend_language_scanner.l"
+#line 1657 "Zend/zend_language_scanner.l"
                {
        char *hex = yytext + 2; /* Skip "0x" */
        int len = yyleng - 2;
@@ -3138,137 +3140,137 @@ yy166:
                return T_DNUMBER;
        }
 }
-#line 3142 "Zend/zend_language_scanner.c"
-yy169:
-               YYDEBUG(169, *YYCURSOR);
+#line 3144 "Zend/zend_language_scanner.c"
+yy170:
+               YYDEBUG(170, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(170, *YYCURSOR);
+               YYDEBUG(171, *YYCURSOR);
                if (yych <= '^') {
                        if (yych <= '9') {
-                               if (yych >= '0') goto yy169;
+                               if (yych >= '0') goto yy170;
                        } else {
-                               if (yych <= '@') goto yy171;
-                               if (yych <= 'Z') goto yy169;
+                               if (yych <= '@') goto yy172;
+                               if (yych <= 'Z') goto yy170;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych <= '_') goto yy169;
+                               if (yych <= '_') goto yy170;
                        } else {
-                               if (yych <= 'z') goto yy169;
-                               if (yych >= 0x7F) goto yy169;
+                               if (yych <= 'z') goto yy170;
+                               if (yych >= 0x7F) goto yy170;
                        }
                }
-yy171:
-               YYDEBUG(171, *YYCURSOR);
+yy172:
+               YYDEBUG(172, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1831 "Zend/zend_language_scanner.l"
+#line 1835 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        return T_VARIABLE;
 }
-#line 3172 "Zend/zend_language_scanner.c"
-yy172:
-               YYDEBUG(172, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy173;
-               if (yych != 'r') goto yy150;
+#line 3174 "Zend/zend_language_scanner.c"
 yy173:
                YYDEBUG(173, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'R') goto yy174;
+               if (yych != 'r') goto yy151;
+yy174:
+               YYDEBUG(174, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(174, *YYCURSOR);
+               YYDEBUG(175, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1532 "Zend/zend_language_scanner.l"
+#line 1536 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_XOR;
 }
-#line 3190 "Zend/zend_language_scanner.c"
-yy175:
-               YYDEBUG(175, *YYCURSOR);
+#line 3192 "Zend/zend_language_scanner.c"
+yy176:
+               YYDEBUG(176, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(176, *YYCURSOR);
+               YYDEBUG(177, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1524 "Zend/zend_language_scanner.l"
+#line 1528 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_OR;
 }
-#line 3203 "Zend/zend_language_scanner.c"
-yy177:
-               YYDEBUG(177, *YYCURSOR);
-               ++YYCURSOR;
+#line 3205 "Zend/zend_language_scanner.c"
+yy178:
                YYDEBUG(178, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(179, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1512 "Zend/zend_language_scanner.l"
+#line 1516 "Zend/zend_language_scanner.l"
                {
        return T_XOR_EQUAL;
 }
-#line 3213 "Zend/zend_language_scanner.c"
-yy179:
-               YYDEBUG(179, *YYCURSOR);
-               ++YYCURSOR;
+#line 3215 "Zend/zend_language_scanner.c"
+yy180:
                YYDEBUG(180, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(181, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1516 "Zend/zend_language_scanner.l"
+#line 1520 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_OR;
 }
-#line 3223 "Zend/zend_language_scanner.c"
-yy181:
-               YYDEBUG(181, *YYCURSOR);
-               ++YYCURSOR;
+#line 3225 "Zend/zend_language_scanner.c"
+yy182:
                YYDEBUG(182, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(183, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1508 "Zend/zend_language_scanner.l"
+#line 1512 "Zend/zend_language_scanner.l"
                {
        return T_OR_EQUAL;
 }
-#line 3233 "Zend/zend_language_scanner.c"
-yy183:
-               YYDEBUG(183, *YYCURSOR);
-               ++YYCURSOR;
+#line 3235 "Zend/zend_language_scanner.c"
+yy184:
                YYDEBUG(184, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(185, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1520 "Zend/zend_language_scanner.l"
+#line 1524 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_AND;
 }
-#line 3243 "Zend/zend_language_scanner.c"
-yy185:
-               YYDEBUG(185, *YYCURSOR);
-               ++YYCURSOR;
+#line 3245 "Zend/zend_language_scanner.c"
+yy186:
                YYDEBUG(186, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(187, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1504 "Zend/zend_language_scanner.l"
+#line 1508 "Zend/zend_language_scanner.l"
                {
        return T_AND_EQUAL;
 }
-#line 3253 "Zend/zend_language_scanner.c"
-yy187:
-               YYDEBUG(187, *YYCURSOR);
-               ++YYCURSOR;
+#line 3255 "Zend/zend_language_scanner.c"
+yy188:
                YYDEBUG(188, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(189, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1492 "Zend/zend_language_scanner.l"
+#line 1496 "Zend/zend_language_scanner.l"
                {
        return T_MOD_EQUAL;
 }
-#line 3263 "Zend/zend_language_scanner.c"
-yy189:
-               YYDEBUG(189, *YYCURSOR);
-               yyaccept = 4;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == '*') goto yy194;
+#line 3265 "Zend/zend_language_scanner.c"
 yy190:
                YYDEBUG(190, *YYCURSOR);
+               yyaccept = 4;
+               yych = *(YYMARKER = ++YYCURSOR);
+               if (yych == '*') goto yy195;
+yy191:
+               YYDEBUG(191, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1889 "Zend/zend_language_scanner.l"
+#line 1893 "Zend/zend_language_scanner.l"
                {
        int doc_com;
 
@@ -3301,251 +3303,262 @@ yy190:
 
        return T_COMMENT;
 }
-#line 3305 "Zend/zend_language_scanner.c"
-yy191:
-               YYDEBUG(191, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy140;
+#line 3307 "Zend/zend_language_scanner.c"
 yy192:
                YYDEBUG(192, *YYCURSOR);
-               ++YYCURSOR;
+               yych = *++YYCURSOR;
+               goto yy141;
+yy193:
                YYDEBUG(193, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(194, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1484 "Zend/zend_language_scanner.l"
+#line 1488 "Zend/zend_language_scanner.l"
                {
        return T_DIV_EQUAL;
 }
-#line 3319 "Zend/zend_language_scanner.c"
-yy194:
-               YYDEBUG(194, *YYCURSOR);
+#line 3321 "Zend/zend_language_scanner.c"
+yy195:
+               YYDEBUG(195, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yybm[0+yych] & 64) {
-                       goto yy195;
+                       goto yy196;
                }
-               goto yy157;
-yy195:
-               YYDEBUG(195, *YYCURSOR);
+               goto yy158;
+yy196:
+               YYDEBUG(196, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(196, *YYCURSOR);
+               YYDEBUG(197, *YYCURSOR);
                if (yybm[0+yych] & 64) {
-                       goto yy195;
+                       goto yy196;
                }
-               goto yy190;
-yy197:
-               YYDEBUG(197, *YYCURSOR);
-               ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '=') goto yy201;
+               goto yy191;
+yy198:
                YYDEBUG(198, *YYCURSOR);
+               ++YYCURSOR;
+               if ((yych = *YYCURSOR) == '=') goto yy202;
+               YYDEBUG(199, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1476 "Zend/zend_language_scanner.l"
+#line 1480 "Zend/zend_language_scanner.l"
                {
        return T_POW;
 }
-#line 3347 "Zend/zend_language_scanner.c"
-yy199:
-               YYDEBUG(199, *YYCURSOR);
-               ++YYCURSOR;
+#line 3349 "Zend/zend_language_scanner.c"
+yy200:
                YYDEBUG(200, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(201, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1472 "Zend/zend_language_scanner.l"
+#line 1476 "Zend/zend_language_scanner.l"
                {
        return T_MUL_EQUAL;
 }
-#line 3357 "Zend/zend_language_scanner.c"
-yy201:
-               YYDEBUG(201, *YYCURSOR);
-               ++YYCURSOR;
+#line 3359 "Zend/zend_language_scanner.c"
+yy202:
                YYDEBUG(202, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(203, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1480 "Zend/zend_language_scanner.l"
+#line 1484 "Zend/zend_language_scanner.l"
                {
        return T_POW_EQUAL;
 }
-#line 3367 "Zend/zend_language_scanner.c"
-yy203:
-               YYDEBUG(203, *YYCURSOR);
-               ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '=') goto yy207;
+#line 3369 "Zend/zend_language_scanner.c"
+yy204:
                YYDEBUG(204, *YYCURSOR);
+               ++YYCURSOR;
+               if ((yych = *YYCURSOR) == '=') goto yy208;
+               YYDEBUG(205, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1540 "Zend/zend_language_scanner.l"
+#line 1544 "Zend/zend_language_scanner.l"
                {
        return T_SR;
 }
-#line 3378 "Zend/zend_language_scanner.c"
-yy205:
-               YYDEBUG(205, *YYCURSOR);
-               ++YYCURSOR;
+#line 3380 "Zend/zend_language_scanner.c"
+yy206:
                YYDEBUG(206, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(207, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1460 "Zend/zend_language_scanner.l"
+#line 1464 "Zend/zend_language_scanner.l"
                {
        return T_IS_GREATER_OR_EQUAL;
 }
-#line 3388 "Zend/zend_language_scanner.c"
-yy207:
-               YYDEBUG(207, *YYCURSOR);
-               ++YYCURSOR;
+#line 3390 "Zend/zend_language_scanner.c"
+yy208:
                YYDEBUG(208, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(209, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1500 "Zend/zend_language_scanner.l"
+#line 1504 "Zend/zend_language_scanner.l"
                {
        return T_SR_EQUAL;
 }
-#line 3398 "Zend/zend_language_scanner.c"
-yy209:
-               YYDEBUG(209, *YYCURSOR);
-               yyaccept = 5;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= ';') goto yy210;
-               if (yych <= '<') goto yy217;
-               if (yych <= '=') goto yy215;
+#line 3400 "Zend/zend_language_scanner.c"
 yy210:
                YYDEBUG(210, *YYCURSOR);
+               yyaccept = 5;
+               yych = *(YYMARKER = ++YYCURSOR);
+               if (yych <= ';') goto yy211;
+               if (yych <= '<') goto yy220;
+               if (yych <= '=') goto yy218;
+yy211:
+               YYDEBUG(211, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1536 "Zend/zend_language_scanner.l"
+#line 1540 "Zend/zend_language_scanner.l"
                {
        return T_SL;
 }
-#line 3413 "Zend/zend_language_scanner.c"
-yy211:
-               YYDEBUG(211, *YYCURSOR);
-               ++YYCURSOR;
+#line 3415 "Zend/zend_language_scanner.c"
+yy212:
                YYDEBUG(212, *YYCURSOR);
+               ++YYCURSOR;
+               if ((yych = *YYCURSOR) == '>') goto yy216;
+               YYDEBUG(213, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1456 "Zend/zend_language_scanner.l"
+#line 1460 "Zend/zend_language_scanner.l"
                {
        return T_IS_SMALLER_OR_EQUAL;
 }
-#line 3423 "Zend/zend_language_scanner.c"
-yy213:
-               YYDEBUG(213, *YYCURSOR);
-               ++YYCURSOR;
+#line 3426 "Zend/zend_language_scanner.c"
 yy214:
                YYDEBUG(214, *YYCURSOR);
+               ++YYCURSOR;
+yy215:
+               YYDEBUG(215, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1452 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_EQUAL;
 }
-#line 3434 "Zend/zend_language_scanner.c"
-yy215:
-               YYDEBUG(215, *YYCURSOR);
-               ++YYCURSOR;
+#line 3437 "Zend/zend_language_scanner.c"
+yy216:
                YYDEBUG(216, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(217, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1496 "Zend/zend_language_scanner.l"
+#line 1456 "Zend/zend_language_scanner.l"
+               {
+       return T_SPACESHIP;
+}
+#line 3447 "Zend/zend_language_scanner.c"
+yy218:
+               YYDEBUG(218, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(219, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 1500 "Zend/zend_language_scanner.l"
                {
        return T_SL_EQUAL;
 }
-#line 3444 "Zend/zend_language_scanner.c"
-yy217:
-               YYDEBUG(217, *YYCURSOR);
+#line 3457 "Zend/zend_language_scanner.c"
+yy220:
+               YYDEBUG(220, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(2);
                yych = *YYCURSOR;
-               YYDEBUG(218, *YYCURSOR);
+               YYDEBUG(221, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy217;
+                       goto yy220;
                }
                if (yych <= 'Z') {
                        if (yych <= '&') {
-                               if (yych == '"') goto yy222;
-                               goto yy157;
+                               if (yych == '"') goto yy225;
+                               goto yy158;
                        } else {
-                               if (yych <= '\'') goto yy221;
-                               if (yych <= '@') goto yy157;
+                               if (yych <= '\'') goto yy224;
+                               if (yych <= '@') goto yy158;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych != '_') goto yy157;
+                               if (yych != '_') goto yy158;
                        } else {
-                               if (yych <= 'z') goto yy219;
-                               if (yych <= '~') goto yy157;
+                               if (yych <= 'z') goto yy222;
+                               if (yych <= '~') goto yy158;
                        }
                }
-yy219:
-               YYDEBUG(219, *YYCURSOR);
+yy222:
+               YYDEBUG(222, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(2);
                yych = *YYCURSOR;
-               YYDEBUG(220, *YYCURSOR);
+               YYDEBUG(223, *YYCURSOR);
                if (yych <= '@') {
                        if (yych <= '\f') {
-                               if (yych == '\n') goto yy226;
-                               goto yy157;
+                               if (yych == '\n') goto yy229;
+                               goto yy158;
                        } else {
-                               if (yych <= '\r') goto yy228;
-                               if (yych <= '/') goto yy157;
-                               if (yych <= '9') goto yy219;
-                               goto yy157;
+                               if (yych <= '\r') goto yy231;
+                               if (yych <= '/') goto yy158;
+                               if (yych <= '9') goto yy222;
+                               goto yy158;
                        }
                } else {
                        if (yych <= '_') {
-                               if (yych <= 'Z') goto yy219;
-                               if (yych <= '^') goto yy157;
-                               goto yy219;
+                               if (yych <= 'Z') goto yy222;
+                               if (yych <= '^') goto yy158;
+                               goto yy222;
                        } else {
-                               if (yych <= '`') goto yy157;
-                               if (yych <= 'z') goto yy219;
-                               if (yych <= '~') goto yy157;
-                               goto yy219;
+                               if (yych <= '`') goto yy158;
+                               if (yych <= 'z') goto yy222;
+                               if (yych <= '~') goto yy158;
+                               goto yy222;
                        }
                }
-yy221:
-               YYDEBUG(221, *YYCURSOR);
+yy224:
+               YYDEBUG(224, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '\'') goto yy157;
-               if (yych <= '/') goto yy230;
-               if (yych <= '9') goto yy157;
-               goto yy230;
-yy222:
-               YYDEBUG(222, *YYCURSOR);
+               if (yych == '\'') goto yy158;
+               if (yych <= '/') goto yy233;
+               if (yych <= '9') goto yy158;
+               goto yy233;
+yy225:
+               YYDEBUG(225, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '"') goto yy157;
-               if (yych <= '/') goto yy224;
-               if (yych <= '9') goto yy157;
-               goto yy224;
-yy223:
-               YYDEBUG(223, *YYCURSOR);
+               if (yych == '"') goto yy158;
+               if (yych <= '/') goto yy227;
+               if (yych <= '9') goto yy158;
+               goto yy227;
+yy226:
+               YYDEBUG(226, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(3);
                yych = *YYCURSOR;
-yy224:
-               YYDEBUG(224, *YYCURSOR);
+yy227:
+               YYDEBUG(227, *YYCURSOR);
                if (yych <= 'Z') {
                        if (yych <= '/') {
-                               if (yych != '"') goto yy157;
+                               if (yych != '"') goto yy158;
                        } else {
-                               if (yych <= '9') goto yy223;
-                               if (yych <= '@') goto yy157;
-                               goto yy223;
+                               if (yych <= '9') goto yy226;
+                               if (yych <= '@') goto yy158;
+                               goto yy226;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych == '_') goto yy223;
-                               goto yy157;
+                               if (yych == '_') goto yy226;
+                               goto yy158;
                        } else {
-                               if (yych <= 'z') goto yy223;
-                               if (yych <= '~') goto yy157;
-                               goto yy223;
+                               if (yych <= 'z') goto yy226;
+                               if (yych <= '~') goto yy158;
+                               goto yy226;
                        }
                }
-yy225:
-               YYDEBUG(225, *YYCURSOR);
+yy228:
+               YYDEBUG(228, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '\n') goto yy226;
-               if (yych == '\r') goto yy228;
-               goto yy157;
-yy226:
-               YYDEBUG(226, *YYCURSOR);
+               if (yych == '\n') goto yy229;
+               if (yych == '\r') goto yy231;
+               goto yy158;
+yy229:
+               YYDEBUG(229, *YYCURSOR);
                ++YYCURSOR;
-yy227:
-               YYDEBUG(227, *YYCURSOR);
+yy230:
+               YYDEBUG(230, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2039 "Zend/zend_language_scanner.l"
+#line 2043 "Zend/zend_language_scanner.l"
                {
        char *s;
        int bprefix = (yytext[0] != '<') ? 1 : 0;
@@ -3592,3272 +3605,3272 @@ yy227:
 
        return T_START_HEREDOC;
 }
-#line 3596 "Zend/zend_language_scanner.c"
-yy228:
-               YYDEBUG(228, *YYCURSOR);
+#line 3609 "Zend/zend_language_scanner.c"
+yy231:
+               YYDEBUG(231, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '\n') goto yy226;
-               goto yy227;
-yy229:
-               YYDEBUG(229, *YYCURSOR);
+               if (yych == '\n') goto yy229;
+               goto yy230;
+yy232:
+               YYDEBUG(232, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(3);
                yych = *YYCURSOR;
-yy230:
-               YYDEBUG(230, *YYCURSOR);
+yy233:
+               YYDEBUG(233, *YYCURSOR);
                if (yych <= 'Z') {
                        if (yych <= '/') {
-                               if (yych == '\'') goto yy225;
-                               goto yy157;
+                               if (yych == '\'') goto yy228;
+                               goto yy158;
                        } else {
-                               if (yych <= '9') goto yy229;
-                               if (yych <= '@') goto yy157;
-                               goto yy229;
+                               if (yych <= '9') goto yy232;
+                               if (yych <= '@') goto yy158;
+                               goto yy232;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych == '_') goto yy229;
-                               goto yy157;
+                               if (yych == '_') goto yy232;
+                               goto yy158;
                        } else {
-                               if (yych <= 'z') goto yy229;
-                               if (yych <= '~') goto yy157;
-                               goto yy229;
+                               if (yych <= 'z') goto yy232;
+                               if (yych <= '~') goto yy158;
+                               goto yy232;
                        }
                }
-yy231:
-               YYDEBUG(231, *YYCURSOR);
+yy234:
+               YYDEBUG(234, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '=') goto yy214;
-               YYDEBUG(232, *YYCURSOR);
+               if (yych != '=') goto yy215;
+               YYDEBUG(235, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(233, *YYCURSOR);
+               YYDEBUG(236, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1444 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_IDENTICAL;
 }
-#line 3640 "Zend/zend_language_scanner.c"
-yy234:
-               YYDEBUG(234, *YYCURSOR);
+#line 3653 "Zend/zend_language_scanner.c"
+yy237:
+               YYDEBUG(237, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(235, *YYCURSOR);
+               YYDEBUG(238, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1464 "Zend/zend_language_scanner.l"
+#line 1468 "Zend/zend_language_scanner.l"
                {
        return T_PLUS_EQUAL;
 }
-#line 3650 "Zend/zend_language_scanner.c"
-yy236:
-               YYDEBUG(236, *YYCURSOR);
+#line 3663 "Zend/zend_language_scanner.c"
+yy239:
+               YYDEBUG(239, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(237, *YYCURSOR);
+               YYDEBUG(240, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1432 "Zend/zend_language_scanner.l"
                {
        return T_INC;
 }
-#line 3660 "Zend/zend_language_scanner.c"
-yy238:
-               YYDEBUG(238, *YYCURSOR);
+#line 3673 "Zend/zend_language_scanner.c"
+yy241:
+               YYDEBUG(241, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy239;
-               if (yych != 's') goto yy150;
-yy239:
-               YYDEBUG(239, *YYCURSOR);
+               if (yych == 'S') goto yy242;
+               if (yych != 's') goto yy151;
+yy242:
+               YYDEBUG(242, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy240;
-               if (yych != 't') goto yy150;
-yy240:
-               YYDEBUG(240, *YYCURSOR);
+               if (yych == 'T') goto yy243;
+               if (yych != 't') goto yy151;
+yy243:
+               YYDEBUG(243, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(241, *YYCURSOR);
+               YYDEBUG(244, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1420 "Zend/zend_language_scanner.l"
                {
        return T_LIST;
 }
-#line 3683 "Zend/zend_language_scanner.c"
-yy242:
-               YYDEBUG(242, *YYCURSOR);
+#line 3696 "Zend/zend_language_scanner.c"
+yy245:
+               YYDEBUG(245, *YYCURSOR);
                ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '=') goto yy246;
-               YYDEBUG(243, *YYCURSOR);
+               if ((yych = *YYCURSOR) == '=') goto yy249;
+               YYDEBUG(246, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1448 "Zend/zend_language_scanner.l"
                {
        return T_IS_EQUAL;
 }
-#line 3694 "Zend/zend_language_scanner.c"
-yy244:
-               YYDEBUG(244, *YYCURSOR);
+#line 3707 "Zend/zend_language_scanner.c"
+yy247:
+               YYDEBUG(247, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(245, *YYCURSOR);
+               YYDEBUG(248, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1416 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_ARROW;
 }
-#line 3704 "Zend/zend_language_scanner.c"
-yy246:
-               YYDEBUG(246, *YYCURSOR);
+#line 3717 "Zend/zend_language_scanner.c"
+yy249:
+               YYDEBUG(249, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(247, *YYCURSOR);
+               YYDEBUG(250, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1440 "Zend/zend_language_scanner.l"
                {
        return T_IS_IDENTICAL;
 }
-#line 3714 "Zend/zend_language_scanner.c"
-yy248:
-               YYDEBUG(248, *YYCURSOR);
+#line 3727 "Zend/zend_language_scanner.c"
+yy251:
+               YYDEBUG(251, *YYCURSOR);
                yych = *++YYCURSOR;
                YYDEBUG(-1, yych);
                switch (yych) {
                case 'C':
-               case 'c':       goto yy250;
+               case 'c':       goto yy253;
                case 'D':
-               case 'd':       goto yy255;
+               case 'd':       goto yy258;
                case 'F':
-               case 'f':       goto yy252;
+               case 'f':       goto yy255;
                case 'H':
-               case 'h':       goto yy249;
+               case 'h':       goto yy252;
                case 'L':
-               case 'l':       goto yy254;
+               case 'l':       goto yy257;
                case 'M':
-               case 'm':       goto yy253;
+               case 'm':       goto yy256;
                case 'N':
-               case 'n':       goto yy256;
+               case 'n':       goto yy259;
                case 'T':
-               case 't':       goto yy251;
-               default:        goto yy150;
+               case 't':       goto yy254;
+               default:        goto yy151;
                }
-yy249:
-               YYDEBUG(249, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy317;
-               if (yych == 'a') goto yy317;
-               goto yy150;
-yy250:
-               YYDEBUG(250, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy310;
-               if (yych == 'l') goto yy310;
-               goto yy150;
-yy251:
-               YYDEBUG(251, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy303;
-               if (yych == 'r') goto yy303;
-               goto yy150;
 yy252:
                YYDEBUG(252, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= 'U') {
-                       if (yych == 'I') goto yy287;
-                       if (yych <= 'T') goto yy150;
-                       goto yy288;
-               } else {
-                       if (yych <= 'i') {
-                               if (yych <= 'h') goto yy150;
-                               goto yy287;
-                       } else {
-                               if (yych == 'u') goto yy288;
-                               goto yy150;
-                       }
-               }
+               if (yych == 'A') goto yy320;
+               if (yych == 'a') goto yy320;
+               goto yy151;
 yy253:
                YYDEBUG(253, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy279;
-               if (yych == 'e') goto yy279;
-               goto yy150;
+               if (yych == 'L') goto yy313;
+               if (yych == 'l') goto yy313;
+               goto yy151;
 yy254:
                YYDEBUG(254, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy273;
-               if (yych == 'i') goto yy273;
-               goto yy150;
+               if (yych == 'R') goto yy306;
+               if (yych == 'r') goto yy306;
+               goto yy151;
 yy255:
                YYDEBUG(255, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy268;
-               if (yych == 'i') goto yy268;
-               goto yy150;
+               if (yych <= 'U') {
+                       if (yych == 'I') goto yy290;
+                       if (yych <= 'T') goto yy151;
+                       goto yy291;
+               } else {
+                       if (yych <= 'i') {
+                               if (yych <= 'h') goto yy151;
+                               goto yy290;
+                       } else {
+                               if (yych == 'u') goto yy291;
+                               goto yy151;
+                       }
+               }
 yy256:
                YYDEBUG(256, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy257;
-               if (yych != 'a') goto yy150;
+               if (yych == 'E') goto yy282;
+               if (yych == 'e') goto yy282;
+               goto yy151;
 yy257:
                YYDEBUG(257, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'M') goto yy258;
-               if (yych != 'm') goto yy150;
+               if (yych == 'I') goto yy276;
+               if (yych == 'i') goto yy276;
+               goto yy151;
 yy258:
                YYDEBUG(258, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy259;
-               if (yych != 'e') goto yy150;
+               if (yych == 'I') goto yy271;
+               if (yych == 'i') goto yy271;
+               goto yy151;
 yy259:
                YYDEBUG(259, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy260;
-               if (yych != 's') goto yy150;
+               if (yych == 'A') goto yy260;
+               if (yych != 'a') goto yy151;
 yy260:
                YYDEBUG(260, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'P') goto yy261;
-               if (yych != 'p') goto yy150;
+               if (yych == 'M') goto yy261;
+               if (yych != 'm') goto yy151;
 yy261:
                YYDEBUG(261, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy262;
-               if (yych != 'a') goto yy150;
+               if (yych == 'E') goto yy262;
+               if (yych != 'e') goto yy151;
 yy262:
                YYDEBUG(262, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy263;
-               if (yych != 'c') goto yy150;
+               if (yych == 'S') goto yy263;
+               if (yych != 's') goto yy151;
 yy263:
                YYDEBUG(263, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy264;
-               if (yych != 'e') goto yy150;
+               if (yych == 'P') goto yy264;
+               if (yych != 'p') goto yy151;
 yy264:
                YYDEBUG(264, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy150;
+               if (yych == 'A') goto yy265;
+               if (yych != 'a') goto yy151;
+yy265:
                YYDEBUG(265, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy150;
+               if (yych == 'C') goto yy266;
+               if (yych != 'c') goto yy151;
+yy266:
                YYDEBUG(266, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy267;
+               if (yych != 'e') goto yy151;
+yy267:
+               YYDEBUG(267, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy151;
+               YYDEBUG(268, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy151;
+               YYDEBUG(269, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(267, *YYCURSOR);
+               YYDEBUG(270, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1739 "Zend/zend_language_scanner.l"
+#line 1743 "Zend/zend_language_scanner.l"
                {
        return T_NS_C;
 }
-#line 3848 "Zend/zend_language_scanner.c"
-yy268:
-               YYDEBUG(268, *YYCURSOR);
+#line 3861 "Zend/zend_language_scanner.c"
+yy271:
+               YYDEBUG(271, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy269;
-               if (yych != 'r') goto yy150;
-yy269:
-               YYDEBUG(269, *YYCURSOR);
+               if (yych == 'R') goto yy272;
+               if (yych != 'r') goto yy151;
+yy272:
+               YYDEBUG(272, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy150;
-               YYDEBUG(270, *YYCURSOR);
+               if (yych != '_') goto yy151;
+               YYDEBUG(273, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy150;
-               YYDEBUG(271, *YYCURSOR);
+               if (yych != '_') goto yy151;
+               YYDEBUG(274, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(272, *YYCURSOR);
+               YYDEBUG(275, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1735 "Zend/zend_language_scanner.l"
+#line 1739 "Zend/zend_language_scanner.l"
                {
        return T_DIR;
 }
-#line 3872 "Zend/zend_language_scanner.c"
-yy273:
-               YYDEBUG(273, *YYCURSOR);
+#line 3885 "Zend/zend_language_scanner.c"
+yy276:
+               YYDEBUG(276, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy274;
-               if (yych != 'n') goto yy150;
-yy274:
-               YYDEBUG(274, *YYCURSOR);
+               if (yych == 'N') goto yy277;
+               if (yych != 'n') goto yy151;
+yy277:
+               YYDEBUG(277, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy275;
-               if (yych != 'e') goto yy150;
-yy275:
-               YYDEBUG(275, *YYCURSOR);
+               if (yych == 'E') goto yy278;
+               if (yych != 'e') goto yy151;
+yy278:
+               YYDEBUG(278, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy150;
-               YYDEBUG(276, *YYCURSOR);
+               if (yych != '_') goto yy151;
+               YYDEBUG(279, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy150;
-               YYDEBUG(277, *YYCURSOR);
+               if (yych != '_') goto yy151;
+               YYDEBUG(280, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(278, *YYCURSOR);
+               YYDEBUG(281, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1727 "Zend/zend_language_scanner.l"
+#line 1731 "Zend/zend_language_scanner.l"
                {
        return T_LINE;
 }
-#line 3901 "Zend/zend_language_scanner.c"
-yy279:
-               YYDEBUG(279, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy280;
-               if (yych != 't') goto yy150;
-yy280:
-               YYDEBUG(280, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy281;
-               if (yych != 'h') goto yy150;
-yy281:
-               YYDEBUG(281, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy282;
-               if (yych != 'o') goto yy150;
+#line 3914 "Zend/zend_language_scanner.c"
 yy282:
                YYDEBUG(282, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy283;
-               if (yych != 'd') goto yy150;
+               if (yych == 'T') goto yy283;
+               if (yych != 't') goto yy151;
 yy283:
                YYDEBUG(283, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy150;
+               if (yych == 'H') goto yy284;
+               if (yych != 'h') goto yy151;
+yy284:
                YYDEBUG(284, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy150;
+               if (yych == 'O') goto yy285;
+               if (yych != 'o') goto yy151;
+yy285:
                YYDEBUG(285, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'D') goto yy286;
+               if (yych != 'd') goto yy151;
+yy286:
+               YYDEBUG(286, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy151;
+               YYDEBUG(287, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy151;
+               YYDEBUG(288, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(286, *YYCURSOR);
+               YYDEBUG(289, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1723 "Zend/zend_language_scanner.l"
+#line 1727 "Zend/zend_language_scanner.l"
                {
        return T_METHOD_C;
 }
-#line 3940 "Zend/zend_language_scanner.c"
-yy287:
-               YYDEBUG(287, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy298;
-               if (yych == 'l') goto yy298;
-               goto yy150;
-yy288:
-               YYDEBUG(288, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy289;
-               if (yych != 'n') goto yy150;
-yy289:
-               YYDEBUG(289, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy290;
-               if (yych != 'c') goto yy150;
+#line 3953 "Zend/zend_language_scanner.c"
 yy290:
                YYDEBUG(290, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy291;
-               if (yych != 't') goto yy150;
+               if (yych == 'L') goto yy301;
+               if (yych == 'l') goto yy301;
+               goto yy151;
 yy291:
                YYDEBUG(291, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy292;
-               if (yych != 'i') goto yy150;
+               if (yych == 'N') goto yy292;
+               if (yych != 'n') goto yy151;
 yy292:
                YYDEBUG(292, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy293;
-               if (yych != 'o') goto yy150;
+               if (yych == 'C') goto yy293;
+               if (yych != 'c') goto yy151;
 yy293:
                YYDEBUG(293, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy294;
-               if (yych != 'n') goto yy150;
+               if (yych == 'T') goto yy294;
+               if (yych != 't') goto yy151;
 yy294:
                YYDEBUG(294, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy150;
+               if (yych == 'I') goto yy295;
+               if (yych != 'i') goto yy151;
+yy295:
                YYDEBUG(295, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy150;
+               if (yych == 'O') goto yy296;
+               if (yych != 'o') goto yy151;
+yy296:
                YYDEBUG(296, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'N') goto yy297;
+               if (yych != 'n') goto yy151;
+yy297:
+               YYDEBUG(297, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy151;
+               YYDEBUG(298, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy151;
+               YYDEBUG(299, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(297, *YYCURSOR);
+               YYDEBUG(300, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1719 "Zend/zend_language_scanner.l"
+#line 1723 "Zend/zend_language_scanner.l"
                {
        return T_FUNC_C;
 }
-#line 3995 "Zend/zend_language_scanner.c"
-yy298:
-               YYDEBUG(298, *YYCURSOR);
+#line 4008 "Zend/zend_language_scanner.c"
+yy301:
+               YYDEBUG(301, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy299;
-               if (yych != 'e') goto yy150;
-yy299:
-               YYDEBUG(299, *YYCURSOR);
+               if (yych == 'E') goto yy302;
+               if (yych != 'e') goto yy151;
+yy302:
+               YYDEBUG(302, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy150;
-               YYDEBUG(300, *YYCURSOR);
+               if (yych != '_') goto yy151;
+               YYDEBUG(303, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy150;
-               YYDEBUG(301, *YYCURSOR);
+               if (yych != '_') goto yy151;
+               YYDEBUG(304, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(302, *YYCURSOR);
+               YYDEBUG(305, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1731 "Zend/zend_language_scanner.l"
+#line 1735 "Zend/zend_language_scanner.l"
                {
        return T_FILE;
 }
-#line 4019 "Zend/zend_language_scanner.c"
-yy303:
-               YYDEBUG(303, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy304;
-               if (yych != 'a') goto yy150;
-yy304:
-               YYDEBUG(304, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy305;
-               if (yych != 'i') goto yy150;
-yy305:
-               YYDEBUG(305, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy306;
-               if (yych != 't') goto yy150;
+#line 4032 "Zend/zend_language_scanner.c"
 yy306:
                YYDEBUG(306, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy150;
+               if (yych == 'A') goto yy307;
+               if (yych != 'a') goto yy151;
+yy307:
                YYDEBUG(307, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy150;
+               if (yych == 'I') goto yy308;
+               if (yych != 'i') goto yy151;
+yy308:
                YYDEBUG(308, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
-               }
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy309;
+               if (yych != 't') goto yy151;
+yy309:
                YYDEBUG(309, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1715 "Zend/zend_language_scanner.l"
-               {
-       return T_TRAIT_C;
-}
-#line 4053 "Zend/zend_language_scanner.c"
-yy310:
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy151;
                YYDEBUG(310, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy311;
-               if (yych != 'a') goto yy150;
-yy311:
+               if (yych != '_') goto yy151;
                YYDEBUG(311, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy312;
-               if (yych != 's') goto yy150;
-yy312:
+               ++YYCURSOR;
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy150;
+               }
                YYDEBUG(312, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy313;
-               if (yych != 's') goto yy150;
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 1719 "Zend/zend_language_scanner.l"
+               {
+       return T_TRAIT_C;
+}
+#line 4066 "Zend/zend_language_scanner.c"
 yy313:
                YYDEBUG(313, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy150;
+               if (yych == 'A') goto yy314;
+               if (yych != 'a') goto yy151;
+yy314:
                YYDEBUG(314, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy150;
+               if (yych == 'S') goto yy315;
+               if (yych != 's') goto yy151;
+yy315:
                YYDEBUG(315, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'S') goto yy316;
+               if (yych != 's') goto yy151;
+yy316:
+               YYDEBUG(316, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy151;
+               YYDEBUG(317, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy151;
+               YYDEBUG(318, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(316, *YYCURSOR);
+               YYDEBUG(319, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1711 "Zend/zend_language_scanner.l"
+#line 1715 "Zend/zend_language_scanner.l"
                {
        return T_CLASS_C;
 }
-#line 4087 "Zend/zend_language_scanner.c"
-yy317:
-               YYDEBUG(317, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy318;
-               if (yych != 'l') goto yy150;
-yy318:
-               YYDEBUG(318, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy319;
-               if (yych != 't') goto yy150;
-yy319:
-               YYDEBUG(319, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '_') goto yy150;
+#line 4100 "Zend/zend_language_scanner.c"
+yy320:
                YYDEBUG(320, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy321;
-               if (yych != 'c') goto yy150;
+               if (yych == 'L') goto yy321;
+               if (yych != 'l') goto yy151;
 yy321:
                YYDEBUG(321, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy322;
-               if (yych != 'o') goto yy150;
+               if (yych == 'T') goto yy322;
+               if (yych != 't') goto yy151;
 yy322:
                YYDEBUG(322, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'M') goto yy323;
-               if (yych != 'm') goto yy150;
-yy323:
+               if (yych != '_') goto yy151;
                YYDEBUG(323, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'P') goto yy324;
-               if (yych != 'p') goto yy150;
+               if (yych == 'C') goto yy324;
+               if (yych != 'c') goto yy151;
 yy324:
                YYDEBUG(324, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy325;
-               if (yych != 'i') goto yy150;
+               if (yych == 'O') goto yy325;
+               if (yych != 'o') goto yy151;
 yy325:
                YYDEBUG(325, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy326;
-               if (yych != 'l') goto yy150;
+               if (yych == 'M') goto yy326;
+               if (yych != 'm') goto yy151;
 yy326:
                YYDEBUG(326, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy327;
-               if (yych != 'e') goto yy150;
+               if (yych == 'P') goto yy327;
+               if (yych != 'p') goto yy151;
 yy327:
                YYDEBUG(327, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy328;
-               if (yych != 'r') goto yy150;
+               if (yych == 'I') goto yy328;
+               if (yych != 'i') goto yy151;
 yy328:
                YYDEBUG(328, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'L') goto yy329;
+               if (yych != 'l') goto yy151;
+yy329:
+               YYDEBUG(329, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy330;
+               if (yych != 'e') goto yy151;
+yy330:
+               YYDEBUG(330, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'R') goto yy331;
+               if (yych != 'r') goto yy151;
+yy331:
+               YYDEBUG(331, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(329, *YYCURSOR);
+               YYDEBUG(332, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1384 "Zend/zend_language_scanner.l"
                {
        return T_HALT_COMPILER;
 }
-#line 4153 "Zend/zend_language_scanner.c"
-yy330:
-               YYDEBUG(330, *YYCURSOR);
+#line 4166 "Zend/zend_language_scanner.c"
+yy333:
+               YYDEBUG(333, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy334;
-               if (yych == 's') goto yy334;
-               goto yy150;
-yy331:
-               YYDEBUG(331, *YYCURSOR);
+               if (yych == 'S') goto yy337;
+               if (yych == 's') goto yy337;
+               goto yy151;
+yy334:
+               YYDEBUG(334, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy332;
-               if (yych != 'e') goto yy150;
-yy332:
-               YYDEBUG(332, *YYCURSOR);
+               if (yych == 'E') goto yy335;
+               if (yych != 'e') goto yy151;
+yy335:
+               YYDEBUG(335, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(333, *YYCURSOR);
+               YYDEBUG(336, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1364 "Zend/zend_language_scanner.l"
                {
        return T_USE;
 }
-#line 4177 "Zend/zend_language_scanner.c"
-yy334:
-               YYDEBUG(334, *YYCURSOR);
+#line 4190 "Zend/zend_language_scanner.c"
+yy337:
+               YYDEBUG(337, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy335;
-               if (yych != 'e') goto yy150;
-yy335:
-               YYDEBUG(335, *YYCURSOR);
+               if (yych == 'E') goto yy338;
+               if (yych != 'e') goto yy151;
+yy338:
+               YYDEBUG(338, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy336;
-               if (yych != 't') goto yy150;
-yy336:
-               YYDEBUG(336, *YYCURSOR);
+               if (yych == 'T') goto yy339;
+               if (yych != 't') goto yy151;
+yy339:
+               YYDEBUG(339, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(337, *YYCURSOR);
+               YYDEBUG(340, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1412 "Zend/zend_language_scanner.l"
                {
        return T_UNSET;
 }
-#line 4200 "Zend/zend_language_scanner.c"
-yy338:
-               YYDEBUG(338, *YYCURSOR);
+#line 4213 "Zend/zend_language_scanner.c"
+yy341:
+               YYDEBUG(341, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(7);
                yych = *YYCURSOR;
-yy339:
-               YYDEBUG(339, *YYCURSOR);
+yy342:
+               YYDEBUG(342, *YYCURSOR);
                if (yych <= 'S') {
                        if (yych <= 'D') {
                                if (yych <= ' ') {
-                                       if (yych == '\t') goto yy338;
-                                       if (yych <= 0x1F) goto yy157;
-                                       goto yy338;
+                                       if (yych == '\t') goto yy341;
+                                       if (yych <= 0x1F) goto yy158;
+                                       goto yy341;
                                } else {
                                        if (yych <= 'A') {
-                                               if (yych <= '@') goto yy157;
-                                               goto yy343;
-                                       } else {
-                                               if (yych <= 'B') goto yy341;
-                                               if (yych <= 'C') goto yy157;
+                                               if (yych <= '@') goto yy158;
                                                goto yy346;
+                                       } else {
+                                               if (yych <= 'B') goto yy344;
+                                               if (yych <= 'C') goto yy158;
+                                               goto yy349;
                                        }
                                }
                        } else {
                                if (yych <= 'I') {
-                                       if (yych == 'F') goto yy347;
-                                       if (yych <= 'H') goto yy157;
-                                       goto yy348;
+                                       if (yych == 'F') goto yy350;
+                                       if (yych <= 'H') goto yy158;
+                                       goto yy351;
                                } else {
                                        if (yych <= 'O') {
-                                               if (yych <= 'N') goto yy157;
-                                               goto yy342;
+                                               if (yych <= 'N') goto yy158;
+                                               goto yy345;
                                        } else {
-                                               if (yych <= 'Q') goto yy157;
-                                               if (yych <= 'R') goto yy345;
-                                               goto yy344;
+                                               if (yych <= 'Q') goto yy158;
+                                               if (yych <= 'R') goto yy348;
+                                               goto yy347;
                                        }
                                }
                        }
                } else {
                        if (yych <= 'f') {
                                if (yych <= 'a') {
-                                       if (yych == 'U') goto yy340;
-                                       if (yych <= '`') goto yy157;
-                                       goto yy343;
+                                       if (yych == 'U') goto yy343;
+                                       if (yych <= '`') goto yy158;
+                                       goto yy346;
                                } else {
                                        if (yych <= 'c') {
-                                               if (yych <= 'b') goto yy341;
-                                               goto yy157;
+                                               if (yych <= 'b') goto yy344;
+                                               goto yy158;
                                        } else {
-                                               if (yych <= 'd') goto yy346;
-                                               if (yych <= 'e') goto yy157;
-                                               goto yy347;
+                                               if (yych <= 'd') goto yy349;
+                                               if (yych <= 'e') goto yy158;
+                                               goto yy350;
                                        }
                                }
                        } else {
                                if (yych <= 'q') {
                                        if (yych <= 'i') {
-                                               if (yych <= 'h') goto yy157;
-                                               goto yy348;
+                                               if (yych <= 'h') goto yy158;
+                                               goto yy351;
                                        } else {
-                                               if (yych == 'o') goto yy342;
-                                               goto yy157;
+                                               if (yych == 'o') goto yy345;
+                                               goto yy158;
                                        }
                                } else {
                                        if (yych <= 's') {
-                                               if (yych <= 'r') goto yy345;
-                                               goto yy344;
+                                               if (yych <= 'r') goto yy348;
+                                               goto yy347;
                                        } else {
-                                               if (yych != 'u') goto yy157;
+                                               if (yych != 'u') goto yy158;
                                        }
                                }
                        }
                }
-yy340:
-               YYDEBUG(340, *YYCURSOR);
+yy343:
+               YYDEBUG(343, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy407;
-               if (yych == 'n') goto yy407;
-               goto yy157;
-yy341:
-               YYDEBUG(341, *YYCURSOR);
+               if (yych == 'N') goto yy410;
+               if (yych == 'n') goto yy410;
+               goto yy158;
+yy344:
+               YYDEBUG(344, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'O') {
-                       if (yych == 'I') goto yy394;
-                       if (yych <= 'N') goto yy157;
-                       goto yy395;
+                       if (yych == 'I') goto yy397;
+                       if (yych <= 'N') goto yy158;
+                       goto yy398;
                } else {
                        if (yych <= 'i') {
-                               if (yych <= 'h') goto yy157;
-                               goto yy394;
+                               if (yych <= 'h') goto yy158;
+                               goto yy397;
                        } else {
-                               if (yych == 'o') goto yy395;
-                               goto yy157;
+                               if (yych == 'o') goto yy398;
+                               goto yy158;
                        }
                }
-yy342:
-               YYDEBUG(342, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'B') goto yy386;
-               if (yych == 'b') goto yy386;
-               goto yy157;
-yy343:
-               YYDEBUG(343, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy379;
-               if (yych == 'r') goto yy379;
-               goto yy157;
-yy344:
-               YYDEBUG(344, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy371;
-               if (yych == 't') goto yy371;
-               goto yy157;
 yy345:
                YYDEBUG(345, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy369;
-               if (yych == 'e') goto yy369;
-               goto yy157;
+               if (yych == 'B') goto yy389;
+               if (yych == 'b') goto yy389;
+               goto yy158;
 yy346:
                YYDEBUG(346, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy365;
-               if (yych == 'o') goto yy365;
-               goto yy157;
+               if (yych == 'R') goto yy382;
+               if (yych == 'r') goto yy382;
+               goto yy158;
 yy347:
                YYDEBUG(347, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy358;
-               if (yych == 'l') goto yy358;
-               goto yy157;
+               if (yych == 'T') goto yy374;
+               if (yych == 't') goto yy374;
+               goto yy158;
 yy348:
                YYDEBUG(348, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy349;
-               if (yych != 'n') goto yy157;
+               if (yych == 'E') goto yy372;
+               if (yych == 'e') goto yy372;
+               goto yy158;
 yy349:
                YYDEBUG(349, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy350;
-               if (yych != 't') goto yy157;
+               if (yych == 'O') goto yy368;
+               if (yych == 'o') goto yy368;
+               goto yy158;
 yy350:
                YYDEBUG(350, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy351;
-               if (yych != 'e') goto yy353;
+               if (yych == 'L') goto yy361;
+               if (yych == 'l') goto yy361;
+               goto yy158;
 yy351:
                YYDEBUG(351, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'G') goto yy356;
-               if (yych == 'g') goto yy356;
-               goto yy157;
+               if (yych == 'N') goto yy352;
+               if (yych != 'n') goto yy158;
 yy352:
                YYDEBUG(352, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy353;
+               if (yych != 't') goto yy158;
+yy353:
+               YYDEBUG(353, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy354;
+               if (yych != 'e') goto yy356;
+yy354:
+               YYDEBUG(354, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'G') goto yy359;
+               if (yych == 'g') goto yy359;
+               goto yy158;
+yy355:
+               YYDEBUG(355, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy353:
-               YYDEBUG(353, *YYCURSOR);
+yy356:
+               YYDEBUG(356, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy352;
-                       goto yy157;
+                       if (yych == '\t') goto yy355;
+                       goto yy158;
                } else {
-                       if (yych <= ' ') goto yy352;
-                       if (yych != ')') goto yy157;
+                       if (yych <= ' ') goto yy355;
+                       if (yych != ')') goto yy158;
                }
-               YYDEBUG(354, *YYCURSOR);
+               YYDEBUG(357, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(355, *YYCURSOR);
+               YYDEBUG(358, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1312 "Zend/zend_language_scanner.l"
                {
        return T_INT_CAST;
 }
-#line 4376 "Zend/zend_language_scanner.c"
-yy356:
-               YYDEBUG(356, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy357;
-               if (yych != 'e') goto yy157;
-yy357:
-               YYDEBUG(357, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy352;
-               if (yych == 'r') goto yy352;
-               goto yy157;
-yy358:
-               YYDEBUG(358, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy359;
-               if (yych != 'o') goto yy157;
+#line 4389 "Zend/zend_language_scanner.c"
 yy359:
                YYDEBUG(359, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy360;
-               if (yych != 'a') goto yy157;
+               if (yych == 'E') goto yy360;
+               if (yych != 'e') goto yy158;
 yy360:
                YYDEBUG(360, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy361;
-               if (yych != 't') goto yy157;
+               if (yych == 'R') goto yy355;
+               if (yych == 'r') goto yy355;
+               goto yy158;
 yy361:
                YYDEBUG(361, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'O') goto yy362;
+               if (yych != 'o') goto yy158;
+yy362:
+               YYDEBUG(362, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy363;
+               if (yych != 'a') goto yy158;
+yy363:
+               YYDEBUG(363, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy364;
+               if (yych != 't') goto yy158;
+yy364:
+               YYDEBUG(364, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(362, *YYCURSOR);
+               YYDEBUG(365, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy361;
-                       goto yy157;
+                       if (yych == '\t') goto yy364;
+                       goto yy158;
                } else {
-                       if (yych <= ' ') goto yy361;
-                       if (yych != ')') goto yy157;
+                       if (yych <= ' ') goto yy364;
+                       if (yych != ')') goto yy158;
                }
-               YYDEBUG(363, *YYCURSOR);
+               YYDEBUG(366, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(364, *YYCURSOR);
+               YYDEBUG(367, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1316 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_CAST;
 }
-#line 4424 "Zend/zend_language_scanner.c"
-yy365:
-               YYDEBUG(365, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'U') goto yy366;
-               if (yych != 'u') goto yy157;
-yy366:
-               YYDEBUG(366, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'B') goto yy367;
-               if (yych != 'b') goto yy157;
-yy367:
-               YYDEBUG(367, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy368;
-               if (yych != 'l') goto yy157;
+#line 4437 "Zend/zend_language_scanner.c"
 yy368:
                YYDEBUG(368, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy361;
-               if (yych == 'e') goto yy361;
-               goto yy157;
+               if (yych == 'U') goto yy369;
+               if (yych != 'u') goto yy158;
 yy369:
                YYDEBUG(369, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy370;
-               if (yych != 'a') goto yy157;
+               if (yych == 'B') goto yy370;
+               if (yych != 'b') goto yy158;
 yy370:
                YYDEBUG(370, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy361;
-               if (yych == 'l') goto yy361;
-               goto yy157;
+               if (yych == 'L') goto yy371;
+               if (yych != 'l') goto yy158;
 yy371:
                YYDEBUG(371, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy372;
-               if (yych != 'r') goto yy157;
+               if (yych == 'E') goto yy364;
+               if (yych == 'e') goto yy364;
+               goto yy158;
 yy372:
                YYDEBUG(372, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy373;
-               if (yych != 'i') goto yy157;
+               if (yych == 'A') goto yy373;
+               if (yych != 'a') goto yy158;
 yy373:
                YYDEBUG(373, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy374;
-               if (yych != 'n') goto yy157;
+               if (yych == 'L') goto yy364;
+               if (yych == 'l') goto yy364;
+               goto yy158;
 yy374:
                YYDEBUG(374, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'G') goto yy375;
-               if (yych != 'g') goto yy157;
+               if (yych == 'R') goto yy375;
+               if (yych != 'r') goto yy158;
 yy375:
                YYDEBUG(375, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'I') goto yy376;
+               if (yych != 'i') goto yy158;
+yy376:
+               YYDEBUG(376, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'N') goto yy377;
+               if (yych != 'n') goto yy158;
+yy377:
+               YYDEBUG(377, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'G') goto yy378;
+               if (yych != 'g') goto yy158;
+yy378:
+               YYDEBUG(378, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(376, *YYCURSOR);
+               YYDEBUG(379, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy375;
-                       goto yy157;
+                       if (yych == '\t') goto yy378;
+                       goto yy158;
                } else {
-                       if (yych <= ' ') goto yy375;
-                       if (yych != ')') goto yy157;
+                       if (yych <= ' ') goto yy378;
+                       if (yych != ')') goto yy158;
                }
-               YYDEBUG(377, *YYCURSOR);
+               YYDEBUG(380, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(378, *YYCURSOR);
+               YYDEBUG(381, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1320 "Zend/zend_language_scanner.l"
                {
        return T_STRING_CAST;
 }
-#line 4498 "Zend/zend_language_scanner.c"
-yy379:
-               YYDEBUG(379, *YYCURSOR);
+#line 4511 "Zend/zend_language_scanner.c"
+yy382:
+               YYDEBUG(382, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy380;
-               if (yych != 'r') goto yy157;
-yy380:
-               YYDEBUG(380, *YYCURSOR);
+               if (yych == 'R') goto yy383;
+               if (yych != 'r') goto yy158;
+yy383:
+               YYDEBUG(383, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy381;
-               if (yych != 'a') goto yy157;
-yy381:
-               YYDEBUG(381, *YYCURSOR);
+               if (yych == 'A') goto yy384;
+               if (yych != 'a') goto yy158;
+yy384:
+               YYDEBUG(384, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy382;
-               if (yych != 'y') goto yy157;
-yy382:
-               YYDEBUG(382, *YYCURSOR);
+               if (yych == 'Y') goto yy385;
+               if (yych != 'y') goto yy158;
+yy385:
+               YYDEBUG(385, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(383, *YYCURSOR);
+               YYDEBUG(386, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy382;
-                       goto yy157;
+                       if (yych == '\t') goto yy385;
+                       goto yy158;
                } else {
-                       if (yych <= ' ') goto yy382;
-                       if (yych != ')') goto yy157;
+                       if (yych <= ' ') goto yy385;
+                       if (yych != ')') goto yy158;
                }
-               YYDEBUG(384, *YYCURSOR);
+               YYDEBUG(387, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(385, *YYCURSOR);
+               YYDEBUG(388, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1324 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY_CAST;
 }
-#line 4535 "Zend/zend_language_scanner.c"
-yy386:
-               YYDEBUG(386, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'J') goto yy387;
-               if (yych != 'j') goto yy157;
-yy387:
-               YYDEBUG(387, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy388;
-               if (yych != 'e') goto yy157;
-yy388:
-               YYDEBUG(388, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy389;
-               if (yych != 'c') goto yy157;
+#line 4548 "Zend/zend_language_scanner.c"
 yy389:
                YYDEBUG(389, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy390;
-               if (yych != 't') goto yy157;
+               if (yych == 'J') goto yy390;
+               if (yych != 'j') goto yy158;
 yy390:
                YYDEBUG(390, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy391;
+               if (yych != 'e') goto yy158;
+yy391:
+               YYDEBUG(391, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'C') goto yy392;
+               if (yych != 'c') goto yy158;
+yy392:
+               YYDEBUG(392, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy393;
+               if (yych != 't') goto yy158;
+yy393:
+               YYDEBUG(393, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(391, *YYCURSOR);
+               YYDEBUG(394, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy390;
-                       goto yy157;
+                       if (yych == '\t') goto yy393;
+                       goto yy158;
                } else {
-                       if (yych <= ' ') goto yy390;
-                       if (yych != ')') goto yy157;
+                       if (yych <= ' ') goto yy393;
+                       if (yych != ')') goto yy158;
                }
-               YYDEBUG(392, *YYCURSOR);
+               YYDEBUG(395, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(393, *YYCURSOR);
+               YYDEBUG(396, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1328 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_CAST;
 }
-#line 4577 "Zend/zend_language_scanner.c"
-yy394:
-               YYDEBUG(394, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy404;
-               if (yych == 'n') goto yy404;
-               goto yy157;
-yy395:
-               YYDEBUG(395, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy396;
-               if (yych != 'o') goto yy157;
-yy396:
-               YYDEBUG(396, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy397;
-               if (yych != 'l') goto yy157;
+#line 4590 "Zend/zend_language_scanner.c"
 yy397:
                YYDEBUG(397, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy402;
-               if (yych == 'e') goto yy402;
-               goto yy399;
+               if (yych == 'N') goto yy407;
+               if (yych == 'n') goto yy407;
+               goto yy158;
 yy398:
                YYDEBUG(398, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'O') goto yy399;
+               if (yych != 'o') goto yy158;
+yy399:
+               YYDEBUG(399, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'L') goto yy400;
+               if (yych != 'l') goto yy158;
+yy400:
+               YYDEBUG(400, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy405;
+               if (yych == 'e') goto yy405;
+               goto yy402;
+yy401:
+               YYDEBUG(401, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy399:
-               YYDEBUG(399, *YYCURSOR);
+yy402:
+               YYDEBUG(402, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy398;
-                       goto yy157;
+                       if (yych == '\t') goto yy401;
+                       goto yy158;
                } else {
-                       if (yych <= ' ') goto yy398;
-                       if (yych != ')') goto yy157;
+                       if (yych <= ' ') goto yy401;
+                       if (yych != ')') goto yy158;
                }
-               YYDEBUG(400, *YYCURSOR);
+               YYDEBUG(403, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(401, *YYCURSOR);
+               YYDEBUG(404, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1332 "Zend/zend_language_scanner.l"
                {
        return T_BOOL_CAST;
 }
-#line 4622 "Zend/zend_language_scanner.c"
-yy402:
-               YYDEBUG(402, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy403;
-               if (yych != 'a') goto yy157;
-yy403:
-               YYDEBUG(403, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy398;
-               if (yych == 'n') goto yy398;
-               goto yy157;
-yy404:
-               YYDEBUG(404, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy405;
-               if (yych != 'a') goto yy157;
+#line 4635 "Zend/zend_language_scanner.c"
 yy405:
                YYDEBUG(405, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy406;
-               if (yych != 'r') goto yy157;
+               if (yych == 'A') goto yy406;
+               if (yych != 'a') goto yy158;
 yy406:
                YYDEBUG(406, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy375;
-               if (yych == 'y') goto yy375;
-               goto yy157;
+               if (yych == 'N') goto yy401;
+               if (yych == 'n') goto yy401;
+               goto yy158;
 yy407:
                YYDEBUG(407, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy408;
-               if (yych != 's') goto yy157;
+               if (yych == 'A') goto yy408;
+               if (yych != 'a') goto yy158;
 yy408:
                YYDEBUG(408, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy409;
-               if (yych != 'e') goto yy157;
+               if (yych == 'R') goto yy409;
+               if (yych != 'r') goto yy158;
 yy409:
                YYDEBUG(409, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy410;
-               if (yych != 't') goto yy157;
+               if (yych == 'Y') goto yy378;
+               if (yych == 'y') goto yy378;
+               goto yy158;
 yy410:
                YYDEBUG(410, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'S') goto yy411;
+               if (yych != 's') goto yy158;
+yy411:
+               YYDEBUG(411, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy412;
+               if (yych != 'e') goto yy158;
+yy412:
+               YYDEBUG(412, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy413;
+               if (yych != 't') goto yy158;
+yy413:
+               YYDEBUG(413, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(411, *YYCURSOR);
+               YYDEBUG(414, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy410;
-                       goto yy157;
+                       if (yych == '\t') goto yy413;
+                       goto yy158;
                } else {
-                       if (yych <= ' ') goto yy410;
-                       if (yych != ')') goto yy157;
+                       if (yych <= ' ') goto yy413;
+                       if (yych != ')') goto yy158;
                }
-               YYDEBUG(412, *YYCURSOR);
+               YYDEBUG(415, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(413, *YYCURSOR);
+               YYDEBUG(416, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1336 "Zend/zend_language_scanner.l"
                {
        return T_UNSET_CAST;
 }
-#line 4686 "Zend/zend_language_scanner.c"
-yy414:
-               YYDEBUG(414, *YYCURSOR);
+#line 4699 "Zend/zend_language_scanner.c"
+yy417:
+               YYDEBUG(417, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy415;
-               if (yych != 'r') goto yy150;
-yy415:
-               YYDEBUG(415, *YYCURSOR);
+               if (yych == 'R') goto yy418;
+               if (yych != 'r') goto yy151;
+yy418:
+               YYDEBUG(418, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(416, *YYCURSOR);
+               YYDEBUG(419, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1308 "Zend/zend_language_scanner.l"
                {
        return T_VAR;
 }
-#line 4704 "Zend/zend_language_scanner.c"
-yy417:
-               YYDEBUG(417, *YYCURSOR);
+#line 4717 "Zend/zend_language_scanner.c"
+yy420:
+               YYDEBUG(420, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'M') goto yy421;
-               if (yych == 'm') goto yy421;
-               goto yy150;
-yy418:
-               YYDEBUG(418, *YYCURSOR);
+               if (yych == 'M') goto yy424;
+               if (yych == 'm') goto yy424;
+               goto yy151;
+yy421:
+               YYDEBUG(421, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'W') goto yy419;
-               if (yych != 'w') goto yy150;
-yy419:
-               YYDEBUG(419, *YYCURSOR);
+               if (yych == 'W') goto yy422;
+               if (yych != 'w') goto yy151;
+yy422:
+               YYDEBUG(422, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(420, *YYCURSOR);
+               YYDEBUG(423, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1300 "Zend/zend_language_scanner.l"
                {
        return T_NEW;
 }
-#line 4728 "Zend/zend_language_scanner.c"
-yy421:
-               YYDEBUG(421, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy422;
-               if (yych != 'e') goto yy150;
-yy422:
-               YYDEBUG(422, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy423;
-               if (yych != 's') goto yy150;
-yy423:
-               YYDEBUG(423, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'P') goto yy424;
-               if (yych != 'p') goto yy150;
+#line 4741 "Zend/zend_language_scanner.c"
 yy424:
                YYDEBUG(424, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy425;
-               if (yych != 'a') goto yy150;
+               if (yych == 'E') goto yy425;
+               if (yych != 'e') goto yy151;
 yy425:
                YYDEBUG(425, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy426;
-               if (yych != 'c') goto yy150;
+               if (yych == 'S') goto yy426;
+               if (yych != 's') goto yy151;
 yy426:
                YYDEBUG(426, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy427;
-               if (yych != 'e') goto yy150;
+               if (yych == 'P') goto yy427;
+               if (yych != 'p') goto yy151;
 yy427:
                YYDEBUG(427, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy428;
+               if (yych != 'a') goto yy151;
+yy428:
+               YYDEBUG(428, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'C') goto yy429;
+               if (yych != 'c') goto yy151;
+yy429:
+               YYDEBUG(429, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy430;
+               if (yych != 'e') goto yy151;
+yy430:
+               YYDEBUG(430, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(428, *YYCURSOR);
+               YYDEBUG(431, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1360 "Zend/zend_language_scanner.l"
                {
        return T_NAMESPACE;
 }
-#line 4771 "Zend/zend_language_scanner.c"
-yy429:
-               YYDEBUG(429, *YYCURSOR);
+#line 4784 "Zend/zend_language_scanner.c"
+yy432:
+               YYDEBUG(432, *YYCURSOR);
                ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '\n') goto yy433;
-               if (yych == '\r') goto yy434;
-yy430:
-               YYDEBUG(430, *YYCURSOR);
+               if ((yych = *YYCURSOR) == '\n') goto yy436;
+               if (yych == '\r') goto yy437;
+yy433:
+               YYDEBUG(433, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1922 "Zend/zend_language_scanner.l"
+#line 1926 "Zend/zend_language_scanner.l"
                {
        BEGIN(INITIAL);
        return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
 }
-#line 4785 "Zend/zend_language_scanner.c"
-yy431:
-               YYDEBUG(431, *YYCURSOR);
+#line 4798 "Zend/zend_language_scanner.c"
+yy434:
+               YYDEBUG(434, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(432, *YYCURSOR);
+               YYDEBUG(435, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1296 "Zend/zend_language_scanner.l"
                {
        return T_COALESCE;
 }
-#line 4795 "Zend/zend_language_scanner.c"
-yy433:
-               YYDEBUG(433, *YYCURSOR);
+#line 4808 "Zend/zend_language_scanner.c"
+yy436:
+               YYDEBUG(436, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy430;
-yy434:
-               YYDEBUG(434, *YYCURSOR);
+               goto yy433;
+yy437:
+               YYDEBUG(437, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '\n') goto yy433;
-               goto yy430;
-yy435:
-               YYDEBUG(435, *YYCURSOR);
+               if (yych == '\n') goto yy436;
+               goto yy433;
+yy438:
+               YYDEBUG(438, *YYCURSOR);
                yyaccept = 3;
                YYMARKER = ++YYCURSOR;
                YYFILL(3);
                yych = *YYCURSOR;
-               YYDEBUG(436, *YYCURSOR);
+               YYDEBUG(439, *YYCURSOR);
                if (yych <= 'D') {
-                       if (yych <= '/') goto yy153;
-                       if (yych <= '9') goto yy435;
-                       goto yy153;
+                       if (yych <= '/') goto yy154;
+                       if (yych <= '9') goto yy438;
+                       goto yy154;
                } else {
-                       if (yych <= 'E') goto yy156;
-                       if (yych == 'e') goto yy156;
-                       goto yy153;
+                       if (yych <= 'E') goto yy157;
+                       if (yych == 'e') goto yy157;
+                       goto yy154;
                }
-yy437:
-               YYDEBUG(437, *YYCURSOR);
+yy440:
+               YYDEBUG(440, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(438, *YYCURSOR);
+               YYDEBUG(441, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1488 "Zend/zend_language_scanner.l"
+#line 1492 "Zend/zend_language_scanner.l"
                {
        return T_CONCAT_EQUAL;
 }
-#line 4830 "Zend/zend_language_scanner.c"
-yy439:
-               YYDEBUG(439, *YYCURSOR);
+#line 4843 "Zend/zend_language_scanner.c"
+yy442:
+               YYDEBUG(442, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '.') goto yy157;
-               YYDEBUG(440, *YYCURSOR);
+               if (yych != '.') goto yy158;
+               YYDEBUG(443, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(441, *YYCURSOR);
+               YYDEBUG(444, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1292 "Zend/zend_language_scanner.l"
                {
        return T_ELLIPSIS;
 }
-#line 4843 "Zend/zend_language_scanner.c"
-yy442:
-               YYDEBUG(442, *YYCURSOR);
+#line 4856 "Zend/zend_language_scanner.c"
+yy445:
+               YYDEBUG(445, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(443, *YYCURSOR);
+               YYDEBUG(446, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1284 "Zend/zend_language_scanner.l"
                {
        return T_PAAMAYIM_NEKUDOTAYIM;
 }
-#line 4853 "Zend/zend_language_scanner.c"
-yy444:
-               YYDEBUG(444, *YYCURSOR);
+#line 4866 "Zend/zend_language_scanner.c"
+yy447:
+               YYDEBUG(447, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy445:
-               YYDEBUG(445, *YYCURSOR);
+yy448:
+               YYDEBUG(448, *YYCURSOR);
                if (yych <= '\f') {
-                       if (yych <= 0x08) goto yy104;
-                       if (yych <= '\n') goto yy444;
-                       goto yy104;
+                       if (yych <= 0x08) goto yy105;
+                       if (yych <= '\n') goto yy447;
+                       goto yy105;
                } else {
-                       if (yych <= '\r') goto yy444;
-                       if (yych == ' ') goto yy444;
-                       goto yy104;
+                       if (yych <= '\r') goto yy447;
+                       if (yych == ' ') goto yy447;
+                       goto yy105;
                }
-yy446:
-               YYDEBUG(446, *YYCURSOR);
+yy449:
+               YYDEBUG(449, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(447, *YYCURSOR);
+               YYDEBUG(450, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1468 "Zend/zend_language_scanner.l"
+#line 1472 "Zend/zend_language_scanner.l"
                {
        return T_MINUS_EQUAL;
 }
-#line 4879 "Zend/zend_language_scanner.c"
-yy448:
-               YYDEBUG(448, *YYCURSOR);
+#line 4892 "Zend/zend_language_scanner.c"
+yy451:
+               YYDEBUG(451, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(449, *YYCURSOR);
+               YYDEBUG(452, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1436 "Zend/zend_language_scanner.l"
                {
        return T_DEC;
 }
-#line 4889 "Zend/zend_language_scanner.c"
-yy450:
-               YYDEBUG(450, *YYCURSOR);
+#line 4902 "Zend/zend_language_scanner.c"
+yy453:
+               YYDEBUG(453, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(451, *YYCURSOR);
+               YYDEBUG(454, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1258 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_PROPERTY);
        return T_OBJECT_OPERATOR;
 }
-#line 4900 "Zend/zend_language_scanner.c"
-yy452:
-               YYDEBUG(452, *YYCURSOR);
+#line 4913 "Zend/zend_language_scanner.c"
+yy455:
+               YYDEBUG(455, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'O') {
-                       if (yych == 'I') goto yy459;
-                       if (yych <= 'N') goto yy150;
-                       goto yy460;
+                       if (yych == 'I') goto yy462;
+                       if (yych <= 'N') goto yy151;
+                       goto yy463;
                } else {
                        if (yych <= 'i') {
-                               if (yych <= 'h') goto yy150;
-                               goto yy459;
+                               if (yych <= 'h') goto yy151;
+                               goto yy462;
                        } else {
-                               if (yych == 'o') goto yy460;
-                               goto yy150;
+                               if (yych == 'o') goto yy463;
+                               goto yy151;
                        }
                }
-yy453:
-               YYDEBUG(453, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'B') goto yy454;
-               if (yych != 'b') goto yy150;
-yy454:
-               YYDEBUG(454, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy455;
-               if (yych != 'l') goto yy150;
-yy455:
-               YYDEBUG(455, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy456;
-               if (yych != 'i') goto yy150;
 yy456:
                YYDEBUG(456, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy457;
-               if (yych != 'c') goto yy150;
+               if (yych == 'B') goto yy457;
+               if (yych != 'b') goto yy151;
 yy457:
                YYDEBUG(457, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'L') goto yy458;
+               if (yych != 'l') goto yy151;
+yy458:
+               YYDEBUG(458, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'I') goto yy459;
+               if (yych != 'i') goto yy151;
+yy459:
+               YYDEBUG(459, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'C') goto yy460;
+               if (yych != 'c') goto yy151;
+yy460:
+               YYDEBUG(460, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(458, *YYCURSOR);
+               YYDEBUG(461, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1408 "Zend/zend_language_scanner.l"
                {
        return T_PUBLIC;
 }
-#line 4949 "Zend/zend_language_scanner.c"
-yy459:
-               YYDEBUG(459, *YYCURSOR);
+#line 4962 "Zend/zend_language_scanner.c"
+yy462:
+               YYDEBUG(462, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'V') {
-                       if (yych == 'N') goto yy468;
-                       if (yych <= 'U') goto yy150;
-                       goto yy469;
+                       if (yych == 'N') goto yy471;
+                       if (yych <= 'U') goto yy151;
+                       goto yy472;
                } else {
                        if (yych <= 'n') {
-                               if (yych <= 'm') goto yy150;
-                               goto yy468;
+                               if (yych <= 'm') goto yy151;
+                               goto yy471;
                        } else {
-                               if (yych == 'v') goto yy469;
-                               goto yy150;
+                               if (yych == 'v') goto yy472;
+                               goto yy151;
                        }
                }
-yy460:
-               YYDEBUG(460, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy461;
-               if (yych != 't') goto yy150;
-yy461:
-               YYDEBUG(461, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy462;
-               if (yych != 'e') goto yy150;
-yy462:
-               YYDEBUG(462, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy463;
-               if (yych != 'c') goto yy150;
 yy463:
                YYDEBUG(463, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych == 'T') goto yy464;
-               if (yych != 't') goto yy150;
+               if (yych != 't') goto yy151;
 yy464:
                YYDEBUG(464, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych == 'E') goto yy465;
-               if (yych != 'e') goto yy150;
+               if (yych != 'e') goto yy151;
 yy465:
                YYDEBUG(465, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy466;
-               if (yych != 'd') goto yy150;
+               if (yych == 'C') goto yy466;
+               if (yych != 'c') goto yy151;
 yy466:
                YYDEBUG(466, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy467;
+               if (yych != 't') goto yy151;
+yy467:
+               YYDEBUG(467, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy468;
+               if (yych != 'e') goto yy151;
+yy468:
+               YYDEBUG(468, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'D') goto yy469;
+               if (yych != 'd') goto yy151;
+yy469:
+               YYDEBUG(469, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(467, *YYCURSOR);
+               YYDEBUG(470, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1404 "Zend/zend_language_scanner.l"
                {
        return T_PROTECTED;
 }
-#line 5008 "Zend/zend_language_scanner.c"
-yy468:
-               YYDEBUG(468, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy474;
-               if (yych == 't') goto yy474;
-               goto yy150;
-yy469:
-               YYDEBUG(469, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy470;
-               if (yych != 'a') goto yy150;
-yy470:
-               YYDEBUG(470, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy471;
-               if (yych != 't') goto yy150;
+#line 5021 "Zend/zend_language_scanner.c"
 yy471:
                YYDEBUG(471, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy472;
-               if (yych != 'e') goto yy150;
+               if (yych == 'T') goto yy477;
+               if (yych == 't') goto yy477;
+               goto yy151;
 yy472:
                YYDEBUG(472, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy473;
+               if (yych != 'a') goto yy151;
+yy473:
+               YYDEBUG(473, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy474;
+               if (yych != 't') goto yy151;
+yy474:
+               YYDEBUG(474, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy475;
+               if (yych != 'e') goto yy151;
+yy475:
+               YYDEBUG(475, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(473, *YYCURSOR);
+               YYDEBUG(476, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1400 "Zend/zend_language_scanner.l"
                {
        return T_PRIVATE;
 }
-#line 5042 "Zend/zend_language_scanner.c"
-yy474:
-               YYDEBUG(474, *YYCURSOR);
+#line 5055 "Zend/zend_language_scanner.c"
+yy477:
+               YYDEBUG(477, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(475, *YYCURSOR);
+               YYDEBUG(478, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1234 "Zend/zend_language_scanner.l"
                {
        return T_PRINT;
 }
-#line 5055 "Zend/zend_language_scanner.c"
-yy476:
-               YYDEBUG(476, *YYCURSOR);
+#line 5068 "Zend/zend_language_scanner.c"
+yy479:
+               YYDEBUG(479, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy481;
-               if (yych == 'o') goto yy481;
-               goto yy150;
-yy477:
-               YYDEBUG(477, *YYCURSOR);
+               if (yych == 'O') goto yy484;
+               if (yych == 'o') goto yy484;
+               goto yy151;
+yy480:
+               YYDEBUG(480, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy478;
-               if (yych != 't') goto yy150;
-yy478:
-               YYDEBUG(478, *YYCURSOR);
+               if (yych == 'T') goto yy481;
+               if (yych != 't') goto yy151;
+yy481:
+               YYDEBUG(481, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy479;
-               if (yych != 'o') goto yy150;
-yy479:
-               YYDEBUG(479, *YYCURSOR);
+               if (yych == 'O') goto yy482;
+               if (yych != 'o') goto yy151;
+yy482:
+               YYDEBUG(482, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(480, *YYCURSOR);
+               YYDEBUG(483, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1226 "Zend/zend_language_scanner.l"
                {
        return T_GOTO;
 }
-#line 5084 "Zend/zend_language_scanner.c"
-yy481:
-               YYDEBUG(481, *YYCURSOR);
+#line 5097 "Zend/zend_language_scanner.c"
+yy484:
+               YYDEBUG(484, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'B') goto yy482;
-               if (yych != 'b') goto yy150;
-yy482:
-               YYDEBUG(482, *YYCURSOR);
+               if (yych == 'B') goto yy485;
+               if (yych != 'b') goto yy151;
+yy485:
+               YYDEBUG(485, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy483;
-               if (yych != 'a') goto yy150;
-yy483:
-               YYDEBUG(483, *YYCURSOR);
+               if (yych == 'A') goto yy486;
+               if (yych != 'a') goto yy151;
+yy486:
+               YYDEBUG(486, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy484;
-               if (yych != 'l') goto yy150;
-yy484:
-               YYDEBUG(484, *YYCURSOR);
+               if (yych == 'L') goto yy487;
+               if (yych != 'l') goto yy151;
+yy487:
+               YYDEBUG(487, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(485, *YYCURSOR);
+               YYDEBUG(488, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1372 "Zend/zend_language_scanner.l"
                {
        return T_GLOBAL;
 }
-#line 5112 "Zend/zend_language_scanner.c"
-yy486:
-               YYDEBUG(486, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '<') goto yy494;
-               goto yy157;
-yy487:
-               YYDEBUG(487, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy144;
-yy488:
-               YYDEBUG(488, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy142;
+#line 5125 "Zend/zend_language_scanner.c"
 yy489:
                YYDEBUG(489, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy490;
-               if (yych != 'e') goto yy150;
+               if (yych == '<') goto yy497;
+               goto yy158;
 yy490:
                YYDEBUG(490, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy491;
-               if (yych != 'a') goto yy150;
+               goto yy145;
 yy491:
                YYDEBUG(491, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'K') goto yy492;
-               if (yych != 'k') goto yy150;
+               goto yy143;
 yy492:
                YYDEBUG(492, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy493;
+               if (yych != 'e') goto yy151;
+yy493:
+               YYDEBUG(493, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy494;
+               if (yych != 'a') goto yy151;
+yy494:
+               YYDEBUG(494, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'K') goto yy495;
+               if (yych != 'k') goto yy151;
+yy495:
+               YYDEBUG(495, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(493, *YYCURSOR);
+               YYDEBUG(496, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1218 "Zend/zend_language_scanner.l"
                {
        return T_BREAK;
 }
-#line 5153 "Zend/zend_language_scanner.c"
-yy494:
-               YYDEBUG(494, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '<') goto yy217;
-               goto yy157;
-yy495:
-               YYDEBUG(495, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy502;
-               if (yych == 'a') goto yy502;
-               goto yy150;
-yy496:
-               YYDEBUG(496, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy497;
-               if (yych != 'i') goto yy150;
+#line 5166 "Zend/zend_language_scanner.c"
 yy497:
                YYDEBUG(497, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy498;
-               if (yych != 't') goto yy150;
+               if (yych == '<') goto yy220;
+               goto yy158;
 yy498:
                YYDEBUG(498, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy499;
-               if (yych != 'c') goto yy150;
+               if (yych == 'A') goto yy505;
+               if (yych == 'a') goto yy505;
+               goto yy151;
 yy499:
                YYDEBUG(499, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy500;
-               if (yych != 'h') goto yy150;
+               if (yych == 'I') goto yy500;
+               if (yych != 'i') goto yy151;
 yy500:
                YYDEBUG(500, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy501;
+               if (yych != 't') goto yy151;
+yy501:
+               YYDEBUG(501, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'C') goto yy502;
+               if (yych != 'c') goto yy151;
+yy502:
+               YYDEBUG(502, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'H') goto yy503;
+               if (yych != 'h') goto yy151;
+yy503:
+               YYDEBUG(503, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(501, *YYCURSOR);
+               YYDEBUG(504, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1202 "Zend/zend_language_scanner.l"
                {
        return T_SWITCH;
 }
-#line 5197 "Zend/zend_language_scanner.c"
-yy502:
-               YYDEBUG(502, *YYCURSOR);
+#line 5210 "Zend/zend_language_scanner.c"
+yy505:
+               YYDEBUG(505, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy503;
-               if (yych != 't') goto yy150;
-yy503:
-               YYDEBUG(503, *YYCURSOR);
+               if (yych == 'T') goto yy506;
+               if (yych != 't') goto yy151;
+yy506:
+               YYDEBUG(506, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy504;
-               if (yych != 'i') goto yy150;
-yy504:
-               YYDEBUG(504, *YYCURSOR);
+               if (yych == 'I') goto yy507;
+               if (yych != 'i') goto yy151;
+yy507:
+               YYDEBUG(507, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy505;
-               if (yych != 'c') goto yy150;
-yy505:
-               YYDEBUG(505, *YYCURSOR);
+               if (yych == 'C') goto yy508;
+               if (yych != 'c') goto yy151;
+yy508:
+               YYDEBUG(508, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(506, *YYCURSOR);
+               YYDEBUG(509, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1388 "Zend/zend_language_scanner.l"
                {
        return T_STATIC;
 }
-#line 5225 "Zend/zend_language_scanner.c"
-yy507:
-               YYDEBUG(507, *YYCURSOR);
+#line 5238 "Zend/zend_language_scanner.c"
+yy510:
+               YYDEBUG(510, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy518;
-               if (yych == 's') goto yy518;
-               goto yy150;
-yy508:
-               YYDEBUG(508, *YYCURSOR);
+               if (yych == 'S') goto yy521;
+               if (yych == 's') goto yy521;
+               goto yy151;
+yy511:
+               YYDEBUG(511, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy516;
-               if (yych == 'd') goto yy516;
-               goto yy150;
-yy509:
-               YYDEBUG(509, *YYCURSOR);
+               if (yych == 'D') goto yy519;
+               if (yych == 'd') goto yy519;
+               goto yy151;
+yy512:
+               YYDEBUG(512, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy512;
-               if (yych == 'r') goto yy512;
-               goto yy150;
-yy510:
-               YYDEBUG(510, *YYCURSOR);
+               if (yych == 'R') goto yy515;
+               if (yych == 'r') goto yy515;
+               goto yy151;
+yy513:
+               YYDEBUG(513, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(511, *YYCURSOR);
+               YYDEBUG(514, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1198 "Zend/zend_language_scanner.l"
                {
        return T_AS;
 }
-#line 5256 "Zend/zend_language_scanner.c"
-yy512:
-               YYDEBUG(512, *YYCURSOR);
+#line 5269 "Zend/zend_language_scanner.c"
+yy515:
+               YYDEBUG(515, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy513;
-               if (yych != 'a') goto yy150;
-yy513:
-               YYDEBUG(513, *YYCURSOR);
+               if (yych == 'A') goto yy516;
+               if (yych != 'a') goto yy151;
+yy516:
+               YYDEBUG(516, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy514;
-               if (yych != 'y') goto yy150;
-yy514:
-               YYDEBUG(514, *YYCURSOR);
+               if (yych == 'Y') goto yy517;
+               if (yych != 'y') goto yy151;
+yy517:
+               YYDEBUG(517, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(515, *YYCURSOR);
+               YYDEBUG(518, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1424 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY;
 }
-#line 5279 "Zend/zend_language_scanner.c"
-yy516:
-               YYDEBUG(516, *YYCURSOR);
+#line 5292 "Zend/zend_language_scanner.c"
+yy519:
+               YYDEBUG(519, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(517, *YYCURSOR);
+               YYDEBUG(520, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1528 "Zend/zend_language_scanner.l"
+#line 1532 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_AND;
 }
-#line 5292 "Zend/zend_language_scanner.c"
-yy518:
-               YYDEBUG(518, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy519;
-               if (yych != 't') goto yy150;
-yy519:
-               YYDEBUG(519, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy520;
-               if (yych != 'r') goto yy150;
-yy520:
-               YYDEBUG(520, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy521;
-               if (yych != 'a') goto yy150;
+#line 5305 "Zend/zend_language_scanner.c"
 yy521:
                YYDEBUG(521, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy522;
-               if (yych != 'c') goto yy150;
+               if (yych == 'T') goto yy522;
+               if (yych != 't') goto yy151;
 yy522:
                YYDEBUG(522, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy523;
-               if (yych != 't') goto yy150;
+               if (yych == 'R') goto yy523;
+               if (yych != 'r') goto yy151;
 yy523:
                YYDEBUG(523, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy524;
+               if (yych != 'a') goto yy151;
+yy524:
+               YYDEBUG(524, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'C') goto yy525;
+               if (yych != 'c') goto yy151;
+yy525:
+               YYDEBUG(525, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy526;
+               if (yych != 't') goto yy151;
+yy526:
+               YYDEBUG(526, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(524, *YYCURSOR);
+               YYDEBUG(527, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1392 "Zend/zend_language_scanner.l"
                {
        return T_ABSTRACT;
 }
-#line 5330 "Zend/zend_language_scanner.c"
-yy525:
-               YYDEBUG(525, *YYCURSOR);
+#line 5343 "Zend/zend_language_scanner.c"
+yy528:
+               YYDEBUG(528, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy526;
-               if (yych != 'i') goto yy150;
-yy526:
-               YYDEBUG(526, *YYCURSOR);
+               if (yych == 'I') goto yy529;
+               if (yych != 'i') goto yy151;
+yy529:
+               YYDEBUG(529, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy527;
-               if (yych != 'l') goto yy150;
-yy527:
-               YYDEBUG(527, *YYCURSOR);
+               if (yych == 'L') goto yy530;
+               if (yych != 'l') goto yy151;
+yy530:
+               YYDEBUG(530, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy528;
-               if (yych != 'e') goto yy150;
-yy528:
-               YYDEBUG(528, *YYCURSOR);
+               if (yych == 'E') goto yy531;
+               if (yych != 'e') goto yy151;
+yy531:
+               YYDEBUG(531, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(529, *YYCURSOR);
+               YYDEBUG(532, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1158 "Zend/zend_language_scanner.l"
                {
        return T_WHILE;
 }
-#line 5358 "Zend/zend_language_scanner.c"
-yy530:
-               YYDEBUG(530, *YYCURSOR);
+#line 5371 "Zend/zend_language_scanner.c"
+yy533:
+               YYDEBUG(533, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(531, *YYCURSOR);
+               YYDEBUG(534, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1142 "Zend/zend_language_scanner.l"
                {
        return T_IF;
 }
-#line 5371 "Zend/zend_language_scanner.c"
-yy532:
-               YYDEBUG(532, *YYCURSOR);
+#line 5384 "Zend/zend_language_scanner.c"
+yy535:
+               YYDEBUG(535, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'P') goto yy574;
-               if (yych == 'p') goto yy574;
-               goto yy150;
-yy533:
-               YYDEBUG(533, *YYCURSOR);
+               if (yych == 'P') goto yy577;
+               if (yych == 'p') goto yy577;
+               goto yy151;
+yy536:
+               YYDEBUG(536, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'T') {
                        if (yych <= 'C') {
-                               if (yych <= 'B') goto yy150;
-                               goto yy541;
+                               if (yych <= 'B') goto yy151;
+                               goto yy544;
                        } else {
-                               if (yych <= 'R') goto yy150;
-                               if (yych <= 'S') goto yy539;
-                               goto yy540;
+                               if (yych <= 'R') goto yy151;
+                               if (yych <= 'S') goto yy542;
+                               goto yy543;
                        }
                } else {
                        if (yych <= 'r') {
-                               if (yych == 'c') goto yy541;
-                               goto yy150;
+                               if (yych == 'c') goto yy544;
+                               goto yy151;
                        } else {
-                               if (yych <= 's') goto yy539;
-                               if (yych <= 't') goto yy540;
-                               goto yy150;
+                               if (yych <= 's') goto yy542;
+                               if (yych <= 't') goto yy543;
+                               goto yy151;
                        }
                }
-yy534:
-               YYDEBUG(534, *YYCURSOR);
+yy537:
+               YYDEBUG(537, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy535;
-               if (yych != 's') goto yy150;
-yy535:
-               YYDEBUG(535, *YYCURSOR);
+               if (yych == 'S') goto yy538;
+               if (yych != 's') goto yy151;
+yy538:
+               YYDEBUG(538, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy536;
-               if (yych != 'e') goto yy150;
-yy536:
-               YYDEBUG(536, *YYCURSOR);
+               if (yych == 'E') goto yy539;
+               if (yych != 'e') goto yy151;
+yy539:
+               YYDEBUG(539, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy537;
-               if (yych != 't') goto yy150;
-yy537:
-               YYDEBUG(537, *YYCURSOR);
+               if (yych == 'T') goto yy540;
+               if (yych != 't') goto yy151;
+yy540:
+               YYDEBUG(540, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(538, *YYCURSOR);
+               YYDEBUG(541, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1376 "Zend/zend_language_scanner.l"
                {
        return T_ISSET;
 }
-#line 5427 "Zend/zend_language_scanner.c"
-yy539:
-               YYDEBUG(539, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy560;
-               if (yych == 't') goto yy560;
-               goto yy150;
-yy540:
-               YYDEBUG(540, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy553;
-               if (yych == 'e') goto yy553;
-               goto yy150;
-yy541:
-               YYDEBUG(541, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy542;
-               if (yych != 'l') goto yy150;
+#line 5440 "Zend/zend_language_scanner.c"
 yy542:
                YYDEBUG(542, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'U') goto yy543;
-               if (yych != 'u') goto yy150;
+               if (yych == 'T') goto yy563;
+               if (yych == 't') goto yy563;
+               goto yy151;
 yy543:
                YYDEBUG(543, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy544;
-               if (yych != 'd') goto yy150;
+               if (yych == 'E') goto yy556;
+               if (yych == 'e') goto yy556;
+               goto yy151;
 yy544:
                YYDEBUG(544, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy545;
-               if (yych != 'e') goto yy150;
+               if (yych == 'L') goto yy545;
+               if (yych != 'l') goto yy151;
 yy545:
                YYDEBUG(545, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'U') goto yy546;
+               if (yych != 'u') goto yy151;
+yy546:
+               YYDEBUG(546, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'D') goto yy547;
+               if (yych != 'd') goto yy151;
+yy547:
+               YYDEBUG(547, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy548;
+               if (yych != 'e') goto yy151;
+yy548:
+               YYDEBUG(548, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '9') {
-                               if (yych >= '0') goto yy149;
+                               if (yych >= '0') goto yy150;
                        } else {
-                               if (yych <= '@') goto yy546;
-                               if (yych <= 'Z') goto yy149;
+                               if (yych <= '@') goto yy549;
+                               if (yych <= 'Z') goto yy150;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych <= '_') goto yy547;
+                               if (yych <= '_') goto yy550;
                        } else {
-                               if (yych <= 'z') goto yy149;
-                               if (yych >= 0x7F) goto yy149;
+                               if (yych <= 'z') goto yy150;
+                               if (yych >= 0x7F) goto yy150;
                        }
                }
-yy546:
-               YYDEBUG(546, *YYCURSOR);
+yy549:
+               YYDEBUG(549, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1344 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE;
 }
-#line 5485 "Zend/zend_language_scanner.c"
-yy547:
-               YYDEBUG(547, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy548;
-               if (yych != 'o') goto yy150;
-yy548:
-               YYDEBUG(548, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy549;
-               if (yych != 'n') goto yy150;
-yy549:
-               YYDEBUG(549, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy550;
-               if (yych != 'c') goto yy150;
+#line 5498 "Zend/zend_language_scanner.c"
 yy550:
                YYDEBUG(550, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy551;
-               if (yych != 'e') goto yy150;
+               if (yych == 'O') goto yy551;
+               if (yych != 'o') goto yy151;
 yy551:
                YYDEBUG(551, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'N') goto yy552;
+               if (yych != 'n') goto yy151;
+yy552:
+               YYDEBUG(552, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'C') goto yy553;
+               if (yych != 'c') goto yy151;
+yy553:
+               YYDEBUG(553, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy554;
+               if (yych != 'e') goto yy151;
+yy554:
+               YYDEBUG(554, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(552, *YYCURSOR);
+               YYDEBUG(555, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1348 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE_ONCE;
 }
-#line 5518 "Zend/zend_language_scanner.c"
-yy553:
-               YYDEBUG(553, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy554;
-               if (yych != 'r') goto yy150;
-yy554:
-               YYDEBUG(554, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'F') goto yy555;
-               if (yych != 'f') goto yy150;
-yy555:
-               YYDEBUG(555, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy556;
-               if (yych != 'a') goto yy150;
+#line 5531 "Zend/zend_language_scanner.c"
 yy556:
                YYDEBUG(556, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy557;
-               if (yych != 'c') goto yy150;
+               if (yych == 'R') goto yy557;
+               if (yych != 'r') goto yy151;
 yy557:
                YYDEBUG(557, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy558;
-               if (yych != 'e') goto yy150;
+               if (yych == 'F') goto yy558;
+               if (yych != 'f') goto yy151;
 yy558:
                YYDEBUG(558, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy559;
+               if (yych != 'a') goto yy151;
+yy559:
+               YYDEBUG(559, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'C') goto yy560;
+               if (yych != 'c') goto yy151;
+yy560:
+               YYDEBUG(560, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy561;
+               if (yych != 'e') goto yy151;
+yy561:
+               YYDEBUG(561, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(559, *YYCURSOR);
+               YYDEBUG(562, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1242 "Zend/zend_language_scanner.l"
                {
        return T_INTERFACE;
 }
-#line 5556 "Zend/zend_language_scanner.c"
-yy560:
-               YYDEBUG(560, *YYCURSOR);
+#line 5569 "Zend/zend_language_scanner.c"
+yy563:
+               YYDEBUG(563, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'E') {
-                       if (yych == 'A') goto yy561;
-                       if (yych <= 'D') goto yy150;
-                       goto yy562;
+                       if (yych == 'A') goto yy564;
+                       if (yych <= 'D') goto yy151;
+                       goto yy565;
                } else {
                        if (yych <= 'a') {
-                               if (yych <= '`') goto yy150;
+                               if (yych <= '`') goto yy151;
                        } else {
-                               if (yych == 'e') goto yy562;
-                               goto yy150;
+                               if (yych == 'e') goto yy565;
+                               goto yy151;
                        }
                }
-yy561:
-               YYDEBUG(561, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy568;
-               if (yych == 'n') goto yy568;
-               goto yy150;
-yy562:
-               YYDEBUG(562, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy563;
-               if (yych != 'a') goto yy150;
-yy563:
-               YYDEBUG(563, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'D') goto yy564;
-               if (yych != 'd') goto yy150;
 yy564:
                YYDEBUG(564, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy565;
-               if (yych != 'o') goto yy150;
+               if (yych == 'N') goto yy571;
+               if (yych == 'n') goto yy571;
+               goto yy151;
 yy565:
                YYDEBUG(565, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'F') goto yy566;
-               if (yych != 'f') goto yy150;
+               if (yych == 'A') goto yy566;
+               if (yych != 'a') goto yy151;
 yy566:
                YYDEBUG(566, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'D') goto yy567;
+               if (yych != 'd') goto yy151;
+yy567:
+               YYDEBUG(567, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'O') goto yy568;
+               if (yych != 'o') goto yy151;
+yy568:
+               YYDEBUG(568, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'F') goto yy569;
+               if (yych != 'f') goto yy151;
+yy569:
+               YYDEBUG(569, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(567, *YYCURSOR);
+               YYDEBUG(570, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1368 "Zend/zend_language_scanner.l"
                {
         return T_INSTEADOF;
 }
-#line 5610 "Zend/zend_language_scanner.c"
-yy568:
-               YYDEBUG(568, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy569;
-               if (yych != 'c') goto yy150;
-yy569:
-               YYDEBUG(569, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy570;
-               if (yych != 'e') goto yy150;
-yy570:
-               YYDEBUG(570, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy571;
-               if (yych != 'o') goto yy150;
+#line 5623 "Zend/zend_language_scanner.c"
 yy571:
                YYDEBUG(571, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'F') goto yy572;
-               if (yych != 'f') goto yy150;
+               if (yych == 'C') goto yy572;
+               if (yych != 'c') goto yy151;
 yy572:
                YYDEBUG(572, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy573;
+               if (yych != 'e') goto yy151;
+yy573:
+               YYDEBUG(573, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'O') goto yy574;
+               if (yych != 'o') goto yy151;
+yy574:
+               YYDEBUG(574, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'F') goto yy575;
+               if (yych != 'f') goto yy151;
+yy575:
+               YYDEBUG(575, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(573, *YYCURSOR);
+               YYDEBUG(576, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1194 "Zend/zend_language_scanner.l"
                {
        return T_INSTANCEOF;
 }
-#line 5643 "Zend/zend_language_scanner.c"
-yy574:
-               YYDEBUG(574, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy575;
-               if (yych != 'l') goto yy150;
-yy575:
-               YYDEBUG(575, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy576;
-               if (yych != 'e') goto yy150;
-yy576:
-               YYDEBUG(576, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'M') goto yy577;
-               if (yych != 'm') goto yy150;
+#line 5656 "Zend/zend_language_scanner.c"
 yy577:
                YYDEBUG(577, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy578;
-               if (yych != 'e') goto yy150;
+               if (yych == 'L') goto yy578;
+               if (yych != 'l') goto yy151;
 yy578:
                YYDEBUG(578, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy579;
-               if (yych != 'n') goto yy150;
+               if (yych == 'E') goto yy579;
+               if (yych != 'e') goto yy151;
 yy579:
                YYDEBUG(579, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy580;
-               if (yych != 't') goto yy150;
+               if (yych == 'M') goto yy580;
+               if (yych != 'm') goto yy151;
 yy580:
                YYDEBUG(580, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy581;
-               if (yych != 's') goto yy150;
+               if (yych == 'E') goto yy581;
+               if (yych != 'e') goto yy151;
 yy581:
                YYDEBUG(581, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'N') goto yy582;
+               if (yych != 'n') goto yy151;
+yy582:
+               YYDEBUG(582, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy583;
+               if (yych != 't') goto yy151;
+yy583:
+               YYDEBUG(583, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'S') goto yy584;
+               if (yych != 's') goto yy151;
+yy584:
+               YYDEBUG(584, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(582, *YYCURSOR);
+               YYDEBUG(585, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1254 "Zend/zend_language_scanner.l"
                {
        return T_IMPLEMENTS;
 }
-#line 5691 "Zend/zend_language_scanner.c"
-yy583:
-               YYDEBUG(583, *YYCURSOR);
+#line 5704 "Zend/zend_language_scanner.c"
+yy586:
+               YYDEBUG(586, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy591;
-               if (yych == 'r') goto yy591;
-               goto yy150;
-yy584:
-               YYDEBUG(584, *YYCURSOR);
+               if (yych == 'R') goto yy594;
+               if (yych == 'r') goto yy594;
+               goto yy151;
+yy587:
+               YYDEBUG(587, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'Y') {
-                       if (yych == 'A') goto yy587;
-                       if (yych <= 'X') goto yy150;
+                       if (yych == 'A') goto yy590;
+                       if (yych <= 'X') goto yy151;
                } else {
                        if (yych <= 'a') {
-                               if (yych <= '`') goto yy150;
-                               goto yy587;
+                               if (yych <= '`') goto yy151;
+                               goto yy590;
                        } else {
-                               if (yych != 'y') goto yy150;
+                               if (yych != 'y') goto yy151;
                        }
                }
-               YYDEBUG(585, *YYCURSOR);
+               YYDEBUG(588, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(586, *YYCURSOR);
+               YYDEBUG(589, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1126 "Zend/zend_language_scanner.l"
                {
        return T_TRY;
 }
-#line 5723 "Zend/zend_language_scanner.c"
-yy587:
-               YYDEBUG(587, *YYCURSOR);
+#line 5736 "Zend/zend_language_scanner.c"
+yy590:
+               YYDEBUG(590, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy588;
-               if (yych != 'i') goto yy150;
-yy588:
-               YYDEBUG(588, *YYCURSOR);
+               if (yych == 'I') goto yy591;
+               if (yych != 'i') goto yy151;
+yy591:
+               YYDEBUG(591, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy589;
-               if (yych != 't') goto yy150;
-yy589:
-               YYDEBUG(589, *YYCURSOR);
+               if (yych == 'T') goto yy592;
+               if (yych != 't') goto yy151;
+yy592:
+               YYDEBUG(592, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(590, *YYCURSOR);
+               YYDEBUG(593, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1246 "Zend/zend_language_scanner.l"
                {
        return T_TRAIT;
 }
-#line 5746 "Zend/zend_language_scanner.c"
-yy591:
-               YYDEBUG(591, *YYCURSOR);
+#line 5759 "Zend/zend_language_scanner.c"
+yy594:
+               YYDEBUG(594, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy592;
-               if (yych != 'o') goto yy150;
-yy592:
-               YYDEBUG(592, *YYCURSOR);
+               if (yych == 'O') goto yy595;
+               if (yych != 'o') goto yy151;
+yy595:
+               YYDEBUG(595, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'W') goto yy593;
-               if (yych != 'w') goto yy150;
-yy593:
-               YYDEBUG(593, *YYCURSOR);
+               if (yych == 'W') goto yy596;
+               if (yych != 'w') goto yy151;
+yy596:
+               YYDEBUG(596, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(594, *YYCURSOR);
+               YYDEBUG(597, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1138 "Zend/zend_language_scanner.l"
                {
        return T_THROW;
 }
-#line 5769 "Zend/zend_language_scanner.c"
-yy595:
-               YYDEBUG(595, *YYCURSOR);
+#line 5782 "Zend/zend_language_scanner.c"
+yy598:
+               YYDEBUG(598, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy596;
-               if (yych != 'e') goto yy150;
-yy596:
-               YYDEBUG(596, *YYCURSOR);
+               if (yych == 'E') goto yy599;
+               if (yych != 'e') goto yy151;
+yy599:
+               YYDEBUG(599, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy597;
-               if (yych != 'l') goto yy150;
-yy597:
-               YYDEBUG(597, *YYCURSOR);
+               if (yych == 'L') goto yy600;
+               if (yych != 'l') goto yy151;
+yy600:
+               YYDEBUG(600, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy598;
-               if (yych != 'd') goto yy150;
-yy598:
-               YYDEBUG(598, *YYCURSOR);
+               if (yych == 'D') goto yy601;
+               if (yych != 'd') goto yy151;
+yy601:
+               YYDEBUG(601, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(599, *YYCURSOR);
+               YYDEBUG(602, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1122 "Zend/zend_language_scanner.l"
                {
        return T_YIELD;
 }
-#line 5797 "Zend/zend_language_scanner.c"
-yy600:
-               YYDEBUG(600, *YYCURSOR);
+#line 5810 "Zend/zend_language_scanner.c"
+yy603:
+               YYDEBUG(603, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'T') {
-                       if (yych == 'Q') goto yy602;
-                       if (yych <= 'S') goto yy150;
+                       if (yych == 'Q') goto yy605;
+                       if (yych <= 'S') goto yy151;
                } else {
                        if (yych <= 'q') {
-                               if (yych <= 'p') goto yy150;
-                               goto yy602;
+                               if (yych <= 'p') goto yy151;
+                               goto yy605;
                        } else {
-                               if (yych != 't') goto yy150;
+                               if (yych != 't') goto yy151;
                        }
                }
-               YYDEBUG(601, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'U') goto yy614;
-               if (yych == 'u') goto yy614;
-               goto yy150;
-yy602:
-               YYDEBUG(602, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'U') goto yy603;
-               if (yych != 'u') goto yy150;
-yy603:
-               YYDEBUG(603, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy604;
-               if (yych != 'i') goto yy150;
-yy604:
                YYDEBUG(604, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy605;
-               if (yych != 'r') goto yy150;
+               if (yych == 'U') goto yy617;
+               if (yych == 'u') goto yy617;
+               goto yy151;
 yy605:
                YYDEBUG(605, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy606;
-               if (yych != 'e') goto yy150;
+               if (yych == 'U') goto yy606;
+               if (yych != 'u') goto yy151;
 yy606:
                YYDEBUG(606, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'I') goto yy607;
+               if (yych != 'i') goto yy151;
+yy607:
+               YYDEBUG(607, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'R') goto yy608;
+               if (yych != 'r') goto yy151;
+yy608:
+               YYDEBUG(608, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy609;
+               if (yych != 'e') goto yy151;
+yy609:
+               YYDEBUG(609, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '9') {
-                               if (yych >= '0') goto yy149;
+                               if (yych >= '0') goto yy150;
                        } else {
-                               if (yych <= '@') goto yy607;
-                               if (yych <= 'Z') goto yy149;
+                               if (yych <= '@') goto yy610;
+                               if (yych <= 'Z') goto yy150;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych <= '_') goto yy608;
+                               if (yych <= '_') goto yy611;
                        } else {
-                               if (yych <= 'z') goto yy149;
-                               if (yych >= 0x7F) goto yy149;
+                               if (yych <= 'z') goto yy150;
+                               if (yych >= 0x7F) goto yy150;
                        }
                }
-yy607:
-               YYDEBUG(607, *YYCURSOR);
+yy610:
+               YYDEBUG(610, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1352 "Zend/zend_language_scanner.l"
                {
        return T_REQUIRE;
 }
-#line 5862 "Zend/zend_language_scanner.c"
-yy608:
-               YYDEBUG(608, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy609;
-               if (yych != 'o') goto yy150;
-yy609:
-               YYDEBUG(609, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy610;
-               if (yych != 'n') goto yy150;
-yy610:
-               YYDEBUG(610, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy611;
-               if (yych != 'c') goto yy150;
+#line 5875 "Zend/zend_language_scanner.c"
 yy611:
                YYDEBUG(611, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy612;
-               if (yych != 'e') goto yy150;
+               if (yych == 'O') goto yy612;
+               if (yych != 'o') goto yy151;
 yy612:
                YYDEBUG(612, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'N') goto yy613;
+               if (yych != 'n') goto yy151;
+yy613:
+               YYDEBUG(613, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'C') goto yy614;
+               if (yych != 'c') goto yy151;
+yy614:
+               YYDEBUG(614, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy615;
+               if (yych != 'e') goto yy151;
+yy615:
+               YYDEBUG(615, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(613, *YYCURSOR);
+               YYDEBUG(616, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1356 "Zend/zend_language_scanner.l"
                {
        return T_REQUIRE_ONCE;
 }
-#line 5895 "Zend/zend_language_scanner.c"
-yy614:
-               YYDEBUG(614, *YYCURSOR);
+#line 5908 "Zend/zend_language_scanner.c"
+yy617:
+               YYDEBUG(617, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy615;
-               if (yych != 'r') goto yy150;
-yy615:
-               YYDEBUG(615, *YYCURSOR);
+               if (yych == 'R') goto yy618;
+               if (yych != 'r') goto yy151;
+yy618:
+               YYDEBUG(618, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy616;
-               if (yych != 'n') goto yy150;
-yy616:
-               YYDEBUG(616, *YYCURSOR);
+               if (yych == 'N') goto yy619;
+               if (yych != 'n') goto yy151;
+yy619:
+               YYDEBUG(619, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(617, *YYCURSOR);
+               YYDEBUG(620, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1118 "Zend/zend_language_scanner.l"
                {
        return T_RETURN;
 }
-#line 5918 "Zend/zend_language_scanner.c"
-yy618:
-               YYDEBUG(618, *YYCURSOR);
+#line 5931 "Zend/zend_language_scanner.c"
+yy621:
+               YYDEBUG(621, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'T') {
                        if (yych <= 'L') {
-                               if (yych <= 'K') goto yy150;
-                               goto yy641;
+                               if (yych <= 'K') goto yy151;
+                               goto yy644;
                        } else {
-                               if (yych <= 'R') goto yy150;
-                               if (yych <= 'S') goto yy640;
-                               goto yy639;
+                               if (yych <= 'R') goto yy151;
+                               if (yych <= 'S') goto yy643;
+                               goto yy642;
                        }
                } else {
                        if (yych <= 'r') {
-                               if (yych == 'l') goto yy641;
-                               goto yy150;
+                               if (yych == 'l') goto yy644;
+                               goto yy151;
                        } else {
-                               if (yych <= 's') goto yy640;
-                               if (yych <= 't') goto yy639;
-                               goto yy150;
+                               if (yych <= 's') goto yy643;
+                               if (yych <= 't') goto yy642;
+                               goto yy151;
                        }
                }
-yy619:
-               YYDEBUG(619, *YYCURSOR);
+yy622:
+               YYDEBUG(622, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'O') {
-                       if (yych == 'A') goto yy631;
-                       if (yych <= 'N') goto yy150;
-                       goto yy632;
+                       if (yych == 'A') goto yy634;
+                       if (yych <= 'N') goto yy151;
+                       goto yy635;
                } else {
                        if (yych <= 'a') {
-                               if (yych <= '`') goto yy150;
-                               goto yy631;
+                               if (yych <= '`') goto yy151;
+                               goto yy634;
                        } else {
-                               if (yych == 'o') goto yy632;
-                               goto yy150;
+                               if (yych == 'o') goto yy635;
+                               goto yy151;
                        }
                }
-yy620:
-               YYDEBUG(620, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy621;
-               if (yych != 'n') goto yy150;
-yy621:
-               YYDEBUG(621, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'T') {
-                       if (yych <= 'R') goto yy150;
-                       if (yych >= 'T') goto yy623;
-               } else {
-                       if (yych <= 'r') goto yy150;
-                       if (yych <= 's') goto yy622;
-                       if (yych <= 't') goto yy623;
-                       goto yy150;
-               }
-yy622:
-               YYDEBUG(622, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy629;
-               if (yych == 't') goto yy629;
-               goto yy150;
 yy623:
                YYDEBUG(623, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy624;
-               if (yych != 'i') goto yy150;
+               if (yych == 'N') goto yy624;
+               if (yych != 'n') goto yy151;
 yy624:
                YYDEBUG(624, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy625;
-               if (yych != 'n') goto yy150;
+               if (yych <= 'T') {
+                       if (yych <= 'R') goto yy151;
+                       if (yych >= 'T') goto yy626;
+               } else {
+                       if (yych <= 'r') goto yy151;
+                       if (yych <= 's') goto yy625;
+                       if (yych <= 't') goto yy626;
+                       goto yy151;
+               }
 yy625:
                YYDEBUG(625, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'U') goto yy626;
-               if (yych != 'u') goto yy150;
+               if (yych == 'T') goto yy632;
+               if (yych == 't') goto yy632;
+               goto yy151;
 yy626:
                YYDEBUG(626, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy627;
-               if (yych != 'e') goto yy150;
+               if (yych == 'I') goto yy627;
+               if (yych != 'i') goto yy151;
 yy627:
                YYDEBUG(627, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'N') goto yy628;
+               if (yych != 'n') goto yy151;
+yy628:
+               YYDEBUG(628, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'U') goto yy629;
+               if (yych != 'u') goto yy151;
+yy629:
+               YYDEBUG(629, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy630;
+               if (yych != 'e') goto yy151;
+yy630:
+               YYDEBUG(630, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(628, *YYCURSOR);
+               YYDEBUG(631, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1222 "Zend/zend_language_scanner.l"
                {
        return T_CONTINUE;
 }
-#line 6012 "Zend/zend_language_scanner.c"
-yy629:
-               YYDEBUG(629, *YYCURSOR);
+#line 6025 "Zend/zend_language_scanner.c"
+yy632:
+               YYDEBUG(632, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(630, *YYCURSOR);
+               YYDEBUG(633, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1114 "Zend/zend_language_scanner.l"
                {
        return T_CONST;
 }
-#line 6025 "Zend/zend_language_scanner.c"
-yy631:
-               YYDEBUG(631, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy636;
-               if (yych == 's') goto yy636;
-               goto yy150;
-yy632:
-               YYDEBUG(632, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy633;
-               if (yych != 'n') goto yy150;
-yy633:
-               YYDEBUG(633, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy634;
-               if (yych != 'e') goto yy150;
+#line 6038 "Zend/zend_language_scanner.c"
 yy634:
                YYDEBUG(634, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
-               }
+               yych = *++YYCURSOR;
+               if (yych == 'S') goto yy639;
+               if (yych == 's') goto yy639;
+               goto yy151;
+yy635:
                YYDEBUG(635, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1304 "Zend/zend_language_scanner.l"
-               {
-       return T_CLONE;
-}
-#line 6054 "Zend/zend_language_scanner.c"
+               yych = *++YYCURSOR;
+               if (yych == 'N') goto yy636;
+               if (yych != 'n') goto yy151;
 yy636:
                YYDEBUG(636, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy637;
-               if (yych != 's') goto yy150;
+               if (yych == 'E') goto yy637;
+               if (yych != 'e') goto yy151;
 yy637:
                YYDEBUG(637, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
                YYDEBUG(638, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1238 "Zend/zend_language_scanner.l"
+#line 1304 "Zend/zend_language_scanner.l"
                {
-       return T_CLASS;
+       return T_CLONE;
 }
-#line 6072 "Zend/zend_language_scanner.c"
+#line 6067 "Zend/zend_language_scanner.c"
 yy639:
                YYDEBUG(639, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy650;
-               if (yych == 'c') goto yy650;
-               goto yy150;
+               if (yych == 'S') goto yy640;
+               if (yych != 's') goto yy151;
 yy640:
                YYDEBUG(640, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy648;
-               if (yych == 'e') goto yy648;
-               goto yy150;
-yy641:
+               ++YYCURSOR;
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy150;
+               }
                YYDEBUG(641, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy642;
-               if (yych != 'l') goto yy150;
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 1238 "Zend/zend_language_scanner.l"
+               {
+       return T_CLASS;
+}
+#line 6085 "Zend/zend_language_scanner.c"
 yy642:
                YYDEBUG(642, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy643;
-               if (yych != 'a') goto yy150;
+               if (yych == 'C') goto yy653;
+               if (yych == 'c') goto yy653;
+               goto yy151;
 yy643:
                YYDEBUG(643, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'B') goto yy644;
-               if (yych != 'b') goto yy150;
+               if (yych == 'E') goto yy651;
+               if (yych == 'e') goto yy651;
+               goto yy151;
 yy644:
                YYDEBUG(644, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych == 'L') goto yy645;
-               if (yych != 'l') goto yy150;
+               if (yych != 'l') goto yy151;
 yy645:
                YYDEBUG(645, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy646;
-               if (yych != 'e') goto yy150;
+               if (yych == 'A') goto yy646;
+               if (yych != 'a') goto yy151;
 yy646:
                YYDEBUG(646, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'B') goto yy647;
+               if (yych != 'b') goto yy151;
+yy647:
+               YYDEBUG(647, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'L') goto yy648;
+               if (yych != 'l') goto yy151;
+yy648:
+               YYDEBUG(648, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy649;
+               if (yych != 'e') goto yy151;
+yy649:
+               YYDEBUG(649, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(647, *YYCURSOR);
+               YYDEBUG(650, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1428 "Zend/zend_language_scanner.l"
                {
  return T_CALLABLE;
 }
-#line 6122 "Zend/zend_language_scanner.c"
-yy648:
-               YYDEBUG(648, *YYCURSOR);
+#line 6135 "Zend/zend_language_scanner.c"
+yy651:
+               YYDEBUG(651, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(649, *YYCURSOR);
+               YYDEBUG(652, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1210 "Zend/zend_language_scanner.l"
                {
        return T_CASE;
 }
-#line 6135 "Zend/zend_language_scanner.c"
-yy650:
-               YYDEBUG(650, *YYCURSOR);
+#line 6148 "Zend/zend_language_scanner.c"
+yy653:
+               YYDEBUG(653, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy651;
-               if (yych != 'h') goto yy150;
-yy651:
-               YYDEBUG(651, *YYCURSOR);
+               if (yych == 'H') goto yy654;
+               if (yych != 'h') goto yy151;
+yy654:
+               YYDEBUG(654, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(652, *YYCURSOR);
+               YYDEBUG(655, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1130 "Zend/zend_language_scanner.l"
                {
        return T_CATCH;
 }
-#line 6153 "Zend/zend_language_scanner.c"
-yy653:
-               YYDEBUG(653, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy670;
-               if (yych == 'n') goto yy670;
-               goto yy150;
-yy654:
-               YYDEBUG(654, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy663;
-               if (yych == 'r') goto yy663;
-               goto yy150;
-yy655:
-               YYDEBUG(655, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy656;
-               if (yych != 'n') goto yy150;
+#line 6166 "Zend/zend_language_scanner.c"
 yy656:
                YYDEBUG(656, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy657;
-               if (yych != 'c') goto yy150;
+               if (yych == 'N') goto yy673;
+               if (yych == 'n') goto yy673;
+               goto yy151;
 yy657:
                YYDEBUG(657, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy658;
-               if (yych != 't') goto yy150;
+               if (yych == 'R') goto yy666;
+               if (yych == 'r') goto yy666;
+               goto yy151;
 yy658:
                YYDEBUG(658, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy659;
-               if (yych != 'i') goto yy150;
+               if (yych == 'N') goto yy659;
+               if (yych != 'n') goto yy151;
 yy659:
                YYDEBUG(659, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy660;
-               if (yych != 'o') goto yy150;
+               if (yych == 'C') goto yy660;
+               if (yych != 'c') goto yy151;
 yy660:
                YYDEBUG(660, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy661;
-               if (yych != 'n') goto yy150;
+               if (yych == 'T') goto yy661;
+               if (yych != 't') goto yy151;
 yy661:
                YYDEBUG(661, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'I') goto yy662;
+               if (yych != 'i') goto yy151;
+yy662:
+               YYDEBUG(662, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'O') goto yy663;
+               if (yych != 'o') goto yy151;
+yy663:
+               YYDEBUG(663, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'N') goto yy664;
+               if (yych != 'n') goto yy151;
+yy664:
+               YYDEBUG(664, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(662, *YYCURSOR);
+               YYDEBUG(665, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1110 "Zend/zend_language_scanner.l"
                {
        return T_FUNCTION;
 }
-#line 6208 "Zend/zend_language_scanner.c"
-yy663:
-               YYDEBUG(663, *YYCURSOR);
+#line 6221 "Zend/zend_language_scanner.c"
+yy666:
+               YYDEBUG(666, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '@') {
-                               if (yych <= '/') goto yy664;
-                               if (yych <= '9') goto yy149;
+                               if (yych <= '/') goto yy667;
+                               if (yych <= '9') goto yy150;
                        } else {
-                               if (yych == 'E') goto yy665;
-                               if (yych <= 'Z') goto yy149;
+                               if (yych == 'E') goto yy668;
+                               if (yych <= 'Z') goto yy150;
                        }
                } else {
                        if (yych <= 'd') {
-                               if (yych != '`') goto yy149;
+                               if (yych != '`') goto yy150;
                        } else {
-                               if (yych <= 'e') goto yy665;
-                               if (yych <= 'z') goto yy149;
-                               if (yych >= 0x7F) goto yy149;
+                               if (yych <= 'e') goto yy668;
+                               if (yych <= 'z') goto yy150;
+                               if (yych >= 0x7F) goto yy150;
                        }
                }
-yy664:
-               YYDEBUG(664, *YYCURSOR);
+yy667:
+               YYDEBUG(667, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1170 "Zend/zend_language_scanner.l"
                {
        return T_FOR;
 }
-#line 6236 "Zend/zend_language_scanner.c"
-yy665:
-               YYDEBUG(665, *YYCURSOR);
+#line 6249 "Zend/zend_language_scanner.c"
+yy668:
+               YYDEBUG(668, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy666;
-               if (yych != 'a') goto yy150;
-yy666:
-               YYDEBUG(666, *YYCURSOR);
+               if (yych == 'A') goto yy669;
+               if (yych != 'a') goto yy151;
+yy669:
+               YYDEBUG(669, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy667;
-               if (yych != 'c') goto yy150;
-yy667:
-               YYDEBUG(667, *YYCURSOR);
+               if (yych == 'C') goto yy670;
+               if (yych != 'c') goto yy151;
+yy670:
+               YYDEBUG(670, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy668;
-               if (yych != 'h') goto yy150;
-yy668:
-               YYDEBUG(668, *YYCURSOR);
+               if (yych == 'H') goto yy671;
+               if (yych != 'h') goto yy151;
+yy671:
+               YYDEBUG(671, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(669, *YYCURSOR);
+               YYDEBUG(672, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1178 "Zend/zend_language_scanner.l"
                {
        return T_FOREACH;
 }
-#line 6264 "Zend/zend_language_scanner.c"
-yy670:
-               YYDEBUG(670, *YYCURSOR);
+#line 6277 "Zend/zend_language_scanner.c"
+yy673:
+               YYDEBUG(673, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy671;
-               if (yych != 'a') goto yy150;
-yy671:
-               YYDEBUG(671, *YYCURSOR);
+               if (yych == 'A') goto yy674;
+               if (yych != 'a') goto yy151;
+yy674:
+               YYDEBUG(674, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy672;
-               if (yych != 'l') goto yy150;
-yy672:
-               YYDEBUG(672, *YYCURSOR);
+               if (yych == 'L') goto yy675;
+               if (yych != 'l') goto yy151;
+yy675:
+               YYDEBUG(675, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '@') {
-                               if (yych <= '/') goto yy673;
-                               if (yych <= '9') goto yy149;
+                               if (yych <= '/') goto yy676;
+                               if (yych <= '9') goto yy150;
                        } else {
-                               if (yych == 'L') goto yy674;
-                               if (yych <= 'Z') goto yy149;
+                               if (yych == 'L') goto yy677;
+                               if (yych <= 'Z') goto yy150;
                        }
                } else {
                        if (yych <= 'k') {
-                               if (yych != '`') goto yy149;
+                               if (yych != '`') goto yy150;
                        } else {
-                               if (yych <= 'l') goto yy674;
-                               if (yych <= 'z') goto yy149;
-                               if (yych >= 0x7F) goto yy149;
+                               if (yych <= 'l') goto yy677;
+                               if (yych <= 'z') goto yy150;
+                               if (yych >= 0x7F) goto yy150;
                        }
                }
-yy673:
-               YYDEBUG(673, *YYCURSOR);
+yy676:
+               YYDEBUG(676, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1396 "Zend/zend_language_scanner.l"
                {
        return T_FINAL;
 }
-#line 6302 "Zend/zend_language_scanner.c"
-yy674:
-               YYDEBUG(674, *YYCURSOR);
+#line 6315 "Zend/zend_language_scanner.c"
+yy677:
+               YYDEBUG(677, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy675;
-               if (yych != 'y') goto yy150;
-yy675:
-               YYDEBUG(675, *YYCURSOR);
+               if (yych == 'Y') goto yy678;
+               if (yych != 'y') goto yy151;
+yy678:
+               YYDEBUG(678, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(676, *YYCURSOR);
+               YYDEBUG(679, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1134 "Zend/zend_language_scanner.l"
                {
        return T_FINALLY;
 }
-#line 6320 "Zend/zend_language_scanner.c"
-yy677:
-               YYDEBUG(677, *YYCURSOR);
+#line 6333 "Zend/zend_language_scanner.c"
+yy680:
+               YYDEBUG(680, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'F') {
-                       if (yych == 'C') goto yy683;
-                       if (yych <= 'E') goto yy150;
-                       goto yy684;
+                       if (yych == 'C') goto yy686;
+                       if (yych <= 'E') goto yy151;
+                       goto yy687;
                } else {
                        if (yych <= 'c') {
-                               if (yych <= 'b') goto yy150;
-                               goto yy683;
+                               if (yych <= 'b') goto yy151;
+                               goto yy686;
                        } else {
-                               if (yych == 'f') goto yy684;
-                               goto yy150;
+                               if (yych == 'f') goto yy687;
+                               goto yy151;
                        }
                }
-yy678:
-               YYDEBUG(678, *YYCURSOR);
+yy681:
+               YYDEBUG(681, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy681;
-               if (yych == 'e') goto yy681;
-               goto yy150;
-yy679:
-               YYDEBUG(679, *YYCURSOR);
+               if (yych == 'E') goto yy684;
+               if (yych == 'e') goto yy684;
+               goto yy151;
+yy682:
+               YYDEBUG(682, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(680, *YYCURSOR);
+               YYDEBUG(683, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1166 "Zend/zend_language_scanner.l"
                {
        return T_DO;
 }
-#line 6355 "Zend/zend_language_scanner.c"
-yy681:
-               YYDEBUG(681, *YYCURSOR);
+#line 6368 "Zend/zend_language_scanner.c"
+yy684:
+               YYDEBUG(684, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(682, *YYCURSOR);
+               YYDEBUG(685, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1106 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
 }
-#line 6368 "Zend/zend_language_scanner.c"
-yy683:
-               YYDEBUG(683, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy690;
-               if (yych == 'l') goto yy690;
-               goto yy150;
-yy684:
-               YYDEBUG(684, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy685;
-               if (yych != 'a') goto yy150;
-yy685:
-               YYDEBUG(685, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'U') goto yy686;
-               if (yych != 'u') goto yy150;
+#line 6381 "Zend/zend_language_scanner.c"
 yy686:
                YYDEBUG(686, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy687;
-               if (yych != 'l') goto yy150;
+               if (yych == 'L') goto yy693;
+               if (yych == 'l') goto yy693;
+               goto yy151;
 yy687:
                YYDEBUG(687, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy688;
-               if (yych != 't') goto yy150;
+               if (yych == 'A') goto yy688;
+               if (yych != 'a') goto yy151;
 yy688:
                YYDEBUG(688, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'U') goto yy689;
+               if (yych != 'u') goto yy151;
+yy689:
+               YYDEBUG(689, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'L') goto yy690;
+               if (yych != 'l') goto yy151;
+yy690:
+               YYDEBUG(690, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy691;
+               if (yych != 't') goto yy151;
+yy691:
+               YYDEBUG(691, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(689, *YYCURSOR);
+               YYDEBUG(692, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1214 "Zend/zend_language_scanner.l"
                {
        return T_DEFAULT;
 }
-#line 6407 "Zend/zend_language_scanner.c"
-yy690:
-               YYDEBUG(690, *YYCURSOR);
+#line 6420 "Zend/zend_language_scanner.c"
+yy693:
+               YYDEBUG(693, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy691;
-               if (yych != 'a') goto yy150;
-yy691:
-               YYDEBUG(691, *YYCURSOR);
+               if (yych == 'A') goto yy694;
+               if (yych != 'a') goto yy151;
+yy694:
+               YYDEBUG(694, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy692;
-               if (yych != 'r') goto yy150;
-yy692:
-               YYDEBUG(692, *YYCURSOR);
+               if (yych == 'R') goto yy695;
+               if (yych != 'r') goto yy151;
+yy695:
+               YYDEBUG(695, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy693;
-               if (yych != 'e') goto yy150;
-yy693:
-               YYDEBUG(693, *YYCURSOR);
+               if (yych == 'E') goto yy696;
+               if (yych != 'e') goto yy151;
+yy696:
+               YYDEBUG(696, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(694, *YYCURSOR);
+               YYDEBUG(697, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1186 "Zend/zend_language_scanner.l"
                {
        return T_DECLARE;
 }
-#line 6435 "Zend/zend_language_scanner.c"
-yy695:
-               YYDEBUG(695, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy757;
-               if (yych == 'h') goto yy757;
-               goto yy150;
-yy696:
-               YYDEBUG(696, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy751;
-               if (yych == 's') goto yy751;
-               goto yy150;
-yy697:
-               YYDEBUG(697, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'P') goto yy747;
-               if (yych == 'p') goto yy747;
-               goto yy150;
+#line 6448 "Zend/zend_language_scanner.c"
 yy698:
                YYDEBUG(698, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy713;
-               if (yych == 'd') goto yy713;
-               goto yy150;
+               if (yych == 'H') goto yy760;
+               if (yych == 'h') goto yy760;
+               goto yy151;
 yy699:
                YYDEBUG(699, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy710;
-               if (yych == 'a') goto yy710;
-               goto yy150;
+               if (yych == 'S') goto yy754;
+               if (yych == 's') goto yy754;
+               goto yy151;
 yy700:
                YYDEBUG(700, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= 'T') {
-                       if (yych == 'I') goto yy701;
-                       if (yych <= 'S') goto yy150;
-                       goto yy702;
-               } else {
-                       if (yych <= 'i') {
-                               if (yych <= 'h') goto yy150;
-                       } else {
-                               if (yych == 't') goto yy702;
-                               goto yy150;
-                       }
-               }
+               if (yych == 'P') goto yy750;
+               if (yych == 'p') goto yy750;
+               goto yy151;
 yy701:
                YYDEBUG(701, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy708;
-               if (yych == 't') goto yy708;
-               goto yy150;
+               if (yych == 'D') goto yy716;
+               if (yych == 'd') goto yy716;
+               goto yy151;
 yy702:
                YYDEBUG(702, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy703;
-               if (yych != 'e') goto yy150;
+               if (yych == 'A') goto yy713;
+               if (yych == 'a') goto yy713;
+               goto yy151;
 yy703:
                YYDEBUG(703, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy704;
-               if (yych != 'n') goto yy150;
+               if (yych <= 'T') {
+                       if (yych == 'I') goto yy704;
+                       if (yych <= 'S') goto yy151;
+                       goto yy705;
+               } else {
+                       if (yych <= 'i') {
+                               if (yych <= 'h') goto yy151;
+                       } else {
+                               if (yych == 't') goto yy705;
+                               goto yy151;
+                       }
+               }
 yy704:
                YYDEBUG(704, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy705;
-               if (yych != 'd') goto yy150;
+               if (yych == 'T') goto yy711;
+               if (yych == 't') goto yy711;
+               goto yy151;
 yy705:
                YYDEBUG(705, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy706;
-               if (yych != 's') goto yy150;
+               if (yych == 'E') goto yy706;
+               if (yych != 'e') goto yy151;
 yy706:
                YYDEBUG(706, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'N') goto yy707;
+               if (yych != 'n') goto yy151;
+yy707:
+               YYDEBUG(707, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'D') goto yy708;
+               if (yych != 'd') goto yy151;
+yy708:
+               YYDEBUG(708, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'S') goto yy709;
+               if (yych != 's') goto yy151;
+yy709:
+               YYDEBUG(709, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(707, *YYCURSOR);
+               YYDEBUG(710, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1250 "Zend/zend_language_scanner.l"
                {
        return T_EXTENDS;
 }
-#line 6519 "Zend/zend_language_scanner.c"
-yy708:
-               YYDEBUG(708, *YYCURSOR);
+#line 6532 "Zend/zend_language_scanner.c"
+yy711:
+               YYDEBUG(711, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(709, *YYCURSOR);
+               YYDEBUG(712, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1102 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
 }
-#line 6532 "Zend/zend_language_scanner.c"
-yy710:
-               YYDEBUG(710, *YYCURSOR);
+#line 6545 "Zend/zend_language_scanner.c"
+yy713:
+               YYDEBUG(713, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy711;
-               if (yych != 'l') goto yy150;
-yy711:
-               YYDEBUG(711, *YYCURSOR);
+               if (yych == 'L') goto yy714;
+               if (yych != 'l') goto yy151;
+yy714:
+               YYDEBUG(714, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(712, *YYCURSOR);
+               YYDEBUG(715, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1340 "Zend/zend_language_scanner.l"
                {
        return T_EVAL;
 }
-#line 6550 "Zend/zend_language_scanner.c"
-yy713:
-               YYDEBUG(713, *YYCURSOR);
+#line 6563 "Zend/zend_language_scanner.c"
+yy716:
+               YYDEBUG(716, *YYCURSOR);
                yych = *++YYCURSOR;
                YYDEBUG(-1, yych);
                switch (yych) {
                case 'D':
-               case 'd':       goto yy714;
+               case 'd':       goto yy717;
                case 'F':
-               case 'f':       goto yy715;
+               case 'f':       goto yy718;
                case 'I':
-               case 'i':       goto yy716;
+               case 'i':       goto yy719;
                case 'S':
-               case 's':       goto yy717;
+               case 's':       goto yy720;
                case 'W':
-               case 'w':       goto yy718;
-               default:        goto yy150;
+               case 'w':       goto yy721;
+               default:        goto yy151;
                }
-yy714:
-               YYDEBUG(714, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy740;
-               if (yych == 'e') goto yy740;
-               goto yy150;
-yy715:
-               YYDEBUG(715, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy732;
-               if (yych == 'o') goto yy732;
-               goto yy150;
-yy716:
-               YYDEBUG(716, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'F') goto yy730;
-               if (yych == 'f') goto yy730;
-               goto yy150;
 yy717:
                YYDEBUG(717, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'W') goto yy724;
-               if (yych == 'w') goto yy724;
-               goto yy150;
+               if (yych == 'E') goto yy743;
+               if (yych == 'e') goto yy743;
+               goto yy151;
 yy718:
                YYDEBUG(718, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy719;
-               if (yych != 'h') goto yy150;
+               if (yych == 'O') goto yy735;
+               if (yych == 'o') goto yy735;
+               goto yy151;
 yy719:
                YYDEBUG(719, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy720;
-               if (yych != 'i') goto yy150;
+               if (yych == 'F') goto yy733;
+               if (yych == 'f') goto yy733;
+               goto yy151;
 yy720:
                YYDEBUG(720, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy721;
-               if (yych != 'l') goto yy150;
+               if (yych == 'W') goto yy727;
+               if (yych == 'w') goto yy727;
+               goto yy151;
 yy721:
                YYDEBUG(721, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy722;
-               if (yych != 'e') goto yy150;
+               if (yych == 'H') goto yy722;
+               if (yych != 'h') goto yy151;
 yy722:
                YYDEBUG(722, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'I') goto yy723;
+               if (yych != 'i') goto yy151;
+yy723:
+               YYDEBUG(723, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'L') goto yy724;
+               if (yych != 'l') goto yy151;
+yy724:
+               YYDEBUG(724, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy725;
+               if (yych != 'e') goto yy151;
+yy725:
+               YYDEBUG(725, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(723, *YYCURSOR);
+               YYDEBUG(726, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1162 "Zend/zend_language_scanner.l"
                {
        return T_ENDWHILE;
 }
-#line 6624 "Zend/zend_language_scanner.c"
-yy724:
-               YYDEBUG(724, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy725;
-               if (yych != 'i') goto yy150;
-yy725:
-               YYDEBUG(725, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy726;
-               if (yych != 't') goto yy150;
-yy726:
-               YYDEBUG(726, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy727;
-               if (yych != 'c') goto yy150;
+#line 6637 "Zend/zend_language_scanner.c"
 yy727:
                YYDEBUG(727, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy728;
-               if (yych != 'h') goto yy150;
+               if (yych == 'I') goto yy728;
+               if (yych != 'i') goto yy151;
 yy728:
                YYDEBUG(728, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy729;
+               if (yych != 't') goto yy151;
+yy729:
+               YYDEBUG(729, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'C') goto yy730;
+               if (yych != 'c') goto yy151;
+yy730:
+               YYDEBUG(730, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'H') goto yy731;
+               if (yych != 'h') goto yy151;
+yy731:
+               YYDEBUG(731, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(729, *YYCURSOR);
+               YYDEBUG(732, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1206 "Zend/zend_language_scanner.l"
                {
        return T_ENDSWITCH;
 }
-#line 6657 "Zend/zend_language_scanner.c"
-yy730:
-               YYDEBUG(730, *YYCURSOR);
+#line 6670 "Zend/zend_language_scanner.c"
+yy733:
+               YYDEBUG(733, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(731, *YYCURSOR);
+               YYDEBUG(734, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1150 "Zend/zend_language_scanner.l"
                {
        return T_ENDIF;
 }
-#line 6670 "Zend/zend_language_scanner.c"
-yy732:
-               YYDEBUG(732, *YYCURSOR);
+#line 6683 "Zend/zend_language_scanner.c"
+yy735:
+               YYDEBUG(735, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy733;
-               if (yych != 'r') goto yy150;
-yy733:
-               YYDEBUG(733, *YYCURSOR);
+               if (yych == 'R') goto yy736;
+               if (yych != 'r') goto yy151;
+yy736:
+               YYDEBUG(736, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '@') {
-                               if (yych <= '/') goto yy734;
-                               if (yych <= '9') goto yy149;
+                               if (yych <= '/') goto yy737;
+                               if (yych <= '9') goto yy150;
                        } else {
-                               if (yych == 'E') goto yy735;
-                               if (yych <= 'Z') goto yy149;
+                               if (yych == 'E') goto yy738;
+                               if (yych <= 'Z') goto yy150;
                        }
                } else {
                        if (yych <= 'd') {
-                               if (yych != '`') goto yy149;
+                               if (yych != '`') goto yy150;
                        } else {
-                               if (yych <= 'e') goto yy735;
-                               if (yych <= 'z') goto yy149;
-                               if (yych >= 0x7F) goto yy149;
+                               if (yych <= 'e') goto yy738;
+                               if (yych <= 'z') goto yy150;
+                               if (yych >= 0x7F) goto yy150;
                        }
                }
-yy734:
-               YYDEBUG(734, *YYCURSOR);
+yy737:
+               YYDEBUG(737, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1174 "Zend/zend_language_scanner.l"
                {
        return T_ENDFOR;
 }
-#line 6703 "Zend/zend_language_scanner.c"
-yy735:
-               YYDEBUG(735, *YYCURSOR);
+#line 6716 "Zend/zend_language_scanner.c"
+yy738:
+               YYDEBUG(738, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy736;
-               if (yych != 'a') goto yy150;
-yy736:
-               YYDEBUG(736, *YYCURSOR);
+               if (yych == 'A') goto yy739;
+               if (yych != 'a') goto yy151;
+yy739:
+               YYDEBUG(739, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy737;
-               if (yych != 'c') goto yy150;
-yy737:
-               YYDEBUG(737, *YYCURSOR);
+               if (yych == 'C') goto yy740;
+               if (yych != 'c') goto yy151;
+yy740:
+               YYDEBUG(740, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy738;
-               if (yych != 'h') goto yy150;
-yy738:
-               YYDEBUG(738, *YYCURSOR);
+               if (yych == 'H') goto yy741;
+               if (yych != 'h') goto yy151;
+yy741:
+               YYDEBUG(741, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(739, *YYCURSOR);
+               YYDEBUG(742, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1182 "Zend/zend_language_scanner.l"
                {
        return T_ENDFOREACH;
 }
-#line 6731 "Zend/zend_language_scanner.c"
-yy740:
-               YYDEBUG(740, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy741;
-               if (yych != 'c') goto yy150;
-yy741:
-               YYDEBUG(741, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy742;
-               if (yych != 'l') goto yy150;
-yy742:
-               YYDEBUG(742, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy743;
-               if (yych != 'a') goto yy150;
+#line 6744 "Zend/zend_language_scanner.c"
 yy743:
                YYDEBUG(743, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy744;
-               if (yych != 'r') goto yy150;
+               if (yych == 'C') goto yy744;
+               if (yych != 'c') goto yy151;
 yy744:
                YYDEBUG(744, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy745;
-               if (yych != 'e') goto yy150;
+               if (yych == 'L') goto yy745;
+               if (yych != 'l') goto yy151;
 yy745:
                YYDEBUG(745, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy746;
+               if (yych != 'a') goto yy151;
+yy746:
+               YYDEBUG(746, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'R') goto yy747;
+               if (yych != 'r') goto yy151;
+yy747:
+               YYDEBUG(747, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy748;
+               if (yych != 'e') goto yy151;
+yy748:
+               YYDEBUG(748, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(746, *YYCURSOR);
+               YYDEBUG(749, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1190 "Zend/zend_language_scanner.l"
                {
        return T_ENDDECLARE;
 }
-#line 6769 "Zend/zend_language_scanner.c"
-yy747:
-               YYDEBUG(747, *YYCURSOR);
+#line 6782 "Zend/zend_language_scanner.c"
+yy750:
+               YYDEBUG(750, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy748;
-               if (yych != 't') goto yy150;
-yy748:
-               YYDEBUG(748, *YYCURSOR);
+               if (yych == 'T') goto yy751;
+               if (yych != 't') goto yy151;
+yy751:
+               YYDEBUG(751, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy749;
-               if (yych != 'y') goto yy150;
-yy749:
-               YYDEBUG(749, *YYCURSOR);
+               if (yych == 'Y') goto yy752;
+               if (yych != 'y') goto yy151;
+yy752:
+               YYDEBUG(752, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(750, *YYCURSOR);
+               YYDEBUG(753, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1380 "Zend/zend_language_scanner.l"
                {
        return T_EMPTY;
 }
-#line 6792 "Zend/zend_language_scanner.c"
-yy751:
-               YYDEBUG(751, *YYCURSOR);
+#line 6805 "Zend/zend_language_scanner.c"
+yy754:
+               YYDEBUG(754, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy752;
-               if (yych != 'e') goto yy150;
-yy752:
-               YYDEBUG(752, *YYCURSOR);
+               if (yych == 'E') goto yy755;
+               if (yych != 'e') goto yy151;
+yy755:
+               YYDEBUG(755, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '@') {
-                               if (yych <= '/') goto yy753;
-                               if (yych <= '9') goto yy149;
+                               if (yych <= '/') goto yy756;
+                               if (yych <= '9') goto yy150;
                        } else {
-                               if (yych == 'I') goto yy754;
-                               if (yych <= 'Z') goto yy149;
+                               if (yych == 'I') goto yy757;
+                               if (yych <= 'Z') goto yy150;
                        }
                } else {
                        if (yych <= 'h') {
-                               if (yych != '`') goto yy149;
+                               if (yych != '`') goto yy150;
                        } else {
-                               if (yych <= 'i') goto yy754;
-                               if (yych <= 'z') goto yy149;
-                               if (yych >= 0x7F) goto yy149;
+                               if (yych <= 'i') goto yy757;
+                               if (yych <= 'z') goto yy150;
+                               if (yych >= 0x7F) goto yy150;
                        }
                }
-yy753:
-               YYDEBUG(753, *YYCURSOR);
+yy756:
+               YYDEBUG(756, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1154 "Zend/zend_language_scanner.l"
                {
        return T_ELSE;
 }
-#line 6825 "Zend/zend_language_scanner.c"
-yy754:
-               YYDEBUG(754, *YYCURSOR);
+#line 6838 "Zend/zend_language_scanner.c"
+yy757:
+               YYDEBUG(757, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'F') goto yy755;
-               if (yych != 'f') goto yy150;
-yy755:
-               YYDEBUG(755, *YYCURSOR);
+               if (yych == 'F') goto yy758;
+               if (yych != 'f') goto yy151;
+yy758:
+               YYDEBUG(758, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(756, *YYCURSOR);
+               YYDEBUG(759, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1146 "Zend/zend_language_scanner.l"
                {
        return T_ELSEIF;
 }
-#line 6843 "Zend/zend_language_scanner.c"
-yy757:
-               YYDEBUG(757, *YYCURSOR);
+#line 6856 "Zend/zend_language_scanner.c"
+yy760:
+               YYDEBUG(760, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy758;
-               if (yych != 'o') goto yy150;
-yy758:
-               YYDEBUG(758, *YYCURSOR);
+               if (yych == 'O') goto yy761;
+               if (yych != 'o') goto yy151;
+yy761:
+               YYDEBUG(761, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy149;
+                       goto yy150;
                }
-               YYDEBUG(759, *YYCURSOR);
+               YYDEBUG(762, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1230 "Zend/zend_language_scanner.l"
                {
        return T_ECHO;
 }
-#line 6861 "Zend/zend_language_scanner.c"
+#line 6874 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_LOOKING_FOR_PROPERTY:
@@ -6896,52 +6909,52 @@ yyc_ST_LOOKING_FOR_PROPERTY:
                         64,  64,  64,  64,  64,  64,  64,  64, 
                         64,  64,  64,  64,  64,  64,  64,  64, 
                };
-               YYDEBUG(760, *YYCURSOR);
+               YYDEBUG(763, *YYCURSOR);
                YYFILL(2);
                yych = *YYCURSOR;
                if (yych <= '-') {
                        if (yych <= '\r') {
-                               if (yych <= 0x08) goto yy768;
-                               if (yych <= '\n') goto yy762;
-                               if (yych <= '\f') goto yy768;
+                               if (yych <= 0x08) goto yy771;
+                               if (yych <= '\n') goto yy765;
+                               if (yych <= '\f') goto yy771;
                        } else {
-                               if (yych == ' ') goto yy762;
-                               if (yych <= ',') goto yy768;
-                               goto yy764;
+                               if (yych == ' ') goto yy765;
+                               if (yych <= ',') goto yy771;
+                               goto yy767;
                        }
                } else {
                        if (yych <= '_') {
-                               if (yych <= '@') goto yy768;
-                               if (yych <= 'Z') goto yy766;
-                               if (yych <= '^') goto yy768;
-                               goto yy766;
+                               if (yych <= '@') goto yy771;
+                               if (yych <= 'Z') goto yy769;
+                               if (yych <= '^') goto yy771;
+                               goto yy769;
                        } else {
-                               if (yych <= '`') goto yy768;
-                               if (yych <= 'z') goto yy766;
-                               if (yych <= '~') goto yy768;
-                               goto yy766;
+                               if (yych <= '`') goto yy771;
+                               if (yych <= 'z') goto yy769;
+                               if (yych <= '~') goto yy771;
+                               goto yy769;
                        }
                }
-yy762:
-               YYDEBUG(762, *YYCURSOR);
+yy765:
+               YYDEBUG(765, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
-               goto yy774;
-yy763:
-               YYDEBUG(763, *YYCURSOR);
+               goto yy777;
+yy766:
+               YYDEBUG(766, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1263 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        return T_WHITESPACE;
 }
-#line 6939 "Zend/zend_language_scanner.c"
-yy764:
-               YYDEBUG(764, *YYCURSOR);
+#line 6952 "Zend/zend_language_scanner.c"
+yy767:
+               YYDEBUG(767, *YYCURSOR);
                ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '>') goto yy771;
-yy765:
-               YYDEBUG(765, *YYCURSOR);
+               if ((yych = *YYCURSOR) == '>') goto yy774;
+yy768:
+               YYDEBUG(768, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1278 "Zend/zend_language_scanner.l"
                {
@@ -6949,14 +6962,14 @@ yy765:
        yy_pop_state();
        goto restart;
 }
-#line 6953 "Zend/zend_language_scanner.c"
-yy766:
-               YYDEBUG(766, *YYCURSOR);
+#line 6966 "Zend/zend_language_scanner.c"
+yy769:
+               YYDEBUG(769, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
-               goto yy770;
-yy767:
-               YYDEBUG(767, *YYCURSOR);
+               goto yy773;
+yy770:
+               YYDEBUG(770, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1272 "Zend/zend_language_scanner.l"
                {
@@ -6964,43 +6977,43 @@ yy767:
        zend_copy_value(zendlval, yytext, yyleng);
        return T_STRING;
 }
-#line 6968 "Zend/zend_language_scanner.c"
-yy768:
-               YYDEBUG(768, *YYCURSOR);
+#line 6981 "Zend/zend_language_scanner.c"
+yy771:
+               YYDEBUG(771, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy765;
-yy769:
-               YYDEBUG(769, *YYCURSOR);
+               goto yy768;
+yy772:
+               YYDEBUG(772, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy770:
-               YYDEBUG(770, *YYCURSOR);
+yy773:
+               YYDEBUG(773, *YYCURSOR);
                if (yybm[0+yych] & 64) {
-                       goto yy769;
+                       goto yy772;
                }
-               goto yy767;
-yy771:
-               YYDEBUG(771, *YYCURSOR);
+               goto yy770;
+yy774:
+               YYDEBUG(774, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(772, *YYCURSOR);
+               YYDEBUG(775, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
 #line 1268 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_OPERATOR;
 }
-#line 6993 "Zend/zend_language_scanner.c"
-yy773:
-               YYDEBUG(773, *YYCURSOR);
+#line 7006 "Zend/zend_language_scanner.c"
+yy776:
+               YYDEBUG(776, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy774:
-               YYDEBUG(774, *YYCURSOR);
+yy777:
+               YYDEBUG(777, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy773;
+                       goto yy776;
                }
-               goto yy763;
+               goto yy766;
        }
 /* *********************************** */
 yyc_ST_LOOKING_FOR_VARNAME:
@@ -7039,74 +7052,76 @@ yyc_ST_LOOKING_FOR_VARNAME:
                        128, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
                };
-               YYDEBUG(775, *YYCURSOR);
+               YYDEBUG(778, *YYCURSOR);
                YYFILL(2);
                yych = *YYCURSOR;
                if (yych <= '_') {
-                       if (yych <= '@') goto yy779;
-                       if (yych <= 'Z') goto yy777;
-                       if (yych <= '^') goto yy779;
+                       if (yych <= '@') goto yy782;
+                       if (yych <= 'Z') goto yy780;
+                       if (yych <= '^') goto yy782;
                } else {
-                       if (yych <= '`') goto yy779;
-                       if (yych <= 'z') goto yy777;
-                       if (yych <= '~') goto yy779;
+                       if (yych <= '`') goto yy782;
+                       if (yych <= 'z') goto yy780;
+                       if (yych <= '~') goto yy782;
                }
-yy777:
-               YYDEBUG(777, *YYCURSOR);
+yy780:
+               YYDEBUG(780, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= '_') {
                        if (yych <= '@') {
-                               if (yych <= '/') goto yy778;
-                               if (yych <= '9') goto yy781;
+                               if (yych <= '/') goto yy781;
+                               if (yych <= '9') goto yy784;
                        } else {
-                               if (yych <= '[') goto yy781;
-                               if (yych >= '_') goto yy781;
+                               if (yych <= '[') goto yy784;
+                               if (yych >= '_') goto yy784;
                        }
                } else {
                        if (yych <= '|') {
-                               if (yych <= '`') goto yy778;
-                               if (yych <= 'z') goto yy781;
+                               if (yych <= '`') goto yy781;
+                               if (yych <= 'z') goto yy784;
                        } else {
-                               if (yych != '~') goto yy781;
+                               if (yych != '~') goto yy784;
                        }
                }
-yy778:
-               YYDEBUG(778, *YYCURSOR);
+yy781:
+               YYDEBUG(781, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1579 "Zend/zend_language_scanner.l"
+#line 1583 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state();
        yy_push_state(ST_IN_SCRIPTING);
        goto restart;
 }
-#line 7085 "Zend/zend_language_scanner.c"
-yy779:
-               YYDEBUG(779, *YYCURSOR);
+#line 7098 "Zend/zend_language_scanner.c"
+yy782:
+               YYDEBUG(782, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy778;
-yy780:
-               YYDEBUG(780, *YYCURSOR);
+               goto yy781;
+yy783:
+               YYDEBUG(783, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy781:
-               YYDEBUG(781, *YYCURSOR);
+yy784:
+               YYDEBUG(784, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy780;
+                       goto yy783;
                }
-               if (yych == '[') goto yy783;
-               if (yych == '}') goto yy783;
-               YYDEBUG(782, *YYCURSOR);
+               if (yych <= '@') goto yy785;
+               if (yych <= '[') goto yy786;
+               if (yych == '}') goto yy786;
+yy785:
+               YYDEBUG(785, *YYCURSOR);
                YYCURSOR = YYMARKER;
-               goto yy778;
-yy783:
-               YYDEBUG(783, *YYCURSOR);
+               goto yy781;
+yy786:
+               YYDEBUG(786, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(784, *YYCURSOR);
+               YYDEBUG(787, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1570 "Zend/zend_language_scanner.l"
+#line 1574 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        zend_copy_value(zendlval, yytext, yyleng);
@@ -7114,18 +7129,18 @@ yy783:
        yy_push_state(ST_IN_SCRIPTING);
        return T_STRING_VARNAME;
 }
-#line 7118 "Zend/zend_language_scanner.c"
+#line 7133 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_NOWDOC:
-       YYDEBUG(785, *YYCURSOR);
+       YYDEBUG(788, *YYCURSOR);
        YYFILL(1);
        yych = *YYCURSOR;
-       YYDEBUG(787, *YYCURSOR);
+       YYDEBUG(790, *YYCURSOR);
        ++YYCURSOR;
-       YYDEBUG(788, *YYCURSOR);
+       YYDEBUG(791, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 2292 "Zend/zend_language_scanner.l"
+#line 2296 "Zend/zend_language_scanner.l"
        {
        int newline = 0;
 
@@ -7181,7 +7196,7 @@ nowdoc_scan_done:
        HANDLE_NEWLINES(yytext, yyleng - newline);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 7185 "Zend/zend_language_scanner.c"
+#line 7200 "Zend/zend_language_scanner.c"
 /* *********************************** */
 yyc_ST_VAR_OFFSET:
        {
@@ -7219,76 +7234,76 @@ yyc_ST_VAR_OFFSET:
                         16,  16,  16,  16,  16,  16,  16,  16, 
                         16,  16,  16,  16,  16,  16,  16,  16, 
                };
-               YYDEBUG(789, *YYCURSOR);
+               YYDEBUG(792, *YYCURSOR);
                YYFILL(3);
                yych = *YYCURSOR;
                if (yych <= '/') {
                        if (yych <= ' ') {
                                if (yych <= '\f') {
-                                       if (yych <= 0x08) goto yy803;
-                                       if (yych <= '\n') goto yy799;
-                                       goto yy803;
+                                       if (yych <= 0x08) goto yy806;
+                                       if (yych <= '\n') goto yy802;
+                                       goto yy806;
                                } else {
-                                       if (yych <= '\r') goto yy799;
-                                       if (yych <= 0x1F) goto yy803;
-                                       goto yy799;
+                                       if (yych <= '\r') goto yy802;
+                                       if (yych <= 0x1F) goto yy806;
+                                       goto yy802;
                                }
                        } else {
                                if (yych <= '$') {
-                                       if (yych <= '"') goto yy798;
-                                       if (yych <= '#') goto yy799;
-                                       goto yy794;
+                                       if (yych <= '"') goto yy801;
+                                       if (yych <= '#') goto yy802;
+                                       goto yy797;
                                } else {
-                                       if (yych == '\'') goto yy799;
-                                       goto yy798;
+                                       if (yych == '\'') goto yy802;
+                                       goto yy801;
                                }
                        }
                } else {
                        if (yych <= '\\') {
                                if (yych <= '@') {
-                                       if (yych <= '0') goto yy791;
-                                       if (yych <= '9') goto yy793;
-                                       goto yy798;
+                                       if (yych <= '0') goto yy794;
+                                       if (yych <= '9') goto yy796;
+                                       goto yy801;
                                } else {
-                                       if (yych <= 'Z') goto yy801;
-                                       if (yych <= '[') goto yy798;
-                                       goto yy799;
+                                       if (yych <= 'Z') goto yy804;
+                                       if (yych <= '[') goto yy801;
+                                       goto yy802;
                                }
                        } else {
                                if (yych <= '_') {
-                                       if (yych <= ']') goto yy796;
-                                       if (yych <= '^') goto yy798;
-                                       goto yy801;
+                                       if (yych <= ']') goto yy799;
+                                       if (yych <= '^') goto yy801;
+                                       goto yy804;
                                } else {
-                                       if (yych <= '`') goto yy798;
-                                       if (yych <= 'z') goto yy801;
-                                       if (yych <= '~') goto yy798;
-                                       goto yy801;
+                                       if (yych <= '`') goto yy801;
+                                       if (yych <= 'z') goto yy804;
+                                       if (yych <= '~') goto yy801;
+                                       goto yy804;
                                }
                        }
                }
-yy791:
-               YYDEBUG(791, *YYCURSOR);
+yy794:
+               YYDEBUG(794, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= 'W') {
                        if (yych <= '9') {
-                               if (yych >= '0') goto yy815;
+                               if (yych >= '0') goto yy818;
                        } else {
-                               if (yych == 'B') goto yy812;
+                               if (yych == 'B') goto yy815;
                        }
                } else {
                        if (yych <= 'b') {
-                               if (yych <= 'X') goto yy814;
-                               if (yych >= 'b') goto yy812;
+                               if (yych <= 'X') goto yy817;
+                               if (yych >= 'b') goto yy815;
                        } else {
-                               if (yych == 'x') goto yy814;
+                               if (yych == 'x') goto yy817;
                        }
                }
-yy792:
-               YYDEBUG(792, *YYCURSOR);
+yy795:
+               YYDEBUG(795, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1681 "Zend/zend_language_scanner.l"
+#line 1685 "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)) {
                char *end;
@@ -7304,53 +7319,53 @@ string:
        }
        return T_NUM_STRING;
 }
-#line 7308 "Zend/zend_language_scanner.c"
-yy793:
-               YYDEBUG(793, *YYCURSOR);
+#line 7323 "Zend/zend_language_scanner.c"
+yy796:
+               YYDEBUG(796, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy811;
-yy794:
-               YYDEBUG(794, *YYCURSOR);
+               goto yy814;
+yy797:
+               YYDEBUG(797, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '_') {
-                       if (yych <= '@') goto yy795;
-                       if (yych <= 'Z') goto yy807;
-                       if (yych >= '_') goto yy807;
+                       if (yych <= '@') goto yy798;
+                       if (yych <= 'Z') goto yy810;
+                       if (yych >= '_') goto yy810;
                } else {
-                       if (yych <= '`') goto yy795;
-                       if (yych <= 'z') goto yy807;
-                       if (yych >= 0x7F) goto yy807;
+                       if (yych <= '`') goto yy798;
+                       if (yych <= 'z') goto yy810;
+                       if (yych >= 0x7F) goto yy810;
                }
-yy795:
-               YYDEBUG(795, *YYCURSOR);
+yy798:
+               YYDEBUG(798, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1841 "Zend/zend_language_scanner.l"
+#line 1845 "Zend/zend_language_scanner.l"
                {
        /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
        return yytext[0];
 }
-#line 7333 "Zend/zend_language_scanner.c"
-yy796:
-               YYDEBUG(796, *YYCURSOR);
+#line 7348 "Zend/zend_language_scanner.c"
+yy799:
+               YYDEBUG(799, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(797, *YYCURSOR);
+               YYDEBUG(800, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1836 "Zend/zend_language_scanner.l"
+#line 1840 "Zend/zend_language_scanner.l"
                {
        yy_pop_state();
        return ']';
 }
-#line 7344 "Zend/zend_language_scanner.c"
-yy798:
-               YYDEBUG(798, *YYCURSOR);
+#line 7359 "Zend/zend_language_scanner.c"
+yy801:
+               YYDEBUG(801, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy795;
-yy799:
-               YYDEBUG(799, *YYCURSOR);
+               goto yy798;
+yy802:
+               YYDEBUG(802, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(800, *YYCURSOR);
+               YYDEBUG(803, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1846 "Zend/zend_language_scanner.l"
+#line 1850 "Zend/zend_language_scanner.l"
                {
        /* Invalid rule to return a more explicit parse error with proper line number */
        yyless(0);
@@ -7358,27 +7373,27 @@ yy799:
        ZVAL_NULL(zendlval);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 7362 "Zend/zend_language_scanner.c"
-yy801:
-               YYDEBUG(801, *YYCURSOR);
+#line 7377 "Zend/zend_language_scanner.c"
+yy804:
+               YYDEBUG(804, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
-               goto yy806;
-yy802:
-               YYDEBUG(802, *YYCURSOR);
+               goto yy809;
+yy805:
+               YYDEBUG(805, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1854 "Zend/zend_language_scanner.l"
+#line 1858 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        return T_STRING;
 }
-#line 7376 "Zend/zend_language_scanner.c"
-yy803:
-               YYDEBUG(803, *YYCURSOR);
+#line 7391 "Zend/zend_language_scanner.c"
+yy806:
+               YYDEBUG(806, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(804, *YYCURSOR);
+               YYDEBUG(807, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2349 "Zend/zend_language_scanner.l"
+#line 2353 "Zend/zend_language_scanner.l"
                {
        if (YYCURSOR > YYLIMIT) {
                return 0;
@@ -7387,115 +7402,115 @@ yy803:
        zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
        goto restart;
 }
-#line 7391 "Zend/zend_language_scanner.c"
-yy805:
-               YYDEBUG(805, *YYCURSOR);
+#line 7406 "Zend/zend_language_scanner.c"
+yy808:
+               YYDEBUG(808, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy806:
-               YYDEBUG(806, *YYCURSOR);
+yy809:
+               YYDEBUG(809, *YYCURSOR);
                if (yybm[0+yych] & 16) {
-                       goto yy805;
+                       goto yy808;
                }
-               goto yy802;
-yy807:
-               YYDEBUG(807, *YYCURSOR);
+               goto yy805;
+yy810:
+               YYDEBUG(810, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(808, *YYCURSOR);
+               YYDEBUG(811, *YYCURSOR);
                if (yych <= '^') {
                        if (yych <= '9') {
-                               if (yych >= '0') goto yy807;
+                               if (yych >= '0') goto yy810;
                        } else {
-                               if (yych <= '@') goto yy809;
-                               if (yych <= 'Z') goto yy807;
+                               if (yych <= '@') goto yy812;
+                               if (yych <= 'Z') goto yy810;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych <= '_') goto yy807;
+                               if (yych <= '_') goto yy810;
                        } else {
-                               if (yych <= 'z') goto yy807;
-                               if (yych >= 0x7F) goto yy807;
+                               if (yych <= 'z') goto yy810;
+                               if (yych >= 0x7F) goto yy810;
                        }
                }
-yy809:
-               YYDEBUG(809, *YYCURSOR);
+yy812:
+               YYDEBUG(812, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1831 "Zend/zend_language_scanner.l"
+#line 1835 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        return T_VARIABLE;
 }
-#line 7432 "Zend/zend_language_scanner.c"
-yy810:
-               YYDEBUG(810, *YYCURSOR);
+#line 7447 "Zend/zend_language_scanner.c"
+yy813:
+               YYDEBUG(813, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy811:
-               YYDEBUG(811, *YYCURSOR);
+yy814:
+               YYDEBUG(814, *YYCURSOR);
                if (yybm[0+yych] & 32) {
-                       goto yy810;
+                       goto yy813;
                }
-               goto yy792;
-yy812:
-               YYDEBUG(812, *YYCURSOR);
+               goto yy795;
+yy815:
+               YYDEBUG(815, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yybm[0+yych] & 128) {
-                       goto yy820;
+                       goto yy823;
                }
-yy813:
-               YYDEBUG(813, *YYCURSOR);
+yy816:
+               YYDEBUG(816, *YYCURSOR);
                YYCURSOR = YYMARKER;
-               goto yy792;
-yy814:
-               YYDEBUG(814, *YYCURSOR);
+               goto yy795;
+yy817:
+               YYDEBUG(817, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yybm[0+yych] & 64) {
-                       goto yy818;
+                       goto yy821;
                }
-               goto yy813;
-yy815:
-               YYDEBUG(815, *YYCURSOR);
+               goto yy816;
+yy818:
+               YYDEBUG(818, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(816, *YYCURSOR);
-               if (yych <= '/') goto yy817;
-               if (yych <= '9') goto yy815;
-yy817:
-               YYDEBUG(817, *YYCURSOR);
+               YYDEBUG(819, *YYCURSOR);
+               if (yych <= '/') goto yy820;
+               if (yych <= '9') goto yy818;
+yy820:
+               YYDEBUG(820, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1697 "Zend/zend_language_scanner.l"
+#line 1701 "Zend/zend_language_scanner.l"
                { /* Offset must be treated as a string */
        ZVAL_STRINGL(zendlval, yytext, yyleng);
        return T_NUM_STRING;
 }
-#line 7477 "Zend/zend_language_scanner.c"
-yy818:
-               YYDEBUG(818, *YYCURSOR);
+#line 7492 "Zend/zend_language_scanner.c"
+yy821:
+               YYDEBUG(821, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(819, *YYCURSOR);
+               YYDEBUG(822, *YYCURSOR);
                if (yybm[0+yych] & 64) {
-                       goto yy818;
+                       goto yy821;
                }
-               goto yy817;
-yy820:
-               YYDEBUG(820, *YYCURSOR);
+               goto yy820;
+yy823:
+               YYDEBUG(823, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(821, *YYCURSOR);
+               YYDEBUG(824, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy820;
+                       goto yy823;
                }
-               goto yy817;
+               goto yy820;
        }
 }
-#line 2358 "Zend/zend_language_scanner.l"
+#line 2362 "Zend/zend_language_scanner.l"
 
 }
index 0081192d40f61825ad78e5d05bcd8950754a03fd..31c9a52a44a4652b7a8cb1a367f21221c9b8fc09 100644 (file)
@@ -1453,6 +1453,10 @@ NEWLINE ("\r"|"\n"|"\r\n")
        return T_IS_NOT_EQUAL;
 }
 
+<ST_IN_SCRIPTING>"<=>" {
+       return T_SPACESHIP;
+}
+
 <ST_IN_SCRIPTING>"<=" {
        return T_IS_SMALLER_OR_EQUAL;
 }
index 5926e3c61d971615174d2f61216148cca197e370..baf859bcd461af589b453b8423364170b2777c89 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 */
+/* Generated by re2c 0.13.7.5 */
 #line 3 "Zend/zend_language_scanner_defs.h"
 
 enum YYCONDTYPE {
index a6d041f131209ddd4c4570634a7340c2dad0eca6..1f7646b599c720e11a3120122e3b106e972ae8fa 100644 (file)
@@ -861,6 +861,8 @@ ZEND_API binary_op_type get_binary_op(int opcode)
                        return (binary_op_type) is_smaller_function;
                case ZEND_IS_SMALLER_OR_EQUAL:
                        return (binary_op_type) is_smaller_or_equal_function;
+               case ZEND_SPACESHIP:
+                       return (binary_op_type) compare_function;
                case ZEND_BW_OR:
                case ZEND_ASSIGN_BW_OR:
                        return (binary_op_type) bitwise_or_function;
index 24bb3fd3d6b1148ac3d950951482ba329fad839a..a6b3777583fe6da37a4bc64237c30ef795a88420 100644 (file)
@@ -240,6 +240,22 @@ ZEND_VM_HANDLER(20, ZEND_IS_SMALLER_OR_EQUAL, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
        ZEND_VM_NEXT_OPCODE();
 }
 
+ZEND_VM_HANDLER(170, ZEND_SPACESHIP, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
+{
+       USE_OPLINE
+       zend_free_op free_op1, free_op2;
+       zval *result = EX_VAR(opline->result.var);
+
+       SAVE_OPLINE();
+       compare_function(result,
+               GET_OP1_ZVAL_PTR(BP_VAR_R),
+               GET_OP2_ZVAL_PTR(BP_VAR_R));
+       FREE_OP1();
+       FREE_OP2();
+       CHECK_EXCEPTION();
+       ZEND_VM_NEXT_OPCODE();
+}
+
 ZEND_VM_HANDLER(9, ZEND_BW_OR, CONST|TMPVAR|CV, CONST|TMPVAR|CV)
 {
        USE_OPLINE
index 9a7b23d87aaedce5703b5796aba4de9c62fa56d5..4ef134e0b6c1b31b844de031384eace5ad98c70d 100644 (file)
@@ -3677,6 +3677,22 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CONST_HANDLER(ZEND
        ZEND_VM_NEXT_OPCODE();
 }
 
+static int ZEND_FASTCALL  ZEND_SPACESHIP_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+       USE_OPLINE
+
+       zval *result = EX_VAR(opline->result.var);
+
+       SAVE_OPLINE();
+       compare_function(result,
+               EX_CONSTANT(opline->op1),
+               EX_CONSTANT(opline->op2));
+
+
+       CHECK_EXCEPTION();
+       ZEND_VM_NEXT_OPCODE();
+}
+
 static int ZEND_FASTCALL  ZEND_BW_OR_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
        USE_OPLINE
@@ -6775,6 +6791,22 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_CV_HANDLER(ZEND_OP
        ZEND_VM_NEXT_OPCODE();
 }
 
+static int ZEND_FASTCALL  ZEND_SPACESHIP_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+       USE_OPLINE
+
+       zval *result = EX_VAR(opline->result.var);
+
+       SAVE_OPLINE();
+       compare_function(result,
+               EX_CONSTANT(opline->op1),
+               _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var));
+
+
+       CHECK_EXCEPTION();
+       ZEND_VM_NEXT_OPCODE();
+}
+
 static int ZEND_FASTCALL  ZEND_BW_OR_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
        USE_OPLINE
@@ -7911,6 +7943,22 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_TMPVAR_HANDLER(ZEN
        ZEND_VM_NEXT_OPCODE();
 }
 
+static int ZEND_FASTCALL  ZEND_SPACESHIP_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+       USE_OPLINE
+       zend_free_op free_op2;
+       zval *result = EX_VAR(opline->result.var);
+
+       SAVE_OPLINE();
+       compare_function(result,
+               EX_CONSTANT(opline->op1),
+               _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2));
+
+       zval_ptr_dtor_nogc(free_op2);
+       CHECK_EXCEPTION();
+       ZEND_VM_NEXT_OPCODE();
+}
+
 static int ZEND_FASTCALL  ZEND_BW_OR_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
        USE_OPLINE
@@ -24684,6 +24732,22 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_CONST_HANDLER(ZEND_OP
        ZEND_VM_NEXT_OPCODE();
 }
 
+static int ZEND_FASTCALL  ZEND_SPACESHIP_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+       USE_OPLINE
+
+       zval *result = EX_VAR(opline->result.var);
+
+       SAVE_OPLINE();
+       compare_function(result,
+               _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var),
+               EX_CONSTANT(opline->op2));
+
+
+       CHECK_EXCEPTION();
+       ZEND_VM_NEXT_OPCODE();
+}
+
 static int ZEND_FASTCALL  ZEND_BW_OR_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
        USE_OPLINE
@@ -29052,6 +29116,22 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_CV_HANDLER(ZEND_OPCOD
        ZEND_VM_NEXT_OPCODE();
 }
 
+static int ZEND_FASTCALL  ZEND_SPACESHIP_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+       USE_OPLINE
+
+       zval *result = EX_VAR(opline->result.var);
+
+       SAVE_OPLINE();
+       compare_function(result,
+               _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var),
+               _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var));
+
+
+       CHECK_EXCEPTION();
+       ZEND_VM_NEXT_OPCODE();
+}
+
 static int ZEND_FASTCALL  ZEND_BW_OR_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
        USE_OPLINE
@@ -31084,6 +31164,22 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_TMPVAR_HANDLER(ZEND_O
        ZEND_VM_NEXT_OPCODE();
 }
 
+static int ZEND_FASTCALL  ZEND_SPACESHIP_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+       USE_OPLINE
+       zend_free_op free_op2;
+       zval *result = EX_VAR(opline->result.var);
+
+       SAVE_OPLINE();
+       compare_function(result,
+               _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var),
+               _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2));
+
+       zval_ptr_dtor_nogc(free_op2);
+       CHECK_EXCEPTION();
+       ZEND_VM_NEXT_OPCODE();
+}
+
 static int ZEND_FASTCALL  ZEND_BW_OR_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
        USE_OPLINE
@@ -33446,6 +33542,22 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CONST_HANDLER(ZEN
        ZEND_VM_NEXT_OPCODE();
 }
 
+static int ZEND_FASTCALL  ZEND_SPACESHIP_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+       USE_OPLINE
+       zend_free_op free_op1;
+       zval *result = EX_VAR(opline->result.var);
+
+       SAVE_OPLINE();
+       compare_function(result,
+               _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1),
+               EX_CONSTANT(opline->op2));
+       zval_ptr_dtor_nogc(free_op1);
+
+       CHECK_EXCEPTION();
+       ZEND_VM_NEXT_OPCODE();
+}
+
 static int ZEND_FASTCALL  ZEND_BW_OR_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
        USE_OPLINE
@@ -35255,6 +35367,22 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_CV_HANDLER(ZEND_O
        ZEND_VM_NEXT_OPCODE();
 }
 
+static int ZEND_FASTCALL  ZEND_SPACESHIP_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+       USE_OPLINE
+       zend_free_op free_op1;
+       zval *result = EX_VAR(opline->result.var);
+
+       SAVE_OPLINE();
+       compare_function(result,
+               _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1),
+               _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var));
+       zval_ptr_dtor_nogc(free_op1);
+
+       CHECK_EXCEPTION();
+       ZEND_VM_NEXT_OPCODE();
+}
+
 static int ZEND_FASTCALL  ZEND_BW_OR_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
        USE_OPLINE
@@ -35897,6 +36025,22 @@ static int ZEND_FASTCALL  ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMPVAR_TMPVAR_HANDLER(ZE
        ZEND_VM_NEXT_OPCODE();
 }
 
+static int ZEND_FASTCALL  ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+       USE_OPLINE
+       zend_free_op free_op1, free_op2;
+       zval *result = EX_VAR(opline->result.var);
+
+       SAVE_OPLINE();
+       compare_function(result,
+               _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1),
+               _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2));
+       zval_ptr_dtor_nogc(free_op1);
+       zval_ptr_dtor_nogc(free_op2);
+       CHECK_EXCEPTION();
+       ZEND_VM_NEXT_OPCODE();
+}
+
 static int ZEND_FASTCALL  ZEND_BW_OR_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
        USE_OPLINE
@@ -40620,6 +40764,31 @@ void zend_init_opcodes_handlers(void)
        ZEND_COALESCE_SPEC_CV_HANDLER,
        ZEND_COALESCE_SPEC_CV_HANDLER,
        ZEND_COALESCE_SPEC_CV_HANDLER,
+       ZEND_SPACESHIP_SPEC_CONST_CONST_HANDLER,
+       ZEND_SPACESHIP_SPEC_CONST_TMPVAR_HANDLER,
+       ZEND_SPACESHIP_SPEC_CONST_TMPVAR_HANDLER,
+       ZEND_NULL_HANDLER,
+       ZEND_SPACESHIP_SPEC_CONST_CV_HANDLER,
+       ZEND_SPACESHIP_SPEC_TMPVAR_CONST_HANDLER,
+       ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR_HANDLER,
+       ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR_HANDLER,
+       ZEND_NULL_HANDLER,
+       ZEND_SPACESHIP_SPEC_TMPVAR_CV_HANDLER,
+       ZEND_SPACESHIP_SPEC_TMPVAR_CONST_HANDLER,
+       ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR_HANDLER,
+       ZEND_SPACESHIP_SPEC_TMPVAR_TMPVAR_HANDLER,
+       ZEND_NULL_HANDLER,
+       ZEND_SPACESHIP_SPEC_TMPVAR_CV_HANDLER,
+       ZEND_NULL_HANDLER,
+       ZEND_NULL_HANDLER,
+       ZEND_NULL_HANDLER,
+       ZEND_NULL_HANDLER,
+       ZEND_NULL_HANDLER,
+       ZEND_SPACESHIP_SPEC_CV_CONST_HANDLER,
+       ZEND_SPACESHIP_SPEC_CV_TMPVAR_HANDLER,
+       ZEND_SPACESHIP_SPEC_CV_TMPVAR_HANDLER,
+       ZEND_NULL_HANDLER,
+       ZEND_SPACESHIP_SPEC_CV_CV_HANDLER,
        ZEND_NULL_HANDLER
   };
   zend_opcode_handlers = (opcode_handler_t*)labels;
index c3006e60369380a80fd0977bdac37be3509f1f82..13b5380251ce37de7f0a99be5ff97ced7a31e24a 100644 (file)
@@ -21,7 +21,7 @@
 #include <stdio.h>
 #include <zend.h>
 
-const char *zend_vm_opcodes_map[170] = {
+const char *zend_vm_opcodes_map[171] = {
        "ZEND_NOP",
        "ZEND_ADD",
        "ZEND_SUB",
@@ -192,6 +192,7 @@ const char *zend_vm_opcodes_map[170] = {
        "ZEND_ASSIGN_POW",
        "ZEND_BIND_GLOBAL",
        "ZEND_COALESCE",
+       "ZEND_SPACESHIP",
 };
 
 ZEND_API const char* zend_get_opcode_name(zend_uchar opcode) {
index f0fc7c7182ee89262e593e3cda2b616737e4620d..d823942cc9529eba5596ffcde1aa54924a9c37b2 100644 (file)
@@ -182,5 +182,6 @@ END_EXTERN_C()
 #define ZEND_ASSIGN_POW                      167
 #define ZEND_BIND_GLOBAL                     168
 #define ZEND_COALESCE                        169
+#define ZEND_SPACESHIP                       170
 
 #endif
diff --git a/tests/lang/operators/operator_spaceship_basic.phpt b/tests/lang/operators/operator_spaceship_basic.phpt
new file mode 100644 (file)
index 0000000..3dbdbb4
--- /dev/null
@@ -0,0 +1,94 @@
+--TEST--\r
+Test <=> operator : different types\r
+--FILE--\r
+<?php\r
+$valid_true = array(1, "1", "true", 1.0, array(1));\r
+$valid_false = array(0, "", 0.0, array(), NULL);\r
+\r
+$int1 = 679;\r
+$int2 = -67835;\r
+$valid_int1 = array("678", "678abc", " 678", "678  ", 678.0, 6.789E2, "+678", +678);\r
+$valid_int2 = array("-67836", "-67836abc", " -67836", "-67836  ", -67835.0001, -6.78351E4);\r
+$invalid_int1 = array(679, "679");\r
+$invalid_int2 = array(-67835, "-67835");\r
+\r
+$float1 = 57385.45835;\r
+$float2 = -67345.76567;\r
+$valid_float1 = array("57385.45834",  "57385.45834aaa", "  57385.45834", 5.738545834e4);\r
+$valid_float2 = array("-67345.76568", "-67345.76568aaa", "  -67345.76568", -6.734576568E4);\r
+$invalid_float1 = array(57385.45835, 5.738545835e4);\r
+$invalid_float2 = array(-67345.76567, -6.734576567E4);\r
+\r
+\r
+$toCompare = array(\r
+// boolean test will result in both sides being converted to boolean so !0 = true and true is not > true for example\r
+// also note that a string of "0" is converted to false but a string of "0.0" is converted to true\r
+// false cannot be tested as 0 can never be > 0 or 1\r
+  true, $valid_false, $valid_true, \r
+  $int1, $valid_int1, $invalid_int1,\r
+  $int2, $valid_int2, $invalid_int2,\r
+  $float1, $valid_float1, $invalid_float1,\r
+  $float2, $valid_float2, $invalid_float2\r
+);\r
+  \r
+$failed = false;\r
+for ($i = 0; $i < count($toCompare); $i +=3) {\r
+   $typeToTest = $toCompare[$i];\r
+   $valid_compares = $toCompare[$i + 1];\r
+   $invalid_compares = $toCompare[$i + 2];\r
+   \r
+   foreach($valid_compares as $compareVal) {\r
+      if (($typeToTest <=> $compareVal) === 1) {\r
+         // do nothing\r
+      }\r
+      else {\r
+         echo "FAILED: ('$typeToTest' <=> '$compareVal') !== 1\n";\r
+         $failed = true;\r
+      }\r
+      if (($compareVal <=> $typeToTest) === -1) {\r
+         // do nothing\r
+      }\r
+      else {\r
+         echo "FAILED: ('$compareVal' <=> '$typeToTest') !== -1\n";\r
+         $failed = true;\r
+      }\r
+      if (($compareVal <=> $compareVal) === 0) {\r
+         // do nothing\r
+      }\r
+      else {\r
+         echo "FAILED: ('$compareVal' <=> '$compareVal') !== 0\n";\r
+         $failed = true;\r
+      }\r
+   }\r
+   \r
+   foreach($invalid_compares as $compareVal) {\r
+      if (($typeToTest <=> $compareVal) === 1) {\r
+         echo "FAILED: ('$typeToTest' <=> '$compareVal') === 1\n";\r
+         $failed = true;\r
+      }\r
+      if (($compareVal <=> $typeToTest) === -1) {\r
+         echo "FAILED: ('$compareVal' <=> '$typeToTest') === -1\n";\r
+         $failed = true;\r
+      }\r
+      if (($compareVal <=> $compareVal) !== 0) {\r
+         echo "FAILED: ('$compareVal' <=> '$compareVal') !== 0\n";\r
+         $failed = true;\r
+      }\r
+   }\r
+   \r
+   if (($typeToTest <=> $typeToTest) === 0) {\r
+      // do nothing\r
+   }\r
+   else {\r
+      echo "FAILED: ('$typeToTest' <=> '$typeToTest') !== 0\n";\r
+      $failed = true;\r
+   }\r
+}\r
+if ($failed == false) {\r
+   echo "Test Passed\n";\r
+}\r
+?>\r
+===DONE===\r
+--EXPECT--\r
+Test Passed\r
+===DONE===