]> granicus.if.org Git - php/commitdiff
Regenerate
authorMatt Wilmas <mattwil@php.net>
Tue, 5 May 2009 01:44:33 +0000 (01:44 +0000)
committerMatt Wilmas <mattwil@php.net>
Tue, 5 May 2009 01:44:33 +0000 (01:44 +0000)
Zend/zend_language_scanner.c
Zend/zend_language_scanner_defs.h

index e5ed1e68b764cea44879c1a7d66aa4833cc2b8a1..d249d2205fc9798e300ec7885337a5435cc77e71 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Thu Mar 26 16:22:31 2009 */
+/* Generated by re2c 0.13.5 on Mon May 04 20:02:45 2009 */
 #line 1 "Zend/zend_language_scanner.l"
 /*
    +----------------------------------------------------------------------+
@@ -117,13 +117,19 @@ do {                                                                                                                                                      \
        } \
 }
 
+/* To save initial string length after scanning to first variable, CG(doc_comment_len) can be reused */
+#define SET_DOUBLE_QUOTES_SCANNED_LENGTH(len) CG(doc_comment_len) = (len)
+#define GET_DOUBLE_QUOTES_SCANNED_LENGTH()    CG(doc_comment_len)
+
+#define IS_LABEL_START(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || (c) == '_' || (c) >= 0x7F)
+
 #define ZEND_IS_OCT(c)  ((c)>='0' && (c)<='7')
 #define ZEND_IS_HEX(c)  (((c)>='0' && (c)<='9') || ((c)>='a' && (c)<='f') || ((c)>='A' && (c)<='F'))
 
 BEGIN_EXTERN_C()
 
 static void _yy_push_state(int new_state TSRMLS_DC)
- {
+{
        zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION(), sizeof(int));
        YYSETCONDITION(new_state);
 }
@@ -1317,52 +1323,40 @@ restart:
 yymore_restart:
 
 
-#line 1321 "Zend/zend_language_scanner.c"
+#line 1327 "Zend/zend_language_scanner.c"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
-       if (YYGETCONDITION() < 6) {
-               if (YYGETCONDITION() < 3) {
+       if (YYGETCONDITION() < 5) {
+               if (YYGETCONDITION() < 2) {
                        if (YYGETCONDITION() < 1) {
                                goto yyc_ST_IN_SCRIPTING;
                        } else {
-                               if (YYGETCONDITION() < 2) {
-                                       goto yyc_ST_LOOKING_FOR_PROPERTY;
-                               } else {
-                                       goto yyc_ST_BACKQUOTE;
-                               }
+                               goto yyc_ST_LOOKING_FOR_PROPERTY;
                        }
                } else {
-                       if (YYGETCONDITION() < 4) {
-                               goto yyc_ST_DOUBLE_QUOTES;
+                       if (YYGETCONDITION() < 3) {
+                               goto yyc_ST_BACKQUOTE;
                        } else {
-                               if (YYGETCONDITION() < 5) {
-                                       goto yyc_ST_HEREDOC;
+                               if (YYGETCONDITION() < 4) {
+                                       goto yyc_ST_DOUBLE_QUOTES;
                                } else {
-                                       goto yyc_ST_LOOKING_FOR_VARNAME;
+                                       goto yyc_ST_HEREDOC;
                                }
                        }
                }
        } else {
-               if (YYGETCONDITION() < 9) {
-                       if (YYGETCONDITION() < 7) {
-                               goto yyc_ST_VAR_OFFSET;
+               if (YYGETCONDITION() < 7) {
+                       if (YYGETCONDITION() < 6) {
+                               goto yyc_ST_LOOKING_FOR_VARNAME;
                        } else {
-                               if (YYGETCONDITION() < 8) {
-                                       goto yyc_INITIAL;
-                               } else {
-                                       goto yyc_ST_ONE_LINE_COMMENT;
-                               }
+                               goto yyc_ST_VAR_OFFSET;
                        }
                } else {
-                       if (YYGETCONDITION() < 11) {
-                               if (YYGETCONDITION() < 10) {
-                                       goto yyc_ST_COMMENT;
-                               } else {
-                                       goto yyc_ST_DOC_COMMENT;
-                               }
+                       if (YYGETCONDITION() < 8) {
+                               goto yyc_INITIAL;
                        } else {
-                               if (YYGETCONDITION() < 12) {
+                               if (YYGETCONDITION() < 9) {
                                        goto yyc_ST_END_HEREDOC;
                                } else {
                                        goto yyc_ST_NOWDOC;
@@ -1411,84 +1405,92 @@ yyc_INITIAL:
                YYDEBUG(0, *YYCURSOR);
                YYFILL(8);
                yych = *YYCURSOR;
-               if (yych <= 0x00) goto yy2;
-               if (yych == '<') goto yy4;
-               goto yy6;
-yy2:
+               if (yych != '<') goto yy4;
                YYDEBUG(2, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(3, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2620 "Zend/zend_language_scanner.l"
-               { return 0; }
-#line 1425 "Zend/zend_language_scanner.c"
-yy4:
-               YYDEBUG(4, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= '?') {
-                       if (yych == '%') goto yy9;
-                       if (yych >= '?') goto yy7;
+                       if (yych == '%') goto yy7;
+                       if (yych >= '?') goto yy5;
                } else {
                        if (yych <= 'S') {
-                               if (yych >= 'S') goto yy11;
+                               if (yych >= 'S') goto yy9;
                        } else {
-                               if (yych == 's') goto yy11;
+                               if (yych == 's') goto yy9;
                        }
                }
-yy5:
-               YYDEBUG(5, *YYCURSOR);
+yy3:
+               YYDEBUG(3, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2109 "Zend/zend_language_scanner.l"
+#line 2068 "Zend/zend_language_scanner.l"
                {
+       if (YYCURSOR > YYLIMIT) {
+               return 0;
+       }
 
 inline_char_handler:
 
        while (1) {
                YYCTYPE *ptr = memchr(YYCURSOR, '<', YYLIMIT - YYCURSOR);
 
-               if (ptr == NULL) {
-                       YYCURSOR = YYLIMIT;
-                       yyleng   = YYCURSOR - SCNG(yy_text);
-                       break;
-
-               } else {
-                       YYCURSOR = ptr + 1;
+               YYCURSOR = ptr ? ptr + 1 : YYLIMIT;
 
-                       /* stop if it may be an opening tag (<?, <%, <script>). this condition is not optimal though */
-                       if (YYCURSOR < YYLIMIT && (*YYCURSOR == '?' || *YYCURSOR == '%' || *YYCURSOR == 's')) {
-                               --YYCURSOR;
-                               yyleng = YYCURSOR - SCNG(yy_text);
-                               break;
+               if (YYCURSOR < YYLIMIT) {
+                       switch (*YYCURSOR) {
+                               case '?':
+                                       if (CG(short_tags) || !strncasecmp(YYCURSOR + 1, "php", 3)) { /* Assume [ \t\n\r] follows "php" */
+                                               break;
+                                       }
+                                       continue;
+                               case '%':
+                                       if (CG(asp_tags)) {
+                                               break;
+                                       }
+                                       continue;
+                               case 's':
+                               case 'S':
+                                       /* Probably NOT an opening PHP <script> tag, so don't end the HTML chunk yet
+                                        * If it is, the PHP <script> tag rule checks for any HTML scanned before it */
+                                       YYCURSOR--;
+                                       yymore();
+                               default:
+                                       continue;
                        }
+
+                       YYCURSOR--;
                }
+
+               break;
        }
 
+inline_html:
+       yyleng = YYCURSOR - SCNG(yy_text);
+
        Z_STRVAL_P(zendlval) = (char *) estrndup(yytext, yyleng);
        Z_STRLEN_P(zendlval) = yyleng;
        Z_TYPE_P(zendlval) = IS_STRING;
        HANDLE_NEWLINES(yytext, yyleng);
        return T_INLINE_HTML;
 }
-#line 1474 "Zend/zend_language_scanner.c"
-yy6:
-               YYDEBUG(6, *YYCURSOR);
+#line 1476 "Zend/zend_language_scanner.c"
+yy4:
+               YYDEBUG(4, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy5;
-yy7:
-               YYDEBUG(7, *YYCURSOR);
+               goto yy3;
+yy5:
+               YYDEBUG(5, *YYCURSOR);
                yyaccept = 1;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= 'O') {
-                       if (yych == '=') goto yy47;
+                       if (yych == '=') goto yy45;
                } else {
-                       if (yych <= 'P') goto yy49;
-                       if (yych == 'p') goto yy49;
+                       if (yych <= 'P') goto yy47;
+                       if (yych == 'p') goto yy47;
                }
-yy8:
-               YYDEBUG(8, *YYCURSOR);
+yy6:
+               YYDEBUG(6, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2097 "Zend/zend_language_scanner.l"
+#line 2056 "Zend/zend_language_scanner.l"
                {
        if (CG(short_tags)) {
                Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1500,14 +1502,14 @@ yy8:
                goto inline_char_handler;
        }
 }
-#line 1504 "Zend/zend_language_scanner.c"
-yy9:
-               YYDEBUG(9, *YYCURSOR);
+#line 1506 "Zend/zend_language_scanner.c"
+yy7:
+               YYDEBUG(7, *YYCURSOR);
                ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '=') goto yy45;
-               YYDEBUG(10, *YYCURSOR);
+               if ((yych = *YYCURSOR) == '=') goto yy43;
+               YYDEBUG(8, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2074 "Zend/zend_language_scanner.l"
+#line 2033 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1519,194 +1521,202 @@ yy9:
                goto inline_char_handler;
        }
 }
-#line 1523 "Zend/zend_language_scanner.c"
-yy11:
-               YYDEBUG(11, *YYCURSOR);
+#line 1525 "Zend/zend_language_scanner.c"
+yy9:
+               YYDEBUG(9, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy13;
-               if (yych == 'c') goto yy13;
-yy12:
-               YYDEBUG(12, *YYCURSOR);
+               if (yych == 'C') goto yy11;
+               if (yych == 'c') goto yy11;
+yy10:
+               YYDEBUG(10, *YYCURSOR);
                YYCURSOR = YYMARKER;
                if (yyaccept <= 0) {
-                       goto yy5;
+                       goto yy3;
                } else {
-                       goto yy8;
+                       goto yy6;
                }
+yy11:
+               YYDEBUG(11, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'R') goto yy12;
+               if (yych != 'r') goto yy10;
+yy12:
+               YYDEBUG(12, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'I') goto yy13;
+               if (yych != 'i') goto yy10;
 yy13:
                YYDEBUG(13, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy14;
-               if (yych != 'r') goto yy12;
+               if (yych == 'P') goto yy14;
+               if (yych != 'p') goto yy10;
 yy14:
                YYDEBUG(14, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy15;
-               if (yych != 'i') goto yy12;
+               if (yych == 'T') goto yy15;
+               if (yych != 't') goto yy10;
 yy15:
                YYDEBUG(15, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'P') goto yy16;
-               if (yych != 'p') goto yy12;
+               if (yych == 'L') goto yy10;
+               if (yych == 'l') goto yy10;
+               goto yy17;
 yy16:
                YYDEBUG(16, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy17;
-               if (yych != 't') goto yy12;
+               ++YYCURSOR;
+               YYFILL(8);
+               yych = *YYCURSOR;
 yy17:
                YYDEBUG(17, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy12;
-               if (yych == 'l') goto yy12;
-               goto yy19;
+               if (yybm[0+yych] & 128) {
+                       goto yy16;
+               }
+               if (yych == 'L') goto yy18;
+               if (yych != 'l') goto yy10;
 yy18:
                YYDEBUG(18, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(8);
-               yych = *YYCURSOR;
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy19;
+               if (yych != 'a') goto yy10;
 yy19:
                YYDEBUG(19, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy18;
-               }
-               if (yych == 'L') goto yy20;
-               if (yych != 'l') goto yy12;
+               yych = *++YYCURSOR;
+               if (yych == 'N') goto yy20;
+               if (yych != 'n') goto yy10;
 yy20:
                YYDEBUG(20, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy21;
-               if (yych != 'a') goto yy12;
+               if (yych == 'G') goto yy21;
+               if (yych != 'g') goto yy10;
 yy21:
                YYDEBUG(21, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy22;
-               if (yych != 'n') goto yy12;
+               if (yych == 'U') goto yy22;
+               if (yych != 'u') goto yy10;
 yy22:
                YYDEBUG(22, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'G') goto yy23;
-               if (yych != 'g') goto yy12;
+               if (yych == 'A') goto yy23;
+               if (yych != 'a') goto yy10;
 yy23:
                YYDEBUG(23, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'U') goto yy24;
-               if (yych != 'u') goto yy12;
+               if (yych == 'G') goto yy24;
+               if (yych != 'g') goto yy10;
 yy24:
                YYDEBUG(24, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy25;
-               if (yych != 'a') goto yy12;
+               if (yych == 'E') goto yy25;
+               if (yych != 'e') goto yy10;
 yy25:
                YYDEBUG(25, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'G') goto yy26;
-               if (yych != 'g') goto yy12;
-yy26:
-               YYDEBUG(26, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy27;
-               if (yych != 'e') goto yy12;
-yy27:
-               YYDEBUG(27, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(28, *YYCURSOR);
+               YYDEBUG(26, *YYCURSOR);
                if (yych <= '\r') {
-                       if (yych <= 0x08) goto yy12;
-                       if (yych <= '\n') goto yy27;
-                       if (yych <= '\f') goto yy12;
-                       goto yy27;
+                       if (yych <= 0x08) goto yy10;
+                       if (yych <= '\n') goto yy25;
+                       if (yych <= '\f') goto yy10;
+                       goto yy25;
                } else {
                        if (yych <= ' ') {
-                               if (yych <= 0x1F) goto yy12;
-                               goto yy27;
+                               if (yych <= 0x1F) goto yy10;
+                               goto yy25;
                        } else {
-                               if (yych != '=') goto yy12;
+                               if (yych != '=') goto yy10;
                        }
                }
-yy29:
-               YYDEBUG(29, *YYCURSOR);
+yy27:
+               YYDEBUG(27, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(5);
                yych = *YYCURSOR;
-               YYDEBUG(30, *YYCURSOR);
+               YYDEBUG(28, *YYCURSOR);
                if (yych <= '!') {
                        if (yych <= '\f') {
-                               if (yych <= 0x08) goto yy12;
-                               if (yych <= '\n') goto yy29;
-                               goto yy12;
+                               if (yych <= 0x08) goto yy10;
+                               if (yych <= '\n') goto yy27;
+                               goto yy10;
                        } else {
-                               if (yych <= '\r') goto yy29;
-                               if (yych == ' ') goto yy29;
-                               goto yy12;
+                               if (yych <= '\r') goto yy27;
+                               if (yych == ' ') goto yy27;
+                               goto yy10;
                        }
                } else {
                        if (yych <= 'O') {
-                               if (yych <= '"') goto yy32;
-                               if (yych == '\'') goto yy33;
-                               goto yy12;
+                               if (yych <= '"') goto yy30;
+                               if (yych == '\'') goto yy31;
+                               goto yy10;
                        } else {
-                               if (yych <= 'P') goto yy31;
-                               if (yych != 'p') goto yy12;
+                               if (yych <= 'P') goto yy29;
+                               if (yych != 'p') goto yy10;
                        }
                }
+yy29:
+               YYDEBUG(29, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'H') goto yy42;
+               if (yych == 'h') goto yy42;
+               goto yy10;
+yy30:
+               YYDEBUG(30, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'P') goto yy39;
+               if (yych == 'p') goto yy39;
+               goto yy10;
 yy31:
                YYDEBUG(31, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy44;
-               if (yych == 'h') goto yy44;
-               goto yy12;
+               if (yych == 'P') goto yy32;
+               if (yych != 'p') goto yy10;
 yy32:
                YYDEBUG(32, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'P') goto yy41;
-               if (yych == 'p') goto yy41;
-               goto yy12;
+               if (yych == 'H') goto yy33;
+               if (yych != 'h') goto yy10;
 yy33:
                YYDEBUG(33, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych == 'P') goto yy34;
-               if (yych != 'p') goto yy12;
+               if (yych != 'p') goto yy10;
 yy34:
                YYDEBUG(34, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy35;
-               if (yych != 'h') goto yy12;
+               if (yych != '\'') goto yy10;
 yy35:
                YYDEBUG(35, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'P') goto yy36;
-               if (yych != 'p') goto yy12;
-yy36:
-               YYDEBUG(36, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '\'') goto yy12;
-yy37:
-               YYDEBUG(37, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(38, *YYCURSOR);
+               YYDEBUG(36, *YYCURSOR);
                if (yych <= '\r') {
-                       if (yych <= 0x08) goto yy12;
-                       if (yych <= '\n') goto yy37;
-                       if (yych <= '\f') goto yy12;
-                       goto yy37;
+                       if (yych <= 0x08) goto yy10;
+                       if (yych <= '\n') goto yy35;
+                       if (yych <= '\f') goto yy10;
+                       goto yy35;
                } else {
                        if (yych <= ' ') {
-                               if (yych <= 0x1F) goto yy12;
-                               goto yy37;
+                               if (yych <= 0x1F) goto yy10;
+                               goto yy35;
                        } else {
-                               if (yych != '>') goto yy12;
+                               if (yych != '>') goto yy10;
                        }
                }
-               YYDEBUG(39, *YYCURSOR);
+               YYDEBUG(37, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(40, *YYCURSOR);
+               YYDEBUG(38, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2039 "Zend/zend_language_scanner.l"
+#line 1990 "Zend/zend_language_scanner.l"
                {
+       YYCTYPE *bracket = zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1));
+
+       if (bracket != SCNG(yy_text)) {
+               /* Handle previously scanned HTML, as possible <script> tags found are assumed to not be PHP's */
+               YYCURSOR = bracket;
+               goto inline_html;
+       }
+
        HANDLE_NEWLINES(yytext, yyleng);
        Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
        Z_STRLEN_P(zendlval) = yyleng;
@@ -1714,34 +1724,34 @@ yy37:
        BEGIN(ST_IN_SCRIPTING);
        return T_OPEN_TAG;
 }
-#line 1718 "Zend/zend_language_scanner.c"
+#line 1728 "Zend/zend_language_scanner.c"
+yy39:
+               YYDEBUG(39, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'H') goto yy40;
+               if (yych != 'h') goto yy10;
+yy40:
+               YYDEBUG(40, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'P') goto yy41;
+               if (yych != 'p') goto yy10;
 yy41:
                YYDEBUG(41, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy42;
-               if (yych != 'h') goto yy12;
+               if (yych == '"') goto yy35;
+               goto yy10;
 yy42:
                YYDEBUG(42, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'P') goto yy43;
-               if (yych != 'p') goto yy12;
+               if (yych == 'P') goto yy35;
+               if (yych == 'p') goto yy35;
+               goto yy10;
 yy43:
                YYDEBUG(43, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '"') goto yy37;
-               goto yy12;
-yy44:
-               YYDEBUG(44, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'P') goto yy37;
-               if (yych == 'p') goto yy37;
-               goto yy12;
-yy45:
-               YYDEBUG(45, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(46, *YYCURSOR);
+               YYDEBUG(44, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2048 "Zend/zend_language_scanner.l"
+#line 2007 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1753,13 +1763,13 @@ yy45:
                goto inline_char_handler;
        }
 }
-#line 1757 "Zend/zend_language_scanner.c"
-yy47:
-               YYDEBUG(47, *YYCURSOR);
+#line 1767 "Zend/zend_language_scanner.c"
+yy45:
+               YYDEBUG(45, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(48, *YYCURSOR);
+               YYDEBUG(46, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2061 "Zend/zend_language_scanner.l"
+#line 2020 "Zend/zend_language_scanner.l"
                {
        if (CG(short_tags)) {
                Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
@@ -1771,34 +1781,34 @@ yy47:
                goto inline_char_handler;
        }
 }
-#line 1775 "Zend/zend_language_scanner.c"
-yy49:
-               YYDEBUG(49, *YYCURSOR);
+#line 1785 "Zend/zend_language_scanner.c"
+yy47:
+               YYDEBUG(47, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy50;
-               if (yych != 'h') goto yy12;
-yy50:
-               YYDEBUG(50, *YYCURSOR);
+               if (yych == 'H') goto yy48;
+               if (yych != 'h') goto yy10;
+yy48:
+               YYDEBUG(48, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'P') goto yy51;
-               if (yych != 'p') goto yy12;
-yy51:
-               YYDEBUG(51, *YYCURSOR);
+               if (yych == 'P') goto yy49;
+               if (yych != 'p') goto yy10;
+yy49:
+               YYDEBUG(49, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= '\f') {
-                       if (yych <= 0x08) goto yy12;
-                       if (yych >= '\v') goto yy12;
+                       if (yych <= 0x08) goto yy10;
+                       if (yych >= '\v') goto yy10;
                } else {
-                       if (yych <= '\r') goto yy54;
-                       if (yych != ' ') goto yy12;
+                       if (yych <= '\r') goto yy52;
+                       if (yych != ' ') goto yy10;
                }
-yy52:
-               YYDEBUG(52, *YYCURSOR);
+yy50:
+               YYDEBUG(50, *YYCURSOR);
                ++YYCURSOR;
-yy53:
-               YYDEBUG(53, *YYCURSOR);
+yy51:
+               YYDEBUG(51, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2087 "Zend/zend_language_scanner.l"
+#line 2046 "Zend/zend_language_scanner.l"
                {
        Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
        Z_STRLEN_P(zendlval) = yyleng;
@@ -1807,79 +1817,115 @@ yy53:
        BEGIN(ST_IN_SCRIPTING);
        return T_OPEN_TAG;
 }
-#line 1811 "Zend/zend_language_scanner.c"
-yy54:
-               YYDEBUG(54, *YYCURSOR);
+#line 1821 "Zend/zend_language_scanner.c"
+yy52:
+               YYDEBUG(52, *YYCURSOR);
                ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '\n') goto yy52;
-               goto yy53;
+               if ((yych = *YYCURSOR) == '\n') goto yy50;
+               goto yy51;
        }
 /* *********************************** */
 yyc_ST_BACKQUOTE:
        {
                static const unsigned char yybm[] = {
-                        16,  16,  16,  16,  16,  16,  16,  16
-                        16,  16,  16,  16,  16,  16,  16,  16
-                        16,  16,  16,  16,  16,  16,  16,  16
-                        16,  16,  16,  16,  16,  16,  16,  16
-                        16,  16,  16,  16,  32,  16,  16,  16
-                        16,  16,  16,  16,  16,  16,  16,  16
-                       144, 144, 144, 144, 144, 144, 144, 144
-                       144, 144,  16,  16,  16,  16,  16,  16
-                        16, 144, 144, 144, 144, 144, 144, 144
-                       144, 144, 144, 144, 144, 144, 144, 144
-                       144, 144, 144, 144, 144, 144, 144, 144
-                       144, 144, 144,  16,   0,  16,  16, 144
-                         0, 144, 144, 144, 144, 144, 144, 144
-                       144, 144, 144, 144, 144, 144, 144, 144
-                       144, 144, 144, 144, 144, 144, 144, 144
-                       144, 144, 144,  64,  16,  16,  16, 144
-                       144, 144, 144, 144, 144, 144, 144, 144
-                       144, 144, 144, 144, 144, 144, 144, 144
-                       144, 144, 144, 144, 144, 144, 144, 144
-                       144, 144, 144, 144, 144, 144, 144, 144
-                       144, 144, 144, 144, 144, 144, 144, 144
-                       144, 144, 144, 144, 144, 144, 144, 144
-                       144, 144, 144, 144, 144, 144, 144, 144
-                       144, 144, 144, 144, 144, 144, 144, 144
-                       144, 144, 144, 144, 144, 144, 144, 144
-                       144, 144, 144, 144, 144, 144, 144, 144
-                       144, 144, 144, 144, 144, 144, 144, 144
-                       144, 144, 144, 144, 144, 144, 144, 144
-                       144, 144, 144, 144, 144, 144, 144, 144
-                       144, 144, 144, 144, 144, 144, 144, 144
-                       144, 144, 144, 144, 144, 144, 144, 144
-                       144, 144, 144, 144, 144, 144, 144, 144
+                         0,   0,   0,   0,   0,   0,   0,   0
+                         0,   0,   0,   0,   0,   0,   0,   0
+                         0,   0,   0,   0,   0,   0,   0,   0
+                         0,   0,   0,   0,   0,   0,   0,   0
+                         0,   0,   0,   0,   0,   0,   0,   0
+                         0,   0,   0,   0,   0,   0,   0,   0
+                       128, 128, 128, 128, 128, 128, 128, 128
+                       128, 128,   0,   0,   0,   0,   0,   0
+                         0, 128, 128, 128, 128, 128, 128, 128
+                       128, 128, 128, 128, 128, 128, 128, 128
+                       128, 128, 128, 128, 128, 128, 128, 128
+                       128, 128, 128,   0,   0,   0,   0, 128
+                         0, 128, 128, 128, 128, 128, 128, 128
+                       128, 128, 128, 128, 128, 128, 128, 128
+                       128, 128, 128, 128, 128, 128, 128, 128
+                       128, 128, 128,   0,   0,   0,   0, 128
+                       128, 128, 128, 128, 128, 128, 128, 128
+                       128, 128, 128, 128, 128, 128, 128, 128
+                       128, 128, 128, 128, 128, 128, 128, 128
+                       128, 128, 128, 128, 128, 128, 128, 128
+                       128, 128, 128, 128, 128, 128, 128, 128
+                       128, 128, 128, 128, 128, 128, 128, 128
+                       128, 128, 128, 128, 128, 128, 128, 128
+                       128, 128, 128, 128, 128, 128, 128, 128
+                       128, 128, 128, 128, 128, 128, 128, 128
+                       128, 128, 128, 128, 128, 128, 128, 128
+                       128, 128, 128, 128, 128, 128, 128, 128
+                       128, 128, 128, 128, 128, 128, 128, 128
+                       128, 128, 128, 128, 128, 128, 128, 128
+                       128, 128, 128, 128, 128, 128, 128, 128
+                       128, 128, 128, 128, 128, 128, 128, 128
+                       128, 128, 128, 128, 128, 128, 128, 128
                };
-               YYDEBUG(55, *YYCURSOR);
+               YYDEBUG(53, *YYCURSOR);
                YYFILL(2);
                yych = *YYCURSOR;
-               if (yych <= '\\') {
-                       if (yych <= '#') {
-                               if (yych >= 0x01) goto yy62;
-                       } else {
-                               if (yych <= '$') goto yy59;
-                               if (yych <= '[') goto yy62;
-                               goto yy64;
-                       }
+               if (yych <= '_') {
+                       if (yych != '$') goto yy60;
                } else {
-                       if (yych <= '`') {
-                               if (yych <= '_') goto yy62;
-                               goto yy66;
+                       if (yych <= '`') goto yy58;
+                       if (yych == '{') goto yy57;
+                       goto yy60;
+               }
+               YYDEBUG(55, *YYCURSOR);
+               ++YYCURSOR;
+               if ((yych = *YYCURSOR) <= '_') {
+                       if (yych <= '@') goto yy56;
+                       if (yych <= 'Z') goto yy63;
+                       if (yych >= '_') goto yy63;
+               } else {
+                       if (yych <= 'z') {
+                               if (yych >= 'a') goto yy63;
                        } else {
-                               if (yych == '{') goto yy60;
-                               goto yy62;
+                               if (yych <= '{') goto yy66;
+                               if (yych >= 0x7F) goto yy63;
                        }
                }
-               YYDEBUG(57, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               goto yy63;
-yy58:
-               YYDEBUG(58, *YYCURSOR);
+yy56:
+               YYDEBUG(56, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2518 "Zend/zend_language_scanner.l"
+#line 2510 "Zend/zend_language_scanner.l"
                {
+       if (YYCURSOR > YYLIMIT) {
+               return 0;
+       }
+       if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
+               YYCURSOR++;
+       }
+
+       while (YYCURSOR < YYLIMIT) {
+               switch (*YYCURSOR++) {
+                       case '`':
+                               break;
+                       case '$':
+                               if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
+                                       break;
+                               }
+                               continue;
+                       case '{':
+                               if (*YYCURSOR == '$') {
+                                       break;
+                               }
+                               continue;
+                       case '\\':
+                               if (YYCURSOR < YYLIMIT) {
+                                       YYCURSOR++;
+                               }
+                               /* fall through */
+                       default:
+                               continue;
+               }
+
+               YYCURSOR--;
+               break;
+       }
+
+       yyleng = YYCURSOR - SCNG(yy_text);
+
        if (CG(literal_type) == IS_UNICODE) {
                return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0x60 /*'`'*/, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
        } else {
@@ -1887,217 +1933,56 @@ yy58:
                return T_ENCAPSED_AND_WHITESPACE;
        }
 }
-#line 1891 "Zend/zend_language_scanner.c"
-yy59:
-               YYDEBUG(59, *YYCURSOR);
+#line 1937 "Zend/zend_language_scanner.c"
+yy57:
+               YYDEBUG(57, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yybm[0+yych] & 32) {
-                       goto yy71;
-               }
-               if (yych <= '^') {
-                       if (yych <= 'Z') {
-                               if (yych <= '@') goto yy62;
-                               goto yy77;
-                       } else {
-                               if (yych == '\\') goto yy70;
-                               goto yy62;
-                       }
-               } else {
-                       if (yych <= 'z') {
-                               if (yych == '`') goto yy74;
-                               goto yy77;
-                       } else {
-                               if (yych <= '{') goto yy80;
-                               if (yych <= '~') goto yy62;
-                               goto yy77;
-                       }
-               }
+               if (yych == '$') goto yy61;
+               goto yy56;
+yy58:
+               YYDEBUG(58, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(59, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 2450 "Zend/zend_language_scanner.l"
+               {
+       BEGIN(ST_IN_SCRIPTING);
+       return '`';
+}
+#line 1953 "Zend/zend_language_scanner.c"
 yy60:
                YYDEBUG(60, *YYCURSOR);
-               yyaccept = 1;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yybm[0+yych] & 64) {
-                       goto yy75;
-               }
-               if (yych == '$') goto yy61;
-               if (yych == '`') goto yy74;
-               goto yy63;
+               yych = *++YYCURSOR;
+               goto yy56;
 yy61:
                YYDEBUG(61, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(62, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2484 "Zend/zend_language_scanner.l"
+#line 2437 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
+       yyless(1);
        return T_CURLY_OPEN;
 }
-#line 1935 "Zend/zend_language_scanner.c"
-yy62:
-               YYDEBUG(62, *YYCURSOR);
+#line 1970 "Zend/zend_language_scanner.c"
+yy63:
+               YYDEBUG(63, *YYCURSOR);
                yyaccept = 0;
                YYMARKER = ++YYCURSOR;
-               YYFILL(1);
+               YYFILL(3);
                yych = *YYCURSOR;
-yy63:
-               YYDEBUG(63, *YYCURSOR);
-               if (yybm[0+yych] & 16) {
-                       goto yy62;
-               }
-               if (yych <= '[') goto yy69;
-               if (yych <= '\\') goto yy64;
-               if (yych <= 'z') goto yy58;
-               goto yy68;
-yy64:
                YYDEBUG(64, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yych >= 0x01) goto yy62;
-yy65:
-               YYDEBUG(65, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               if (yyaccept <= 1) {
-                       if (yyaccept <= 0) {
-                               goto yy58;
-                       } else {
-                               goto yy61;
-                       }
-               } else {
-                       if (yyaccept <= 2) {
-                               goto yy73;
-                       } else {
-                               goto yy79;
-                       }
-               }
-yy66:
-               YYDEBUG(66, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(67, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2615 "Zend/zend_language_scanner.l"
-               {
-       BEGIN(ST_IN_SCRIPTING);
-       return '`';
-}
-#line 1983 "Zend/zend_language_scanner.c"
-yy68:
-               YYDEBUG(68, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy62;
-               }
-               if (yych <= '[') goto yy65;
-               if (yych <= '\\') goto yy64;
-               if (yych <= 'z') goto yy74;
-               goto yy75;
-yy69:
-               YYDEBUG(69, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 32) {
-                       goto yy71;
-               }
-               if (yych <= '^') {
-                       if (yych <= 'Z') {
-                               if (yych <= '@') goto yy62;
-                               goto yy65;
-                       } else {
-                               if (yych != '\\') goto yy62;
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych <= '_') goto yy65;
-                               goto yy74;
-                       } else {
-                               if (yych <= '{') goto yy65;
-                               if (yych <= '~') goto yy62;
-                               goto yy65;
-                       }
-               }
-yy70:
-               YYDEBUG(70, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yych <= 0x00) goto yy65;
-               goto yy62;
-yy71:
-               YYDEBUG(71, *YYCURSOR);
-               yyaccept = 2;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(72, *YYCURSOR);
-               if (yybm[0+yych] & 32) {
-                       goto yy71;
-               }
-               if (yych <= '^') {
-                       if (yych <= 'Z') {
-                               if (yych <= '@') goto yy62;
-                       } else {
-                               if (yych == '\\') goto yy70;
-                               goto yy62;
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych >= '`') goto yy74;
-                       } else {
-                               if (yych <= '{') goto yy73;
-                               if (yych <= '~') goto yy62;
-                       }
-               }
-yy73:
-               YYDEBUG(73, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2527 "Zend/zend_language_scanner.l"
-               {
-       yyless(yyleng - 1);
-
-       if (CG(literal_type) == IS_UNICODE) {
-               return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0x60 /*'`'*/, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
-       } else {
-               zend_scan_binary_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC);
-               return T_ENCAPSED_AND_WHITESPACE;
-       }
-}
-#line 2067 "Zend/zend_language_scanner.c"
-yy74:
-               YYDEBUG(74, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy73;
-yy75:
-               YYDEBUG(75, *YYCURSOR);
-               yyaccept = 2;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(76, *YYCURSOR);
-               if (yybm[0+yych] & 16) {
-                       goto yy62;
-               }
-               if (yych <= '[') goto yy73;
-               if (yych <= '\\') goto yy64;
-               if (yych <= 'z') goto yy74;
-               goto yy75;
-yy77:
-               YYDEBUG(77, *YYCURSOR);
-               yyaccept = 3;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(3);
-               yych = *YYCURSOR;
-               YYDEBUG(78, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy77;
+                       goto yy63;
                }
-               if (yych == '-') goto yy82;
-               if (yych == '[') goto yy83;
-yy79:
-               YYDEBUG(79, *YYCURSOR);
+               if (yych == '-') goto yy68;
+               if (yych == '[') goto yy70;
+yy65:
+               YYDEBUG(65, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2171 "Zend/zend_language_scanner.l"
+#line 2149 "Zend/zend_language_scanner.l"
                {
        if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), IS_UNICODE, SCNG(output_conv) TSRMLS_CC)) {
                return 0;
@@ -2107,29 +1992,32 @@ yy79:
        }
        return T_VARIABLE;
 }
-#line 2111 "Zend/zend_language_scanner.c"
-yy80:
-               YYDEBUG(80, *YYCURSOR);
+#line 1996 "Zend/zend_language_scanner.c"
+yy66:
+               YYDEBUG(66, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(81, *YYCURSOR);
+               YYDEBUG(67, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1822 "Zend/zend_language_scanner.l"
+#line 1773 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 2122 "Zend/zend_language_scanner.c"
-yy82:
-               YYDEBUG(82, *YYCURSOR);
+#line 2007 "Zend/zend_language_scanner.c"
+yy68:
+               YYDEBUG(68, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '>') goto yy85;
+               if (yych == '>') goto yy72;
+yy69:
+               YYDEBUG(69, *YYCURSOR);
+               YYCURSOR = YYMARKER;
                goto yy65;
-yy83:
-               YYDEBUG(83, *YYCURSOR);
+yy70:
+               YYDEBUG(70, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(84, *YYCURSOR);
+               YYDEBUG(71, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2158 "Zend/zend_language_scanner.l"
+#line 2136 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -2142,25 +2030,25 @@ yy83:
        }
        return T_VARIABLE;
 }
-#line 2146 "Zend/zend_language_scanner.c"
-yy85:
-               YYDEBUG(85, *YYCURSOR);
+#line 2034 "Zend/zend_language_scanner.c"
+yy72:
+               YYDEBUG(72, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= '_') {
-                       if (yych <= '@') goto yy65;
-                       if (yych <= 'Z') goto yy86;
-                       if (yych <= '^') goto yy65;
+                       if (yych <= '@') goto yy69;
+                       if (yych <= 'Z') goto yy73;
+                       if (yych <= '^') goto yy69;
                } else {
-                       if (yych <= '`') goto yy65;
-                       if (yych <= 'z') goto yy86;
-                       if (yych <= '~') goto yy65;
+                       if (yych <= '`') goto yy69;
+                       if (yych <= 'z') goto yy73;
+                       if (yych <= '~') goto yy69;
                }
-yy86:
-               YYDEBUG(86, *YYCURSOR);
+yy73:
+               YYDEBUG(73, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(87, *YYCURSOR);
+               YYDEBUG(74, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2143 "Zend/zend_language_scanner.l"
+#line 2121 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -2173,28 +2061,28 @@ yy86:
        }
        return T_VARIABLE;
 }
-#line 2177 "Zend/zend_language_scanner.c"
+#line 2065 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
-yyc_ST_COMMENT:
+yyc_ST_DOUBLE_QUOTES:
        {
                static const unsigned char yybm[] = {
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128,   0,   0,   0,   0,   0,   0, 
+                         0, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128,   0,   0,   0,   0, 128, 
+                         0, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128,   0, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128,   0,   0,   0,   0, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
@@ -2212,86 +2100,260 @@ yyc_ST_COMMENT:
                        128, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
                };
-               YYDEBUG(88, *YYCURSOR);
+               YYDEBUG(75, *YYCURSOR);
                YYFILL(2);
                yych = *YYCURSOR;
-               if (yych <= 0x00) goto yy90;
-               if (yych == '*') goto yy95;
-               goto yy92;
-yy90:
-               YYDEBUG(90, *YYCURSOR);
+               if (yych <= '#') {
+                       if (yych == '"') goto yy80;
+                       goto yy82;
+               } else {
+                       if (yych <= '$') goto yy77;
+                       if (yych == '{') goto yy79;
+                       goto yy82;
+               }
+yy77:
+               YYDEBUG(77, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 128) {
-                       goto yy92;
+               if ((yych = *YYCURSOR) <= '_') {
+                       if (yych <= '@') goto yy78;
+                       if (yych <= 'Z') goto yy85;
+                       if (yych >= '_') goto yy85;
+               } else {
+                       if (yych <= 'z') {
+                               if (yych >= 'a') goto yy85;
+                       } else {
+                               if (yych <= '{') goto yy88;
+                               if (yych >= 0x7F) goto yy85;
+                       }
                }
-               YYDEBUG(91, *YYCURSOR);
+yy78:
+               YYDEBUG(78, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2272 "Zend/zend_language_scanner.l"
+#line 2456 "Zend/zend_language_scanner.l"
                {
-       zend_error(E_COMPILE_WARNING, "Unterminated comment starting line %d", CG(zend_lineno));
-       return 0;
+       if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
+               YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
+               SET_DOUBLE_QUOTES_SCANNED_LENGTH(0);
+
+               goto double_quotes_scan_done;
+       }
+
+       if (YYCURSOR > YYLIMIT) {
+               return 0;
+       }
+       if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
+               YYCURSOR++;
+       }
+
+       while (YYCURSOR < YYLIMIT) {
+               switch (*YYCURSOR++) {
+                       case '"':
+                               break;
+                       case '$':
+                               if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
+                                       break;
+                               }
+                               continue;
+                       case '{':
+                               if (*YYCURSOR == '$') {
+                                       break;
+                               }
+                               continue;
+                       case '\\':
+                               if (YYCURSOR < YYLIMIT) {
+                                       YYCURSOR++;
+                               }
+                               /* fall through */
+                       default:
+                               continue;
+               }
+
+               YYCURSOR--;
+               break;
+       }
+
+double_quotes_scan_done:
+       yyleng = YYCURSOR - SCNG(yy_text);
+
+       if (CG(literal_type) == IS_UNICODE) {
+               return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0x22 /*'"'*/, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
+       } else {
+               zend_scan_binary_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC);
+               return T_ENCAPSED_AND_WHITESPACE;
+       }
 }
-#line 2235 "Zend/zend_language_scanner.c"
-yy92:
-               YYDEBUG(92, *YYCURSOR);
+#line 2186 "Zend/zend_language_scanner.c"
+yy79:
+               YYDEBUG(79, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == '$') goto yy83;
+               goto yy78;
+yy80:
+               YYDEBUG(80, *YYCURSOR);
                ++YYCURSOR;
-               YYFILL(1);
+               YYDEBUG(81, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 2445 "Zend/zend_language_scanner.l"
+               {
+       BEGIN(ST_IN_SCRIPTING);
+       return '"';
+}
+#line 2202 "Zend/zend_language_scanner.c"
+yy82:
+               YYDEBUG(82, *YYCURSOR);
+               yych = *++YYCURSOR;
+               goto yy78;
+yy83:
+               YYDEBUG(83, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(84, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 2437 "Zend/zend_language_scanner.l"
+               {
+       Z_LVAL_P(zendlval) = (long) '{';
+       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
+       yyless(1);
+       return T_CURLY_OPEN;
+}
+#line 2219 "Zend/zend_language_scanner.c"
+yy85:
+               YYDEBUG(85, *YYCURSOR);
+               yyaccept = 0;
+               YYMARKER = ++YYCURSOR;
+               YYFILL(3);
                yych = *YYCURSOR;
-               YYDEBUG(93, *YYCURSOR);
+               YYDEBUG(86, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy92;
+                       goto yy85;
                }
-               YYDEBUG(94, *YYCURSOR);
+               if (yych == '-') goto yy90;
+               if (yych == '[') goto yy92;
+yy87:
+               YYDEBUG(87, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2283 "Zend/zend_language_scanner.l"
+#line 2149 "Zend/zend_language_scanner.l"
                {
-       yymore();
+       if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), IS_UNICODE, SCNG(output_conv) TSRMLS_CC)) {
+               return 0;
+       }
+       if (!zend_check_and_normalize_identifier(zendlval)) {
+               return 0;
+       }
+       return T_VARIABLE;
 }
-#line 2251 "Zend/zend_language_scanner.c"
-yy95:
-               YYDEBUG(95, *YYCURSOR);
+#line 2245 "Zend/zend_language_scanner.c"
+yy88:
+               YYDEBUG(88, *YYCURSOR);
                ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '/') goto yy97;
-               YYDEBUG(96, *YYCURSOR);
+               YYDEBUG(89, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2306 "Zend/zend_language_scanner.l"
+#line 1773 "Zend/zend_language_scanner.l"
                {
-       yymore();
+       yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
+       return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 2262 "Zend/zend_language_scanner.c"
-yy97:
-               YYDEBUG(97, *YYCURSOR);
+#line 2256 "Zend/zend_language_scanner.c"
+yy90:
+               YYDEBUG(90, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == '>') goto yy94;
+yy91:
+               YYDEBUG(91, *YYCURSOR);
+               YYCURSOR = YYMARKER;
+               goto yy87;
+yy92:
+               YYDEBUG(92, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(98, *YYCURSOR);
+               YYDEBUG(93, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2300 "Zend/zend_language_scanner.l"
+#line 2136 "Zend/zend_language_scanner.l"
                {
-       HANDLE_NEWLINES(yytext, yyleng);
-       BEGIN(ST_IN_SCRIPTING);
-       return T_COMMENT;
-}
-#line 2274 "Zend/zend_language_scanner.c"
+       yyless(yyleng - 1);
+       yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
+
+       if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), IS_UNICODE, SCNG(output_conv) TSRMLS_CC)) {
+               return 0;
+       }
+       if (!zend_check_and_normalize_identifier(zendlval)) {
+               return 0;
+       }
+       return T_VARIABLE;
+}
+#line 2283 "Zend/zend_language_scanner.c"
+yy94:
+               YYDEBUG(94, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= '_') {
+                       if (yych <= '@') goto yy91;
+                       if (yych <= 'Z') goto yy95;
+                       if (yych <= '^') goto yy91;
+               } else {
+                       if (yych <= '`') goto yy91;
+                       if (yych <= 'z') goto yy95;
+                       if (yych <= '~') goto yy91;
+               }
+yy95:
+               YYDEBUG(95, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(96, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 2121 "Zend/zend_language_scanner.l"
+               {
+       yyless(yyleng - 3);
+       yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
+
+       if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), IS_UNICODE, SCNG(output_conv) TSRMLS_CC)) {
+               return 0;
+       }
+       if (!zend_check_and_normalize_identifier(zendlval)) {
+               return 0;
+       }
+       return T_VARIABLE;
+}
+#line 2314 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
-yyc_ST_DOC_COMMENT:
+yyc_ST_END_HEREDOC:
+       YYDEBUG(97, *YYCURSOR);
+       YYFILL(1);
+       yych = *YYCURSOR;
+       YYDEBUG(99, *YYCURSOR);
+       ++YYCURSOR;
+       YYDEBUG(100, *YYCURSOR);
+       yyleng = YYCURSOR - SCNG(yy_text);
+#line 2424 "Zend/zend_language_scanner.l"
+       {
+       YYCURSOR += CG(heredoc_len) - 1;
+       yyleng = CG(heredoc_len);
+
+       Z_STRVAL_P(zendlval) = CG(heredoc);
+       Z_STRLEN_P(zendlval) = CG(heredoc_len);
+       CG(heredoc) = NULL;
+       CG(heredoc_len) = 0;
+       BEGIN(ST_IN_SCRIPTING);
+       return T_END_HEREDOC;
+}
+#line 2337 "Zend/zend_language_scanner.c"
+/* *********************************** */
+yyc_ST_HEREDOC:
        {
                static const unsigned char yybm[] = {
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128,   0,   0,   0,   0,   0,   0, 
+                         0, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128,   0,   0,   0,   0, 128, 
+                         0, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128,   0, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128,   0,   0,   0,   0, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
@@ -2309,1421 +2371,267 @@ yyc_ST_DOC_COMMENT:
                        128, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
                };
-               YYDEBUG(99, *YYCURSOR);
+               YYDEBUG(101, *YYCURSOR);
                YYFILL(2);
                yych = *YYCURSOR;
-               if (yych <= 0x00) goto yy101;
-               if (yych == '*') goto yy106;
-               goto yy103;
-yy101:
-               YYDEBUG(101, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 128) {
-                       goto yy103;
-               }
-               YYDEBUG(102, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2272 "Zend/zend_language_scanner.l"
-               {
-       zend_error(E_COMPILE_WARNING, "Unterminated comment starting line %d", CG(zend_lineno));
-       return 0;
-}
-#line 2332 "Zend/zend_language_scanner.c"
+               if (yych == '$') goto yy103;
+               if (yych == '{') goto yy105;
+               goto yy106;
 yy103:
                YYDEBUG(103, *YYCURSOR);
                ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(104, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy103;
+               if ((yych = *YYCURSOR) <= '_') {
+                       if (yych <= '@') goto yy104;
+                       if (yych <= 'Z') goto yy109;
+                       if (yych >= '_') goto yy109;
+               } else {
+                       if (yych <= 'z') {
+                               if (yych >= 'a') goto yy109;
+                       } else {
+                               if (yych <= '{') goto yy112;
+                               if (yych >= 0x7F) goto yy109;
+                       }
                }
-               YYDEBUG(105, *YYCURSOR);
+yy104:
+               YYDEBUG(104, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2283 "Zend/zend_language_scanner.l"
+#line 2556 "Zend/zend_language_scanner.l"
                {
-       yymore();
+       int newline = 0;
+
+       if (YYCURSOR > YYLIMIT) {
+               return 0;
+       }
+
+       YYCURSOR--;
+
+       while (YYCURSOR < YYLIMIT) {
+               switch (*YYCURSOR++) {
+                       case '\r':
+                               if (*YYCURSOR == '\n') {
+                                       YYCURSOR++;
+                               }
+                               /* fall through */
+                       case '\n':
+                               /* Check for ending label on the next line */
+                               if (IS_LABEL_START(*YYCURSOR) && CG(heredoc_len) < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, CG(heredoc), CG(heredoc_len))) {
+                                       YYCTYPE *end = YYCURSOR + CG(heredoc_len);
+
+                                       if (*end == ';') {
+                                               end++;
+                                       }
+
+                                       if (*end == '\n' || *end == '\r') {
+                                               /* newline before label will be subtracted from returned text, but
+                                                * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */
+                                               if (YYCURSOR[-2] == '\r' && YYCURSOR[-1] == '\n') {
+                                                       newline = 2; /* Windows newline */
+                                               } else {
+                                                       newline = 1;
+                                               }
+
+                                               CG(increment_lineno) = 1; /* For newline before label */
+                                               BEGIN(ST_END_HEREDOC);
+
+                                               goto heredoc_scan_done;
+                                       }
+                               }
+                               continue;
+                       case '$':
+                               if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
+                                       break;
+                               }
+                               continue;
+                       case '{':
+                               if (*YYCURSOR == '$') {
+                                       break;
+                               }
+                               continue;
+                       case '\\':
+                               if (YYCURSOR < YYLIMIT && *YYCURSOR != '\n' && *YYCURSOR != '\r') {
+                                       YYCURSOR++;
+                               }
+                               /* fall through */
+                       default:
+                               continue;
+               }
+
+               YYCURSOR--;
+               break;
+       }
+
+heredoc_scan_done:
+       yyleng = YYCURSOR - SCNG(yy_text);
+
+       if (CG(literal_type) == IS_UNICODE) {
+               return zend_scan_unicode_escape_string(zendlval, yytext, yyleng - newline, 0, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
+       } else {
+               zend_scan_binary_escape_string(zendlval, yytext, yyleng - newline, 0 TSRMLS_CC);
+               return T_ENCAPSED_AND_WHITESPACE;
+       }
 }
-#line 2348 "Zend/zend_language_scanner.c"
+#line 2474 "Zend/zend_language_scanner.c"
+yy105:
+               YYDEBUG(105, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == '$') goto yy107;
+               goto yy104;
 yy106:
                YYDEBUG(106, *YYCURSOR);
-               ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '/') goto yy108;
+               yych = *++YYCURSOR;
+               goto yy104;
+yy107:
                YYDEBUG(107, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(108, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2306 "Zend/zend_language_scanner.l"
+#line 2437 "Zend/zend_language_scanner.l"
                {
-       yymore();
+       Z_LVAL_P(zendlval) = (long) '{';
+       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
+       yyless(1);
+       return T_CURLY_OPEN;
 }
-#line 2359 "Zend/zend_language_scanner.c"
-yy108:
-               YYDEBUG(108, *YYCURSOR);
-               ++YYCURSOR;
+#line 2496 "Zend/zend_language_scanner.c"
+yy109:
                YYDEBUG(109, *YYCURSOR);
+               yyaccept = 0;
+               YYMARKER = ++YYCURSOR;
+               YYFILL(3);
+               yych = *YYCURSOR;
+               YYDEBUG(110, *YYCURSOR);
+               if (yybm[0+yych] & 128) {
+                       goto yy109;
+               }
+               if (yych == '-') goto yy114;
+               if (yych == '[') goto yy116;
+yy111:
+               YYDEBUG(111, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2287 "Zend/zend_language_scanner.l"
+#line 2149 "Zend/zend_language_scanner.l"
                {
-       zval temp;
-
-       HANDLE_NEWLINES(yytext, yyleng);
-       if (!zend_copy_scanner_string(&temp, yytext, yyleng, IS_UNICODE, SCNG(output_conv) TSRMLS_CC)) {
+       if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), IS_UNICODE, SCNG(output_conv) TSRMLS_CC)) {
                return 0;
        }
-       CG(doc_comment) = temp.value.uni.val;
-       CG(doc_comment_len) = temp.value.uni.len;
-       BEGIN(ST_IN_SCRIPTING);
-       return T_DOC_COMMENT;
-}
-#line 2378 "Zend/zend_language_scanner.c"
+       if (!zend_check_and_normalize_identifier(zendlval)) {
+               return 0;
        }
-/* *********************************** */
-yyc_ST_DOUBLE_QUOTES:
-       {
-               static const unsigned char yybm[] = {
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,   0,  16,  32,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144,  16,  16,  16,  16,  16,  16, 
-                        16, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144,  16,   0,  16,  16, 144, 
-                        16, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144,  64,  16,  16,  16, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-               };
-               YYDEBUG(110, *YYCURSOR);
-               YYFILL(2);
-               yych = *YYCURSOR;
-               if (yych <= '$') {
-                       if (yych <= '!') {
-                               if (yych >= 0x01) goto yy117;
-                       } else {
-                               if (yych <= '"') goto yy121;
-                               if (yych <= '#') goto yy117;
-                               goto yy114;
-                       }
-               } else {
-                       if (yych <= '\\') {
-                               if (yych <= '[') goto yy117;
-                               goto yy119;
-                       } else {
-                               if (yych == '{') goto yy115;
-                               goto yy117;
-                       }
-               }
+       return T_VARIABLE;
+}
+#line 2522 "Zend/zend_language_scanner.c"
+yy112:
                YYDEBUG(112, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               goto yy118;
-yy113:
+               ++YYCURSOR;
                YYDEBUG(113, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2491 "Zend/zend_language_scanner.l"
+#line 1773 "Zend/zend_language_scanner.l"
                {
-       if (CG(literal_type) == IS_UNICODE) {
-               return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0x22 /*'"'*/, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
-       } else {
-               zend_scan_binary_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC);
-               return T_ENCAPSED_AND_WHITESPACE;
-       }
+       yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
+       return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 2453 "Zend/zend_language_scanner.c"
+#line 2533 "Zend/zend_language_scanner.c"
 yy114:
                YYDEBUG(114, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yybm[0+yych] & 32) {
-                       goto yy126;
-               }
-               if (yych <= '\\') {
-                       if (yych <= '@') {
-                               if (yych == '"') goto yy129;
-                               goto yy117;
-                       } else {
-                               if (yych <= 'Z') goto yy132;
-                               if (yych <= '[') goto yy117;
-                               goto yy125;
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych == '_') goto yy132;
-                               goto yy117;
-                       } else {
-                               if (yych <= 'z') goto yy132;
-                               if (yych <= '{') goto yy135;
-                               if (yych <= '~') goto yy117;
-                               goto yy132;
-                       }
-               }
+               if (yych == '>') goto yy118;
 yy115:
                YYDEBUG(115, *YYCURSOR);
-               yyaccept = 1;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yybm[0+yych] & 64) {
-                       goto yy130;
-               }
-               if (yych == '"') goto yy129;
-               if (yych != '$') goto yy118;
+               YYCURSOR = YYMARKER;
+               goto yy111;
 yy116:
                YYDEBUG(116, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(117, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2484 "Zend/zend_language_scanner.l"
+#line 2136 "Zend/zend_language_scanner.l"
                {
-       Z_LVAL_P(zendlval) = (long) '{';
-       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
-       return T_CURLY_OPEN;
+       yyless(yyleng - 1);
+       yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
+
+       if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), IS_UNICODE, SCNG(output_conv) TSRMLS_CC)) {
+               return 0;
+       }
+       if (!zend_check_and_normalize_identifier(zendlval)) {
+               return 0;
+       }
+       return T_VARIABLE;
 }
-#line 2498 "Zend/zend_language_scanner.c"
-yy117:
-               YYDEBUG(117, *YYCURSOR);
-               yyaccept = 0;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
+#line 2560 "Zend/zend_language_scanner.c"
 yy118:
                YYDEBUG(118, *YYCURSOR);
-               if (yybm[0+yych] & 16) {
-                       goto yy117;
+               yych = *++YYCURSOR;
+               if (yych <= '_') {
+                       if (yych <= '@') goto yy115;
+                       if (yych <= 'Z') goto yy119;
+                       if (yych <= '^') goto yy115;
+               } else {
+                       if (yych <= '`') goto yy115;
+                       if (yych <= 'z') goto yy119;
+                       if (yych <= '~') goto yy115;
                }
-               if (yych <= '#') goto yy113;
-               if (yych <= '$') goto yy124;
-               if (yych >= '{') goto yy123;
 yy119:
                YYDEBUG(119, *YYCURSOR);
                ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yych >= 0x01) goto yy117;
-yy120:
                YYDEBUG(120, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               if (yyaccept <= 1) {
-                       if (yyaccept <= 0) {
-                               goto yy113;
-                       } else {
-                               goto yy116;
-                       }
-               } else {
-                       if (yyaccept <= 2) {
-                               goto yy128;
-                       } else {
-                               goto yy134;
-                       }
-               }
-yy121:
-               YYDEBUG(121, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(122, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2609 "Zend/zend_language_scanner.l"
+#line 2121 "Zend/zend_language_scanner.l"
                {
-       BEGIN(ST_IN_SCRIPTING);
-       return '"';
+       yyless(yyleng - 3);
+       yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
+
+       if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), IS_UNICODE, SCNG(output_conv) TSRMLS_CC)) {
+               return 0;
+       }
+       if (!zend_check_and_normalize_identifier(zendlval)) {
+               return 0;
+       }
+       return T_VARIABLE;
 }
-#line 2545 "Zend/zend_language_scanner.c"
-yy123:
-               YYDEBUG(123, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy117;
-               }
-               if (yych <= '#') goto yy129;
-               if (yych <= '$') goto yy120;
-               if (yych <= 'z') goto yy119;
-               goto yy130;
-yy124:
-               YYDEBUG(124, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 32) {
-                       goto yy126;
-               }
-               if (yych <= '\\') {
-                       if (yych <= '@') {
-                               if (yych == '"') goto yy129;
-                               goto yy117;
-                       } else {
-                               if (yych <= 'Z') goto yy120;
-                               if (yych <= '[') goto yy117;
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych == '_') goto yy120;
-                               goto yy117;
-                       } else {
-                               if (yych <= '{') goto yy120;
-                               if (yych <= '~') goto yy117;
-                               goto yy120;
-                       }
-               }
-yy125:
-               YYDEBUG(125, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yych <= 0x00) goto yy120;
-               goto yy117;
-yy126:
-               YYDEBUG(126, *YYCURSOR);
-               yyaccept = 2;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(127, *YYCURSOR);
-               if (yybm[0+yych] & 32) {
-                       goto yy126;
-               }
-               if (yych <= '\\') {
-                       if (yych <= '@') {
-                               if (yych == '"') goto yy129;
-                               goto yy117;
-                       } else {
-                               if (yych <= 'Z') goto yy128;
-                               if (yych <= '[') goto yy117;
-                               goto yy125;
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych != '_') goto yy117;
-                       } else {
-                               if (yych <= '{') goto yy128;
-                               if (yych <= '~') goto yy117;
-                       }
-               }
-yy128:
-               YYDEBUG(128, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2506 "Zend/zend_language_scanner.l"
-               {
-       yyless(yyleng - 1);
-
-       if (CG(literal_type) == IS_UNICODE) {
-               return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0x22 /*'"'*/, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
-       } else {
-               zend_scan_binary_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC);
-               return T_ENCAPSED_AND_WHITESPACE;
-       }
-}
-#line 2632 "Zend/zend_language_scanner.c"
-yy129:
-               YYDEBUG(129, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy128;
-yy130:
-               YYDEBUG(130, *YYCURSOR);
-               yyaccept = 2;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(131, *YYCURSOR);
-               if (yybm[0+yych] & 16) {
-                       goto yy117;
-               }
-               if (yych <= '#') goto yy129;
-               if (yych <= '$') goto yy128;
-               if (yych <= 'z') goto yy119;
-               goto yy130;
-yy132:
-               YYDEBUG(132, *YYCURSOR);
-               yyaccept = 3;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(3);
-               yych = *YYCURSOR;
-               YYDEBUG(133, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy132;
-               }
-               if (yych == '-') goto yy137;
-               if (yych == '[') goto yy138;
-yy134:
-               YYDEBUG(134, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2171 "Zend/zend_language_scanner.l"
-               {
-       if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), IS_UNICODE, SCNG(output_conv) TSRMLS_CC)) {
-               return 0;
-       }
-       if (!zend_check_and_normalize_identifier(zendlval)) {
-               return 0;
-       }
-       return T_VARIABLE;
-}
-#line 2676 "Zend/zend_language_scanner.c"
-yy135:
-               YYDEBUG(135, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(136, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1822 "Zend/zend_language_scanner.l"
-               {
-       yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
-       return T_DOLLAR_OPEN_CURLY_BRACES;
-}
-#line 2687 "Zend/zend_language_scanner.c"
-yy137:
-               YYDEBUG(137, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '>') goto yy140;
-               goto yy120;
-yy138:
-               YYDEBUG(138, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(139, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2158 "Zend/zend_language_scanner.l"
-               {
-       yyless(yyleng - 1);
-       yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
-
-       if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), IS_UNICODE, SCNG(output_conv) TSRMLS_CC)) {
-               return 0;
-       }
-       if (!zend_check_and_normalize_identifier(zendlval)) {
-               return 0;
-       }
-       return T_VARIABLE;
-}
-#line 2711 "Zend/zend_language_scanner.c"
-yy140:
-               YYDEBUG(140, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '_') {
-                       if (yych <= '@') goto yy120;
-                       if (yych <= 'Z') goto yy141;
-                       if (yych <= '^') goto yy120;
-               } else {
-                       if (yych <= '`') goto yy120;
-                       if (yych <= 'z') goto yy141;
-                       if (yych <= '~') goto yy120;
-               }
-yy141:
-               YYDEBUG(141, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(142, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2143 "Zend/zend_language_scanner.l"
-               {
-       yyless(yyleng - 3);
-       yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
-
-       if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), IS_UNICODE, SCNG(output_conv) TSRMLS_CC)) {
-               return 0;
-       }
-       if (!zend_check_and_normalize_identifier(zendlval)) {
-               return 0;
-       }
-       return T_VARIABLE;
-}
-#line 2742 "Zend/zend_language_scanner.c"
-       }
-/* *********************************** */
-yyc_ST_END_HEREDOC:
-       YYDEBUG(143, *YYCURSOR);
-       YYFILL(1);
-       yych = *YYCURSOR;
-       if (yych >= 0x01) goto yy147;
-       YYDEBUG(145, *YYCURSOR);
-       ++YYCURSOR;
-       YYDEBUG(146, *YYCURSOR);
-       yyleng = YYCURSOR - SCNG(yy_text);
-#line 2620 "Zend/zend_language_scanner.l"
-       { return 0; }
-#line 2756 "Zend/zend_language_scanner.c"
-yy147:
-       YYDEBUG(147, *YYCURSOR);
-       ++YYCURSOR;
-       YYDEBUG(148, *YYCURSOR);
-       yyleng = YYCURSOR - SCNG(yy_text);
-#line 2470 "Zend/zend_language_scanner.l"
-       {
-       YYCURSOR += CG(heredoc_len) - 1;
-       yyleng = CG(heredoc_len);
-
-       Z_STRVAL_P(zendlval) = CG(heredoc);
-       Z_STRLEN_P(zendlval) = CG(heredoc_len);
-       CG(heredoc) = NULL;
-       CG(heredoc_len) = 0;
-       BEGIN(ST_IN_SCRIPTING);
-       return T_END_HEREDOC;
-}
-#line 2774 "Zend/zend_language_scanner.c"
-/* *********************************** */
-yyc_ST_HEREDOC:
-       {
-               static const unsigned char yybm[] = {
-                         4,   4,   4,   4,   4,   4,   4,   4, 
-                         4,   4,  16,   4,   4,  32,   4,   4, 
-                         4,   4,   4,   4,   4,   4,   4,   4, 
-                         4,   4,   4,   4,   4,   4,   4,   4, 
-                         4,   4,   4,   4,  64,   4,   4,   4, 
-                         4,   4,   4,   4,   4,   4,   4,   4, 
-                        12,  12,  12,  12,  12,  12,  12,  12, 
-                        12,  12,   4,   4,   4,   4,   4,   4, 
-                         4,   8,   8,   8,   8,   8,   8,   8, 
-                         8,   8,   8,   8,   8,   8,   8,   8, 
-                         8,   8,   8,   8,   8,   8,   8,   8, 
-                         8,   8,   8,   4,   0,   4,   4,   8, 
-                         4,   8,   8,   8,   8,   8,   8,   8, 
-                         8,   8,   8,   8,   8,   8,   8,   8, 
-                         8,   8,   8,   8,   8,   8,   8,   8, 
-                         8,   8,   8, 128,   4,   4,   4,   8, 
-                         8,   8,   8,   8,   8,   8,   8,   8, 
-                         8,   8,   8,   8,   8,   8,   8,   8, 
-                         8,   8,   8,   8,   8,   8,   8,   8, 
-                         8,   8,   8,   8,   8,   8,   8,   8, 
-                         8,   8,   8,   8,   8,   8,   8,   8, 
-                         8,   8,   8,   8,   8,   8,   8,   8, 
-                         8,   8,   8,   8,   8,   8,   8,   8, 
-                         8,   8,   8,   8,   8,   8,   8,   8, 
-                         8,   8,   8,   8,   8,   8,   8,   8, 
-                         8,   8,   8,   8,   8,   8,   8,   8, 
-                         8,   8,   8,   8,   8,   8,   8,   8, 
-                         8,   8,   8,   8,   8,   8,   8,   8, 
-                         8,   8,   8,   8,   8,   8,   8,   8, 
-                         8,   8,   8,   8,   8,   8,   8,   8, 
-                         8,   8,   8,   8,   8,   8,   8,   8, 
-                         8,   8,   8,   8,   8,   8,   8,   8, 
-               };
-               YYDEBUG(149, *YYCURSOR);
-               YYFILL(2);
-               yych = *(YYMARKER = YYCURSOR);
-               if (yybm[0+yych] & 16) {
-                       goto yy161;
-               }
-               if (yych <= '[') {
-                       if (yych <= '#') {
-                               if (yych <= 0x00) goto yy152;
-                               if (yych == '\r') goto yy163;
-                               goto yy156;
-                       } else {
-                               if (yych <= '$') goto yy153;
-                               if (yych <= '@') goto yy156;
-                               if (yych <= 'Z') goto yy158;
-                               goto yy156;
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych <= '\\') goto yy160;
-                               if (yych == '_') goto yy158;
-                               goto yy156;
-                       } else {
-                               if (yych <= 'z') goto yy158;
-                               if (yych <= '{') goto yy154;
-                               if (yych <= '~') goto yy156;
-                               goto yy158;
-                       }
-               }
-yy151:
-               YYDEBUG(151, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2546 "Zend/zend_language_scanner.l"
-               {
-       if (CG(literal_type) == IS_UNICODE) {
-               return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
-       } else {
-               zend_scan_binary_escape_string(zendlval, yytext, yyleng, 0 TSRMLS_CC);
-               return T_ENCAPSED_AND_WHITESPACE;
-       }
-}
-#line 2853 "Zend/zend_language_scanner.c"
-yy152:
-               YYDEBUG(152, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               goto yy157;
-yy153:
-               YYDEBUG(153, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '\\') {
-                       if (yych <= '@') {
-                               if (yych == '$') goto yy198;
-                               goto yy157;
-                       } else {
-                               if (yych <= 'Z') goto yy202;
-                               if (yych <= '[') goto yy157;
-                               goto yy191;
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych == '_') goto yy202;
-                               goto yy157;
-                       } else {
-                               if (yych <= 'z') goto yy202;
-                               if (yych <= '{') goto yy205;
-                               if (yych <= '~') goto yy157;
-                               goto yy202;
-                       }
-               }
-yy154:
-               YYDEBUG(154, *YYCURSOR);
-               yyaccept = 1;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yybm[0+yych] & 16) {
-                       goto yy161;
-               }
-               if (yych <= '$') {
-                       if (yych == '\r') goto yy163;
-                       if (yych <= '#') goto yy156;
-               } else {
-                       if (yych <= '\\') {
-                               if (yych <= '[') goto yy156;
-                               goto yy160;
-                       } else {
-                               if (yych == '{') goto yy200;
-                               goto yy156;
-                       }
-               }
-yy155:
-               YYDEBUG(155, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2484 "Zend/zend_language_scanner.l"
-               {
-       Z_LVAL_P(zendlval) = (long) '{';
-       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
-       return T_CURLY_OPEN;
-}
-#line 2910 "Zend/zend_language_scanner.c"
-yy156:
-               YYDEBUG(156, *YYCURSOR);
-               yyaccept = 0;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy157:
-               YYDEBUG(157, *YYCURSOR);
-               if (yybm[0+yych] & 4) {
-                       goto yy156;
-               }
-               if (yych <= '[') {
-                       if (yych <= '\f') goto yy161;
-                       if (yych <= '\r') goto yy163;
-                       if (yych <= '@') goto yy197;
-               } else {
-                       if (yych <= '\\') goto yy160;
-                       if (yych == '{') goto yy196;
-               }
-yy158:
-               YYDEBUG(158, *YYCURSOR);
-               yyaccept = 0;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(159, *YYCURSOR);
-               if (yybm[0+yych] & 16) {
-                       goto yy161;
-               }
-               if (yych <= '@') {
-                       if (yych <= '$') {
-                               if (yych == '\r') goto yy163;
-                               if (yych <= '#') goto yy156;
-                               goto yy190;
-                       } else {
-                               if (yych <= '9') {
-                                       if (yych <= '/') goto yy156;
-                                       goto yy158;
-                               } else {
-                                       if (yych == ';') goto yy188;
-                                       goto yy156;
-                               }
-                       }
-               } else {
-                       if (yych <= '_') {
-                               if (yych <= '[') {
-                                       if (yych <= 'Z') goto yy158;
-                                       goto yy156;
-                               } else {
-                                       if (yych <= '\\') goto yy160;
-                                       if (yych <= '^') goto yy156;
-                                       goto yy158;
-                               }
-                       } else {
-                               if (yych <= 'z') {
-                                       if (yych <= '`') goto yy156;
-                                       goto yy158;
-                               } else {
-                                       if (yych <= '{') goto yy189;
-                                       if (yych <= '~') goto yy156;
-                                       goto yy158;
-                               }
-                       }
-               }
-yy160:
-               YYDEBUG(160, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy161;
-               }
-               if (yych == '\r') goto yy163;
-               goto yy156;
-yy161:
-               YYDEBUG(161, *YYCURSOR);
-               yyaccept = 0;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(162, *YYCURSOR);
-               if (yybm[0+yych] & 4) {
-                       goto yy156;
-               }
-               if (yych <= '[') {
-                       if (yych <= '\f') goto yy161;
-                       if (yych <= '\r') goto yy163;
-                       if (yych <= '@') goto yy169;
-                       goto yy165;
-               } else {
-                       if (yych <= '\\') goto yy170;
-                       if (yych == '{') goto yy167;
-                       goto yy165;
-               }
-yy163:
-               YYDEBUG(163, *YYCURSOR);
-               yyaccept = 0;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(164, *YYCURSOR);
-               if (yybm[0+yych] & 4) {
-                       goto yy156;
-               }
-               if (yych <= '[') {
-                       if (yych <= '\f') goto yy161;
-                       if (yych <= '\r') goto yy163;
-                       if (yych <= '@') goto yy169;
-               } else {
-                       if (yych <= '\\') goto yy170;
-                       if (yych == '{') goto yy167;
-               }
-yy165:
-               YYDEBUG(165, *YYCURSOR);
-               yyaccept = 0;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(166, *YYCURSOR);
-               if (yych <= ';') {
-                       if (yych <= '#') {
-                               if (yych <= '\n') {
-                                       if (yych <= '\t') goto yy156;
-                                       goto yy181;
-                               } else {
-                                       if (yych == '\r') goto yy181;
-                                       goto yy156;
-                               }
-                       } else {
-                               if (yych <= '/') {
-                                       if (yych <= '$') goto yy180;
-                                       goto yy156;
-                               } else {
-                                       if (yych <= '9') goto yy165;
-                                       if (yych <= ':') goto yy156;
-                                       goto yy177;
-                               }
-                       }
-               } else {
-                       if (yych <= '^') {
-                               if (yych <= 'Z') {
-                                       if (yych <= '@') goto yy156;
-                                       goto yy165;
-                               } else {
-                                       if (yych == '\\') goto yy178;
-                                       goto yy156;
-                               }
-                       } else {
-                               if (yych <= 'z') {
-                                       if (yych == '`') goto yy156;
-                                       goto yy165;
-                               } else {
-                                       if (yych <= '{') goto yy179;
-                                       if (yych <= '~') goto yy156;
-                                       goto yy165;
-                               }
-                       }
-               }
-yy167:
-               YYDEBUG(167, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy161;
-               }
-               if (yych <= '$') {
-                       if (yych == '\r') goto yy163;
-                       if (yych <= '#') goto yy156;
-               } else {
-                       if (yych <= '\\') {
-                               if (yych <= '[') goto yy156;
-                               goto yy170;
-                       } else {
-                               if (yych == '{') goto yy175;
-                               goto yy156;
-                       }
-               }
-yy168:
-               YYDEBUG(168, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               if (yyaccept <= 1) {
-                       if (yyaccept <= 0) {
-                               goto yy151;
-                       } else {
-                               goto yy155;
-                       }
-               } else {
-                       if (yyaccept <= 2) {
-                               goto yy174;
-                       } else {
-                               goto yy204;
-                       }
-               }
-yy169:
-               YYDEBUG(169, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 4) {
-                       goto yy156;
-               }
-               if (yych <= '@') {
-                       if (yych <= '\f') goto yy161;
-                       if (yych <= '\r') goto yy163;
-                       goto yy172;
-               } else {
-                       if (yych == '\\') goto yy171;
-                       goto yy168;
-               }
-yy170:
-               YYDEBUG(170, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy161;
-               }
-               if (yych == '\r') goto yy163;
-               goto yy156;
-yy171:
-               YYDEBUG(171, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy161;
-               }
-               if (yych == '\r') goto yy163;
-               goto yy156;
-yy172:
-               YYDEBUG(172, *YYCURSOR);
-               yyaccept = 2;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(173, *YYCURSOR);
-               if (yybm[0+yych] & 4) {
-                       goto yy156;
-               }
-               if (yych <= '@') {
-                       if (yych <= '\f') goto yy161;
-                       if (yych <= '\r') goto yy163;
-                       goto yy172;
-               } else {
-                       if (yych == '\\') goto yy171;
-               }
-yy174:
-               YYDEBUG(174, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2555 "Zend/zend_language_scanner.l"
-               {
-       yyless(yyleng - 1);
-
-       if (CG(literal_type) == IS_UNICODE) {
-               return zend_scan_unicode_escape_string(zendlval, yytext, yyleng, 0, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
-       } else {
-               zend_scan_binary_escape_string(zendlval, yytext, yyleng, 0 TSRMLS_CC);
-               return T_ENCAPSED_AND_WHITESPACE;
-       }
-}
-#line 3172 "Zend/zend_language_scanner.c"
-yy175:
-               YYDEBUG(175, *YYCURSOR);
-               yyaccept = 2;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(176, *YYCURSOR);
-               if (yybm[0+yych] & 16) {
-                       goto yy161;
-               }
-               if (yych <= '$') {
-                       if (yych == '\r') goto yy163;
-                       if (yych <= '#') goto yy156;
-                       goto yy174;
-               } else {
-                       if (yych <= '\\') {
-                               if (yych <= '[') goto yy156;
-                               goto yy170;
-                       } else {
-                               if (yych == '{') goto yy175;
-                               goto yy156;
-                       }
-               }
-yy177:
-               YYDEBUG(177, *YYCURSOR);
-               yyaccept = 0;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yych <= '#') {
-                       if (yych <= '\n') {
-                               if (yych <= '\t') goto yy156;
-                               goto yy181;
-                       } else {
-                               if (yych == '\r') goto yy181;
-                               goto yy156;
-                       }
-               } else {
-                       if (yych <= '\\') {
-                               if (yych <= '$') goto yy180;
-                               if (yych <= '[') goto yy156;
-                       } else {
-                               if (yych == '{') goto yy179;
-                               goto yy156;
-                       }
-               }
-yy178:
-               YYDEBUG(178, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy161;
-               }
-               if (yych == '\r') goto yy163;
-               goto yy156;
-yy179:
-               YYDEBUG(179, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy161;
-               }
-               if (yych <= '$') {
-                       if (yych == '\r') goto yy163;
-                       if (yych <= '#') goto yy156;
-                       goto yy168;
-               } else {
-                       if (yych <= '\\') {
-                               if (yych <= '[') goto yy156;
-                               goto yy178;
-                       } else {
-                               if (yych == '{') goto yy186;
-                               goto yy156;
-                       }
-               }
-yy180:
-               YYDEBUG(180, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 4) {
-                       goto yy156;
-               }
-               if (yych <= '@') {
-                       if (yych <= '\f') goto yy161;
-                       if (yych <= '\r') goto yy163;
-                       goto yy183;
-               } else {
-                       if (yych == '\\') goto yy185;
-                       goto yy168;
-               }
-yy181:
-               YYDEBUG(181, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(182, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2428 "Zend/zend_language_scanner.l"
-               {
-       char *end = yytext + yyleng - 1;
-
-       if (end[-1] == ';') {
-               end--;
-               yyleng--;
-       }
-
-       if (yyleng > CG(heredoc_len) && !memcmp(end - CG(heredoc_len), CG(heredoc), CG(heredoc_len))) {
-               int len = yyleng - CG(heredoc_len) - 2; /* 2 for newline before and after label */
-
-               /* May have matched fooLABEL; make sure there's a newline before it */
-               if (yytext[len] != '\n') {
-                       if (yytext[len] != '\r') {
-                               yyless(yyleng - 1);
-                               yymore();
-                       }
-               } else if (len > 0 && yytext[len - 1] == '\r') {
-                       len--; /* Windows newline */
-               }
-
-               /* Go back before label, to match in ST_END_HEREDOC state. yytext will include
-                * newline before label, for zend_highlight/strip, tokenizer, etc. */
-               yyless(yyleng - CG(heredoc_len) - 1); /* 1 for newline after label */
-
-               CG(increment_lineno) = 1; /* For newline before label */
-               BEGIN(ST_END_HEREDOC);
-
-               if (CG(literal_type) == IS_UNICODE) {
-                       return zend_scan_unicode_escape_string(zendlval, yytext, len, 0, T_ENCAPSED_AND_WHITESPACE TSRMLS_CC);
-               } else {
-                       zend_scan_binary_escape_string(zendlval, yytext, len, 0 TSRMLS_CC);
-                       return T_ENCAPSED_AND_WHITESPACE;
-               }
-       } else {
-               /* Go back to end of label, so the next match works correctly in case of
-                * a variable or another label at the beginning of the next line */
-               yyless(yyleng - 1);
-               yymore();
-       }
-}
-#line 3313 "Zend/zend_language_scanner.c"
-yy183:
-               YYDEBUG(183, *YYCURSOR);
-               yyaccept = 2;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(184, *YYCURSOR);
-               if (yybm[0+yych] & 4) {
-                       goto yy156;
-               }
-               if (yych <= '@') {
-                       if (yych <= '\f') goto yy161;
-                       if (yych <= '\r') goto yy163;
-                       goto yy183;
-               } else {
-                       if (yych != '\\') goto yy174;
-               }
-yy185:
-               YYDEBUG(185, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy161;
-               }
-               if (yych == '\r') goto yy163;
-               goto yy156;
-yy186:
-               YYDEBUG(186, *YYCURSOR);
-               yyaccept = 2;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(187, *YYCURSOR);
-               if (yybm[0+yych] & 16) {
-                       goto yy161;
-               }
-               if (yych <= '$') {
-                       if (yych == '\r') goto yy163;
-                       if (yych <= '#') goto yy156;
-                       goto yy174;
-               } else {
-                       if (yych <= '\\') {
-                               if (yych <= '[') goto yy156;
-                               goto yy178;
-                       } else {
-                               if (yych == '{') goto yy186;
-                               goto yy156;
-                       }
-               }
-yy188:
-               YYDEBUG(188, *YYCURSOR);
-               yyaccept = 0;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 4) {
-                       goto yy156;
-               }
-               if (yych <= '[') {
-                       if (yych <= '\f') goto yy161;
-                       if (yych <= '\r') goto yy163;
-                       if (yych <= '@') goto yy190;
-                       goto yy158;
-               } else {
-                       if (yych <= '\\') goto yy160;
-                       if (yych != '{') goto yy158;
-               }
-yy189:
-               YYDEBUG(189, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy161;
-               }
-               if (yych <= '$') {
-                       if (yych == '\r') goto yy163;
-                       if (yych <= '#') goto yy156;
-                       goto yy168;
-               } else {
-                       if (yych <= '\\') {
-                               if (yych <= '[') goto yy156;
-                               goto yy160;
-                       } else {
-                               if (yych == '{') goto yy194;
-                               goto yy156;
-                       }
-               }
-yy190:
-               YYDEBUG(190, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 4) {
-                       goto yy156;
-               }
-               if (yych <= '@') {
-                       if (yych <= '\f') goto yy161;
-                       if (yych <= '\r') goto yy163;
-                       goto yy192;
-               } else {
-                       if (yych != '\\') goto yy168;
-               }
-yy191:
-               YYDEBUG(191, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy161;
-               }
-               if (yych == '\r') goto yy163;
-               goto yy156;
-yy192:
-               YYDEBUG(192, *YYCURSOR);
-               yyaccept = 2;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(193, *YYCURSOR);
-               if (yybm[0+yych] & 4) {
-                       goto yy156;
-               }
-               if (yych <= '@') {
-                       if (yych <= '\f') goto yy161;
-                       if (yych <= '\r') goto yy163;
-                       goto yy192;
-               } else {
-                       if (yych == '\\') goto yy191;
-                       goto yy174;
-               }
-yy194:
-               YYDEBUG(194, *YYCURSOR);
-               yyaccept = 2;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(195, *YYCURSOR);
-               if (yybm[0+yych] & 16) {
-                       goto yy161;
-               }
-               if (yych <= '$') {
-                       if (yych == '\r') goto yy163;
-                       if (yych <= '#') goto yy156;
-                       goto yy174;
-               } else {
-                       if (yych <= '\\') {
-                               if (yych <= '[') goto yy156;
-                               goto yy160;
-                       } else {
-                               if (yych == '{') goto yy194;
-                               goto yy156;
-                       }
-               }
-yy196:
-               YYDEBUG(196, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy161;
-               }
-               if (yych <= '$') {
-                       if (yych == '\r') goto yy163;
-                       if (yych <= '#') goto yy156;
-                       goto yy168;
-               } else {
-                       if (yych <= '\\') {
-                               if (yych <= '[') goto yy156;
-                               goto yy160;
-                       } else {
-                               if (yych == '{') goto yy200;
-                               goto yy156;
-                       }
-               }
-yy197:
-               YYDEBUG(197, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 4) {
-                       goto yy156;
-               }
-               if (yych <= '@') {
-                       if (yych <= '\f') goto yy161;
-                       if (yych <= '\r') goto yy163;
-               } else {
-                       if (yych == '\\') goto yy191;
-                       goto yy168;
-               }
-yy198:
-               YYDEBUG(198, *YYCURSOR);
-               yyaccept = 2;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(199, *YYCURSOR);
-               if (yybm[0+yych] & 4) {
-                       goto yy156;
-               }
-               if (yych <= '@') {
-                       if (yych <= '\f') goto yy161;
-                       if (yych <= '\r') goto yy163;
-                       goto yy198;
-               } else {
-                       if (yych == '\\') goto yy191;
-                       goto yy174;
-               }
-yy200:
-               YYDEBUG(200, *YYCURSOR);
-               yyaccept = 2;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(201, *YYCURSOR);
-               if (yybm[0+yych] & 16) {
-                       goto yy161;
-               }
-               if (yych <= '$') {
-                       if (yych == '\r') goto yy163;
-                       if (yych <= '#') goto yy156;
-                       goto yy174;
-               } else {
-                       if (yych <= '\\') {
-                               if (yych <= '[') goto yy156;
-                               goto yy160;
-                       } else {
-                               if (yych == '{') goto yy200;
-                               goto yy156;
-                       }
-               }
-yy202:
-               YYDEBUG(202, *YYCURSOR);
-               yyaccept = 3;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(3);
-               yych = *YYCURSOR;
-               YYDEBUG(203, *YYCURSOR);
-               if (yych <= 'Z') {
-                       if (yych <= '/') {
-                               if (yych == '-') goto yy207;
-                       } else {
-                               if (yych <= '9') goto yy202;
-                               if (yych >= 'A') goto yy202;
-                       }
-               } else {
-                       if (yych <= '_') {
-                               if (yych <= '[') goto yy208;
-                               if (yych >= '_') goto yy202;
-                       } else {
-                               if (yych <= '`') goto yy204;
-                               if (yych <= 'z') goto yy202;
-                               if (yych >= 0x7F) goto yy202;
-                       }
-               }
-yy204:
-               YYDEBUG(204, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2171 "Zend/zend_language_scanner.l"
-               {
-       if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), IS_UNICODE, SCNG(output_conv) TSRMLS_CC)) {
-               return 0;
-       }
-       if (!zend_check_and_normalize_identifier(zendlval)) {
-               return 0;
-       }
-       return T_VARIABLE;
-}
-#line 3583 "Zend/zend_language_scanner.c"
-yy205:
-               YYDEBUG(205, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(206, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1822 "Zend/zend_language_scanner.l"
-               {
-       yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
-       return T_DOLLAR_OPEN_CURLY_BRACES;
-}
-#line 3594 "Zend/zend_language_scanner.c"
-yy207:
-               YYDEBUG(207, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '>') goto yy210;
-               goto yy168;
-yy208:
-               YYDEBUG(208, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(209, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2158 "Zend/zend_language_scanner.l"
-               {
-       yyless(yyleng - 1);
-       yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
-
-       if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), IS_UNICODE, SCNG(output_conv) TSRMLS_CC)) {
-               return 0;
-       }
-       if (!zend_check_and_normalize_identifier(zendlval)) {
-               return 0;
-       }
-       return T_VARIABLE;
-}
-#line 3618 "Zend/zend_language_scanner.c"
-yy210:
-               YYDEBUG(210, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '_') {
-                       if (yych <= '@') goto yy168;
-                       if (yych <= 'Z') goto yy211;
-                       if (yych <= '^') goto yy168;
-               } else {
-                       if (yych <= '`') goto yy168;
-                       if (yych <= 'z') goto yy211;
-                       if (yych <= '~') goto yy168;
-               }
-yy211:
-               YYDEBUG(211, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(212, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2143 "Zend/zend_language_scanner.l"
-               {
-       yyless(yyleng - 3);
-       yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
-
-       if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), IS_UNICODE, SCNG(output_conv) TSRMLS_CC)) {
-               return 0;
-       }
-       if (!zend_check_and_normalize_identifier(zendlval)) {
-               return 0;
-       }
-       return T_VARIABLE;
-}
-#line 3649 "Zend/zend_language_scanner.c"
+#line 2591 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_IN_SCRIPTING:
        {
                static const unsigned char yybm[] = {
-                       /* table 1 .. 8: 0 */
-                         2,   2,   2,   2,   2,   2,   2,   2, 
-                         2, 194,  66,   2,   2,  66,   2,   2, 
-                         2,   2,   2,   2,   2,   2,   2,   2, 
-                         2,   2,   2,   2,   2,   2,   2,   2, 
-                       194,   2,   0,   2,   4,   2,   2,   2, 
-                         2,   2,   2,   2,   2,   2,   2,   2, 
-                        58,  58,  58,  58,  58,  58,  58,  58, 
-                        58,  58,   2,   2,   2,   2,   2,   2, 
-                         2,  42,  42,  42,  42,  42,  42,  10, 
-                        10,  10,  10,  10,  10,  10,  10,  10, 
-                        10,  10,  10,  10,  10,  10,  10,  10, 
-                        10,  10,  10,   2,   0,   2,   2,  10, 
-                         2,  42,  42,  42,  42,  42,  42,  10, 
-                        10,  10,  10,  10,  10,  10,  10,  10, 
-                        10,  10,  10,  10,  10,  10,  10,  10, 
-                        10,  10,  10,   1,   2,   2,   2,  10, 
-                        10,  10,  10,  10,  10,  10,  10,  10, 
-                        10,  10,  10,  10,  10,  10,  10,  10, 
-                        10,  10,  10,  10,  10,  10,  10,  10, 
-                        10,  10,  10,  10,  10,  10,  10,  10, 
-                        10,  10,  10,  10,  10,  10,  10,  10, 
-                        10,  10,  10,  10,  10,  10,  10,  10, 
-                        10,  10,  10,  10,  10,  10,  10,  10, 
-                        10,  10,  10,  10,  10,  10,  10,  10, 
-                        10,  10,  10,  10,  10,  10,  10,  10, 
-                        10,  10,  10,  10,  10,  10,  10,  10, 
-                        10,  10,  10,  10,  10,  10,  10,  10, 
-                        10,  10,  10,  10,  10,  10,  10,  10, 
-                        10,  10,  10,  10,  10,  10,  10,  10, 
-                        10,  10,  10,  10,  10,  10,  10,  10, 
-                        10,  10,  10,  10,  10,  10,  10,  10, 
-                        10,  10,  10,  10,  10,  10,  10,  10, 
-                       /* table 9 .. 9: 256 */
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128,   0, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128,   0, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0, 192,  64,   0,   0,  64,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                       192,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                        56,  56,  56,  56,  56,  56,  56,  56, 
+                        56,  56,   0,   0,   0,   0,   0,   0, 
+                         0,  40,  40,  40,  40,  40,  40,   8, 
+                         8,   8,   8,   8,   8,   8,   8,   8, 
+                         8,   8,   8,   8,   8,   8,   8,   8, 
+                         8,   8,   8,   0,   0,   0,   0,   8, 
+                         0,  40,  40,  40,  40,  40,  40,   8, 
+                         8,   8,   8,   8,   8,   8,   8,   8, 
+                         8,   8,   8,   8,   8,   8,   8,   8, 
+                         8,   8,   8,   0,   0,   0,   0,   8, 
+                         8,   8,   8,   8,   8,   8,   8,   8, 
+                         8,   8,   8,   8,   8,   8,   8,   8, 
+                         8,   8,   8,   8,   8,   8,   8,   8, 
+                         8,   8,   8,   8,   8,   8,   8,   8, 
+                         8,   8,   8,   8,   8,   8,   8,   8, 
+                         8,   8,   8,   8,   8,   8,   8,   8, 
+                         8,   8,   8,   8,   8,   8,   8,   8, 
+                         8,   8,   8,   8,   8,   8,   8,   8, 
+                         8,   8,   8,   8,   8,   8,   8,   8, 
+                         8,   8,   8,   8,   8,   8,   8,   8, 
+                         8,   8,   8,   8,   8,   8,   8,   8, 
+                         8,   8,   8,   8,   8,   8,   8,   8, 
+                         8,   8,   8,   8,   8,   8,   8,   8, 
+                         8,   8,   8,   8,   8,   8,   8,   8, 
+                         8,   8,   8,   8,   8,   8,   8,   8, 
+                         8,   8,   8,   8,   8,   8,   8,   8, 
                };
-               YYDEBUG(213, *YYCURSOR);
+               YYDEBUG(121, *YYCURSOR);
                YYFILL(16);
                yych = *YYCURSOR;
                YYDEBUG(-1, yych);
                switch (yych) {
-               case 0x00:      goto yy215;
+               case 0x00:
                case 0x01:
                case 0x02:
                case 0x03:
@@ -3751,32 +2659,32 @@ yyc_ST_IN_SCRIPTING:
                case 0x1C:
                case 0x1D:
                case 0x1E:
-               case 0x1F:      goto yy277;
+               case 0x1F:      goto yy183;
                case '\t':
                case '\n':
                case '\r':
-               case ' ':       goto yy233;
-               case '!':       goto yy246;
-               case '"':       goto yy271;
-               case '#':       goto yy269;
-               case '$':       goto yy258;
-               case '%':       goto yy252;
-               case '&':       goto yy253;
-               case '\'':      goto yy273;
-               case '(':       goto yy240;
+               case ' ':       goto yy139;
+               case '!':       goto yy152;
+               case '"':       goto yy179;
+               case '#':       goto yy175;
+               case '$':       goto yy164;
+               case '%':       goto yy158;
+               case '&':       goto yy159;
+               case '\'':      goto yy177;
+               case '(':       goto yy146;
                case ')':
                case ',':
                case ';':
                case '@':
                case '[':
                case ']':
-               case '~':       goto yy259;
-               case '*':       goto yy249;
-               case '+':       goto yy245;
-               case '-':       goto yy231;
-               case '.':       goto yy251;
-               case '/':       goto yy250;
-               case '0':       goto yy265;
+               case '~':       goto yy165;
+               case '*':       goto yy155;
+               case '+':       goto yy151;
+               case '-':       goto yy137;
+               case '.':       goto yy157;
+               case '/':       goto yy156;
+               case '0':       goto yy171;
                case '1':
                case '2':
                case '3':
@@ -3785,90 +2693,82 @@ yyc_ST_IN_SCRIPTING:
                case '6':
                case '7':
                case '8':
-               case '9':       goto yy267;
-               case ':':       goto yy235;
-               case '<':       goto yy247;
-               case '=':       goto yy243;
-               case '>':       goto yy248;
-               case '?':       goto yy260;
+               case '9':       goto yy173;
+               case ':':       goto yy141;
+               case '<':       goto yy153;
+               case '=':       goto yy149;
+               case '>':       goto yy154;
+               case '?':       goto yy166;
                case 'A':
-               case 'a':       goto yy226;
+               case 'a':       goto yy132;
                case 'B':
-               case 'b':       goto yy228;
+               case 'b':       goto yy134;
                case 'C':
-               case 'c':       goto yy221;
+               case 'c':       goto yy127;
                case 'D':
-               case 'd':       goto yy219;
+               case 'd':       goto yy125;
                case 'E':
-               case 'e':       goto yy217;
+               case 'e':       goto yy123;
                case 'F':
-               case 'f':       goto yy220;
+               case 'f':       goto yy126;
                case 'G':
-               case 'g':       goto yy229;
+               case 'g':       goto yy135;
                case 'I':
-               case 'i':       goto yy224;
+               case 'i':       goto yy130;
                case 'L':
-               case 'l':       goto yy244;
+               case 'l':       goto yy150;
                case 'N':
-               case 'n':       goto yy238;
+               case 'n':       goto yy144;
                case 'O':
-               case 'o':       goto yy256;
+               case 'o':       goto yy162;
                case 'P':
-               case 'p':       goto yy230;
+               case 'p':       goto yy136;
                case 'R':
-               case 'r':       goto yy222;
+               case 'r':       goto yy128;
                case 'S':
-               case 's':       goto yy227;
+               case 's':       goto yy133;
                case 'T':
-               case 't':       goto yy223;
+               case 't':       goto yy129;
                case 'U':
-               case 'u':       goto yy241;
+               case 'u':       goto yy147;
                case 'V':
-               case 'v':       goto yy239;
+               case 'v':       goto yy145;
                case 'W':
-               case 'w':       goto yy225;
+               case 'w':       goto yy131;
                case 'X':
-               case 'x':       goto yy257;
-               case '\\':      goto yy236;
-               case '^':       goto yy255;
-               case '_':       goto yy242;
-               case '`':       goto yy275;
-               case '{':       goto yy261;
-               case '|':       goto yy254;
-               case '}':       goto yy263;
-               default:        goto yy268;
+               case 'x':       goto yy163;
+               case '\\':      goto yy142;
+               case '^':       goto yy161;
+               case '_':       goto yy148;
+               case '`':       goto yy181;
+               case '{':       goto yy167;
+               case '|':       goto yy160;
+               case '}':       goto yy169;
+               default:        goto yy174;
                }
-yy215:
-               YYDEBUG(215, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(216, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2620 "Zend/zend_language_scanner.l"
-               { return 0; }
-#line 3849 "Zend/zend_language_scanner.c"
-yy217:
-               YYDEBUG(217, *YYCURSOR);
+yy123:
+               YYDEBUG(123, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(-1, yych);
                switch ((yych = *YYCURSOR)) {
                case 'C':
-               case 'c':       goto yy833;
+               case 'c':       goto yy709;
                case 'L':
-               case 'l':       goto yy834;
+               case 'l':       goto yy710;
                case 'M':
-               case 'm':       goto yy835;
+               case 'm':       goto yy711;
                case 'N':
-               case 'n':       goto yy836;
+               case 'n':       goto yy712;
                case 'V':
-               case 'v':       goto yy837;
+               case 'v':       goto yy713;
                case 'X':
-               case 'x':       goto yy838;
-               default:        goto yy295;
+               case 'x':       goto yy714;
+               default:        goto yy186;
                }
-yy218:
-               YYDEBUG(218, *YYCURSOR);
+yy124:
+               YYDEBUG(124, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2199 "Zend/zend_language_scanner.l"
+#line 2176 "Zend/zend_language_scanner.l"
                {
        if (!zend_copy_scanner_string(zendlval, yytext, yyleng, IS_UNICODE, SCNG(output_conv) TSRMLS_CC)) {
                return 0;
@@ -3878,267 +2778,246 @@ yy218:
        }
        return T_STRING;
 }
-#line 3882 "Zend/zend_language_scanner.c"
-yy219:
-               YYDEBUG(219, *YYCURSOR);
+#line 2782 "Zend/zend_language_scanner.c"
+yy125:
+               YYDEBUG(125, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'O') {
                        if (yych <= 'H') {
-                               if (yych == 'E') goto yy815;
-                               goto yy295;
+                               if (yych == 'E') goto yy691;
+                               goto yy186;
                        } else {
-                               if (yych <= 'I') goto yy816;
-                               if (yych <= 'N') goto yy295;
-                               goto yy817;
+                               if (yych <= 'I') goto yy692;
+                               if (yych <= 'N') goto yy186;
+                               goto yy693;
                        }
                } else {
                        if (yych <= 'h') {
-                               if (yych == 'e') goto yy815;
-                               goto yy295;
+                               if (yych == 'e') goto yy691;
+                               goto yy186;
                        } else {
-                               if (yych <= 'i') goto yy816;
-                               if (yych == 'o') goto yy817;
-                               goto yy295;
+                               if (yych <= 'i') goto yy692;
+                               if (yych == 'o') goto yy693;
+                               goto yy186;
                        }
                }
-yy220:
-               YYDEBUG(220, *YYCURSOR);
+yy126:
+               YYDEBUG(126, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'U') {
                        if (yych <= 'N') {
-                               if (yych == 'I') goto yy794;
-                               goto yy295;
+                               if (yych == 'I') goto yy670;
+                               goto yy186;
                        } else {
-                               if (yych <= 'O') goto yy795;
-                               if (yych <= 'T') goto yy295;
-                               goto yy796;
+                               if (yych <= 'O') goto yy671;
+                               if (yych <= 'T') goto yy186;
+                               goto yy672;
                        }
                } else {
                        if (yych <= 'n') {
-                               if (yych == 'i') goto yy794;
-                               goto yy295;
+                               if (yych == 'i') goto yy670;
+                               goto yy186;
                        } else {
-                               if (yych <= 'o') goto yy795;
-                               if (yych == 'u') goto yy796;
-                               goto yy295;
+                               if (yych <= 'o') goto yy671;
+                               if (yych == 'u') goto yy672;
+                               goto yy186;
                        }
                }
-yy221:
-               YYDEBUG(221, *YYCURSOR);
+yy127:
+               YYDEBUG(127, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'O') {
                        if (yych <= 'K') {
-                               if (yych == 'A') goto yy766;
-                               goto yy295;
+                               if (yych == 'A') goto yy642;
+                               goto yy186;
                        } else {
-                               if (yych <= 'L') goto yy767;
-                               if (yych <= 'N') goto yy295;
-                               goto yy768;
+                               if (yych <= 'L') goto yy643;
+                               if (yych <= 'N') goto yy186;
+                               goto yy644;
                        }
                } else {
                        if (yych <= 'k') {
-                               if (yych == 'a') goto yy766;
-                               goto yy295;
+                               if (yych == 'a') goto yy642;
+                               goto yy186;
                        } else {
-                               if (yych <= 'l') goto yy767;
-                               if (yych == 'o') goto yy768;
-                               goto yy295;
+                               if (yych <= 'l') goto yy643;
+                               if (yych == 'o') goto yy644;
+                               goto yy186;
                        }
                }
-yy222:
-               YYDEBUG(222, *YYCURSOR);
+yy128:
+               YYDEBUG(128, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy748;
-               if (yych == 'e') goto yy748;
-               goto yy295;
-yy223:
-               YYDEBUG(223, *YYCURSOR);
+               if (yych == 'E') goto yy624;
+               if (yych == 'e') goto yy624;
+               goto yy186;
+yy129:
+               YYDEBUG(129, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'R') {
-                       if (yych == 'H') goto yy740;
-                       if (yych <= 'Q') goto yy295;
-                       goto yy741;
+                       if (yych == 'H') goto yy616;
+                       if (yych <= 'Q') goto yy186;
+                       goto yy617;
                } else {
                        if (yych <= 'h') {
-                               if (yych <= 'g') goto yy295;
-                               goto yy740;
+                               if (yych <= 'g') goto yy186;
+                               goto yy616;
                        } else {
-                               if (yych == 'r') goto yy741;
-                               goto yy295;
+                               if (yych == 'r') goto yy617;
+                               goto yy186;
                        }
                }
-yy224:
-               YYDEBUG(224, *YYCURSOR);
+yy130:
+               YYDEBUG(130, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'S') {
                        if (yych <= 'L') {
-                               if (yych == 'F') goto yy693;
-                               goto yy295;
+                               if (yych == 'F') goto yy569;
+                               goto yy186;
                        } else {
-                               if (yych <= 'M') goto yy695;
-                               if (yych <= 'N') goto yy696;
-                               if (yych <= 'R') goto yy295;
-                               goto yy697;
+                               if (yych <= 'M') goto yy571;
+                               if (yych <= 'N') goto yy572;
+                               if (yych <= 'R') goto yy186;
+                               goto yy573;
                        }
                } else {
                        if (yych <= 'm') {
-                               if (yych == 'f') goto yy693;
-                               if (yych <= 'l') goto yy295;
-                               goto yy695;
+                               if (yych == 'f') goto yy569;
+                               if (yych <= 'l') goto yy186;
+                               goto yy571;
                        } else {
-                               if (yych <= 'n') goto yy696;
-                               if (yych == 's') goto yy697;
-                               goto yy295;
+                               if (yych <= 'n') goto yy572;
+                               if (yych == 's') goto yy573;
+                               goto yy186;
                        }
                }
-yy225:
-               YYDEBUG(225, *YYCURSOR);
+yy131:
+               YYDEBUG(131, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy688;
-               if (yych == 'h') goto yy688;
-               goto yy295;
-yy226:
-               YYDEBUG(226, *YYCURSOR);
+               if (yych == 'H') goto yy564;
+               if (yych == 'h') goto yy564;
+               goto yy186;
+yy132:
+               YYDEBUG(132, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'S') {
                        if (yych <= 'M') {
-                               if (yych == 'B') goto yy670;
-                               goto yy295;
+                               if (yych == 'B') goto yy546;
+                               goto yy186;
                        } else {
-                               if (yych <= 'N') goto yy671;
-                               if (yych <= 'Q') goto yy295;
-                               if (yych <= 'R') goto yy672;
-                               goto yy673;
+                               if (yych <= 'N') goto yy547;
+                               if (yych <= 'Q') goto yy186;
+                               if (yych <= 'R') goto yy548;
+                               goto yy549;
                        }
                } else {
                        if (yych <= 'n') {
-                               if (yych == 'b') goto yy670;
-                               if (yych <= 'm') goto yy295;
-                               goto yy671;
+                               if (yych == 'b') goto yy546;
+                               if (yych <= 'm') goto yy186;
+                               goto yy547;
                        } else {
-                               if (yych <= 'q') goto yy295;
-                               if (yych <= 'r') goto yy672;
-                               if (yych <= 's') goto yy673;
-                               goto yy295;
+                               if (yych <= 'q') goto yy186;
+                               if (yych <= 'r') goto yy548;
+                               if (yych <= 's') goto yy549;
+                               goto yy186;
                        }
                }
-yy227:
-               YYDEBUG(227, *YYCURSOR);
+yy133:
+               YYDEBUG(133, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'W') {
-                       if (yych == 'T') goto yy658;
-                       if (yych <= 'V') goto yy295;
-                       goto yy659;
+                       if (yych == 'T') goto yy534;
+                       if (yych <= 'V') goto yy186;
+                       goto yy535;
                } else {
                        if (yych <= 't') {
-                               if (yych <= 's') goto yy295;
-                               goto yy658;
+                               if (yych <= 's') goto yy186;
+                               goto yy534;
                        } else {
-                               if (yych == 'w') goto yy659;
-                               goto yy295;
+                               if (yych == 'w') goto yy535;
+                               goto yy186;
                        }
                }
-yy228:
-               YYDEBUG(228, *YYCURSOR);
+yy134:
+               YYDEBUG(134, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 'Q') {
-                       if (yych <= '/') {
-                               if (yych <= '"') {
-                                       if (yych <= '!') goto yy218;
-                                       goto yy635;
-                               } else {
-                                       if (yych == '\'') goto yy637;
-                                       goto yy218;
-                               }
+               if (yych <= ';') {
+                       if (yych <= '"') {
+                               if (yych <= '!') goto yy186;
+                               goto yy526;
                        } else {
-                               if (yych <= ';') {
-                                       if (yych <= '9') goto yy294;
-                                       goto yy218;
-                               } else {
-                                       if (yych <= '<') goto yy634;
-                                       if (yych <= '@') goto yy218;
-                                       goto yy294;
-                               }
+                               if (yych == '\'') goto yy527;
+                               goto yy186;
                        }
                } else {
-                       if (yych <= '`') {
-                               if (yych <= 'Z') {
-                                       if (yych <= 'R') goto yy639;
-                                       goto yy294;
-                               } else {
-                                       if (yych == '_') goto yy294;
-                                       goto yy218;
-                               }
+                       if (yych <= 'R') {
+                               if (yych <= '<') goto yy525;
+                               if (yych <= 'Q') goto yy186;
+                               goto yy528;
                        } else {
-                               if (yych <= 'r') {
-                                       if (yych <= 'q') goto yy294;
-                                       goto yy639;
-                               } else {
-                                       if (yych <= 'z') goto yy294;
-                                       if (yych <= '~') goto yy218;
-                                       goto yy294;
-                               }
+                               if (yych == 'r') goto yy528;
+                               goto yy186;
                        }
                }
-yy229:
-               YYDEBUG(229, *YYCURSOR);
+yy135:
+               YYDEBUG(135, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'O') {
-                       if (yych == 'L') goto yy624;
-                       if (yych <= 'N') goto yy295;
-                       goto yy625;
+                       if (yych == 'L') goto yy515;
+                       if (yych <= 'N') goto yy186;
+                       goto yy516;
                } else {
                        if (yych <= 'l') {
-                               if (yych <= 'k') goto yy295;
-                               goto yy624;
+                               if (yych <= 'k') goto yy186;
+                               goto yy515;
                        } else {
-                               if (yych == 'o') goto yy625;
-                               goto yy295;
+                               if (yych == 'o') goto yy516;
+                               goto yy186;
                        }
                }
-yy230:
-               YYDEBUG(230, *YYCURSOR);
+yy136:
+               YYDEBUG(136, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'U') {
-                       if (yych == 'R') goto yy600;
-                       if (yych <= 'T') goto yy295;
-                       goto yy601;
+                       if (yych == 'R') goto yy491;
+                       if (yych <= 'T') goto yy186;
+                       goto yy492;
                } else {
                        if (yych <= 'r') {
-                               if (yych <= 'q') goto yy295;
-                               goto yy600;
+                               if (yych <= 'q') goto yy186;
+                               goto yy491;
                        } else {
-                               if (yych == 'u') goto yy601;
-                               goto yy295;
+                               if (yych == 'u') goto yy492;
+                               goto yy186;
                        }
                }
-yy231:
-               YYDEBUG(231, *YYCURSOR);
+yy137:
+               YYDEBUG(137, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '<') {
-                       if (yych == '-') goto yy596;
+                       if (yych == '-') goto yy487;
                } else {
-                       if (yych <= '=') goto yy594;
-                       if (yych <= '>') goto yy598;
+                       if (yych <= '=') goto yy485;
+                       if (yych <= '>') goto yy489;
                }
-yy232:
-               YYDEBUG(232, *YYCURSOR);
+yy138:
+               YYDEBUG(138, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1811 "Zend/zend_language_scanner.l"
+#line 1762 "Zend/zend_language_scanner.l"
                {
        return yytext[0];
 }
-#line 4133 "Zend/zend_language_scanner.c"
-yy233:
-               YYDEBUG(233, *YYCURSOR);
+#line 3012 "Zend/zend_language_scanner.c"
+yy139:
+               YYDEBUG(139, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
-               goto yy593;
-yy234:
-               YYDEBUG(234, *YYCURSOR);
+               goto yy484;
+yy140:
+               YYDEBUG(140, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1538 "Zend/zend_language_scanner.l"
+#line 1489 "Zend/zend_language_scanner.l"
                {
        Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
        Z_STRLEN_P(zendlval) = yyleng;
@@ -4146,261 +3025,261 @@ yy234:
        HANDLE_NEWLINES(yytext, yyleng);
        return T_WHITESPACE;
 }
-#line 4150 "Zend/zend_language_scanner.c"
-yy235:
-               YYDEBUG(235, *YYCURSOR);
+#line 3029 "Zend/zend_language_scanner.c"
+yy141:
+               YYDEBUG(141, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == ':') goto yy590;
-               goto yy232;
-yy236:
-               YYDEBUG(236, *YYCURSOR);
+               if (yych == ':') goto yy481;
+               goto yy138;
+yy142:
+               YYDEBUG(142, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(237, *YYCURSOR);
+               YYDEBUG(143, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1571 "Zend/zend_language_scanner.l"
+#line 1522 "Zend/zend_language_scanner.l"
                {
        return T_NS_SEPARATOR;
 }
-#line 4165 "Zend/zend_language_scanner.c"
-yy238:
-               YYDEBUG(238, *YYCURSOR);
+#line 3044 "Zend/zend_language_scanner.c"
+yy144:
+               YYDEBUG(144, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'E') {
-                       if (yych == 'A') goto yy578;
-                       if (yych <= 'D') goto yy295;
-                       goto yy579;
+                       if (yych == 'A') goto yy469;
+                       if (yych <= 'D') goto yy186;
+                       goto yy470;
                } else {
                        if (yych <= 'a') {
-                               if (yych <= '`') goto yy295;
-                               goto yy578;
+                               if (yych <= '`') goto yy186;
+                               goto yy469;
                        } else {
-                               if (yych == 'e') goto yy579;
-                               goto yy295;
+                               if (yych == 'e') goto yy470;
+                               goto yy186;
                        }
                }
-yy239:
-               YYDEBUG(239, *YYCURSOR);
+yy145:
+               YYDEBUG(145, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy575;
-               if (yych == 'a') goto yy575;
-               goto yy295;
-yy240:
-               YYDEBUG(240, *YYCURSOR);
+               if (yych == 'A') goto yy466;
+               if (yych == 'a') goto yy466;
+               goto yy186;
+yy146:
+               YYDEBUG(146, *YYCURSOR);
                yyaccept = 1;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= 'S') {
                        if (yych <= 'D') {
                                if (yych <= ' ') {
-                                       if (yych == '\t') goto yy488;
-                                       if (yych <= 0x1F) goto yy232;
-                                       goto yy488;
+                                       if (yych == '\t') goto yy379;
+                                       if (yych <= 0x1F) goto yy138;
+                                       goto yy379;
                                } else {
-                                       if (yych <= '@') goto yy232;
-                                       if (yych == 'C') goto yy232;
-                                       goto yy488;
+                                       if (yych <= '@') goto yy138;
+                                       if (yych == 'C') goto yy138;
+                                       goto yy379;
                                }
                        } else {
                                if (yych <= 'I') {
-                                       if (yych == 'F') goto yy488;
-                                       if (yych <= 'H') goto yy232;
-                                       goto yy488;
+                                       if (yych == 'F') goto yy379;
+                                       if (yych <= 'H') goto yy138;
+                                       goto yy379;
                                } else {
-                                       if (yych == 'O') goto yy488;
-                                       if (yych <= 'Q') goto yy232;
-                                       goto yy488;
+                                       if (yych == 'O') goto yy379;
+                                       if (yych <= 'Q') goto yy138;
+                                       goto yy379;
                                }
                        }
                } else {
                        if (yych <= 'f') {
                                if (yych <= 'b') {
-                                       if (yych == 'U') goto yy488;
-                                       if (yych <= '`') goto yy232;
-                                       goto yy488;
+                                       if (yych == 'U') goto yy379;
+                                       if (yych <= '`') goto yy138;
+                                       goto yy379;
                                } else {
-                                       if (yych == 'd') goto yy488;
-                                       if (yych <= 'e') goto yy232;
-                                       goto yy488;
+                                       if (yych == 'd') goto yy379;
+                                       if (yych <= 'e') goto yy138;
+                                       goto yy379;
                                }
                        } else {
                                if (yych <= 'o') {
-                                       if (yych == 'i') goto yy488;
-                                       if (yych <= 'n') goto yy232;
-                                       goto yy488;
+                                       if (yych == 'i') goto yy379;
+                                       if (yych <= 'n') goto yy138;
+                                       goto yy379;
                                } else {
                                        if (yych <= 's') {
-                                               if (yych <= 'q') goto yy232;
-                                               goto yy488;
+                                               if (yych <= 'q') goto yy138;
+                                               goto yy379;
                                        } else {
-                                               if (yych == 'u') goto yy488;
-                                               goto yy232;
+                                               if (yych == 'u') goto yy379;
+                                               goto yy138;
                                        }
                                }
                        }
                }
-yy241:
-               YYDEBUG(241, *YYCURSOR);
+yy147:
+               YYDEBUG(147, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'S') {
-                       if (yych == 'N') goto yy479;
-                       if (yych <= 'R') goto yy295;
-                       goto yy480;
+                       if (yych == 'N') goto yy370;
+                       if (yych <= 'R') goto yy186;
+                       goto yy371;
                } else {
                        if (yych <= 'n') {
-                               if (yych <= 'm') goto yy295;
-                               goto yy479;
+                               if (yych <= 'm') goto yy186;
+                               goto yy370;
                        } else {
-                               if (yych == 's') goto yy480;
-                               goto yy295;
+                               if (yych == 's') goto yy371;
+                               goto yy186;
                        }
                }
-yy242:
-               YYDEBUG(242, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '_') goto yy405;
-               goto yy295;
-yy243:
-               YYDEBUG(243, *YYCURSOR);
+yy148:
+               YYDEBUG(148, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= '<') goto yy232;
-               if (yych <= '=') goto yy399;
-               if (yych <= '>') goto yy401;
-               goto yy232;
-yy244:
-               YYDEBUG(244, *YYCURSOR);
+               if (yych == '_') goto yy296;
+               goto yy186;
+yy149:
+               YYDEBUG(149, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy395;
-               if (yych == 'i') goto yy395;
-               goto yy295;
-yy245:
-               YYDEBUG(245, *YYCURSOR);
+               if (yych <= '<') goto yy138;
+               if (yych <= '=') goto yy290;
+               if (yych <= '>') goto yy292;
+               goto yy138;
+yy150:
+               YYDEBUG(150, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '+') goto yy393;
-               if (yych == '=') goto yy391;
-               goto yy232;
-yy246:
-               YYDEBUG(246, *YYCURSOR);
+               if (yych == 'I') goto yy286;
+               if (yych == 'i') goto yy286;
+               goto yy186;
+yy151:
+               YYDEBUG(151, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '=') goto yy388;
-               goto yy232;
-yy247:
-               YYDEBUG(247, *YYCURSOR);
+               if (yych == '+') goto yy284;
+               if (yych == '=') goto yy282;
+               goto yy138;
+yy152:
+               YYDEBUG(152, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == '=') goto yy279;
+               goto yy138;
+yy153:
+               YYDEBUG(153, *YYCURSOR);
                yyaccept = 1;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= ';') {
-                       if (yych == '/') goto yy360;
-                       goto yy232;
+                       if (yych == '/') goto yy251;
+                       goto yy138;
                } else {
-                       if (yych <= '<') goto yy358;
-                       if (yych <= '=') goto yy361;
-                       if (yych <= '>') goto yy363;
-                       goto yy232;
+                       if (yych <= '<') goto yy249;
+                       if (yych <= '=') goto yy252;
+                       if (yych <= '>') goto yy254;
+                       goto yy138;
                }
-yy248:
-               YYDEBUG(248, *YYCURSOR);
+yy154:
+               YYDEBUG(154, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= '<') goto yy232;
-               if (yych <= '=') goto yy354;
-               if (yych <= '>') goto yy352;
-               goto yy232;
-yy249:
-               YYDEBUG(249, *YYCURSOR);
+               if (yych <= '<') goto yy138;
+               if (yych <= '=') goto yy245;
+               if (yych <= '>') goto yy243;
+               goto yy138;
+yy155:
+               YYDEBUG(155, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '=') goto yy350;
-               goto yy232;
-yy250:
-               YYDEBUG(250, *YYCURSOR);
+               if (yych == '=') goto yy241;
+               goto yy138;
+yy156:
+               YYDEBUG(156, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= '.') {
-                       if (yych == '*') goto yy341;
-                       goto yy232;
+                       if (yych == '*') goto yy233;
+                       goto yy138;
                } else {
-                       if (yych <= '/') goto yy343;
-                       if (yych == '=') goto yy344;
-                       goto yy232;
+                       if (yych <= '/') goto yy235;
+                       if (yych == '=') goto yy236;
+                       goto yy138;
                }
-yy251:
-               YYDEBUG(251, *YYCURSOR);
+yy157:
+               YYDEBUG(157, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= '/') goto yy232;
-               if (yych <= '9') goto yy337;
-               if (yych == '=') goto yy339;
-               goto yy232;
-yy252:
-               YYDEBUG(252, *YYCURSOR);
+               if (yych <= '/') goto yy138;
+               if (yych <= '9') goto yy229;
+               if (yych == '=') goto yy231;
+               goto yy138;
+yy158:
+               YYDEBUG(158, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= '<') goto yy232;
-               if (yych <= '=') goto yy333;
-               if (yych <= '>') goto yy331;
-               goto yy232;
-yy253:
-               YYDEBUG(253, *YYCURSOR);
+               if (yych <= '<') goto yy138;
+               if (yych <= '=') goto yy225;
+               if (yych <= '>') goto yy223;
+               goto yy138;
+yy159:
+               YYDEBUG(159, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '&') goto yy327;
-               if (yych == '=') goto yy329;
-               goto yy232;
-yy254:
-               YYDEBUG(254, *YYCURSOR);
+               if (yych == '&') goto yy219;
+               if (yych == '=') goto yy221;
+               goto yy138;
+yy160:
+               YYDEBUG(160, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '=') goto yy325;
-               if (yych == '|') goto yy323;
-               goto yy232;
-yy255:
-               YYDEBUG(255, *YYCURSOR);
+               if (yych == '=') goto yy217;
+               if (yych == '|') goto yy215;
+               goto yy138;
+yy161:
+               YYDEBUG(161, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '=') goto yy321;
-               goto yy232;
-yy256:
-               YYDEBUG(256, *YYCURSOR);
+               if (yych == '=') goto yy213;
+               goto yy138;
+yy162:
+               YYDEBUG(162, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy319;
-               if (yych == 'r') goto yy319;
-               goto yy295;
-yy257:
-               YYDEBUG(257, *YYCURSOR);
+               if (yych == 'R') goto yy211;
+               if (yych == 'r') goto yy211;
+               goto yy186;
+yy163:
+               YYDEBUG(163, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy316;
-               if (yych == 'o') goto yy316;
-               goto yy295;
-yy258:
-               YYDEBUG(258, *YYCURSOR);
+               if (yych == 'O') goto yy208;
+               if (yych == 'o') goto yy208;
+               goto yy186;
+yy164:
+               YYDEBUG(164, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= '_') {
-                       if (yych <= '@') goto yy232;
-                       if (yych <= 'Z') goto yy313;
-                       if (yych <= '^') goto yy232;
-                       goto yy313;
+                       if (yych <= '@') goto yy138;
+                       if (yych <= 'Z') goto yy205;
+                       if (yych <= '^') goto yy138;
+                       goto yy205;
                } else {
-                       if (yych <= '`') goto yy232;
-                       if (yych <= 'z') goto yy313;
-                       if (yych <= '~') goto yy232;
-                       goto yy313;
+                       if (yych <= '`') goto yy138;
+                       if (yych <= 'z') goto yy205;
+                       if (yych <= '~') goto yy138;
+                       goto yy205;
                }
-yy259:
-               YYDEBUG(259, *YYCURSOR);
+yy165:
+               YYDEBUG(165, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy232;
-yy260:
-               YYDEBUG(260, *YYCURSOR);
+               goto yy138;
+yy166:
+               YYDEBUG(166, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '>') goto yy309;
-               goto yy232;
-yy261:
-               YYDEBUG(261, *YYCURSOR);
+               if (yych == '>') goto yy201;
+               goto yy138;
+yy167:
+               YYDEBUG(167, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(262, *YYCURSOR);
+               YYDEBUG(168, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1816 "Zend/zend_language_scanner.l"
+#line 1767 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return '{';
 }
-#line 4398 "Zend/zend_language_scanner.c"
-yy263:
-               YYDEBUG(263, *YYCURSOR);
+#line 3277 "Zend/zend_language_scanner.c"
+yy169:
+               YYDEBUG(169, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(264, *YYCURSOR);
+               YYDEBUG(170, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1828 "Zend/zend_language_scanner.l"
+#line 1779 "Zend/zend_language_scanner.l"
                {
        RESET_DOC_COMMENT();
        if (!zend_stack_is_empty(&SCNG(state_stack))) {
@@ -4408,30 +3287,30 @@ yy263:
        }
        return '}';
 }
-#line 4412 "Zend/zend_language_scanner.c"
-yy265:
-               YYDEBUG(265, *YYCURSOR);
+#line 3291 "Zend/zend_language_scanner.c"
+yy171:
+               YYDEBUG(171, *YYCURSOR);
                yyaccept = 2;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= 'E') {
                        if (yych <= '/') {
-                               if (yych == '.') goto yy296;
+                               if (yych == '.') goto yy187;
                        } else {
-                               if (yych <= '9') goto yy299;
-                               if (yych >= 'E') goto yy301;
+                               if (yych <= '9') goto yy190;
+                               if (yych >= 'E') goto yy192;
                        }
                } else {
                        if (yych <= 'd') {
-                               if (yych == 'X') goto yy305;
+                               if (yych == 'X') goto yy197;
                        } else {
-                               if (yych <= 'e') goto yy301;
-                               if (yych == 'x') goto yy305;
+                               if (yych <= 'e') goto yy192;
+                               if (yych == 'x') goto yy197;
                        }
                }
-yy266:
-               YYDEBUG(266, *YYCURSOR);
+yy172:
+               YYDEBUG(172, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1858 "Zend/zend_language_scanner.l"
+#line 1809 "Zend/zend_language_scanner.l"
                {
        if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
                Z_LVAL_P(zendlval) = strtol(yytext, NULL, 0);
@@ -4452,317 +3331,304 @@ yy266:
        Z_TYPE_P(zendlval) = IS_LONG;
        return T_LNUMBER;
 }
-#line 4456 "Zend/zend_language_scanner.c"
-yy267:
-               YYDEBUG(267, *YYCURSOR);
+#line 3335 "Zend/zend_language_scanner.c"
+yy173:
+               YYDEBUG(173, *YYCURSOR);
                yyaccept = 2;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= '9') {
-                       if (yych == '.') goto yy296;
-                       if (yych <= '/') goto yy266;
-                       goto yy299;
+                       if (yych == '.') goto yy187;
+                       if (yych <= '/') goto yy172;
+                       goto yy190;
                } else {
                        if (yych <= 'E') {
-                               if (yych <= 'D') goto yy266;
-                               goto yy301;
+                               if (yych <= 'D') goto yy172;
+                               goto yy192;
                        } else {
-                               if (yych == 'e') goto yy301;
-                               goto yy266;
+                               if (yych == 'e') goto yy192;
+                               goto yy172;
                        }
                }
-yy268:
-               YYDEBUG(268, *YYCURSOR);
+yy174:
+               YYDEBUG(174, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy295;
-yy269:
-               YYDEBUG(269, *YYCURSOR);
+               goto yy186;
+yy175:
+               YYDEBUG(175, *YYCURSOR);
                ++YYCURSOR;
-yy270:
-               YYDEBUG(270, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2217 "Zend/zend_language_scanner.l"
-               {
-       BEGIN(ST_ONE_LINE_COMMENT);
-       yymore();
-}
-#line 4489 "Zend/zend_language_scanner.c"
-yy271:
-               YYDEBUG(271, *YYCURSOR);
-               yyaccept = 3;
-               yych = *(YYMARKER = ++YYCURSOR);
-               goto yy287;
-yy272:
-               YYDEBUG(272, *YYCURSOR);
+yy176:
+               YYDEBUG(176, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2357 "Zend/zend_language_scanner.l"
+#line 2194 "Zend/zend_language_scanner.l"
                {
-       BEGIN(ST_DOUBLE_QUOTES);
-       return '"';
+       while (YYCURSOR < YYLIMIT) {
+               switch (*YYCURSOR++) {
+                       case '\r':
+                               if (*YYCURSOR == '\n') {
+                                       YYCURSOR++;
+                               }
+                               /* fall through */
+                       case '\n':
+                               CG(zend_lineno)++;
+                               break;
+                       case '%':
+                               if (!CG(asp_tags)) {
+                                       continue;
+                               }
+                               /* fall through */
+                       case '?':
+                               if (*YYCURSOR == '>') {
+                                       YYCURSOR--;
+                                       break;
+                               }
+                               /* fall through */
+                       default:
+                               continue;
+               }
+
+               break;
+       }
+
+       yyleng = YYCURSOR - SCNG(yy_text);
+
+       return T_COMMENT;
 }
-#line 4503 "Zend/zend_language_scanner.c"
-yy273:
-               YYDEBUG(273, *YYCURSOR);
-               yyaccept = 4;
-               yych = *(YYMARKER = ++YYCURSOR);
-               goto yy279;
-yy274:
-               YYDEBUG(274, *YYCURSOR);
+#line 3397 "Zend/zend_language_scanner.c"
+yy177:
+               YYDEBUG(177, *YYCURSOR);
+               ++YYCURSOR;
+yy178:
+               YYDEBUG(178, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2622 "Zend/zend_language_scanner.l"
+#line 2290 "Zend/zend_language_scanner.l"
                {
-       zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
-       goto restart;
+       int bprefix = (yytext[0] != '\'') ? 1 : 0;
+
+       while (1) {
+               if (YYCURSOR < YYLIMIT) {
+                       if (*YYCURSOR == '\'') {
+                               YYCURSOR++;
+                               yyleng = YYCURSOR - SCNG(yy_text);
+
+                               break;
+                       } else if (*YYCURSOR++ == '\\' && YYCURSOR < YYLIMIT) {
+                               YYCURSOR++;
+                       }
+               } else {
+                       yyleng = YYLIMIT - SCNG(yy_text);
+
+                       /* Unclosed single quotes; treat similar to double quotes, but without a separate token
+                        * for ' (unrecognized by parser), instead of old flex fallback to "Unexpected character..."
+                        * rule, which continued in ST_IN_SCRIPTING state after the quote */
+                       return T_ENCAPSED_AND_WHITESPACE;
+               }
+       }
+
+       if (bprefix) {
+               zend_scan_binary_single_string(zendlval, yytext+2, yyleng-3 TSRMLS_CC);
+               return T_CONSTANT_ENCAPSED_STRING;
+       } else {
+               return zend_scan_unicode_single_string(zendlval TSRMLS_CC);
+       }
 }
-#line 4517 "Zend/zend_language_scanner.c"
-yy275:
-               YYDEBUG(275, *YYCURSOR);
+#line 3435 "Zend/zend_language_scanner.c"
+yy179:
+               YYDEBUG(179, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(276, *YYCURSOR);
+yy180:
+               YYDEBUG(180, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2416 "Zend/zend_language_scanner.l"
+#line 2322 "Zend/zend_language_scanner.l"
                {
-       BEGIN(ST_BACKQUOTE);
-       return '`';
-}
-#line 4528 "Zend/zend_language_scanner.c"
-yy277:
-               YYDEBUG(277, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy274;
-yy278:
-               YYDEBUG(278, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy279:
-               YYDEBUG(279, *YYCURSOR);
-               if (yybm[256+yych] & 128) {
-                       goto yy278;
-               }
-               if (yych <= '[') goto yy282;
-               YYDEBUG(280, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yych >= 0x01) goto yy278;
-yy281:
-               YYDEBUG(281, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               if (yyaccept <= 4) {
-                       if (yyaccept <= 2) {
-                               if (yyaccept <= 1) {
-                                       if (yyaccept <= 0) {
-                                               goto yy218;
-                                       } else {
-                                               goto yy232;
-                                       }
+       int bprefix = (yytext[0] != '"') ? 1 : 0;
+
+       while (YYCURSOR < YYLIMIT) {
+               switch (*YYCURSOR++) {
+                       case '"':
+                               yyleng = YYCURSOR - SCNG(yy_text);
+
+                               if (bprefix) {
+                                       zend_scan_binary_escape_string(zendlval, yytext+2, yyleng-3, '"' TSRMLS_CC);
+                                       return T_CONSTANT_ENCAPSED_STRING;
                                } else {
-                                       goto yy266;
+                                       return zend_scan_unicode_escape_string(zendlval, yytext+1, yyleng-2, 0x22 /*'"'*/, T_CONSTANT_ENCAPSED_STRING TSRMLS_CC);
                                }
-                       } else {
-                               if (yyaccept <= 3) {
-                                       goto yy272;
-                               } else {
-                                       goto yy274;
+                       case '$':
+                               if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
+                                       break;
                                }
-                       }
-               } else {
-                       if (yyaccept <= 6) {
-                               if (yyaccept <= 5) {
-                                       goto yy298;
-                               } else {
-                                       goto yy342;
+                               continue;
+                       case '{':
+                               if (*YYCURSOR == '$') {
+                                       break;
                                }
-                       } else {
-                               if (yyaccept <= 7) {
-                                       goto yy359;
-                               } else {
-                                       goto yy636;
+                               continue;
+                       case '\\':
+                               if (YYCURSOR < YYLIMIT) {
+                                       YYCURSOR++;
                                }
-                       }
+                               /* fall through */
+                       default:
+                               continue;
                }
-yy282:
-               YYDEBUG(282, *YYCURSOR);
+
+               YYCURSOR--;
+               break;
+       }
+
+       /* Remember how much was scanned to save rescanning */
+       SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng);
+
+       YYCURSOR = SCNG(yy_text) + yyleng;
+
+       BEGIN(ST_DOUBLE_QUOTES);
+       return bprefix ? T_BINARY_DOUBLE : '"';
+}
+#line 3488 "Zend/zend_language_scanner.c"
+yy181:
+               YYDEBUG(181, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(283, *YYCURSOR);
+               YYDEBUG(182, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2346 "Zend/zend_language_scanner.l"
+#line 2418 "Zend/zend_language_scanner.l"
                {
-       return zend_scan_unicode_single_string(zendlval TSRMLS_CC);
+       BEGIN(ST_BACKQUOTE);
+       return '`';
 }
-#line 4594 "Zend/zend_language_scanner.c"
-yy284:
-               YYDEBUG(284, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(285, *YYCURSOR);
-               if (yybm[0+yych] & 2) {
-                       goto yy286;
-               }
-               if (yych <= '#') goto yy291;
-               if (yych <= '$') goto yy281;
-               if (yych <= 'z') goto yy288;
-               goto yy284;
-yy286:
-               YYDEBUG(286, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy287:
-               YYDEBUG(287, *YYCURSOR);
-               if (yybm[0+yych] & 2) {
-                       goto yy286;
-               }
-               if (yych <= '#') goto yy291;
-               if (yych <= '$') goto yy289;
-               if (yych >= '{') goto yy284;
-yy288:
-               YYDEBUG(288, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yych <= 0x00) goto yy281;
-               goto yy286;
-yy289:
-               YYDEBUG(289, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(290, *YYCURSOR);
-               if (yybm[0+yych] & 4) {
-                       goto yy289;
-               }
-               if (yych <= '\\') {
-                       if (yych <= '@') {
-                               if (yych != '"') goto yy286;
-                       } else {
-                               if (yych <= 'Z') goto yy281;
-                               if (yych <= '[') goto yy286;
-                               goto yy293;
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych == '_') goto yy281;
-                               goto yy286;
-                       } else {
-                               if (yych <= '{') goto yy281;
-                               if (yych <= '~') goto yy286;
-                               goto yy281;
-                       }
-               }
-yy291:
-               YYDEBUG(291, *YYCURSOR);
+#line 3499 "Zend/zend_language_scanner.c"
+yy183:
+               YYDEBUG(183, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(292, *YYCURSOR);
+               YYDEBUG(184, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2335 "Zend/zend_language_scanner.l"
+#line 2689 "Zend/zend_language_scanner.l"
                {
-       return zend_scan_unicode_escape_string(zendlval, yytext+1, yyleng-2, 0x22 /*'"'*/, T_CONSTANT_ENCAPSED_STRING TSRMLS_CC);
+       if (YYCURSOR > YYLIMIT) {
+               return 0;
+       }
+
+       zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
+       goto restart;
 }
-#line 4664 "Zend/zend_language_scanner.c"
-yy293:
-               YYDEBUG(293, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yych <= 0x00) goto yy281;
-               goto yy286;
-yy294:
-               YYDEBUG(294, *YYCURSOR);
+#line 3514 "Zend/zend_language_scanner.c"
+yy185:
+               YYDEBUG(185, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy295:
-               YYDEBUG(295, *YYCURSOR);
+yy186:
+               YYDEBUG(186, *YYCURSOR);
                if (yybm[0+yych] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               goto yy218;
-yy296:
-               YYDEBUG(296, *YYCURSOR);
-               yyaccept = 5;
+               goto yy124;
+yy187:
+               YYDEBUG(187, *YYCURSOR);
+               yyaccept = 3;
                YYMARKER = ++YYCURSOR;
                YYFILL(3);
                yych = *YYCURSOR;
-               YYDEBUG(297, *YYCURSOR);
+               YYDEBUG(188, *YYCURSOR);
                if (yybm[0+yych] & 16) {
-                       goto yy296;
+                       goto yy187;
                }
-               if (yych == 'E') goto yy301;
-               if (yych == 'e') goto yy301;
-yy298:
-               YYDEBUG(298, *YYCURSOR);
+               if (yych == 'E') goto yy192;
+               if (yych == 'e') goto yy192;
+yy189:
+               YYDEBUG(189, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1919 "Zend/zend_language_scanner.l"
+#line 1870 "Zend/zend_language_scanner.l"
                {
        Z_DVAL_P(zendlval) = zend_strtod(yytext, NULL);
        Z_TYPE_P(zendlval) = IS_DOUBLE;
        return T_DNUMBER;
 }
-#line 4704 "Zend/zend_language_scanner.c"
-yy299:
-               YYDEBUG(299, *YYCURSOR);
+#line 3547 "Zend/zend_language_scanner.c"
+yy190:
+               YYDEBUG(190, *YYCURSOR);
                yyaccept = 2;
                YYMARKER = ++YYCURSOR;
                YYFILL(3);
                yych = *YYCURSOR;
-               YYDEBUG(300, *YYCURSOR);
+               YYDEBUG(191, *YYCURSOR);
                if (yych <= '9') {
-                       if (yych == '.') goto yy296;
-                       if (yych <= '/') goto yy266;
-                       goto yy299;
+                       if (yych == '.') goto yy187;
+                       if (yych <= '/') goto yy172;
+                       goto yy190;
                } else {
                        if (yych <= 'E') {
-                               if (yych <= 'D') goto yy266;
+                               if (yych <= 'D') goto yy172;
                        } else {
-                               if (yych != 'e') goto yy266;
+                               if (yych != 'e') goto yy172;
                        }
                }
-yy301:
-               YYDEBUG(301, *YYCURSOR);
+yy192:
+               YYDEBUG(192, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= ',') {
-                       if (yych != '+') goto yy281;
+                       if (yych == '+') goto yy194;
                } else {
-                       if (yych <= '-') goto yy302;
-                       if (yych <= '/') goto yy281;
-                       if (yych <= '9') goto yy303;
-                       goto yy281;
+                       if (yych <= '-') goto yy194;
+                       if (yych <= '/') goto yy193;
+                       if (yych <= '9') goto yy195;
                }
-yy302:
-               YYDEBUG(302, *YYCURSOR);
+yy193:
+               YYDEBUG(193, *YYCURSOR);
+               YYCURSOR = YYMARKER;
+               if (yyaccept <= 2) {
+                       if (yyaccept <= 1) {
+                               if (yyaccept <= 0) {
+                                       goto yy124;
+                               } else {
+                                       goto yy138;
+                               }
+                       } else {
+                               goto yy172;
+                       }
+               } else {
+                       if (yyaccept <= 4) {
+                               if (yyaccept <= 3) {
+                                       goto yy189;
+                               } else {
+                                       goto yy234;
+                               }
+                       } else {
+                               goto yy250;
+                       }
+               }
+yy194:
+               YYDEBUG(194, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= '/') goto yy281;
-               if (yych >= ':') goto yy281;
-yy303:
-               YYDEBUG(303, *YYCURSOR);
+               if (yych <= '/') goto yy193;
+               if (yych >= ':') goto yy193;
+yy195:
+               YYDEBUG(195, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(304, *YYCURSOR);
-               if (yych <= '/') goto yy298;
-               if (yych <= '9') goto yy303;
-               goto yy298;
-yy305:
-               YYDEBUG(305, *YYCURSOR);
+               YYDEBUG(196, *YYCURSOR);
+               if (yych <= '/') goto yy189;
+               if (yych <= '9') goto yy195;
+               goto yy189;
+yy197:
+               YYDEBUG(197, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yybm[0+yych] & 32) {
-                       goto yy306;
+                       goto yy198;
                }
-               goto yy281;
-yy306:
-               YYDEBUG(306, *YYCURSOR);
+               goto yy193;
+yy198:
+               YYDEBUG(198, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(307, *YYCURSOR);
+               YYDEBUG(199, *YYCURSOR);
                if (yybm[0+yych] & 32) {
-                       goto yy306;
+                       goto yy198;
                }
-               YYDEBUG(308, *YYCURSOR);
+               YYDEBUG(200, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1879 "Zend/zend_language_scanner.l"
+#line 1830 "Zend/zend_language_scanner.l"
                {
        char *hex = yytext + 2; /* Skip "0x" */
        int len = yyleng - 2;
@@ -4783,16 +3649,16 @@ yy306:
                return T_DNUMBER;
        }
 }
-#line 4787 "Zend/zend_language_scanner.c"
-yy309:
-               YYDEBUG(309, *YYCURSOR);
+#line 3653 "Zend/zend_language_scanner.c"
+yy201:
+               YYDEBUG(201, *YYCURSOR);
                ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '\n') goto yy311;
-               if (yych == '\r') goto yy312;
-yy310:
-               YYDEBUG(310, *YYCURSOR);
+               if ((yych = *YYCURSOR) == '\n') goto yy203;
+               if (yych == '\r') goto yy204;
+yy202:
+               YYDEBUG(202, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2310 "Zend/zend_language_scanner.l"
+#line 2267 "Zend/zend_language_scanner.l"
                {
        Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
        Z_STRLEN_P(zendlval) = yyleng;
@@ -4800,41 +3666,41 @@ yy310:
        BEGIN(INITIAL);
        return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
 }
-#line 4804 "Zend/zend_language_scanner.c"
-yy311:
-               YYDEBUG(311, *YYCURSOR);
+#line 3670 "Zend/zend_language_scanner.c"
+yy203:
+               YYDEBUG(203, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy310;
-yy312:
-               YYDEBUG(312, *YYCURSOR);
+               goto yy202;
+yy204:
+               YYDEBUG(204, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '\n') goto yy311;
-               goto yy310;
-yy313:
-               YYDEBUG(313, *YYCURSOR);
+               if (yych == '\n') goto yy203;
+               goto yy202;
+yy205:
+               YYDEBUG(205, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(314, *YYCURSOR);
+               YYDEBUG(206, *YYCURSOR);
                if (yych <= '^') {
                        if (yych <= '9') {
-                               if (yych >= '0') goto yy313;
+                               if (yych >= '0') goto yy205;
                        } else {
-                               if (yych <= '@') goto yy315;
-                               if (yych <= 'Z') goto yy313;
+                               if (yych <= '@') goto yy207;
+                               if (yych <= 'Z') goto yy205;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych <= '_') goto yy313;
+                               if (yych <= '_') goto yy205;
                        } else {
-                               if (yych <= 'z') goto yy313;
-                               if (yych >= 0x7F) goto yy313;
+                               if (yych <= 'z') goto yy205;
+                               if (yych >= 0x7F) goto yy205;
                        }
                }
-yy315:
-               YYDEBUG(315, *YYCURSOR);
+yy207:
+               YYDEBUG(207, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2171 "Zend/zend_language_scanner.l"
+#line 2149 "Zend/zend_language_scanner.l"
                {
        if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), IS_UNICODE, SCNG(output_conv) TSRMLS_CC)) {
                return 0;
@@ -4844,97 +3710,97 @@ yy315:
        }
        return T_VARIABLE;
 }
-#line 4848 "Zend/zend_language_scanner.c"
-yy316:
-               YYDEBUG(316, *YYCURSOR);
+#line 3714 "Zend/zend_language_scanner.c"
+yy208:
+               YYDEBUG(208, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy317;
-               if (yych != 'r') goto yy295;
-yy317:
-               YYDEBUG(317, *YYCURSOR);
+               if (yych == 'R') goto yy209;
+               if (yych != 'r') goto yy186;
+yy209:
+               YYDEBUG(209, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(318, *YYCURSOR);
+               YYDEBUG(210, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1799 "Zend/zend_language_scanner.l"
+#line 1750 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_XOR;
 }
-#line 4866 "Zend/zend_language_scanner.c"
-yy319:
-               YYDEBUG(319, *YYCURSOR);
+#line 3732 "Zend/zend_language_scanner.c"
+yy211:
+               YYDEBUG(211, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(320, *YYCURSOR);
+               YYDEBUG(212, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1791 "Zend/zend_language_scanner.l"
+#line 1742 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_OR;
 }
-#line 4879 "Zend/zend_language_scanner.c"
-yy321:
-               YYDEBUG(321, *YYCURSOR);
+#line 3745 "Zend/zend_language_scanner.c"
+yy213:
+               YYDEBUG(213, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(322, *YYCURSOR);
+               YYDEBUG(214, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1779 "Zend/zend_language_scanner.l"
+#line 1730 "Zend/zend_language_scanner.l"
                {
        return T_XOR_EQUAL;
 }
-#line 4889 "Zend/zend_language_scanner.c"
-yy323:
-               YYDEBUG(323, *YYCURSOR);
+#line 3755 "Zend/zend_language_scanner.c"
+yy215:
+               YYDEBUG(215, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(324, *YYCURSOR);
+               YYDEBUG(216, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1783 "Zend/zend_language_scanner.l"
+#line 1734 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_OR;
 }
-#line 4899 "Zend/zend_language_scanner.c"
-yy325:
-               YYDEBUG(325, *YYCURSOR);
+#line 3765 "Zend/zend_language_scanner.c"
+yy217:
+               YYDEBUG(217, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(326, *YYCURSOR);
+               YYDEBUG(218, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1775 "Zend/zend_language_scanner.l"
+#line 1726 "Zend/zend_language_scanner.l"
                {
        return T_OR_EQUAL;
 }
-#line 4909 "Zend/zend_language_scanner.c"
-yy327:
-               YYDEBUG(327, *YYCURSOR);
+#line 3775 "Zend/zend_language_scanner.c"
+yy219:
+               YYDEBUG(219, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(328, *YYCURSOR);
+               YYDEBUG(220, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1787 "Zend/zend_language_scanner.l"
+#line 1738 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_AND;
 }
-#line 4919 "Zend/zend_language_scanner.c"
-yy329:
-               YYDEBUG(329, *YYCURSOR);
+#line 3785 "Zend/zend_language_scanner.c"
+yy221:
+               YYDEBUG(221, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(330, *YYCURSOR);
+               YYDEBUG(222, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1771 "Zend/zend_language_scanner.l"
+#line 1722 "Zend/zend_language_scanner.l"
                {
        return T_AND_EQUAL;
 }
-#line 4929 "Zend/zend_language_scanner.c"
-yy331:
-               YYDEBUG(331, *YYCURSOR);
+#line 3795 "Zend/zend_language_scanner.c"
+yy223:
+               YYDEBUG(223, *YYCURSOR);
                ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '\n') goto yy335;
-               if (yych == '\r') goto yy336;
-yy332:
-               YYDEBUG(332, *YYCURSOR);
+               if ((yych = *YYCURSOR) == '\n') goto yy227;
+               if (yych == '\r') goto yy228;
+yy224:
+               YYDEBUG(224, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2319 "Zend/zend_language_scanner.l"
+#line 2276 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                BEGIN(INITIAL);
@@ -4947,348 +3813,374 @@ yy332:
                return yytext[0];
        }
 }
-#line 4951 "Zend/zend_language_scanner.c"
-yy333:
-               YYDEBUG(333, *YYCURSOR);
+#line 3817 "Zend/zend_language_scanner.c"
+yy225:
+               YYDEBUG(225, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(334, *YYCURSOR);
+               YYDEBUG(226, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1759 "Zend/zend_language_scanner.l"
+#line 1710 "Zend/zend_language_scanner.l"
                {
        return T_MOD_EQUAL;
 }
-#line 4961 "Zend/zend_language_scanner.c"
-yy335:
-               YYDEBUG(335, *YYCURSOR);
+#line 3827 "Zend/zend_language_scanner.c"
+yy227:
+               YYDEBUG(227, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy332;
-yy336:
-               YYDEBUG(336, *YYCURSOR);
+               goto yy224;
+yy228:
+               YYDEBUG(228, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '\n') goto yy335;
-               goto yy332;
-yy337:
-               YYDEBUG(337, *YYCURSOR);
-               yyaccept = 5;
+               if (yych == '\n') goto yy227;
+               goto yy224;
+yy229:
+               YYDEBUG(229, *YYCURSOR);
+               yyaccept = 3;
                YYMARKER = ++YYCURSOR;
                YYFILL(3);
                yych = *YYCURSOR;
-               YYDEBUG(338, *YYCURSOR);
+               YYDEBUG(230, *YYCURSOR);
                if (yych <= 'D') {
-                       if (yych <= '/') goto yy298;
-                       if (yych <= '9') goto yy337;
-                       goto yy298;
+                       if (yych <= '/') goto yy189;
+                       if (yych <= '9') goto yy229;
+                       goto yy189;
                } else {
-                       if (yych <= 'E') goto yy301;
-                       if (yych == 'e') goto yy301;
-                       goto yy298;
+                       if (yych <= 'E') goto yy192;
+                       if (yych == 'e') goto yy192;
+                       goto yy189;
                }
-yy339:
-               YYDEBUG(339, *YYCURSOR);
+yy231:
+               YYDEBUG(231, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(340, *YYCURSOR);
+               YYDEBUG(232, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1755 "Zend/zend_language_scanner.l"
+#line 1706 "Zend/zend_language_scanner.l"
                {
        return T_CONCAT_EQUAL;
 }
-#line 4996 "Zend/zend_language_scanner.c"
-yy341:
-               YYDEBUG(341, *YYCURSOR);
-               yyaccept = 6;
+#line 3862 "Zend/zend_language_scanner.c"
+yy233:
+               YYDEBUG(233, *YYCURSOR);
+               yyaccept = 4;
                yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == '*') goto yy346;
-yy342:
-               YYDEBUG(342, *YYCURSOR);
+               if (yych == '*') goto yy238;
+yy234:
+               YYDEBUG(234, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2277 "Zend/zend_language_scanner.l"
+#line 2228 "Zend/zend_language_scanner.l"
                {
-       BEGIN(ST_COMMENT);
-       yymore();
+       int doc_com;
+
+       if (yyleng > 2) {
+               doc_com = 1;
+               RESET_DOC_COMMENT();
+       } else {
+               doc_com = 0;
+       }
+
+       while (YYCURSOR < YYLIMIT) {
+               if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
+                       break;
+               }
+       }
+
+       if (YYCURSOR < YYLIMIT) {
+               YYCURSOR++;
+       } else {
+               zend_error(E_COMPILE_WARNING, "Unterminated comment starting line %d", CG(zend_lineno));
+       }
+
+       yyleng = YYCURSOR - SCNG(yy_text);
+       HANDLE_NEWLINES(yytext, yyleng);
+
+       if (doc_com) {
+               zval tmp;
+
+               if (!zend_copy_scanner_string(&tmp, yytext, yyleng, IS_UNICODE, SCNG(output_conv) TSRMLS_CC)) {
+                       return 0;
+               }
+               CG(doc_comment) = tmp.value.uni.val;
+               CG(doc_comment_len) = tmp.value.uni.len;
+               return T_DOC_COMMENT;
+       }
+
+       return T_COMMENT;
 }
-#line 5010 "Zend/zend_language_scanner.c"
-yy343:
-               YYDEBUG(343, *YYCURSOR);
+#line 3910 "Zend/zend_language_scanner.c"
+yy235:
+               YYDEBUG(235, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy270;
-yy344:
-               YYDEBUG(344, *YYCURSOR);
+               goto yy176;
+yy236:
+               YYDEBUG(236, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(345, *YYCURSOR);
+               YYDEBUG(237, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1751 "Zend/zend_language_scanner.l"
+#line 1702 "Zend/zend_language_scanner.l"
                {
        return T_DIV_EQUAL;
 }
-#line 5024 "Zend/zend_language_scanner.c"
-yy346:
-               YYDEBUG(346, *YYCURSOR);
+#line 3924 "Zend/zend_language_scanner.c"
+yy238:
+               YYDEBUG(238, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yybm[0+yych] & 64) {
-                       goto yy347;
+                       goto yy239;
                }
-               goto yy281;
-yy347:
-               YYDEBUG(347, *YYCURSOR);
+               goto yy193;
+yy239:
+               YYDEBUG(239, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(348, *YYCURSOR);
+               YYDEBUG(240, *YYCURSOR);
                if (yybm[0+yych] & 64) {
-                       goto yy347;
+                       goto yy239;
                }
-               YYDEBUG(349, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2266 "Zend/zend_language_scanner.l"
-               {
-       RESET_DOC_COMMENT();
-       BEGIN(ST_DOC_COMMENT);
-       yymore();
-}
-#line 5049 "Zend/zend_language_scanner.c"
-yy350:
-               YYDEBUG(350, *YYCURSOR);
+               goto yy234;
+yy241:
+               YYDEBUG(241, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(351, *YYCURSOR);
+               YYDEBUG(242, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1747 "Zend/zend_language_scanner.l"
+#line 1698 "Zend/zend_language_scanner.l"
                {
        return T_MUL_EQUAL;
 }
-#line 5059 "Zend/zend_language_scanner.c"
-yy352:
-               YYDEBUG(352, *YYCURSOR);
+#line 3951 "Zend/zend_language_scanner.c"
+yy243:
+               YYDEBUG(243, *YYCURSOR);
                ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '=') goto yy356;
-               YYDEBUG(353, *YYCURSOR);
+               if ((yych = *YYCURSOR) == '=') goto yy247;
+               YYDEBUG(244, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1807 "Zend/zend_language_scanner.l"
+#line 1758 "Zend/zend_language_scanner.l"
                {
        return T_SR;
 }
-#line 5070 "Zend/zend_language_scanner.c"
-yy354:
-               YYDEBUG(354, *YYCURSOR);
+#line 3962 "Zend/zend_language_scanner.c"
+yy245:
+               YYDEBUG(245, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(355, *YYCURSOR);
+               YYDEBUG(246, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1735 "Zend/zend_language_scanner.l"
+#line 1686 "Zend/zend_language_scanner.l"
                {
        return T_IS_GREATER_OR_EQUAL;
 }
-#line 5080 "Zend/zend_language_scanner.c"
-yy356:
-               YYDEBUG(356, *YYCURSOR);
+#line 3972 "Zend/zend_language_scanner.c"
+yy247:
+               YYDEBUG(247, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(357, *YYCURSOR);
+               YYDEBUG(248, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1767 "Zend/zend_language_scanner.l"
+#line 1718 "Zend/zend_language_scanner.l"
                {
        return T_SR_EQUAL;
 }
-#line 5090 "Zend/zend_language_scanner.c"
-yy358:
-               YYDEBUG(358, *YYCURSOR);
-               yyaccept = 7;
+#line 3982 "Zend/zend_language_scanner.c"
+yy249:
+               YYDEBUG(249, *YYCURSOR);
+               yyaccept = 5;
                yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= ';') goto yy359;
-               if (yych <= '<') goto yy374;
-               if (yych <= '=') goto yy372;
-yy359:
-               YYDEBUG(359, *YYCURSOR);
+               if (yych <= ';') goto yy250;
+               if (yych <= '<') goto yy265;
+               if (yych <= '=') goto yy263;
+yy250:
+               YYDEBUG(250, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1803 "Zend/zend_language_scanner.l"
+#line 1754 "Zend/zend_language_scanner.l"
                {
        return T_SL;
 }
-#line 5105 "Zend/zend_language_scanner.c"
-yy360:
-               YYDEBUG(360, *YYCURSOR);
+#line 3997 "Zend/zend_language_scanner.c"
+yy251:
+               YYDEBUG(251, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy365;
-               if (yych == 's') goto yy365;
-               goto yy281;
-yy361:
-               YYDEBUG(361, *YYCURSOR);
+               if (yych == 'S') goto yy256;
+               if (yych == 's') goto yy256;
+               goto yy193;
+yy252:
+               YYDEBUG(252, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(362, *YYCURSOR);
+               YYDEBUG(253, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1731 "Zend/zend_language_scanner.l"
+#line 1682 "Zend/zend_language_scanner.l"
                {
        return T_IS_SMALLER_OR_EQUAL;
 }
-#line 5121 "Zend/zend_language_scanner.c"
-yy363:
-               YYDEBUG(363, *YYCURSOR);
+#line 4013 "Zend/zend_language_scanner.c"
+yy254:
+               YYDEBUG(254, *YYCURSOR);
                ++YYCURSOR;
-yy364:
-               YYDEBUG(364, *YYCURSOR);
+yy255:
+               YYDEBUG(255, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1727 "Zend/zend_language_scanner.l"
+#line 1678 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_EQUAL;
 }
-#line 5132 "Zend/zend_language_scanner.c"
-yy365:
-               YYDEBUG(365, *YYCURSOR);
+#line 4024 "Zend/zend_language_scanner.c"
+yy256:
+               YYDEBUG(256, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy366;
-               if (yych != 'c') goto yy281;
-yy366:
-               YYDEBUG(366, *YYCURSOR);
+               if (yych == 'C') goto yy257;
+               if (yych != 'c') goto yy193;
+yy257:
+               YYDEBUG(257, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy367;
-               if (yych != 'r') goto yy281;
-yy367:
-               YYDEBUG(367, *YYCURSOR);
+               if (yych == 'R') goto yy258;
+               if (yych != 'r') goto yy193;
+yy258:
+               YYDEBUG(258, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy368;
-               if (yych != 'i') goto yy281;
-yy368:
-               YYDEBUG(368, *YYCURSOR);
+               if (yych == 'I') goto yy259;
+               if (yych != 'i') goto yy193;
+yy259:
+               YYDEBUG(259, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'P') goto yy369;
-               if (yych != 'p') goto yy281;
-yy369:
-               YYDEBUG(369, *YYCURSOR);
+               if (yych == 'P') goto yy260;
+               if (yych != 'p') goto yy193;
+yy260:
+               YYDEBUG(260, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy370;
-               if (yych != 't') goto yy281;
-yy370:
-               YYDEBUG(370, *YYCURSOR);
+               if (yych == 'T') goto yy261;
+               if (yych != 't') goto yy193;
+yy261:
+               YYDEBUG(261, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(3);
                yych = *YYCURSOR;
-               YYDEBUG(371, *YYCURSOR);
+               YYDEBUG(262, *YYCURSOR);
                if (yych <= '\r') {
-                       if (yych <= 0x08) goto yy281;
-                       if (yych <= '\n') goto yy370;
-                       if (yych <= '\f') goto yy281;
-                       goto yy370;
+                       if (yych <= 0x08) goto yy193;
+                       if (yych <= '\n') goto yy261;
+                       if (yych <= '\f') goto yy193;
+                       goto yy261;
                } else {
                        if (yych <= ' ') {
-                               if (yych <= 0x1F) goto yy281;
-                               goto yy370;
+                               if (yych <= 0x1F) goto yy193;
+                               goto yy261;
                        } else {
-                               if (yych == '>') goto yy309;
-                               goto yy281;
+                               if (yych == '>') goto yy201;
+                               goto yy193;
                        }
                }
-yy372:
-               YYDEBUG(372, *YYCURSOR);
+yy263:
+               YYDEBUG(263, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(373, *YYCURSOR);
+               YYDEBUG(264, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1763 "Zend/zend_language_scanner.l"
+#line 1714 "Zend/zend_language_scanner.l"
                {
        return T_SL_EQUAL;
 }
-#line 5187 "Zend/zend_language_scanner.c"
-yy374:
-               YYDEBUG(374, *YYCURSOR);
+#line 4079 "Zend/zend_language_scanner.c"
+yy265:
+               YYDEBUG(265, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(2);
                yych = *YYCURSOR;
-               YYDEBUG(375, *YYCURSOR);
+               YYDEBUG(266, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy374;
+                       goto yy265;
                }
                if (yych <= 'Z') {
                        if (yych <= '&') {
-                               if (yych == '"') goto yy379;
-                               goto yy281;
+                               if (yych == '"') goto yy270;
+                               goto yy193;
                        } else {
-                               if (yych <= '\'') goto yy378;
-                               if (yych <= '@') goto yy281;
+                               if (yych <= '\'') goto yy269;
+                               if (yych <= '@') goto yy193;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych != '_') goto yy281;
+                               if (yych != '_') goto yy193;
                        } else {
-                               if (yych <= 'z') goto yy376;
-                               if (yych <= '~') goto yy281;
+                               if (yych <= 'z') goto yy267;
+                               if (yych <= '~') goto yy193;
                        }
                }
-yy376:
-               YYDEBUG(376, *YYCURSOR);
+yy267:
+               YYDEBUG(267, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(2);
                yych = *YYCURSOR;
-               YYDEBUG(377, *YYCURSOR);
+               YYDEBUG(268, *YYCURSOR);
                if (yych <= '@') {
                        if (yych <= '\f') {
-                               if (yych == '\n') goto yy383;
-                               goto yy281;
+                               if (yych == '\n') goto yy274;
+                               goto yy193;
                        } else {
-                               if (yych <= '\r') goto yy385;
-                               if (yych <= '/') goto yy281;
-                               if (yych <= '9') goto yy376;
-                               goto yy281;
+                               if (yych <= '\r') goto yy276;
+                               if (yych <= '/') goto yy193;
+                               if (yych <= '9') goto yy267;
+                               goto yy193;
                        }
                } else {
                        if (yych <= '_') {
-                               if (yych <= 'Z') goto yy376;
-                               if (yych <= '^') goto yy281;
-                               goto yy376;
+                               if (yych <= 'Z') goto yy267;
+                               if (yych <= '^') goto yy193;
+                               goto yy267;
                        } else {
-                               if (yych <= '`') goto yy281;
-                               if (yych <= 'z') goto yy376;
-                               if (yych <= '~') goto yy281;
-                               goto yy376;
+                               if (yych <= '`') goto yy193;
+                               if (yych <= 'z') goto yy267;
+                               if (yych <= '~') goto yy193;
+                               goto yy267;
                        }
                }
-yy378:
-               YYDEBUG(378, *YYCURSOR);
+yy269:
+               YYDEBUG(269, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '\'') goto yy281;
-               if (yych <= '/') goto yy387;
-               if (yych <= '9') goto yy281;
-               goto yy387;
-yy379:
-               YYDEBUG(379, *YYCURSOR);
+               if (yych == '\'') goto yy193;
+               if (yych <= '/') goto yy278;
+               if (yych <= '9') goto yy193;
+               goto yy278;
+yy270:
+               YYDEBUG(270, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '"') goto yy281;
-               if (yych <= '/') goto yy381;
-               if (yych <= '9') goto yy281;
-               goto yy381;
-yy380:
-               YYDEBUG(380, *YYCURSOR);
+               if (yych == '"') goto yy193;
+               if (yych <= '/') goto yy272;
+               if (yych <= '9') goto yy193;
+               goto yy272;
+yy271:
+               YYDEBUG(271, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(3);
                yych = *YYCURSOR;
-yy381:
-               YYDEBUG(381, *YYCURSOR);
+yy272:
+               YYDEBUG(272, *YYCURSOR);
                if (yych <= 'Z') {
                        if (yych <= '/') {
-                               if (yych != '"') goto yy281;
+                               if (yych != '"') goto yy193;
                        } else {
-                               if (yych <= '9') goto yy380;
-                               if (yych <= '@') goto yy281;
-                               goto yy380;
+                               if (yych <= '9') goto yy271;
+                               if (yych <= '@') goto yy193;
+                               goto yy271;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych == '_') goto yy380;
-                               goto yy281;
+                               if (yych == '_') goto yy271;
+                               goto yy193;
                        } else {
-                               if (yych <= 'z') goto yy380;
-                               if (yych <= '~') goto yy281;
-                               goto yy380;
+                               if (yych <= 'z') goto yy271;
+                               if (yych <= '~') goto yy193;
+                               goto yy271;
                        }
                }
-yy382:
-               YYDEBUG(382, *YYCURSOR);
+yy273:
+               YYDEBUG(273, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '\n') goto yy383;
-               if (yych == '\r') goto yy385;
-               goto yy281;
-yy383:
-               YYDEBUG(383, *YYCURSOR);
+               if (yych == '\n') goto yy274;
+               if (yych == '\r') goto yy276;
+               goto yy193;
+yy274:
+               YYDEBUG(274, *YYCURSOR);
                ++YYCURSOR;
-yy384:
-               YYDEBUG(384, *YYCURSOR);
+yy275:
+               YYDEBUG(275, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2367 "Zend/zend_language_scanner.l"
+#line 2369 "Zend/zend_language_scanner.l"
                {
        char *s;
        int bprefix = (yytext[0] != '<') ? 1 : 0;
@@ -5323,7 +4215,7 @@ yy384:
 
        /* Check for ending label on the next line */
        if (CG(heredoc_len) < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, CG(heredoc_len))) {
-               unsigned char *end = YYCURSOR + CG(heredoc_len);
+               YYCTYPE *end = YYCURSOR + CG(heredoc_len);
 
                if (*end == ';') {
                        end++;
@@ -5336,247 +4228,247 @@ yy384:
 
        return bprefix ? T_BINARY_HEREDOC : T_START_HEREDOC;
 }
-#line 5340 "Zend/zend_language_scanner.c"
-yy385:
-               YYDEBUG(385, *YYCURSOR);
+#line 4232 "Zend/zend_language_scanner.c"
+yy276:
+               YYDEBUG(276, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '\n') goto yy383;
-               goto yy384;
-yy386:
-               YYDEBUG(386, *YYCURSOR);
+               if (yych == '\n') goto yy274;
+               goto yy275;
+yy277:
+               YYDEBUG(277, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(3);
                yych = *YYCURSOR;
-yy387:
-               YYDEBUG(387, *YYCURSOR);
+yy278:
+               YYDEBUG(278, *YYCURSOR);
                if (yych <= 'Z') {
                        if (yych <= '/') {
-                               if (yych == '\'') goto yy382;
-                               goto yy281;
+                               if (yych == '\'') goto yy273;
+                               goto yy193;
                        } else {
-                               if (yych <= '9') goto yy386;
-                               if (yych <= '@') goto yy281;
-                               goto yy386;
+                               if (yych <= '9') goto yy277;
+                               if (yych <= '@') goto yy193;
+                               goto yy277;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych == '_') goto yy386;
-                               goto yy281;
+                               if (yych == '_') goto yy277;
+                               goto yy193;
                        } else {
-                               if (yych <= 'z') goto yy386;
-                               if (yych <= '~') goto yy281;
-                               goto yy386;
+                               if (yych <= 'z') goto yy277;
+                               if (yych <= '~') goto yy193;
+                               goto yy277;
                        }
                }
-yy388:
-               YYDEBUG(388, *YYCURSOR);
+yy279:
+               YYDEBUG(279, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '=') goto yy364;
-               YYDEBUG(389, *YYCURSOR);
+               if (yych != '=') goto yy255;
+               YYDEBUG(280, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(390, *YYCURSOR);
+               YYDEBUG(281, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1719 "Zend/zend_language_scanner.l"
+#line 1670 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_IDENTICAL;
 }
-#line 5384 "Zend/zend_language_scanner.c"
-yy391:
-               YYDEBUG(391, *YYCURSOR);
+#line 4276 "Zend/zend_language_scanner.c"
+yy282:
+               YYDEBUG(282, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(392, *YYCURSOR);
+               YYDEBUG(283, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1739 "Zend/zend_language_scanner.l"
+#line 1690 "Zend/zend_language_scanner.l"
                {
        return T_PLUS_EQUAL;
 }
-#line 5394 "Zend/zend_language_scanner.c"
-yy393:
-               YYDEBUG(393, *YYCURSOR);
+#line 4286 "Zend/zend_language_scanner.c"
+yy284:
+               YYDEBUG(284, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(394, *YYCURSOR);
+               YYDEBUG(285, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1707 "Zend/zend_language_scanner.l"
+#line 1658 "Zend/zend_language_scanner.l"
                {
        return T_INC;
 }
-#line 5404 "Zend/zend_language_scanner.c"
-yy395:
-               YYDEBUG(395, *YYCURSOR);
+#line 4296 "Zend/zend_language_scanner.c"
+yy286:
+               YYDEBUG(286, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy396;
-               if (yych != 's') goto yy295;
-yy396:
-               YYDEBUG(396, *YYCURSOR);
+               if (yych == 'S') goto yy287;
+               if (yych != 's') goto yy186;
+yy287:
+               YYDEBUG(287, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy397;
-               if (yych != 't') goto yy295;
-yy397:
-               YYDEBUG(397, *YYCURSOR);
+               if (yych == 'T') goto yy288;
+               if (yych != 't') goto yy186;
+yy288:
+               YYDEBUG(288, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(398, *YYCURSOR);
+               YYDEBUG(289, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1699 "Zend/zend_language_scanner.l"
+#line 1650 "Zend/zend_language_scanner.l"
                {
        return T_LIST;
 }
-#line 5427 "Zend/zend_language_scanner.c"
-yy399:
-               YYDEBUG(399, *YYCURSOR);
+#line 4319 "Zend/zend_language_scanner.c"
+yy290:
+               YYDEBUG(290, *YYCURSOR);
                ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '=') goto yy403;
-               YYDEBUG(400, *YYCURSOR);
+               if ((yych = *YYCURSOR) == '=') goto yy294;
+               YYDEBUG(291, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1723 "Zend/zend_language_scanner.l"
+#line 1674 "Zend/zend_language_scanner.l"
                {
        return T_IS_EQUAL;
 }
-#line 5438 "Zend/zend_language_scanner.c"
-yy401:
-               YYDEBUG(401, *YYCURSOR);
+#line 4330 "Zend/zend_language_scanner.c"
+yy292:
+               YYDEBUG(292, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(402, *YYCURSOR);
+               YYDEBUG(293, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1695 "Zend/zend_language_scanner.l"
+#line 1646 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_ARROW;
 }
-#line 5448 "Zend/zend_language_scanner.c"
-yy403:
-               YYDEBUG(403, *YYCURSOR);
+#line 4340 "Zend/zend_language_scanner.c"
+yy294:
+               YYDEBUG(294, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(404, *YYCURSOR);
+               YYDEBUG(295, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1715 "Zend/zend_language_scanner.l"
+#line 1666 "Zend/zend_language_scanner.l"
                {
        return T_IS_IDENTICAL;
 }
-#line 5458 "Zend/zend_language_scanner.c"
-yy405:
-               YYDEBUG(405, *YYCURSOR);
+#line 4350 "Zend/zend_language_scanner.c"
+yy296:
+               YYDEBUG(296, *YYCURSOR);
                yych = *++YYCURSOR;
                YYDEBUG(-1, yych);
                switch (yych) {
                case 'C':
-               case 'c':       goto yy407;
+               case 'c':       goto yy298;
                case 'D':
-               case 'd':       goto yy411;
+               case 'd':       goto yy302;
                case 'F':
-               case 'f':       goto yy408;
+               case 'f':       goto yy299;
                case 'H':
-               case 'h':       goto yy406;
+               case 'h':       goto yy297;
                case 'L':
-               case 'l':       goto yy410;
+               case 'l':       goto yy301;
                case 'M':
-               case 'm':       goto yy409;
+               case 'm':       goto yy300;
                case 'N':
-               case 'n':       goto yy412;
-               default:        goto yy295;
+               case 'n':       goto yy303;
+               default:        goto yy186;
                }
-yy406:
-               YYDEBUG(406, *YYCURSOR);
+yy297:
+               YYDEBUG(297, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy466;
-               if (yych == 'a') goto yy466;
-               goto yy295;
-yy407:
-               YYDEBUG(407, *YYCURSOR);
+               if (yych == 'A') goto yy357;
+               if (yych == 'a') goto yy357;
+               goto yy186;
+yy298:
+               YYDEBUG(298, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy459;
-               if (yych == 'l') goto yy459;
-               goto yy295;
-yy408:
-               YYDEBUG(408, *YYCURSOR);
+               if (yych == 'L') goto yy350;
+               if (yych == 'l') goto yy350;
+               goto yy186;
+yy299:
+               YYDEBUG(299, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'U') {
-                       if (yych == 'I') goto yy443;
-                       if (yych <= 'T') goto yy295;
-                       goto yy444;
+                       if (yych == 'I') goto yy334;
+                       if (yych <= 'T') goto yy186;
+                       goto yy335;
                } else {
                        if (yych <= 'i') {
-                               if (yych <= 'h') goto yy295;
-                               goto yy443;
+                               if (yych <= 'h') goto yy186;
+                               goto yy334;
                        } else {
-                               if (yych == 'u') goto yy444;
-                               goto yy295;
+                               if (yych == 'u') goto yy335;
+                               goto yy186;
                        }
                }
-yy409:
-               YYDEBUG(409, *YYCURSOR);
+yy300:
+               YYDEBUG(300, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy435;
-               if (yych == 'e') goto yy435;
-               goto yy295;
-yy410:
-               YYDEBUG(410, *YYCURSOR);
+               if (yych == 'E') goto yy326;
+               if (yych == 'e') goto yy326;
+               goto yy186;
+yy301:
+               YYDEBUG(301, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy429;
-               if (yych == 'i') goto yy429;
-               goto yy295;
-yy411:
-               YYDEBUG(411, *YYCURSOR);
+               if (yych == 'I') goto yy320;
+               if (yych == 'i') goto yy320;
+               goto yy186;
+yy302:
+               YYDEBUG(302, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy424;
-               if (yych == 'i') goto yy424;
-               goto yy295;
-yy412:
-               YYDEBUG(412, *YYCURSOR);
+               if (yych == 'I') goto yy315;
+               if (yych == 'i') goto yy315;
+               goto yy186;
+yy303:
+               YYDEBUG(303, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy413;
-               if (yych != 'a') goto yy295;
-yy413:
-               YYDEBUG(413, *YYCURSOR);
+               if (yych == 'A') goto yy304;
+               if (yych != 'a') goto yy186;
+yy304:
+               YYDEBUG(304, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'M') goto yy414;
-               if (yych != 'm') goto yy295;
-yy414:
-               YYDEBUG(414, *YYCURSOR);
+               if (yych == 'M') goto yy305;
+               if (yych != 'm') goto yy186;
+yy305:
+               YYDEBUG(305, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy415;
-               if (yych != 'e') goto yy295;
-yy415:
-               YYDEBUG(415, *YYCURSOR);
+               if (yych == 'E') goto yy306;
+               if (yych != 'e') goto yy186;
+yy306:
+               YYDEBUG(306, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy416;
-               if (yych != 's') goto yy295;
-yy416:
-               YYDEBUG(416, *YYCURSOR);
+               if (yych == 'S') goto yy307;
+               if (yych != 's') goto yy186;
+yy307:
+               YYDEBUG(307, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'P') goto yy417;
-               if (yych != 'p') goto yy295;
-yy417:
-               YYDEBUG(417, *YYCURSOR);
+               if (yych == 'P') goto yy308;
+               if (yych != 'p') goto yy186;
+yy308:
+               YYDEBUG(308, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy418;
-               if (yych != 'a') goto yy295;
-yy418:
-               YYDEBUG(418, *YYCURSOR);
+               if (yych == 'A') goto yy309;
+               if (yych != 'a') goto yy186;
+yy309:
+               YYDEBUG(309, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy419;
-               if (yych != 'c') goto yy295;
-yy419:
-               YYDEBUG(419, *YYCURSOR);
+               if (yych == 'C') goto yy310;
+               if (yych != 'c') goto yy186;
+yy310:
+               YYDEBUG(310, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy420;
-               if (yych != 'e') goto yy295;
-yy420:
-               YYDEBUG(420, *YYCURSOR);
+               if (yych == 'E') goto yy311;
+               if (yych != 'e') goto yy186;
+yy311:
+               YYDEBUG(311, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy295;
-               YYDEBUG(421, *YYCURSOR);
+               if (yych != '_') goto yy186;
+               YYDEBUG(312, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy295;
-               YYDEBUG(422, *YYCURSOR);
+               if (yych != '_') goto yy186;
+               YYDEBUG(313, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(423, *YYCURSOR);
+               YYDEBUG(314, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2029 "Zend/zend_language_scanner.l"
+#line 1980 "Zend/zend_language_scanner.l"
                {
        if (CG(current_namespace)) {
                *zendlval = *CG(current_namespace);
@@ -5586,27 +4478,27 @@ yy420:
        }
        return T_NS_C;
 }
-#line 5590 "Zend/zend_language_scanner.c"
-yy424:
-               YYDEBUG(424, *YYCURSOR);
+#line 4482 "Zend/zend_language_scanner.c"
+yy315:
+               YYDEBUG(315, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy425;
-               if (yych != 'r') goto yy295;
-yy425:
-               YYDEBUG(425, *YYCURSOR);
+               if (yych == 'R') goto yy316;
+               if (yych != 'r') goto yy186;
+yy316:
+               YYDEBUG(316, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy295;
-               YYDEBUG(426, *YYCURSOR);
+               if (yych != '_') goto yy186;
+               YYDEBUG(317, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy295;
-               YYDEBUG(427, *YYCURSOR);
+               if (yych != '_') goto yy186;
+               YYDEBUG(318, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(428, *YYCURSOR);
+               YYDEBUG(319, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2002 "Zend/zend_language_scanner.l"
+#line 1953 "Zend/zend_language_scanner.l"
                {
        char *filename = zend_get_compiled_filename(TSRMLS_C);
        const size_t filename_len = strlen(filename);
@@ -5633,73 +4525,73 @@ yy425:
        zendlval->type = IS_STRING;
        return T_DIR;
 }
-#line 5637 "Zend/zend_language_scanner.c"
-yy429:
-               YYDEBUG(429, *YYCURSOR);
+#line 4529 "Zend/zend_language_scanner.c"
+yy320:
+               YYDEBUG(320, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy430;
-               if (yych != 'n') goto yy295;
-yy430:
-               YYDEBUG(430, *YYCURSOR);
+               if (yych == 'N') goto yy321;
+               if (yych != 'n') goto yy186;
+yy321:
+               YYDEBUG(321, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy431;
-               if (yych != 'e') goto yy295;
-yy431:
-               YYDEBUG(431, *YYCURSOR);
+               if (yych == 'E') goto yy322;
+               if (yych != 'e') goto yy186;
+yy322:
+               YYDEBUG(322, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy295;
-               YYDEBUG(432, *YYCURSOR);
+               if (yych != '_') goto yy186;
+               YYDEBUG(323, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy295;
-               YYDEBUG(433, *YYCURSOR);
+               if (yych != '_') goto yy186;
+               YYDEBUG(324, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(434, *YYCURSOR);
+               YYDEBUG(325, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1986 "Zend/zend_language_scanner.l"
+#line 1937 "Zend/zend_language_scanner.l"
                {
        Z_LVAL_P(zendlval) = CG(zend_lineno);
        Z_TYPE_P(zendlval) = IS_LONG;
        return T_LINE;
 }
-#line 5668 "Zend/zend_language_scanner.c"
-yy435:
-               YYDEBUG(435, *YYCURSOR);
+#line 4560 "Zend/zend_language_scanner.c"
+yy326:
+               YYDEBUG(326, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy436;
-               if (yych != 't') goto yy295;
-yy436:
-               YYDEBUG(436, *YYCURSOR);
+               if (yych == 'T') goto yy327;
+               if (yych != 't') goto yy186;
+yy327:
+               YYDEBUG(327, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy437;
-               if (yych != 'h') goto yy295;
-yy437:
-               YYDEBUG(437, *YYCURSOR);
+               if (yych == 'H') goto yy328;
+               if (yych != 'h') goto yy186;
+yy328:
+               YYDEBUG(328, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy438;
-               if (yych != 'o') goto yy295;
-yy438:
-               YYDEBUG(438, *YYCURSOR);
+               if (yych == 'O') goto yy329;
+               if (yych != 'o') goto yy186;
+yy329:
+               YYDEBUG(329, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy439;
-               if (yych != 'd') goto yy295;
-yy439:
-               YYDEBUG(439, *YYCURSOR);
+               if (yych == 'D') goto yy330;
+               if (yych != 'd') goto yy186;
+yy330:
+               YYDEBUG(330, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy295;
-               YYDEBUG(440, *YYCURSOR);
+               if (yych != '_') goto yy186;
+               YYDEBUG(331, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy295;
-               YYDEBUG(441, *YYCURSOR);
+               if (yych != '_') goto yy186;
+               YYDEBUG(332, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(442, *YYCURSOR);
+               YYDEBUG(333, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1955 "Zend/zend_language_scanner.l"
+#line 1906 "Zend/zend_language_scanner.l"
                {
        zstr class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL_ZSTR;
        zstr func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL_ZSTR;
@@ -5730,58 +4622,58 @@ yy439:
 
        return T_METHOD_C;
 }
-#line 5734 "Zend/zend_language_scanner.c"
-yy443:
-               YYDEBUG(443, *YYCURSOR);
+#line 4626 "Zend/zend_language_scanner.c"
+yy334:
+               YYDEBUG(334, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy454;
-               if (yych == 'l') goto yy454;
-               goto yy295;
-yy444:
-               YYDEBUG(444, *YYCURSOR);
+               if (yych == 'L') goto yy345;
+               if (yych == 'l') goto yy345;
+               goto yy186;
+yy335:
+               YYDEBUG(335, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy445;
-               if (yych != 'n') goto yy295;
-yy445:
-               YYDEBUG(445, *YYCURSOR);
+               if (yych == 'N') goto yy336;
+               if (yych != 'n') goto yy186;
+yy336:
+               YYDEBUG(336, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy446;
-               if (yych != 'c') goto yy295;
-yy446:
-               YYDEBUG(446, *YYCURSOR);
+               if (yych == 'C') goto yy337;
+               if (yych != 'c') goto yy186;
+yy337:
+               YYDEBUG(337, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy447;
-               if (yych != 't') goto yy295;
-yy447:
-               YYDEBUG(447, *YYCURSOR);
+               if (yych == 'T') goto yy338;
+               if (yych != 't') goto yy186;
+yy338:
+               YYDEBUG(338, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy448;
-               if (yych != 'i') goto yy295;
-yy448:
-               YYDEBUG(448, *YYCURSOR);
+               if (yych == 'I') goto yy339;
+               if (yych != 'i') goto yy186;
+yy339:
+               YYDEBUG(339, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy449;
-               if (yych != 'o') goto yy295;
-yy449:
-               YYDEBUG(449, *YYCURSOR);
+               if (yych == 'O') goto yy340;
+               if (yych != 'o') goto yy186;
+yy340:
+               YYDEBUG(340, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy450;
-               if (yych != 'n') goto yy295;
-yy450:
-               YYDEBUG(450, *YYCURSOR);
+               if (yych == 'N') goto yy341;
+               if (yych != 'n') goto yy186;
+yy341:
+               YYDEBUG(341, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy295;
-               YYDEBUG(451, *YYCURSOR);
+               if (yych != '_') goto yy186;
+               YYDEBUG(342, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy295;
-               YYDEBUG(452, *YYCURSOR);
+               if (yych != '_') goto yy186;
+               YYDEBUG(343, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(453, *YYCURSOR);
+               YYDEBUG(344, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1940 "Zend/zend_language_scanner.l"
+#line 1891 "Zend/zend_language_scanner.l"
                {
        zstr func_name = NULL_ZSTR;
 
@@ -5796,27 +4688,27 @@ yy450:
        }
        return T_FUNC_C;
 }
-#line 5800 "Zend/zend_language_scanner.c"
-yy454:
-               YYDEBUG(454, *YYCURSOR);
+#line 4692 "Zend/zend_language_scanner.c"
+yy345:
+               YYDEBUG(345, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy455;
-               if (yych != 'e') goto yy295;
-yy455:
-               YYDEBUG(455, *YYCURSOR);
+               if (yych == 'E') goto yy346;
+               if (yych != 'e') goto yy186;
+yy346:
+               YYDEBUG(346, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy295;
-               YYDEBUG(456, *YYCURSOR);
+               if (yych != '_') goto yy186;
+               YYDEBUG(347, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy295;
-               YYDEBUG(457, *YYCURSOR);
+               if (yych != '_') goto yy186;
+               YYDEBUG(348, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(458, *YYCURSOR);
+               YYDEBUG(349, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1992 "Zend/zend_language_scanner.l"
+#line 1943 "Zend/zend_language_scanner.l"
                {
        char *filename = zend_get_compiled_filename(TSRMLS_C);
 
@@ -5826,37 +4718,37 @@ yy455:
        ZVAL_RT_STRING(zendlval, filename, 1);
        return T_FILE;
 }
-#line 5830 "Zend/zend_language_scanner.c"
-yy459:
-               YYDEBUG(459, *YYCURSOR);
+#line 4722 "Zend/zend_language_scanner.c"
+yy350:
+               YYDEBUG(350, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy460;
-               if (yych != 'a') goto yy295;
-yy460:
-               YYDEBUG(460, *YYCURSOR);
+               if (yych == 'A') goto yy351;
+               if (yych != 'a') goto yy186;
+yy351:
+               YYDEBUG(351, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy461;
-               if (yych != 's') goto yy295;
-yy461:
-               YYDEBUG(461, *YYCURSOR);
+               if (yych == 'S') goto yy352;
+               if (yych != 's') goto yy186;
+yy352:
+               YYDEBUG(352, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy462;
-               if (yych != 's') goto yy295;
-yy462:
-               YYDEBUG(462, *YYCURSOR);
+               if (yych == 'S') goto yy353;
+               if (yych != 's') goto yy186;
+yy353:
+               YYDEBUG(353, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy295;
-               YYDEBUG(463, *YYCURSOR);
+               if (yych != '_') goto yy186;
+               YYDEBUG(354, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy295;
-               YYDEBUG(464, *YYCURSOR);
+               if (yych != '_') goto yy186;
+               YYDEBUG(355, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(465, *YYCURSOR);
+               YYDEBUG(356, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1925 "Zend/zend_language_scanner.l"
+#line 1876 "Zend/zend_language_scanner.l"
                {
        zstr class_name = NULL_ZSTR;
 
@@ -5871,3252 +4763,2618 @@ yy462:
        }
        return T_CLASS_C;
 }
-#line 5875 "Zend/zend_language_scanner.c"
-yy466:
-               YYDEBUG(466, *YYCURSOR);
+#line 4767 "Zend/zend_language_scanner.c"
+yy357:
+               YYDEBUG(357, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy467;
-               if (yych != 'l') goto yy295;
-yy467:
-               YYDEBUG(467, *YYCURSOR);
+               if (yych == 'L') goto yy358;
+               if (yych != 'l') goto yy186;
+yy358:
+               YYDEBUG(358, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy468;
-               if (yych != 't') goto yy295;
-yy468:
-               YYDEBUG(468, *YYCURSOR);
+               if (yych == 'T') goto yy359;
+               if (yych != 't') goto yy186;
+yy359:
+               YYDEBUG(359, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '_') goto yy295;
-               YYDEBUG(469, *YYCURSOR);
+               if (yych != '_') goto yy186;
+               YYDEBUG(360, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy470;
-               if (yych != 'c') goto yy295;
-yy470:
-               YYDEBUG(470, *YYCURSOR);
+               if (yych == 'C') goto yy361;
+               if (yych != 'c') goto yy186;
+yy361:
+               YYDEBUG(361, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy471;
-               if (yych != 'o') goto yy295;
-yy471:
-               YYDEBUG(471, *YYCURSOR);
+               if (yych == 'O') goto yy362;
+               if (yych != 'o') goto yy186;
+yy362:
+               YYDEBUG(362, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'M') goto yy472;
-               if (yych != 'm') goto yy295;
-yy472:
-               YYDEBUG(472, *YYCURSOR);
+               if (yych == 'M') goto yy363;
+               if (yych != 'm') goto yy186;
+yy363:
+               YYDEBUG(363, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'P') goto yy473;
-               if (yych != 'p') goto yy295;
-yy473:
-               YYDEBUG(473, *YYCURSOR);
+               if (yych == 'P') goto yy364;
+               if (yych != 'p') goto yy186;
+yy364:
+               YYDEBUG(364, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy474;
-               if (yych != 'i') goto yy295;
-yy474:
-               YYDEBUG(474, *YYCURSOR);
+               if (yych == 'I') goto yy365;
+               if (yych != 'i') goto yy186;
+yy365:
+               YYDEBUG(365, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy475;
-               if (yych != 'l') goto yy295;
-yy475:
-               YYDEBUG(475, *YYCURSOR);
+               if (yych == 'L') goto yy366;
+               if (yych != 'l') goto yy186;
+yy366:
+               YYDEBUG(366, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy476;
-               if (yych != 'e') goto yy295;
-yy476:
-               YYDEBUG(476, *YYCURSOR);
+               if (yych == 'E') goto yy367;
+               if (yych != 'e') goto yy186;
+yy367:
+               YYDEBUG(367, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy477;
-               if (yych != 'r') goto yy295;
-yy477:
-               YYDEBUG(477, *YYCURSOR);
+               if (yych == 'R') goto yy368;
+               if (yych != 'r') goto yy186;
+yy368:
+               YYDEBUG(368, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(478, *YYCURSOR);
+               YYDEBUG(369, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1663 "Zend/zend_language_scanner.l"
+#line 1614 "Zend/zend_language_scanner.l"
                {
        return T_HALT_COMPILER;
 }
-#line 5941 "Zend/zend_language_scanner.c"
-yy479:
-               YYDEBUG(479, *YYCURSOR);
+#line 4833 "Zend/zend_language_scanner.c"
+yy370:
+               YYDEBUG(370, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy483;
-               if (yych == 's') goto yy483;
-               goto yy295;
-yy480:
-               YYDEBUG(480, *YYCURSOR);
+               if (yych == 'S') goto yy374;
+               if (yych == 's') goto yy374;
+               goto yy186;
+yy371:
+               YYDEBUG(371, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy481;
-               if (yych != 'e') goto yy295;
-yy481:
-               YYDEBUG(481, *YYCURSOR);
+               if (yych == 'E') goto yy372;
+               if (yych != 'e') goto yy186;
+yy372:
+               YYDEBUG(372, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(482, *YYCURSOR);
+               YYDEBUG(373, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1647 "Zend/zend_language_scanner.l"
+#line 1598 "Zend/zend_language_scanner.l"
                {
        return T_USE;
 }
-#line 5965 "Zend/zend_language_scanner.c"
-yy483:
-               YYDEBUG(483, *YYCURSOR);
+#line 4857 "Zend/zend_language_scanner.c"
+yy374:
+               YYDEBUG(374, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy484;
-               if (yych != 'e') goto yy295;
-yy484:
-               YYDEBUG(484, *YYCURSOR);
+               if (yych == 'E') goto yy375;
+               if (yych != 'e') goto yy186;
+yy375:
+               YYDEBUG(375, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy485;
-               if (yych != 't') goto yy295;
-yy485:
-               YYDEBUG(485, *YYCURSOR);
+               if (yych == 'T') goto yy376;
+               if (yych != 't') goto yy186;
+yy376:
+               YYDEBUG(376, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(486, *YYCURSOR);
+               YYDEBUG(377, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1691 "Zend/zend_language_scanner.l"
+#line 1642 "Zend/zend_language_scanner.l"
                {
        return T_UNSET;
 }
-#line 5988 "Zend/zend_language_scanner.c"
-yy487:
-               YYDEBUG(487, *YYCURSOR);
+#line 4880 "Zend/zend_language_scanner.c"
+yy378:
+               YYDEBUG(378, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(7);
                yych = *YYCURSOR;
-yy488:
-               YYDEBUG(488, *YYCURSOR);
+yy379:
+               YYDEBUG(379, *YYCURSOR);
                if (yych <= 'S') {
                        if (yych <= 'D') {
                                if (yych <= ' ') {
-                                       if (yych == '\t') goto yy487;
-                                       if (yych <= 0x1F) goto yy281;
-                                       goto yy487;
+                                       if (yych == '\t') goto yy378;
+                                       if (yych <= 0x1F) goto yy193;
+                                       goto yy378;
                                } else {
                                        if (yych <= 'A') {
-                                               if (yych <= '@') goto yy281;
-                                               goto yy492;
+                                               if (yych <= '@') goto yy193;
+                                               goto yy383;
                                        } else {
-                                               if (yych <= 'B') goto yy490;
-                                               if (yych <= 'C') goto yy281;
-                                               goto yy495;
+                                               if (yych <= 'B') goto yy381;
+                                               if (yych <= 'C') goto yy193;
+                                               goto yy386;
                                        }
                                }
                        } else {
                                if (yych <= 'I') {
-                                       if (yych == 'F') goto yy496;
-                                       if (yych <= 'H') goto yy281;
-                                       goto yy497;
+                                       if (yych == 'F') goto yy387;
+                                       if (yych <= 'H') goto yy193;
+                                       goto yy388;
                                } else {
                                        if (yych <= 'O') {
-                                               if (yych <= 'N') goto yy281;
-                                               goto yy491;
+                                               if (yych <= 'N') goto yy193;
+                                               goto yy382;
                                        } else {
-                                               if (yych <= 'Q') goto yy281;
-                                               if (yych <= 'R') goto yy494;
-                                               goto yy493;
+                                               if (yych <= 'Q') goto yy193;
+                                               if (yych <= 'R') goto yy385;
+                                               goto yy384;
                                        }
                                }
                        }
                } else {
                        if (yych <= 'f') {
                                if (yych <= 'a') {
-                                       if (yych == 'U') goto yy489;
-                                       if (yych <= '`') goto yy281;
-                                       goto yy492;
+                                       if (yych == 'U') goto yy380;
+                                       if (yych <= '`') goto yy193;
+                                       goto yy383;
                                } else {
                                        if (yych <= 'c') {
-                                               if (yych <= 'b') goto yy490;
-                                               goto yy281;
+                                               if (yych <= 'b') goto yy381;
+                                               goto yy193;
                                        } else {
-                                               if (yych <= 'd') goto yy495;
-                                               if (yych <= 'e') goto yy281;
-                                               goto yy496;
+                                               if (yych <= 'd') goto yy386;
+                                               if (yych <= 'e') goto yy193;
+                                               goto yy387;
                                        }
                                }
                        } else {
                                if (yych <= 'q') {
                                        if (yych <= 'i') {
-                                               if (yych <= 'h') goto yy281;
-                                               goto yy497;
+                                               if (yych <= 'h') goto yy193;
+                                               goto yy388;
                                        } else {
-                                               if (yych == 'o') goto yy491;
-                                               goto yy281;
+                                               if (yych == 'o') goto yy382;
+                                               goto yy193;
                                        }
                                } else {
                                        if (yych <= 's') {
-                                               if (yych <= 'r') goto yy494;
-                                               goto yy493;
+                                               if (yych <= 'r') goto yy385;
+                                               goto yy384;
                                        } else {
-                                               if (yych != 'u') goto yy281;
+                                               if (yych != 'u') goto yy193;
                                        }
-                               }
-                       }
-               }
-yy489:
-               YYDEBUG(489, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy560;
-               if (yych == 'n') goto yy560;
-               goto yy281;
-yy490:
-               YYDEBUG(490, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'O') {
-                       if (yych == 'I') goto yy543;
-                       if (yych <= 'N') goto yy281;
-                       goto yy544;
-               } else {
-                       if (yych <= 'i') {
-                               if (yych <= 'h') goto yy281;
-                               goto yy543;
-                       } else {
-                               if (yych == 'o') goto yy544;
-                               goto yy281;
-                       }
-               }
-yy491:
-               YYDEBUG(491, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'B') goto yy535;
-               if (yych == 'b') goto yy535;
-               goto yy281;
-yy492:
-               YYDEBUG(492, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy528;
-               if (yych == 'r') goto yy528;
-               goto yy281;
-yy493:
-               YYDEBUG(493, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy520;
-               if (yych == 't') goto yy520;
-               goto yy281;
-yy494:
-               YYDEBUG(494, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy518;
-               if (yych == 'e') goto yy518;
-               goto yy281;
-yy495:
-               YYDEBUG(495, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy514;
-               if (yych == 'o') goto yy514;
-               goto yy281;
-yy496:
-               YYDEBUG(496, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy507;
-               if (yych == 'l') goto yy507;
-               goto yy281;
-yy497:
-               YYDEBUG(497, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy498;
-               if (yych != 'n') goto yy281;
-yy498:
-               YYDEBUG(498, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy499;
-               if (yych != 't') goto yy281;
-yy499:
-               YYDEBUG(499, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy500;
-               if (yych != 'e') goto yy502;
-yy500:
-               YYDEBUG(500, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'G') goto yy505;
-               if (yych == 'g') goto yy505;
-               goto yy281;
-yy501:
-               YYDEBUG(501, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy502:
-               YYDEBUG(502, *YYCURSOR);
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy501;
-                       goto yy281;
-               } else {
-                       if (yych <= ' ') goto yy501;
-                       if (yych != ')') goto yy281;
-               }
-               YYDEBUG(503, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(504, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1587 "Zend/zend_language_scanner.l"
-               {
-       return T_INT_CAST;
-}
-#line 6164 "Zend/zend_language_scanner.c"
-yy505:
-               YYDEBUG(505, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy506;
-               if (yych != 'e') goto yy281;
-yy506:
-               YYDEBUG(506, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy501;
-               if (yych == 'r') goto yy501;
-               goto yy281;
-yy507:
-               YYDEBUG(507, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy508;
-               if (yych != 'o') goto yy281;
-yy508:
-               YYDEBUG(508, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy509;
-               if (yych != 'a') goto yy281;
-yy509:
-               YYDEBUG(509, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy510;
-               if (yych != 't') goto yy281;
-yy510:
-               YYDEBUG(510, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(511, *YYCURSOR);
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy510;
-                       goto yy281;
-               } else {
-                       if (yych <= ' ') goto yy510;
-                       if (yych != ')') goto yy281;
-               }
-               YYDEBUG(512, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(513, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1591 "Zend/zend_language_scanner.l"
-               {
-       return T_DOUBLE_CAST;
-}
-#line 6212 "Zend/zend_language_scanner.c"
-yy514:
-               YYDEBUG(514, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'U') goto yy515;
-               if (yych != 'u') goto yy281;
-yy515:
-               YYDEBUG(515, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'B') goto yy516;
-               if (yych != 'b') goto yy281;
-yy516:
-               YYDEBUG(516, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy517;
-               if (yych != 'l') goto yy281;
-yy517:
-               YYDEBUG(517, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy510;
-               if (yych == 'e') goto yy510;
-               goto yy281;
-yy518:
-               YYDEBUG(518, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy519;
-               if (yych != 'a') goto yy281;
-yy519:
-               YYDEBUG(519, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy510;
-               if (yych == 'l') goto yy510;
-               goto yy281;
-yy520:
-               YYDEBUG(520, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy521;
-               if (yych != 'r') goto yy281;
-yy521:
-               YYDEBUG(521, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy522;
-               if (yych != 'i') goto yy281;
-yy522:
-               YYDEBUG(522, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy523;
-               if (yych != 'n') goto yy281;
-yy523:
-               YYDEBUG(523, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'G') goto yy524;
-               if (yych != 'g') goto yy281;
-yy524:
-               YYDEBUG(524, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(525, *YYCURSOR);
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy524;
-                       goto yy281;
-               } else {
-                       if (yych <= ' ') goto yy524;
-                       if (yych != ')') goto yy281;
+                               }
+                       }
                }
-               YYDEBUG(526, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(527, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1595 "Zend/zend_language_scanner.l"
-               {
-       return T_STRING_CAST;
-}
-#line 6286 "Zend/zend_language_scanner.c"
-yy528:
-               YYDEBUG(528, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy529;
-               if (yych != 'r') goto yy281;
-yy529:
-               YYDEBUG(529, *YYCURSOR);
+yy380:
+               YYDEBUG(380, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy530;
-               if (yych != 'a') goto yy281;
-yy530:
-               YYDEBUG(530, *YYCURSOR);
+               if (yych == 'N') goto yy451;
+               if (yych == 'n') goto yy451;
+               goto yy193;
+yy381:
+               YYDEBUG(381, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy531;
-               if (yych != 'y') goto yy281;
-yy531:
-               YYDEBUG(531, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(532, *YYCURSOR);
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy531;
-                       goto yy281;
+               if (yych <= 'O') {
+                       if (yych == 'I') goto yy434;
+                       if (yych <= 'N') goto yy193;
+                       goto yy435;
                } else {
-                       if (yych <= ' ') goto yy531;
-                       if (yych != ')') goto yy281;
+                       if (yych <= 'i') {
+                               if (yych <= 'h') goto yy193;
+                               goto yy434;
+                       } else {
+                               if (yych == 'o') goto yy435;
+                               goto yy193;
+                       }
                }
-               YYDEBUG(533, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(534, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1607 "Zend/zend_language_scanner.l"
-               {
-       return T_ARRAY_CAST;
-}
-#line 6323 "Zend/zend_language_scanner.c"
-yy535:
-               YYDEBUG(535, *YYCURSOR);
+yy382:
+               YYDEBUG(382, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'J') goto yy536;
-               if (yych != 'j') goto yy281;
-yy536:
-               YYDEBUG(536, *YYCURSOR);
+               if (yych == 'B') goto yy426;
+               if (yych == 'b') goto yy426;
+               goto yy193;
+yy383:
+               YYDEBUG(383, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy537;
-               if (yych != 'e') goto yy281;
-yy537:
-               YYDEBUG(537, *YYCURSOR);
+               if (yych == 'R') goto yy419;
+               if (yych == 'r') goto yy419;
+               goto yy193;
+yy384:
+               YYDEBUG(384, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy538;
-               if (yych != 'c') goto yy281;
-yy538:
-               YYDEBUG(538, *YYCURSOR);
+               if (yych == 'T') goto yy411;
+               if (yych == 't') goto yy411;
+               goto yy193;
+yy385:
+               YYDEBUG(385, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy539;
-               if (yych != 't') goto yy281;
-yy539:
-               YYDEBUG(539, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(540, *YYCURSOR);
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy539;
-                       goto yy281;
-               } else {
-                       if (yych <= ' ') goto yy539;
-                       if (yych != ')') goto yy281;
-               }
-               YYDEBUG(541, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(542, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1611 "Zend/zend_language_scanner.l"
-               {
-       return T_OBJECT_CAST;
-}
-#line 6365 "Zend/zend_language_scanner.c"
-yy543:
-               YYDEBUG(543, *YYCURSOR);
+               if (yych == 'E') goto yy409;
+               if (yych == 'e') goto yy409;
+               goto yy193;
+yy386:
+               YYDEBUG(386, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy553;
-               if (yych == 'n') goto yy553;
-               goto yy281;
-yy544:
-               YYDEBUG(544, *YYCURSOR);
+               if (yych == 'O') goto yy405;
+               if (yych == 'o') goto yy405;
+               goto yy193;
+yy387:
+               YYDEBUG(387, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy545;
-               if (yych != 'o') goto yy281;
-yy545:
-               YYDEBUG(545, *YYCURSOR);
+               if (yych == 'L') goto yy398;
+               if (yych == 'l') goto yy398;
+               goto yy193;
+yy388:
+               YYDEBUG(388, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy546;
-               if (yych != 'l') goto yy281;
-yy546:
-               YYDEBUG(546, *YYCURSOR);
+               if (yych == 'N') goto yy389;
+               if (yych != 'n') goto yy193;
+yy389:
+               YYDEBUG(389, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy551;
-               if (yych == 'e') goto yy551;
-               goto yy548;
-yy547:
-               YYDEBUG(547, *YYCURSOR);
+               if (yych == 'T') goto yy390;
+               if (yych != 't') goto yy193;
+yy390:
+               YYDEBUG(390, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy391;
+               if (yych != 'e') goto yy393;
+yy391:
+               YYDEBUG(391, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'G') goto yy396;
+               if (yych == 'g') goto yy396;
+               goto yy193;
+yy392:
+               YYDEBUG(392, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy548:
-               YYDEBUG(548, *YYCURSOR);
+yy393:
+               YYDEBUG(393, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy547;
-                       goto yy281;
+                       if (yych == '\t') goto yy392;
+                       goto yy193;
                } else {
-                       if (yych <= ' ') goto yy547;
-                       if (yych != ')') goto yy281;
+                       if (yych <= ' ') goto yy392;
+                       if (yych != ')') goto yy193;
                }
-               YYDEBUG(549, *YYCURSOR);
+               YYDEBUG(394, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(550, *YYCURSOR);
+               YYDEBUG(395, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1615 "Zend/zend_language_scanner.l"
+#line 1538 "Zend/zend_language_scanner.l"
                {
-       return T_BOOL_CAST;
+       return T_INT_CAST;
 }
-#line 6410 "Zend/zend_language_scanner.c"
-yy551:
-               YYDEBUG(551, *YYCURSOR);
+#line 5056 "Zend/zend_language_scanner.c"
+yy396:
+               YYDEBUG(396, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy552;
-               if (yych != 'a') goto yy281;
-yy552:
-               YYDEBUG(552, *YYCURSOR);
+               if (yych == 'E') goto yy397;
+               if (yych != 'e') goto yy193;
+yy397:
+               YYDEBUG(397, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy547;
-               if (yych == 'n') goto yy547;
-               goto yy281;
-yy553:
-               YYDEBUG(553, *YYCURSOR);
+               if (yych == 'R') goto yy392;
+               if (yych == 'r') goto yy392;
+               goto yy193;
+yy398:
+               YYDEBUG(398, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy554;
-               if (yych != 'a') goto yy281;
-yy554:
-               YYDEBUG(554, *YYCURSOR);
+               if (yych == 'O') goto yy399;
+               if (yych != 'o') goto yy193;
+yy399:
+               YYDEBUG(399, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy555;
-               if (yych != 'r') goto yy281;
-yy555:
-               YYDEBUG(555, *YYCURSOR);
+               if (yych == 'A') goto yy400;
+               if (yych != 'a') goto yy193;
+yy400:
+               YYDEBUG(400, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy556;
-               if (yych != 'y') goto yy281;
-yy556:
-               YYDEBUG(556, *YYCURSOR);
+               if (yych == 'T') goto yy401;
+               if (yych != 't') goto yy193;
+yy401:
+               YYDEBUG(401, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(557, *YYCURSOR);
+               YYDEBUG(402, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy556;
-                       goto yy281;
+                       if (yych == '\t') goto yy401;
+                       goto yy193;
                } else {
-                       if (yych <= ' ') goto yy556;
-                       if (yych != ')') goto yy281;
+                       if (yych <= ' ') goto yy401;
+                       if (yych != ')') goto yy193;
                }
-               YYDEBUG(558, *YYCURSOR);
+               YYDEBUG(403, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(559, *YYCURSOR);
+               YYDEBUG(404, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1603 "Zend/zend_language_scanner.l"
+#line 1542 "Zend/zend_language_scanner.l"
                {
-       return T_BINARY_CAST;
+       return T_DOUBLE_CAST;
 }
-#line 6458 "Zend/zend_language_scanner.c"
-yy560:
-               YYDEBUG(560, *YYCURSOR);
+#line 5104 "Zend/zend_language_scanner.c"
+yy405:
+               YYDEBUG(405, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= 'S') {
-                       if (yych == 'I') goto yy562;
-                       if (yych <= 'R') goto yy281;
-               } else {
-                       if (yych <= 'i') {
-                               if (yych <= 'h') goto yy281;
-                               goto yy562;
-                       } else {
-                               if (yych != 's') goto yy281;
-                       }
-               }
-               YYDEBUG(561, *YYCURSOR);
+               if (yych == 'U') goto yy406;
+               if (yych != 'u') goto yy193;
+yy406:
+               YYDEBUG(406, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy570;
-               if (yych == 'e') goto yy570;
-               goto yy281;
-yy562:
-               YYDEBUG(562, *YYCURSOR);
+               if (yych == 'B') goto yy407;
+               if (yych != 'b') goto yy193;
+yy407:
+               YYDEBUG(407, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy563;
-               if (yych != 'c') goto yy281;
-yy563:
-               YYDEBUG(563, *YYCURSOR);
+               if (yych == 'L') goto yy408;
+               if (yych != 'l') goto yy193;
+yy408:
+               YYDEBUG(408, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy564;
-               if (yych != 'o') goto yy281;
-yy564:
-               YYDEBUG(564, *YYCURSOR);
+               if (yych == 'E') goto yy401;
+               if (yych == 'e') goto yy401;
+               goto yy193;
+yy409:
+               YYDEBUG(409, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy565;
-               if (yych != 'd') goto yy281;
-yy565:
-               YYDEBUG(565, *YYCURSOR);
+               if (yych == 'A') goto yy410;
+               if (yych != 'a') goto yy193;
+yy410:
+               YYDEBUG(410, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy566;
-               if (yych != 'e') goto yy281;
-yy566:
-               YYDEBUG(566, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(567, *YYCURSOR);
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy566;
-                       goto yy281;
-               } else {
-                       if (yych <= ' ') goto yy566;
-                       if (yych != ')') goto yy281;
-               }
-               YYDEBUG(568, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(569, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1599 "Zend/zend_language_scanner.l"
-               {
-       return T_UNICODE_CAST;
-}
-#line 6519 "Zend/zend_language_scanner.c"
-yy570:
-               YYDEBUG(570, *YYCURSOR);
+               if (yych == 'L') goto yy401;
+               if (yych == 'l') goto yy401;
+               goto yy193;
+yy411:
+               YYDEBUG(411, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy571;
-               if (yych != 't') goto yy281;
-yy571:
-               YYDEBUG(571, *YYCURSOR);
+               if (yych == 'R') goto yy412;
+               if (yych != 'r') goto yy193;
+yy412:
+               YYDEBUG(412, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'I') goto yy413;
+               if (yych != 'i') goto yy193;
+yy413:
+               YYDEBUG(413, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'N') goto yy414;
+               if (yych != 'n') goto yy193;
+yy414:
+               YYDEBUG(414, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'G') goto yy415;
+               if (yych != 'g') goto yy193;
+yy415:
+               YYDEBUG(415, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(572, *YYCURSOR);
+               YYDEBUG(416, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy571;
-                       goto yy281;
+                       if (yych == '\t') goto yy415;
+                       goto yy193;
                } else {
-                       if (yych <= ' ') goto yy571;
-                       if (yych != ')') goto yy281;
-               }
-               YYDEBUG(573, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(574, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1619 "Zend/zend_language_scanner.l"
-               {
-       return T_UNSET_CAST;
-}
-#line 6546 "Zend/zend_language_scanner.c"
-yy575:
-               YYDEBUG(575, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy576;
-               if (yych != 'r') goto yy295;
-yy576:
-               YYDEBUG(576, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       if (yych <= ' ') goto yy415;
+                       if (yych != ')') goto yy193;
                }
-               YYDEBUG(577, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1583 "Zend/zend_language_scanner.l"
-               {
-       return T_VAR;
-}
-#line 6564 "Zend/zend_language_scanner.c"
-yy578:
-               YYDEBUG(578, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'M') goto yy582;
-               if (yych == 'm') goto yy582;
-               goto yy295;
-yy579:
-               YYDEBUG(579, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'W') goto yy580;
-               if (yych != 'w') goto yy295;
-yy580:
-               YYDEBUG(580, *YYCURSOR);
+               YYDEBUG(417, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
-               }
-               YYDEBUG(581, *YYCURSOR);
+               YYDEBUG(418, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1575 "Zend/zend_language_scanner.l"
+#line 1546 "Zend/zend_language_scanner.l"
                {
-       return T_NEW;
+       return T_STRING_CAST;
 }
-#line 6588 "Zend/zend_language_scanner.c"
-yy582:
-               YYDEBUG(582, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy583;
-               if (yych != 'e') goto yy295;
-yy583:
-               YYDEBUG(583, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy584;
-               if (yych != 's') goto yy295;
-yy584:
-               YYDEBUG(584, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'P') goto yy585;
-               if (yych != 'p') goto yy295;
-yy585:
-               YYDEBUG(585, *YYCURSOR);
+#line 5178 "Zend/zend_language_scanner.c"
+yy419:
+               YYDEBUG(419, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy586;
-               if (yych != 'a') goto yy295;
-yy586:
-               YYDEBUG(586, *YYCURSOR);
+               if (yych == 'R') goto yy420;
+               if (yych != 'r') goto yy193;
+yy420:
+               YYDEBUG(420, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy587;
-               if (yych != 'c') goto yy295;
-yy587:
-               YYDEBUG(587, *YYCURSOR);
+               if (yych == 'A') goto yy421;
+               if (yych != 'a') goto yy193;
+yy421:
+               YYDEBUG(421, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy588;
-               if (yych != 'e') goto yy295;
-yy588:
-               YYDEBUG(588, *YYCURSOR);
+               if (yych == 'Y') goto yy422;
+               if (yych != 'y') goto yy193;
+yy422:
+               YYDEBUG(422, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+               YYFILL(1);
+               yych = *YYCURSOR;
+               YYDEBUG(423, *YYCURSOR);
+               if (yych <= 0x1F) {
+                       if (yych == '\t') goto yy422;
+                       goto yy193;
+               } else {
+                       if (yych <= ' ') goto yy422;
+                       if (yych != ')') goto yy193;
                }
-               YYDEBUG(589, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1643 "Zend/zend_language_scanner.l"
-               {
-       return T_NAMESPACE;
-}
-#line 6631 "Zend/zend_language_scanner.c"
-yy590:
-               YYDEBUG(590, *YYCURSOR);
+               YYDEBUG(424, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(591, *YYCURSOR);
+               YYDEBUG(425, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1567 "Zend/zend_language_scanner.l"
+#line 1558 "Zend/zend_language_scanner.l"
                {
-       return T_PAAMAYIM_NEKUDOTAYIM;
+       return T_ARRAY_CAST;
 }
-#line 6641 "Zend/zend_language_scanner.c"
-yy592:
-               YYDEBUG(592, *YYCURSOR);
+#line 5215 "Zend/zend_language_scanner.c"
+yy426:
+               YYDEBUG(426, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'J') goto yy427;
+               if (yych != 'j') goto yy193;
+yy427:
+               YYDEBUG(427, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy428;
+               if (yych != 'e') goto yy193;
+yy428:
+               YYDEBUG(428, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'C') goto yy429;
+               if (yych != 'c') goto yy193;
+yy429:
+               YYDEBUG(429, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy430;
+               if (yych != 't') goto yy193;
+yy430:
+               YYDEBUG(430, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy593:
-               YYDEBUG(593, *YYCURSOR);
-               if (yych <= '\f') {
-                       if (yych <= 0x08) goto yy234;
-                       if (yych <= '\n') goto yy592;
-                       goto yy234;
+               YYDEBUG(431, *YYCURSOR);
+               if (yych <= 0x1F) {
+                       if (yych == '\t') goto yy430;
+                       goto yy193;
                } else {
-                       if (yych <= '\r') goto yy592;
-                       if (yych == ' ') goto yy592;
-                       goto yy234;
+                       if (yych <= ' ') goto yy430;
+                       if (yych != ')') goto yy193;
                }
-yy594:
-               YYDEBUG(594, *YYCURSOR);
+               YYDEBUG(432, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(595, *YYCURSOR);
+               YYDEBUG(433, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1743 "Zend/zend_language_scanner.l"
+#line 1562 "Zend/zend_language_scanner.l"
                {
-       return T_MINUS_EQUAL;
+       return T_OBJECT_CAST;
 }
-#line 6667 "Zend/zend_language_scanner.c"
-yy596:
-               YYDEBUG(596, *YYCURSOR);
+#line 5257 "Zend/zend_language_scanner.c"
+yy434:
+               YYDEBUG(434, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'N') goto yy444;
+               if (yych == 'n') goto yy444;
+               goto yy193;
+yy435:
+               YYDEBUG(435, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'O') goto yy436;
+               if (yych != 'o') goto yy193;
+yy436:
+               YYDEBUG(436, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'L') goto yy437;
+               if (yych != 'l') goto yy193;
+yy437:
+               YYDEBUG(437, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy442;
+               if (yych == 'e') goto yy442;
+               goto yy439;
+yy438:
+               YYDEBUG(438, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(597, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1711 "Zend/zend_language_scanner.l"
-               {
-       return T_DEC;
-}
-#line 6677 "Zend/zend_language_scanner.c"
-yy598:
-               YYDEBUG(598, *YYCURSOR);
+               YYFILL(1);
+               yych = *YYCURSOR;
+yy439:
+               YYDEBUG(439, *YYCURSOR);
+               if (yych <= 0x1F) {
+                       if (yych == '\t') goto yy438;
+                       goto yy193;
+               } else {
+                       if (yych <= ' ') goto yy438;
+                       if (yych != ')') goto yy193;
+               }
+               YYDEBUG(440, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(599, *YYCURSOR);
+               YYDEBUG(441, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1533 "Zend/zend_language_scanner.l"
+#line 1566 "Zend/zend_language_scanner.l"
                {
-       yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
-       return T_OBJECT_OPERATOR;
+       return T_BOOL_CAST;
 }
-#line 6688 "Zend/zend_language_scanner.c"
-yy600:
-               YYDEBUG(600, *YYCURSOR);
+#line 5302 "Zend/zend_language_scanner.c"
+yy442:
+               YYDEBUG(442, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= 'O') {
-                       if (yych == 'I') goto yy607;
-                       if (yych <= 'N') goto yy295;
-                       goto yy608;
-               } else {
-                       if (yych <= 'i') {
-                               if (yych <= 'h') goto yy295;
-                               goto yy607;
-                       } else {
-                               if (yych == 'o') goto yy608;
-                               goto yy295;
-                       }
-               }
-yy601:
-               YYDEBUG(601, *YYCURSOR);
+               if (yych == 'A') goto yy443;
+               if (yych != 'a') goto yy193;
+yy443:
+               YYDEBUG(443, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'B') goto yy602;
-               if (yych != 'b') goto yy295;
-yy602:
-               YYDEBUG(602, *YYCURSOR);
+               if (yych == 'N') goto yy438;
+               if (yych == 'n') goto yy438;
+               goto yy193;
+yy444:
+               YYDEBUG(444, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy603;
-               if (yych != 'l') goto yy295;
-yy603:
-               YYDEBUG(603, *YYCURSOR);
+               if (yych == 'A') goto yy445;
+               if (yych != 'a') goto yy193;
+yy445:
+               YYDEBUG(445, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy604;
-               if (yych != 'i') goto yy295;
-yy604:
-               YYDEBUG(604, *YYCURSOR);
+               if (yych == 'R') goto yy446;
+               if (yych != 'r') goto yy193;
+yy446:
+               YYDEBUG(446, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy605;
-               if (yych != 'c') goto yy295;
-yy605:
-               YYDEBUG(605, *YYCURSOR);
+               if (yych == 'Y') goto yy447;
+               if (yych != 'y') goto yy193;
+yy447:
+               YYDEBUG(447, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+               YYFILL(1);
+               yych = *YYCURSOR;
+               YYDEBUG(448, *YYCURSOR);
+               if (yych <= 0x1F) {
+                       if (yych == '\t') goto yy447;
+                       goto yy193;
+               } else {
+                       if (yych <= ' ') goto yy447;
+                       if (yych != ')') goto yy193;
                }
-               YYDEBUG(606, *YYCURSOR);
+               YYDEBUG(449, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(450, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1687 "Zend/zend_language_scanner.l"
+#line 1554 "Zend/zend_language_scanner.l"
                {
-       return T_PUBLIC;
+       return T_BINARY_CAST;
 }
-#line 6737 "Zend/zend_language_scanner.c"
-yy607:
-               YYDEBUG(607, *YYCURSOR);
+#line 5350 "Zend/zend_language_scanner.c"
+yy451:
+               YYDEBUG(451, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= 'V') {
-                       if (yych == 'N') goto yy616;
-                       if (yych <= 'U') goto yy295;
-                       goto yy617;
+               if (yych <= 'S') {
+                       if (yych == 'I') goto yy453;
+                       if (yych <= 'R') goto yy193;
                } else {
-                       if (yych <= 'n') {
-                               if (yych <= 'm') goto yy295;
-                               goto yy616;
+                       if (yych <= 'i') {
+                               if (yych <= 'h') goto yy193;
+                               goto yy453;
                        } else {
-                               if (yych == 'v') goto yy617;
-                               goto yy295;
+                               if (yych != 's') goto yy193;
                        }
                }
-yy608:
-               YYDEBUG(608, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy609;
-               if (yych != 't') goto yy295;
-yy609:
-               YYDEBUG(609, *YYCURSOR);
+               YYDEBUG(452, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy610;
-               if (yych != 'e') goto yy295;
-yy610:
-               YYDEBUG(610, *YYCURSOR);
+               if (yych == 'E') goto yy461;
+               if (yych == 'e') goto yy461;
+               goto yy193;
+yy453:
+               YYDEBUG(453, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy611;
-               if (yych != 'c') goto yy295;
-yy611:
-               YYDEBUG(611, *YYCURSOR);
+               if (yych == 'C') goto yy454;
+               if (yych != 'c') goto yy193;
+yy454:
+               YYDEBUG(454, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy612;
-               if (yych != 't') goto yy295;
-yy612:
-               YYDEBUG(612, *YYCURSOR);
+               if (yych == 'O') goto yy455;
+               if (yych != 'o') goto yy193;
+yy455:
+               YYDEBUG(455, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy613;
-               if (yych != 'e') goto yy295;
-yy613:
-               YYDEBUG(613, *YYCURSOR);
+               if (yych == 'D') goto yy456;
+               if (yych != 'd') goto yy193;
+yy456:
+               YYDEBUG(456, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy614;
-               if (yych != 'd') goto yy295;
-yy614:
-               YYDEBUG(614, *YYCURSOR);
+               if (yych == 'E') goto yy457;
+               if (yych != 'e') goto yy193;
+yy457:
+               YYDEBUG(457, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+               YYFILL(1);
+               yych = *YYCURSOR;
+               YYDEBUG(458, *YYCURSOR);
+               if (yych <= 0x1F) {
+                       if (yych == '\t') goto yy457;
+                       goto yy193;
+               } else {
+                       if (yych <= ' ') goto yy457;
+                       if (yych != ')') goto yy193;
                }
-               YYDEBUG(615, *YYCURSOR);
+               YYDEBUG(459, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(460, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1683 "Zend/zend_language_scanner.l"
+#line 1550 "Zend/zend_language_scanner.l"
                {
-       return T_PROTECTED;
+       return T_UNICODE_CAST;
 }
-#line 6796 "Zend/zend_language_scanner.c"
-yy616:
-               YYDEBUG(616, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy622;
-               if (yych == 't') goto yy622;
-               goto yy295;
-yy617:
-               YYDEBUG(617, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy618;
-               if (yych != 'a') goto yy295;
-yy618:
-               YYDEBUG(618, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy619;
-               if (yych != 't') goto yy295;
-yy619:
-               YYDEBUG(619, *YYCURSOR);
+#line 5411 "Zend/zend_language_scanner.c"
+yy461:
+               YYDEBUG(461, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy620;
-               if (yych != 'e') goto yy295;
-yy620:
-               YYDEBUG(620, *YYCURSOR);
+               if (yych == 'T') goto yy462;
+               if (yych != 't') goto yy193;
+yy462:
+               YYDEBUG(462, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+               YYFILL(1);
+               yych = *YYCURSOR;
+               YYDEBUG(463, *YYCURSOR);
+               if (yych <= 0x1F) {
+                       if (yych == '\t') goto yy462;
+                       goto yy193;
+               } else {
+                       if (yych <= ' ') goto yy462;
+                       if (yych != ')') goto yy193;
                }
-               YYDEBUG(621, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1679 "Zend/zend_language_scanner.l"
-               {
-       return T_PRIVATE;
-}
-#line 6830 "Zend/zend_language_scanner.c"
-yy622:
-               YYDEBUG(622, *YYCURSOR);
+               YYDEBUG(464, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
-               }
-               YYDEBUG(623, *YYCURSOR);
+               YYDEBUG(465, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1513 "Zend/zend_language_scanner.l"
+#line 1570 "Zend/zend_language_scanner.l"
                {
-       return T_PRINT;
+       return T_UNSET_CAST;
 }
-#line 6843 "Zend/zend_language_scanner.c"
-yy624:
-               YYDEBUG(624, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy629;
-               if (yych == 'o') goto yy629;
-               goto yy295;
-yy625:
-               YYDEBUG(625, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy626;
-               if (yych != 't') goto yy295;
-yy626:
-               YYDEBUG(626, *YYCURSOR);
+#line 5438 "Zend/zend_language_scanner.c"
+yy466:
+               YYDEBUG(466, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy627;
-               if (yych != 'o') goto yy295;
-yy627:
-               YYDEBUG(627, *YYCURSOR);
+               if (yych == 'R') goto yy467;
+               if (yych != 'r') goto yy186;
+yy467:
+               YYDEBUG(467, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(628, *YYCURSOR);
+               YYDEBUG(468, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1505 "Zend/zend_language_scanner.l"
+#line 1534 "Zend/zend_language_scanner.l"
                {
-       return T_GOTO;
+       return T_VAR;
 }
-#line 6872 "Zend/zend_language_scanner.c"
-yy629:
-               YYDEBUG(629, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'B') goto yy630;
-               if (yych != 'b') goto yy295;
-yy630:
-               YYDEBUG(630, *YYCURSOR);
+#line 5456 "Zend/zend_language_scanner.c"
+yy469:
+               YYDEBUG(469, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy631;
-               if (yych != 'a') goto yy295;
-yy631:
-               YYDEBUG(631, *YYCURSOR);
+               if (yych == 'M') goto yy473;
+               if (yych == 'm') goto yy473;
+               goto yy186;
+yy470:
+               YYDEBUG(470, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy632;
-               if (yych != 'l') goto yy295;
-yy632:
-               YYDEBUG(632, *YYCURSOR);
+               if (yych == 'W') goto yy471;
+               if (yych != 'w') goto yy186;
+yy471:
+               YYDEBUG(471, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
-               }
-               YYDEBUG(633, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1651 "Zend/zend_language_scanner.l"
-               {
-       return T_GLOBAL;
-}
-#line 6900 "Zend/zend_language_scanner.c"
-yy634:
-               YYDEBUG(634, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '<') goto yy657;
-               goto yy281;
-yy635:
-               YYDEBUG(635, *YYCURSOR);
-               yyaccept = 8;
-               yych = *(YYMARKER = ++YYCURSOR);
-               goto yy650;
-yy636:
-               YYDEBUG(636, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2362 "Zend/zend_language_scanner.l"
-               {
-       BEGIN(ST_DOUBLE_QUOTES);
-       return T_BINARY_DOUBLE;
-}
-#line 6919 "Zend/zend_language_scanner.c"
-yy637:
-               YYDEBUG(637, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(638, *YYCURSOR);
-               if (yych == '\'') goto yy645;
-               if (yych == '\\') goto yy644;
-               goto yy637;
-yy639:
-               YYDEBUG(639, *YYCURSOR);
+                       goto yy185;
+               }
+               YYDEBUG(472, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 1526 "Zend/zend_language_scanner.l"
+               {
+       return T_NEW;
+}
+#line 5480 "Zend/zend_language_scanner.c"
+yy473:
+               YYDEBUG(473, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy640;
-               if (yych != 'e') goto yy295;
-yy640:
-               YYDEBUG(640, *YYCURSOR);
+               if (yych == 'E') goto yy474;
+               if (yych != 'e') goto yy186;
+yy474:
+               YYDEBUG(474, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy641;
-               if (yych != 'a') goto yy295;
-yy641:
-               YYDEBUG(641, *YYCURSOR);
+               if (yych == 'S') goto yy475;
+               if (yych != 's') goto yy186;
+yy475:
+               YYDEBUG(475, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'K') goto yy642;
-               if (yych != 'k') goto yy295;
-yy642:
-               YYDEBUG(642, *YYCURSOR);
+               if (yych == 'P') goto yy476;
+               if (yych != 'p') goto yy186;
+yy476:
+               YYDEBUG(476, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy477;
+               if (yych != 'a') goto yy186;
+yy477:
+               YYDEBUG(477, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'C') goto yy478;
+               if (yych != 'c') goto yy186;
+yy478:
+               YYDEBUG(478, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy479;
+               if (yych != 'e') goto yy186;
+yy479:
+               YYDEBUG(479, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(643, *YYCURSOR);
+               YYDEBUG(480, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1497 "Zend/zend_language_scanner.l"
+#line 1594 "Zend/zend_language_scanner.l"
                {
-       return T_BREAK;
+       return T_NAMESPACE;
 }
-#line 6956 "Zend/zend_language_scanner.c"
-yy644:
-               YYDEBUG(644, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yych <= 0x00) goto yy281;
-               goto yy637;
-yy645:
-               YYDEBUG(645, *YYCURSOR);
+#line 5523 "Zend/zend_language_scanner.c"
+yy481:
+               YYDEBUG(481, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(646, *YYCURSOR);
+               YYDEBUG(482, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2351 "Zend/zend_language_scanner.l"
+#line 1518 "Zend/zend_language_scanner.l"
                {
-       zend_scan_binary_single_string(zendlval, yytext+2, yyleng-3 TSRMLS_CC);
-       return T_CONSTANT_ENCAPSED_STRING;
+       return T_PAAMAYIM_NEKUDOTAYIM;
 }
-#line 6974 "Zend/zend_language_scanner.c"
-yy647:
-               YYDEBUG(647, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(648, *YYCURSOR);
-               if (yych <= '$') {
-                       if (yych == '"') goto yy654;
-                       if (yych >= '$') goto yy281;
-               } else {
-                       if (yych <= '\\') {
-                               if (yych >= '\\') goto yy651;
-                       } else {
-                               if (yych == '{') goto yy647;
-                       }
-               }
-yy649:
-               YYDEBUG(649, *YYCURSOR);
+#line 5533 "Zend/zend_language_scanner.c"
+yy483:
+               YYDEBUG(483, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy650:
-               YYDEBUG(650, *YYCURSOR);
-               if (yych <= '$') {
-                       if (yych == '"') goto yy654;
-                       if (yych <= '#') goto yy649;
-                       goto yy652;
+yy484:
+               YYDEBUG(484, *YYCURSOR);
+               if (yych <= '\f') {
+                       if (yych <= 0x08) goto yy140;
+                       if (yych <= '\n') goto yy483;
+                       goto yy140;
                } else {
-                       if (yych <= '\\') {
-                               if (yych <= '[') goto yy649;
-                       } else {
-                               if (yych == '{') goto yy647;
-                               goto yy649;
-                       }
+                       if (yych <= '\r') goto yy483;
+                       if (yych == ' ') goto yy483;
+                       goto yy140;
                }
-yy651:
-               YYDEBUG(651, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yych <= 0x00) goto yy281;
-               goto yy649;
-yy652:
-               YYDEBUG(652, *YYCURSOR);
+yy485:
+               YYDEBUG(485, *YYCURSOR);
                ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(653, *YYCURSOR);
-               if (yych <= '[') {
-                       if (yych <= '#') {
-                               if (yych != '"') goto yy649;
-                       } else {
-                               if (yych <= '$') goto yy652;
-                               if (yych <= '@') goto yy649;
-                               if (yych <= 'Z') goto yy281;
-                               goto yy649;
-                       }
-               } else {
-                       if (yych <= '_') {
-                               if (yych <= '\\') goto yy656;
-                               if (yych <= '^') goto yy649;
-                               goto yy281;
-                       } else {
-                               if (yych <= '`') goto yy649;
-                               if (yych <= '{') goto yy281;
-                               if (yych <= '~') goto yy649;
-                               goto yy281;
-                       }
-               }
-yy654:
-               YYDEBUG(654, *YYCURSOR);
+               YYDEBUG(486, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 1694 "Zend/zend_language_scanner.l"
+               {
+       return T_MINUS_EQUAL;
+}
+#line 5559 "Zend/zend_language_scanner.c"
+yy487:
+               YYDEBUG(487, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(655, *YYCURSOR);
+               YYDEBUG(488, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2340 "Zend/zend_language_scanner.l"
+#line 1662 "Zend/zend_language_scanner.l"
                {
-       zend_scan_binary_escape_string(zendlval, yytext+2, yyleng-3, '"' TSRMLS_CC);
-       return T_CONSTANT_ENCAPSED_STRING;
+       return T_DEC;
 }
-#line 7054 "Zend/zend_language_scanner.c"
-yy656:
-               YYDEBUG(656, *YYCURSOR);
+#line 5569 "Zend/zend_language_scanner.c"
+yy489:
+               YYDEBUG(489, *YYCURSOR);
                ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yych <= 0x00) goto yy281;
-               goto yy649;
-yy657:
-               YYDEBUG(657, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '<') goto yy374;
-               goto yy281;
-yy658:
-               YYDEBUG(658, *YYCURSOR);
+               YYDEBUG(490, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 1484 "Zend/zend_language_scanner.l"
+               {
+       yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
+       return T_OBJECT_OPERATOR;
+}
+#line 5580 "Zend/zend_language_scanner.c"
+yy491:
+               YYDEBUG(491, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy665;
-               if (yych == 'a') goto yy665;
-               goto yy295;
-yy659:
-               YYDEBUG(659, *YYCURSOR);
+               if (yych <= 'O') {
+                       if (yych == 'I') goto yy498;
+                       if (yych <= 'N') goto yy186;
+                       goto yy499;
+               } else {
+                       if (yych <= 'i') {
+                               if (yych <= 'h') goto yy186;
+                               goto yy498;
+                       } else {
+                               if (yych == 'o') goto yy499;
+                               goto yy186;
+                       }
+               }
+yy492:
+               YYDEBUG(492, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy660;
-               if (yych != 'i') goto yy295;
-yy660:
-               YYDEBUG(660, *YYCURSOR);
+               if (yych == 'B') goto yy493;
+               if (yych != 'b') goto yy186;
+yy493:
+               YYDEBUG(493, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy661;
-               if (yych != 't') goto yy295;
-yy661:
-               YYDEBUG(661, *YYCURSOR);
+               if (yych == 'L') goto yy494;
+               if (yych != 'l') goto yy186;
+yy494:
+               YYDEBUG(494, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy662;
-               if (yych != 'c') goto yy295;
-yy662:
-               YYDEBUG(662, *YYCURSOR);
+               if (yych == 'I') goto yy495;
+               if (yych != 'i') goto yy186;
+yy495:
+               YYDEBUG(495, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy663;
-               if (yych != 'h') goto yy295;
-yy663:
-               YYDEBUG(663, *YYCURSOR);
+               if (yych == 'C') goto yy496;
+               if (yych != 'c') goto yy186;
+yy496:
+               YYDEBUG(496, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(664, *YYCURSOR);
+               YYDEBUG(497, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1481 "Zend/zend_language_scanner.l"
+#line 1638 "Zend/zend_language_scanner.l"
                {
-       return T_SWITCH;
+       return T_PUBLIC;
 }
-#line 7105 "Zend/zend_language_scanner.c"
-yy665:
-               YYDEBUG(665, *YYCURSOR);
+#line 5629 "Zend/zend_language_scanner.c"
+yy498:
+               YYDEBUG(498, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy666;
-               if (yych != 't') goto yy295;
-yy666:
-               YYDEBUG(666, *YYCURSOR);
+               if (yych <= 'V') {
+                       if (yych == 'N') goto yy507;
+                       if (yych <= 'U') goto yy186;
+                       goto yy508;
+               } else {
+                       if (yych <= 'n') {
+                               if (yych <= 'm') goto yy186;
+                               goto yy507;
+                       } else {
+                               if (yych == 'v') goto yy508;
+                               goto yy186;
+                       }
+               }
+yy499:
+               YYDEBUG(499, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy667;
-               if (yych != 'i') goto yy295;
-yy667:
-               YYDEBUG(667, *YYCURSOR);
+               if (yych == 'T') goto yy500;
+               if (yych != 't') goto yy186;
+yy500:
+               YYDEBUG(500, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy668;
-               if (yych != 'c') goto yy295;
-yy668:
-               YYDEBUG(668, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
-               }
-               YYDEBUG(669, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1667 "Zend/zend_language_scanner.l"
-               {
-       return T_STATIC;
-}
-#line 7133 "Zend/zend_language_scanner.c"
-yy670:
-               YYDEBUG(670, *YYCURSOR);
+               if (yych == 'E') goto yy501;
+               if (yych != 'e') goto yy186;
+yy501:
+               YYDEBUG(501, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy681;
-               if (yych == 's') goto yy681;
-               goto yy295;
-yy671:
-               YYDEBUG(671, *YYCURSOR);
+               if (yych == 'C') goto yy502;
+               if (yych != 'c') goto yy186;
+yy502:
+               YYDEBUG(502, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy679;
-               if (yych == 'd') goto yy679;
-               goto yy295;
-yy672:
-               YYDEBUG(672, *YYCURSOR);
+               if (yych == 'T') goto yy503;
+               if (yych != 't') goto yy186;
+yy503:
+               YYDEBUG(503, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy675;
-               if (yych == 'r') goto yy675;
-               goto yy295;
-yy673:
-               YYDEBUG(673, *YYCURSOR);
+               if (yych == 'E') goto yy504;
+               if (yych != 'e') goto yy186;
+yy504:
+               YYDEBUG(504, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'D') goto yy505;
+               if (yych != 'd') goto yy186;
+yy505:
+               YYDEBUG(505, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(674, *YYCURSOR);
+               YYDEBUG(506, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1477 "Zend/zend_language_scanner.l"
+#line 1634 "Zend/zend_language_scanner.l"
                {
-       return T_AS;
+       return T_PROTECTED;
 }
-#line 7164 "Zend/zend_language_scanner.c"
-yy675:
-               YYDEBUG(675, *YYCURSOR);
+#line 5688 "Zend/zend_language_scanner.c"
+yy507:
+               YYDEBUG(507, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy676;
-               if (yych != 'a') goto yy295;
-yy676:
-               YYDEBUG(676, *YYCURSOR);
+               if (yych == 'T') goto yy513;
+               if (yych == 't') goto yy513;
+               goto yy186;
+yy508:
+               YYDEBUG(508, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy677;
-               if (yych != 'y') goto yy295;
-yy677:
-               YYDEBUG(677, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
-               }
-               YYDEBUG(678, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1703 "Zend/zend_language_scanner.l"
-               {
-       return T_ARRAY;
-}
-#line 7187 "Zend/zend_language_scanner.c"
-yy679:
-               YYDEBUG(679, *YYCURSOR);
+               if (yych == 'A') goto yy509;
+               if (yych != 'a') goto yy186;
+yy509:
+               YYDEBUG(509, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy510;
+               if (yych != 't') goto yy186;
+yy510:
+               YYDEBUG(510, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy511;
+               if (yych != 'e') goto yy186;
+yy511:
+               YYDEBUG(511, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(680, *YYCURSOR);
+               YYDEBUG(512, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1795 "Zend/zend_language_scanner.l"
+#line 1630 "Zend/zend_language_scanner.l"
                {
-       return T_LOGICAL_AND;
+       return T_PRIVATE;
 }
-#line 7200 "Zend/zend_language_scanner.c"
-yy681:
-               YYDEBUG(681, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy682;
-               if (yych != 't') goto yy295;
-yy682:
-               YYDEBUG(682, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy683;
-               if (yych != 'r') goto yy295;
-yy683:
-               YYDEBUG(683, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy684;
-               if (yych != 'a') goto yy295;
-yy684:
-               YYDEBUG(684, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy685;
-               if (yych != 'c') goto yy295;
-yy685:
-               YYDEBUG(685, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy686;
-               if (yych != 't') goto yy295;
-yy686:
-               YYDEBUG(686, *YYCURSOR);
+#line 5722 "Zend/zend_language_scanner.c"
+yy513:
+               YYDEBUG(513, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(687, *YYCURSOR);
+               YYDEBUG(514, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1671 "Zend/zend_language_scanner.l"
+#line 1464 "Zend/zend_language_scanner.l"
                {
-       return T_ABSTRACT;
+       return T_PRINT;
 }
-#line 7238 "Zend/zend_language_scanner.c"
-yy688:
-               YYDEBUG(688, *YYCURSOR);
+#line 5735 "Zend/zend_language_scanner.c"
+yy515:
+               YYDEBUG(515, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy689;
-               if (yych != 'i') goto yy295;
-yy689:
-               YYDEBUG(689, *YYCURSOR);
+               if (yych == 'O') goto yy520;
+               if (yych == 'o') goto yy520;
+               goto yy186;
+yy516:
+               YYDEBUG(516, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy690;
-               if (yych != 'l') goto yy295;
-yy690:
-               YYDEBUG(690, *YYCURSOR);
+               if (yych == 'T') goto yy517;
+               if (yych != 't') goto yy186;
+yy517:
+               YYDEBUG(517, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy691;
-               if (yych != 'e') goto yy295;
-yy691:
-               YYDEBUG(691, *YYCURSOR);
+               if (yych == 'O') goto yy518;
+               if (yych != 'o') goto yy186;
+yy518:
+               YYDEBUG(518, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(692, *YYCURSOR);
+               YYDEBUG(519, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1437 "Zend/zend_language_scanner.l"
+#line 1456 "Zend/zend_language_scanner.l"
                {
-       return T_WHILE;
+       return T_GOTO;
 }
-#line 7266 "Zend/zend_language_scanner.c"
-yy693:
-               YYDEBUG(693, *YYCURSOR);
+#line 5764 "Zend/zend_language_scanner.c"
+yy520:
+               YYDEBUG(520, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'B') goto yy521;
+               if (yych != 'b') goto yy186;
+yy521:
+               YYDEBUG(521, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy522;
+               if (yych != 'a') goto yy186;
+yy522:
+               YYDEBUG(522, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'L') goto yy523;
+               if (yych != 'l') goto yy186;
+yy523:
+               YYDEBUG(523, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(694, *YYCURSOR);
+               YYDEBUG(524, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1421 "Zend/zend_language_scanner.l"
+#line 1602 "Zend/zend_language_scanner.l"
                {
-       return T_IF;
+       return T_GLOBAL;
 }
-#line 7279 "Zend/zend_language_scanner.c"
-yy695:
-               YYDEBUG(695, *YYCURSOR);
+#line 5792 "Zend/zend_language_scanner.c"
+yy525:
+               YYDEBUG(525, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'P') goto yy731;
-               if (yych == 'p') goto yy731;
-               goto yy295;
-yy696:
-               YYDEBUG(696, *YYCURSOR);
+               if (yych == '<') goto yy533;
+               goto yy193;
+yy526:
+               YYDEBUG(526, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= 'T') {
-                       if (yych <= 'C') {
-                               if (yych <= 'B') goto yy295;
-                               goto yy704;
-                       } else {
-                               if (yych <= 'R') goto yy295;
-                               if (yych <= 'S') goto yy702;
-                               goto yy703;
-                       }
-               } else {
-                       if (yych <= 'r') {
-                               if (yych == 'c') goto yy704;
-                               goto yy295;
-                       } else {
-                               if (yych <= 's') goto yy702;
-                               if (yych <= 't') goto yy703;
-                               goto yy295;
-                       }
-               }
-yy697:
-               YYDEBUG(697, *YYCURSOR);
+               goto yy180;
+yy527:
+               YYDEBUG(527, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy698;
-               if (yych != 's') goto yy295;
-yy698:
-               YYDEBUG(698, *YYCURSOR);
+               goto yy178;
+yy528:
+               YYDEBUG(528, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy699;
-               if (yych != 'e') goto yy295;
-yy699:
-               YYDEBUG(699, *YYCURSOR);
+               if (yych == 'E') goto yy529;
+               if (yych != 'e') goto yy186;
+yy529:
+               YYDEBUG(529, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy700;
-               if (yych != 't') goto yy295;
-yy700:
-               YYDEBUG(700, *YYCURSOR);
+               if (yych == 'A') goto yy530;
+               if (yych != 'a') goto yy186;
+yy530:
+               YYDEBUG(530, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'K') goto yy531;
+               if (yych != 'k') goto yy186;
+yy531:
+               YYDEBUG(531, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(701, *YYCURSOR);
+               YYDEBUG(532, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1655 "Zend/zend_language_scanner.l"
+#line 1448 "Zend/zend_language_scanner.l"
                {
-       return T_ISSET;
+       return T_BREAK;
 }
-#line 7335 "Zend/zend_language_scanner.c"
-yy702:
-               YYDEBUG(702, *YYCURSOR);
+#line 5833 "Zend/zend_language_scanner.c"
+yy533:
+               YYDEBUG(533, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy723;
-               if (yych == 't') goto yy723;
-               goto yy295;
-yy703:
-               YYDEBUG(703, *YYCURSOR);
+               if (yych == '<') goto yy265;
+               goto yy193;
+yy534:
+               YYDEBUG(534, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy716;
-               if (yych == 'e') goto yy716;
-               goto yy295;
-yy704:
-               YYDEBUG(704, *YYCURSOR);
+               if (yych == 'A') goto yy541;
+               if (yych == 'a') goto yy541;
+               goto yy186;
+yy535:
+               YYDEBUG(535, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy705;
-               if (yych != 'l') goto yy295;
-yy705:
-               YYDEBUG(705, *YYCURSOR);
+               if (yych == 'I') goto yy536;
+               if (yych != 'i') goto yy186;
+yy536:
+               YYDEBUG(536, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'U') goto yy706;
-               if (yych != 'u') goto yy295;
-yy706:
-               YYDEBUG(706, *YYCURSOR);
+               if (yych == 'T') goto yy537;
+               if (yych != 't') goto yy186;
+yy537:
+               YYDEBUG(537, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy707;
-               if (yych != 'd') goto yy295;
-yy707:
-               YYDEBUG(707, *YYCURSOR);
+               if (yych == 'C') goto yy538;
+               if (yych != 'c') goto yy186;
+yy538:
+               YYDEBUG(538, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy708;
-               if (yych != 'e') goto yy295;
-yy708:
-               YYDEBUG(708, *YYCURSOR);
+               if (yych == 'H') goto yy539;
+               if (yych != 'h') goto yy186;
+yy539:
+               YYDEBUG(539, *YYCURSOR);
                ++YYCURSOR;
-               if ((yych = *YYCURSOR) <= '^') {
-                       if (yych <= '9') {
-                               if (yych >= '0') goto yy294;
-                       } else {
-                               if (yych <= '@') goto yy709;
-                               if (yych <= 'Z') goto yy294;
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych <= '_') goto yy710;
-                       } else {
-                               if (yych <= 'z') goto yy294;
-                               if (yych >= 0x7F) goto yy294;
-                       }
+               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+                       goto yy185;
                }
-yy709:
-               YYDEBUG(709, *YYCURSOR);
+               YYDEBUG(540, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1627 "Zend/zend_language_scanner.l"
+#line 1432 "Zend/zend_language_scanner.l"
                {
-       return T_INCLUDE;
+       return T_SWITCH;
 }
-#line 7393 "Zend/zend_language_scanner.c"
-yy710:
-               YYDEBUG(710, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy711;
-               if (yych != 'o') goto yy295;
-yy711:
-               YYDEBUG(711, *YYCURSOR);
+#line 5877 "Zend/zend_language_scanner.c"
+yy541:
+               YYDEBUG(541, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy712;
-               if (yych != 'n') goto yy295;
-yy712:
-               YYDEBUG(712, *YYCURSOR);
+               if (yych == 'T') goto yy542;
+               if (yych != 't') goto yy186;
+yy542:
+               YYDEBUG(542, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy713;
-               if (yych != 'c') goto yy295;
-yy713:
-               YYDEBUG(713, *YYCURSOR);
+               if (yych == 'I') goto yy543;
+               if (yych != 'i') goto yy186;
+yy543:
+               YYDEBUG(543, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy714;
-               if (yych != 'e') goto yy295;
-yy714:
-               YYDEBUG(714, *YYCURSOR);
+               if (yych == 'C') goto yy544;
+               if (yych != 'c') goto yy186;
+yy544:
+               YYDEBUG(544, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(715, *YYCURSOR);
+               YYDEBUG(545, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1631 "Zend/zend_language_scanner.l"
+#line 1618 "Zend/zend_language_scanner.l"
                {
-       return T_INCLUDE_ONCE;
+       return T_STATIC;
 }
-#line 7426 "Zend/zend_language_scanner.c"
-yy716:
-               YYDEBUG(716, *YYCURSOR);
+#line 5905 "Zend/zend_language_scanner.c"
+yy546:
+               YYDEBUG(546, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy717;
-               if (yych != 'r') goto yy295;
-yy717:
-               YYDEBUG(717, *YYCURSOR);
+               if (yych == 'S') goto yy557;
+               if (yych == 's') goto yy557;
+               goto yy186;
+yy547:
+               YYDEBUG(547, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'F') goto yy718;
-               if (yych != 'f') goto yy295;
-yy718:
-               YYDEBUG(718, *YYCURSOR);
+               if (yych == 'D') goto yy555;
+               if (yych == 'd') goto yy555;
+               goto yy186;
+yy548:
+               YYDEBUG(548, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy719;
-               if (yych != 'a') goto yy295;
-yy719:
-               YYDEBUG(719, *YYCURSOR);
+               if (yych == 'R') goto yy551;
+               if (yych == 'r') goto yy551;
+               goto yy186;
+yy549:
+               YYDEBUG(549, *YYCURSOR);
+               ++YYCURSOR;
+               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+                       goto yy185;
+               }
+               YYDEBUG(550, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 1428 "Zend/zend_language_scanner.l"
+               {
+       return T_AS;
+}
+#line 5936 "Zend/zend_language_scanner.c"
+yy551:
+               YYDEBUG(551, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy720;
-               if (yych != 'c') goto yy295;
-yy720:
-               YYDEBUG(720, *YYCURSOR);
+               if (yych == 'A') goto yy552;
+               if (yych != 'a') goto yy186;
+yy552:
+               YYDEBUG(552, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy721;
-               if (yych != 'e') goto yy295;
-yy721:
-               YYDEBUG(721, *YYCURSOR);
+               if (yych == 'Y') goto yy553;
+               if (yych != 'y') goto yy186;
+yy553:
+               YYDEBUG(553, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(722, *YYCURSOR);
+               YYDEBUG(554, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1521 "Zend/zend_language_scanner.l"
+#line 1654 "Zend/zend_language_scanner.l"
                {
-       return T_INTERFACE;
+       return T_ARRAY;
 }
-#line 7464 "Zend/zend_language_scanner.c"
-yy723:
-               YYDEBUG(723, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy724;
-               if (yych != 'a') goto yy295;
-yy724:
-               YYDEBUG(724, *YYCURSOR);
+#line 5959 "Zend/zend_language_scanner.c"
+yy555:
+               YYDEBUG(555, *YYCURSOR);
+               ++YYCURSOR;
+               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+                       goto yy185;
+               }
+               YYDEBUG(556, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 1746 "Zend/zend_language_scanner.l"
+               {
+       return T_LOGICAL_AND;
+}
+#line 5972 "Zend/zend_language_scanner.c"
+yy557:
+               YYDEBUG(557, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy725;
-               if (yych != 'n') goto yy295;
-yy725:
-               YYDEBUG(725, *YYCURSOR);
+               if (yych == 'T') goto yy558;
+               if (yych != 't') goto yy186;
+yy558:
+               YYDEBUG(558, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy726;
-               if (yych != 'c') goto yy295;
-yy726:
-               YYDEBUG(726, *YYCURSOR);
+               if (yych == 'R') goto yy559;
+               if (yych != 'r') goto yy186;
+yy559:
+               YYDEBUG(559, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy727;
-               if (yych != 'e') goto yy295;
-yy727:
-               YYDEBUG(727, *YYCURSOR);
+               if (yych == 'A') goto yy560;
+               if (yych != 'a') goto yy186;
+yy560:
+               YYDEBUG(560, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy728;
-               if (yych != 'o') goto yy295;
-yy728:
-               YYDEBUG(728, *YYCURSOR);
+               if (yych == 'C') goto yy561;
+               if (yych != 'c') goto yy186;
+yy561:
+               YYDEBUG(561, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'F') goto yy729;
-               if (yych != 'f') goto yy295;
-yy729:
-               YYDEBUG(729, *YYCURSOR);
+               if (yych == 'T') goto yy562;
+               if (yych != 't') goto yy186;
+yy562:
+               YYDEBUG(562, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(730, *YYCURSOR);
+               YYDEBUG(563, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1473 "Zend/zend_language_scanner.l"
+#line 1622 "Zend/zend_language_scanner.l"
                {
-       return T_INSTANCEOF;
+       return T_ABSTRACT;
 }
-#line 7507 "Zend/zend_language_scanner.c"
-yy731:
-               YYDEBUG(731, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy732;
-               if (yych != 'l') goto yy295;
-yy732:
-               YYDEBUG(732, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy733;
-               if (yych != 'e') goto yy295;
-yy733:
-               YYDEBUG(733, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'M') goto yy734;
-               if (yych != 'm') goto yy295;
-yy734:
-               YYDEBUG(734, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy735;
-               if (yych != 'e') goto yy295;
-yy735:
-               YYDEBUG(735, *YYCURSOR);
+#line 6010 "Zend/zend_language_scanner.c"
+yy564:
+               YYDEBUG(564, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy736;
-               if (yych != 'n') goto yy295;
-yy736:
-               YYDEBUG(736, *YYCURSOR);
+               if (yych == 'I') goto yy565;
+               if (yych != 'i') goto yy186;
+yy565:
+               YYDEBUG(565, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy737;
-               if (yych != 't') goto yy295;
-yy737:
-               YYDEBUG(737, *YYCURSOR);
+               if (yych == 'L') goto yy566;
+               if (yych != 'l') goto yy186;
+yy566:
+               YYDEBUG(566, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy738;
-               if (yych != 's') goto yy295;
-yy738:
-               YYDEBUG(738, *YYCURSOR);
+               if (yych == 'E') goto yy567;
+               if (yych != 'e') goto yy186;
+yy567:
+               YYDEBUG(567, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(739, *YYCURSOR);
+               YYDEBUG(568, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1529 "Zend/zend_language_scanner.l"
+#line 1388 "Zend/zend_language_scanner.l"
                {
-       return T_IMPLEMENTS;
+       return T_WHILE;
 }
-#line 7555 "Zend/zend_language_scanner.c"
-yy740:
-               YYDEBUG(740, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy744;
-               if (yych == 'r') goto yy744;
-               goto yy295;
-yy741:
-               YYDEBUG(741, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy742;
-               if (yych != 'y') goto yy295;
-yy742:
-               YYDEBUG(742, *YYCURSOR);
+#line 6038 "Zend/zend_language_scanner.c"
+yy569:
+               YYDEBUG(569, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(743, *YYCURSOR);
+               YYDEBUG(570, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1409 "Zend/zend_language_scanner.l"
+#line 1372 "Zend/zend_language_scanner.l"
                {
-       return T_TRY;
+       return T_IF;
 }
-#line 7579 "Zend/zend_language_scanner.c"
-yy744:
-               YYDEBUG(744, *YYCURSOR);
+#line 6051 "Zend/zend_language_scanner.c"
+yy571:
+               YYDEBUG(571, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'P') goto yy607;
+               if (yych == 'p') goto yy607;
+               goto yy186;
+yy572:
+               YYDEBUG(572, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'T') {
+                       if (yych <= 'C') {
+                               if (yych <= 'B') goto yy186;
+                               goto yy580;
+                       } else {
+                               if (yych <= 'R') goto yy186;
+                               if (yych <= 'S') goto yy578;
+                               goto yy579;
+                       }
+               } else {
+                       if (yych <= 'r') {
+                               if (yych == 'c') goto yy580;
+                               goto yy186;
+                       } else {
+                               if (yych <= 's') goto yy578;
+                               if (yych <= 't') goto yy579;
+                               goto yy186;
+                       }
+               }
+yy573:
+               YYDEBUG(573, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy745;
-               if (yych != 'o') goto yy295;
-yy745:
-               YYDEBUG(745, *YYCURSOR);
+               if (yych == 'S') goto yy574;
+               if (yych != 's') goto yy186;
+yy574:
+               YYDEBUG(574, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'W') goto yy746;
-               if (yych != 'w') goto yy295;
-yy746:
-               YYDEBUG(746, *YYCURSOR);
+               if (yych == 'E') goto yy575;
+               if (yych != 'e') goto yy186;
+yy575:
+               YYDEBUG(575, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy576;
+               if (yych != 't') goto yy186;
+yy576:
+               YYDEBUG(576, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(747, *YYCURSOR);
+               YYDEBUG(577, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1417 "Zend/zend_language_scanner.l"
+#line 1606 "Zend/zend_language_scanner.l"
                {
-       return T_THROW;
+       return T_ISSET;
 }
-#line 7602 "Zend/zend_language_scanner.c"
-yy748:
-               YYDEBUG(748, *YYCURSOR);
+#line 6107 "Zend/zend_language_scanner.c"
+yy578:
+               YYDEBUG(578, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= 'T') {
-                       if (yych == 'Q') goto yy750;
-                       if (yych <= 'S') goto yy295;
-               } else {
-                       if (yych <= 'q') {
-                               if (yych <= 'p') goto yy295;
-                               goto yy750;
-                       } else {
-                               if (yych != 't') goto yy295;
-                       }
-               }
-               YYDEBUG(749, *YYCURSOR);
+               if (yych == 'T') goto yy599;
+               if (yych == 't') goto yy599;
+               goto yy186;
+yy579:
+               YYDEBUG(579, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'U') goto yy762;
-               if (yych == 'u') goto yy762;
-               goto yy295;
-yy750:
-               YYDEBUG(750, *YYCURSOR);
+               if (yych == 'E') goto yy592;
+               if (yych == 'e') goto yy592;
+               goto yy186;
+yy580:
+               YYDEBUG(580, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'U') goto yy751;
-               if (yych != 'u') goto yy295;
-yy751:
-               YYDEBUG(751, *YYCURSOR);
+               if (yych == 'L') goto yy581;
+               if (yych != 'l') goto yy186;
+yy581:
+               YYDEBUG(581, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy752;
-               if (yych != 'i') goto yy295;
-yy752:
-               YYDEBUG(752, *YYCURSOR);
+               if (yych == 'U') goto yy582;
+               if (yych != 'u') goto yy186;
+yy582:
+               YYDEBUG(582, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy753;
-               if (yych != 'r') goto yy295;
-yy753:
-               YYDEBUG(753, *YYCURSOR);
+               if (yych == 'D') goto yy583;
+               if (yych != 'd') goto yy186;
+yy583:
+               YYDEBUG(583, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy754;
-               if (yych != 'e') goto yy295;
-yy754:
-               YYDEBUG(754, *YYCURSOR);
+               if (yych == 'E') goto yy584;
+               if (yych != 'e') goto yy186;
+yy584:
+               YYDEBUG(584, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '9') {
-                               if (yych >= '0') goto yy294;
+                               if (yych >= '0') goto yy185;
                        } else {
-                               if (yych <= '@') goto yy755;
-                               if (yych <= 'Z') goto yy294;
+                               if (yych <= '@') goto yy585;
+                               if (yych <= 'Z') goto yy185;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych <= '_') goto yy756;
+                               if (yych <= '_') goto yy586;
                        } else {
-                               if (yych <= 'z') goto yy294;
-                               if (yych >= 0x7F) goto yy294;
+                               if (yych <= 'z') goto yy185;
+                               if (yych >= 0x7F) goto yy185;
                        }
                }
-yy755:
-               YYDEBUG(755, *YYCURSOR);
+yy585:
+               YYDEBUG(585, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1635 "Zend/zend_language_scanner.l"
+#line 1578 "Zend/zend_language_scanner.l"
                {
-       return T_REQUIRE;
+       return T_INCLUDE;
 }
-#line 7667 "Zend/zend_language_scanner.c"
-yy756:
-               YYDEBUG(756, *YYCURSOR);
+#line 6165 "Zend/zend_language_scanner.c"
+yy586:
+               YYDEBUG(586, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy757;
-               if (yych != 'o') goto yy295;
-yy757:
-               YYDEBUG(757, *YYCURSOR);
+               if (yych == 'O') goto yy587;
+               if (yych != 'o') goto yy186;
+yy587:
+               YYDEBUG(587, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy758;
-               if (yych != 'n') goto yy295;
-yy758:
-               YYDEBUG(758, *YYCURSOR);
+               if (yych == 'N') goto yy588;
+               if (yych != 'n') goto yy186;
+yy588:
+               YYDEBUG(588, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy759;
-               if (yych != 'c') goto yy295;
-yy759:
-               YYDEBUG(759, *YYCURSOR);
+               if (yych == 'C') goto yy589;
+               if (yych != 'c') goto yy186;
+yy589:
+               YYDEBUG(589, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy760;
-               if (yych != 'e') goto yy295;
-yy760:
-               YYDEBUG(760, *YYCURSOR);
+               if (yych == 'E') goto yy590;
+               if (yych != 'e') goto yy186;
+yy590:
+               YYDEBUG(590, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(761, *YYCURSOR);
+               YYDEBUG(591, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1639 "Zend/zend_language_scanner.l"
+#line 1582 "Zend/zend_language_scanner.l"
                {
-       return T_REQUIRE_ONCE;
+       return T_INCLUDE_ONCE;
 }
-#line 7700 "Zend/zend_language_scanner.c"
-yy762:
-               YYDEBUG(762, *YYCURSOR);
+#line 6198 "Zend/zend_language_scanner.c"
+yy592:
+               YYDEBUG(592, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy763;
-               if (yych != 'r') goto yy295;
-yy763:
-               YYDEBUG(763, *YYCURSOR);
+               if (yych == 'R') goto yy593;
+               if (yych != 'r') goto yy186;
+yy593:
+               YYDEBUG(593, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy764;
-               if (yych != 'n') goto yy295;
-yy764:
-               YYDEBUG(764, *YYCURSOR);
+               if (yych == 'F') goto yy594;
+               if (yych != 'f') goto yy186;
+yy594:
+               YYDEBUG(594, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy595;
+               if (yych != 'a') goto yy186;
+yy595:
+               YYDEBUG(595, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'C') goto yy596;
+               if (yych != 'c') goto yy186;
+yy596:
+               YYDEBUG(596, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy597;
+               if (yych != 'e') goto yy186;
+yy597:
+               YYDEBUG(597, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(765, *YYCURSOR);
+               YYDEBUG(598, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1405 "Zend/zend_language_scanner.l"
+#line 1472 "Zend/zend_language_scanner.l"
                {
-       return T_RETURN;
+       return T_INTERFACE;
 }
-#line 7723 "Zend/zend_language_scanner.c"
-yy766:
-               YYDEBUG(766, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'T') {
-                       if (yych <= 'R') goto yy295;
-                       if (yych <= 'S') goto yy788;
-                       goto yy787;
-               } else {
-                       if (yych <= 'r') goto yy295;
-                       if (yych <= 's') goto yy788;
-                       if (yych <= 't') goto yy787;
-                       goto yy295;
-               }
-yy767:
-               YYDEBUG(767, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'O') {
-                       if (yych == 'A') goto yy779;
-                       if (yych <= 'N') goto yy295;
-                       goto yy780;
-               } else {
-                       if (yych <= 'a') {
-                               if (yych <= '`') goto yy295;
-                               goto yy779;
-                       } else {
-                               if (yych == 'o') goto yy780;
-                               goto yy295;
-                       }
-               }
-yy768:
-               YYDEBUG(768, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy769;
-               if (yych != 'n') goto yy295;
-yy769:
-               YYDEBUG(769, *YYCURSOR);
+#line 6236 "Zend/zend_language_scanner.c"
+yy599:
+               YYDEBUG(599, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= 'T') {
-                       if (yych <= 'R') goto yy295;
-                       if (yych >= 'T') goto yy771;
-               } else {
-                       if (yych <= 'r') goto yy295;
-                       if (yych <= 's') goto yy770;
-                       if (yych <= 't') goto yy771;
-                       goto yy295;
-               }
-yy770:
-               YYDEBUG(770, *YYCURSOR);
+               if (yych == 'A') goto yy600;
+               if (yych != 'a') goto yy186;
+yy600:
+               YYDEBUG(600, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy777;
-               if (yych == 't') goto yy777;
-               goto yy295;
-yy771:
-               YYDEBUG(771, *YYCURSOR);
+               if (yych == 'N') goto yy601;
+               if (yych != 'n') goto yy186;
+yy601:
+               YYDEBUG(601, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy772;
-               if (yych != 'i') goto yy295;
-yy772:
-               YYDEBUG(772, *YYCURSOR);
+               if (yych == 'C') goto yy602;
+               if (yych != 'c') goto yy186;
+yy602:
+               YYDEBUG(602, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy773;
-               if (yych != 'n') goto yy295;
-yy773:
-               YYDEBUG(773, *YYCURSOR);
+               if (yych == 'E') goto yy603;
+               if (yych != 'e') goto yy186;
+yy603:
+               YYDEBUG(603, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'U') goto yy774;
-               if (yych != 'u') goto yy295;
-yy774:
-               YYDEBUG(774, *YYCURSOR);
+               if (yych == 'O') goto yy604;
+               if (yych != 'o') goto yy186;
+yy604:
+               YYDEBUG(604, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy775;
-               if (yych != 'e') goto yy295;
-yy775:
-               YYDEBUG(775, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
-               }
-               YYDEBUG(776, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1501 "Zend/zend_language_scanner.l"
-               {
-       return T_CONTINUE;
-}
-#line 7808 "Zend/zend_language_scanner.c"
-yy777:
-               YYDEBUG(777, *YYCURSOR);
+               if (yych == 'F') goto yy605;
+               if (yych != 'f') goto yy186;
+yy605:
+               YYDEBUG(605, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(778, *YYCURSOR);
+               YYDEBUG(606, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1401 "Zend/zend_language_scanner.l"
+#line 1424 "Zend/zend_language_scanner.l"
                {
-       return T_CONST;
+       return T_INSTANCEOF;
 }
-#line 7821 "Zend/zend_language_scanner.c"
-yy779:
-               YYDEBUG(779, *YYCURSOR);
+#line 6279 "Zend/zend_language_scanner.c"
+yy607:
+               YYDEBUG(607, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy784;
-               if (yych == 's') goto yy784;
-               goto yy295;
-yy780:
-               YYDEBUG(780, *YYCURSOR);
+               if (yych == 'L') goto yy608;
+               if (yych != 'l') goto yy186;
+yy608:
+               YYDEBUG(608, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy781;
-               if (yych != 'n') goto yy295;
-yy781:
-               YYDEBUG(781, *YYCURSOR);
+               if (yych == 'E') goto yy609;
+               if (yych != 'e') goto yy186;
+yy609:
+               YYDEBUG(609, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy782;
-               if (yych != 'e') goto yy295;
-yy782:
-               YYDEBUG(782, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
-               }
-               YYDEBUG(783, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1579 "Zend/zend_language_scanner.l"
-               {
-       return T_CLONE;
-}
-#line 7850 "Zend/zend_language_scanner.c"
-yy784:
-               YYDEBUG(784, *YYCURSOR);
+               if (yych == 'M') goto yy610;
+               if (yych != 'm') goto yy186;
+yy610:
+               YYDEBUG(610, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy785;
-               if (yych != 's') goto yy295;
-yy785:
-               YYDEBUG(785, *YYCURSOR);
+               if (yych == 'E') goto yy611;
+               if (yych != 'e') goto yy186;
+yy611:
+               YYDEBUG(611, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'N') goto yy612;
+               if (yych != 'n') goto yy186;
+yy612:
+               YYDEBUG(612, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy613;
+               if (yych != 't') goto yy186;
+yy613:
+               YYDEBUG(613, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'S') goto yy614;
+               if (yych != 's') goto yy186;
+yy614:
+               YYDEBUG(614, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(786, *YYCURSOR);
+               YYDEBUG(615, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1517 "Zend/zend_language_scanner.l"
+#line 1480 "Zend/zend_language_scanner.l"
                {
-       return T_CLASS;
+       return T_IMPLEMENTS;
 }
-#line 7868 "Zend/zend_language_scanner.c"
-yy787:
-               YYDEBUG(787, *YYCURSOR);
+#line 6327 "Zend/zend_language_scanner.c"
+yy616:
+               YYDEBUG(616, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy791;
-               if (yych == 'c') goto yy791;
-               goto yy295;
-yy788:
-               YYDEBUG(788, *YYCURSOR);
+               if (yych == 'R') goto yy620;
+               if (yych == 'r') goto yy620;
+               goto yy186;
+yy617:
+               YYDEBUG(617, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy789;
-               if (yych != 'e') goto yy295;
-yy789:
-               YYDEBUG(789, *YYCURSOR);
+               if (yych == 'Y') goto yy618;
+               if (yych != 'y') goto yy186;
+yy618:
+               YYDEBUG(618, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(790, *YYCURSOR);
+               YYDEBUG(619, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1489 "Zend/zend_language_scanner.l"
+#line 1360 "Zend/zend_language_scanner.l"
                {
-       return T_CASE;
+       return T_TRY;
 }
-#line 7892 "Zend/zend_language_scanner.c"
-yy791:
-               YYDEBUG(791, *YYCURSOR);
+#line 6351 "Zend/zend_language_scanner.c"
+yy620:
+               YYDEBUG(620, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy792;
-               if (yych != 'h') goto yy295;
-yy792:
-               YYDEBUG(792, *YYCURSOR);
+               if (yych == 'O') goto yy621;
+               if (yych != 'o') goto yy186;
+yy621:
+               YYDEBUG(621, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'W') goto yy622;
+               if (yych != 'w') goto yy186;
+yy622:
+               YYDEBUG(622, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(793, *YYCURSOR);
+               YYDEBUG(623, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1413 "Zend/zend_language_scanner.l"
+#line 1368 "Zend/zend_language_scanner.l"
                {
-       return T_CATCH;
+       return T_THROW;
 }
-#line 7910 "Zend/zend_language_scanner.c"
-yy794:
-               YYDEBUG(794, *YYCURSOR);
+#line 6374 "Zend/zend_language_scanner.c"
+yy624:
+               YYDEBUG(624, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy811;
-               if (yych == 'n') goto yy811;
-               goto yy295;
-yy795:
-               YYDEBUG(795, *YYCURSOR);
+               if (yych <= 'T') {
+                       if (yych == 'Q') goto yy626;
+                       if (yych <= 'S') goto yy186;
+               } else {
+                       if (yych <= 'q') {
+                               if (yych <= 'p') goto yy186;
+                               goto yy626;
+                       } else {
+                               if (yych != 't') goto yy186;
+                       }
+               }
+               YYDEBUG(625, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy804;
-               if (yych == 'r') goto yy804;
-               goto yy295;
-yy796:
-               YYDEBUG(796, *YYCURSOR);
+               if (yych == 'U') goto yy638;
+               if (yych == 'u') goto yy638;
+               goto yy186;
+yy626:
+               YYDEBUG(626, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy797;
-               if (yych != 'n') goto yy295;
-yy797:
-               YYDEBUG(797, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy798;
-               if (yych != 'c') goto yy295;
-yy798:
-               YYDEBUG(798, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy799;
-               if (yych != 't') goto yy295;
-yy799:
-               YYDEBUG(799, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy800;
-               if (yych != 'i') goto yy295;
-yy800:
-               YYDEBUG(800, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy801;
-               if (yych != 'o') goto yy295;
-yy801:
-               YYDEBUG(801, *YYCURSOR);
+               if (yych == 'U') goto yy627;
+               if (yych != 'u') goto yy186;
+yy627:
+               YYDEBUG(627, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy802;
-               if (yych != 'n') goto yy295;
-yy802:
-               YYDEBUG(802, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
-               }
-               YYDEBUG(803, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1397 "Zend/zend_language_scanner.l"
-               {
-       return T_FUNCTION;
-}
-#line 7965 "Zend/zend_language_scanner.c"
-yy804:
-               YYDEBUG(804, *YYCURSOR);
+               if (yych == 'I') goto yy628;
+               if (yych != 'i') goto yy186;
+yy628:
+               YYDEBUG(628, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'R') goto yy629;
+               if (yych != 'r') goto yy186;
+yy629:
+               YYDEBUG(629, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy630;
+               if (yych != 'e') goto yy186;
+yy630:
+               YYDEBUG(630, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
-                       if (yych <= '@') {
-                               if (yych <= '/') goto yy805;
-                               if (yych <= '9') goto yy294;
+                       if (yych <= '9') {
+                               if (yych >= '0') goto yy185;
                        } else {
-                               if (yych == 'E') goto yy806;
-                               if (yych <= 'Z') goto yy294;
+                               if (yych <= '@') goto yy631;
+                               if (yych <= 'Z') goto yy185;
                        }
                } else {
-                       if (yych <= 'd') {
-                               if (yych != '`') goto yy294;
+                       if (yych <= '`') {
+                               if (yych <= '_') goto yy632;
                        } else {
-                               if (yych <= 'e') goto yy806;
-                               if (yych <= 'z') goto yy294;
-                               if (yych >= 0x7F) goto yy294;
+                               if (yych <= 'z') goto yy185;
+                               if (yych >= 0x7F) goto yy185;
                        }
                }
-yy805:
-               YYDEBUG(805, *YYCURSOR);
+yy631:
+               YYDEBUG(631, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1449 "Zend/zend_language_scanner.l"
+#line 1586 "Zend/zend_language_scanner.l"
                {
-       return T_FOR;
+       return T_REQUIRE;
 }
-#line 7993 "Zend/zend_language_scanner.c"
-yy806:
-               YYDEBUG(806, *YYCURSOR);
+#line 6439 "Zend/zend_language_scanner.c"
+yy632:
+               YYDEBUG(632, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy807;
-               if (yych != 'a') goto yy295;
-yy807:
-               YYDEBUG(807, *YYCURSOR);
+               if (yych == 'O') goto yy633;
+               if (yych != 'o') goto yy186;
+yy633:
+               YYDEBUG(633, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy808;
-               if (yych != 'c') goto yy295;
-yy808:
-               YYDEBUG(808, *YYCURSOR);
+               if (yych == 'N') goto yy634;
+               if (yych != 'n') goto yy186;
+yy634:
+               YYDEBUG(634, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy809;
-               if (yych != 'h') goto yy295;
-yy809:
-               YYDEBUG(809, *YYCURSOR);
+               if (yych == 'C') goto yy635;
+               if (yych != 'c') goto yy186;
+yy635:
+               YYDEBUG(635, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy636;
+               if (yych != 'e') goto yy186;
+yy636:
+               YYDEBUG(636, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(810, *YYCURSOR);
+               YYDEBUG(637, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1457 "Zend/zend_language_scanner.l"
+#line 1590 "Zend/zend_language_scanner.l"
                {
-       return T_FOREACH;
+       return T_REQUIRE_ONCE;
 }
-#line 8021 "Zend/zend_language_scanner.c"
-yy811:
-               YYDEBUG(811, *YYCURSOR);
+#line 6472 "Zend/zend_language_scanner.c"
+yy638:
+               YYDEBUG(638, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy812;
-               if (yych != 'a') goto yy295;
-yy812:
-               YYDEBUG(812, *YYCURSOR);
+               if (yych == 'R') goto yy639;
+               if (yych != 'r') goto yy186;
+yy639:
+               YYDEBUG(639, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy813;
-               if (yych != 'l') goto yy295;
-yy813:
-               YYDEBUG(813, *YYCURSOR);
+               if (yych == 'N') goto yy640;
+               if (yych != 'n') goto yy186;
+yy640:
+               YYDEBUG(640, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(814, *YYCURSOR);
+               YYDEBUG(641, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1675 "Zend/zend_language_scanner.l"
+#line 1356 "Zend/zend_language_scanner.l"
                {
-       return T_FINAL;
+       return T_RETURN;
 }
-#line 8044 "Zend/zend_language_scanner.c"
-yy815:
-               YYDEBUG(815, *YYCURSOR);
+#line 6495 "Zend/zend_language_scanner.c"
+yy642:
+               YYDEBUG(642, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= 'F') {
-                       if (yych == 'C') goto yy821;
-                       if (yych <= 'E') goto yy295;
-                       goto yy822;
+               if (yych <= 'T') {
+                       if (yych <= 'R') goto yy186;
+                       if (yych <= 'S') goto yy664;
+                       goto yy663;
                } else {
-                       if (yych <= 'c') {
-                               if (yych <= 'b') goto yy295;
-                               goto yy821;
+                       if (yych <= 'r') goto yy186;
+                       if (yych <= 's') goto yy664;
+                       if (yych <= 't') goto yy663;
+                       goto yy186;
+               }
+yy643:
+               YYDEBUG(643, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'O') {
+                       if (yych == 'A') goto yy655;
+                       if (yych <= 'N') goto yy186;
+                       goto yy656;
+               } else {
+                       if (yych <= 'a') {
+                               if (yych <= '`') goto yy186;
+                               goto yy655;
                        } else {
-                               if (yych == 'f') goto yy822;
-                               goto yy295;
+                               if (yych == 'o') goto yy656;
+                               goto yy186;
                        }
                }
-yy816:
-               YYDEBUG(816, *YYCURSOR);
+yy644:
+               YYDEBUG(644, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy819;
-               if (yych == 'e') goto yy819;
-               goto yy295;
-yy817:
-               YYDEBUG(817, *YYCURSOR);
+               if (yych == 'N') goto yy645;
+               if (yych != 'n') goto yy186;
+yy645:
+               YYDEBUG(645, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'T') {
+                       if (yych <= 'R') goto yy186;
+                       if (yych >= 'T') goto yy647;
+               } else {
+                       if (yych <= 'r') goto yy186;
+                       if (yych <= 's') goto yy646;
+                       if (yych <= 't') goto yy647;
+                       goto yy186;
+               }
+yy646:
+               YYDEBUG(646, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy653;
+               if (yych == 't') goto yy653;
+               goto yy186;
+yy647:
+               YYDEBUG(647, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'I') goto yy648;
+               if (yych != 'i') goto yy186;
+yy648:
+               YYDEBUG(648, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'N') goto yy649;
+               if (yych != 'n') goto yy186;
+yy649:
+               YYDEBUG(649, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'U') goto yy650;
+               if (yych != 'u') goto yy186;
+yy650:
+               YYDEBUG(650, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy651;
+               if (yych != 'e') goto yy186;
+yy651:
+               YYDEBUG(651, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(818, *YYCURSOR);
+               YYDEBUG(652, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1445 "Zend/zend_language_scanner.l"
+#line 1452 "Zend/zend_language_scanner.l"
                {
-       return T_DO;
+       return T_CONTINUE;
 }
-#line 8079 "Zend/zend_language_scanner.c"
-yy819:
-               YYDEBUG(819, *YYCURSOR);
+#line 6580 "Zend/zend_language_scanner.c"
+yy653:
+               YYDEBUG(653, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(820, *YYCURSOR);
+               YYDEBUG(654, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1393 "Zend/zend_language_scanner.l"
+#line 1352 "Zend/zend_language_scanner.l"
                {
-       return T_EXIT;
+       return T_CONST;
 }
-#line 8092 "Zend/zend_language_scanner.c"
-yy821:
-               YYDEBUG(821, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy828;
-               if (yych == 'l') goto yy828;
-               goto yy295;
-yy822:
-               YYDEBUG(822, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy823;
-               if (yych != 'a') goto yy295;
-yy823:
-               YYDEBUG(823, *YYCURSOR);
+#line 6593 "Zend/zend_language_scanner.c"
+yy655:
+               YYDEBUG(655, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'U') goto yy824;
-               if (yych != 'u') goto yy295;
-yy824:
-               YYDEBUG(824, *YYCURSOR);
+               if (yych == 'S') goto yy660;
+               if (yych == 's') goto yy660;
+               goto yy186;
+yy656:
+               YYDEBUG(656, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy825;
-               if (yych != 'l') goto yy295;
-yy825:
-               YYDEBUG(825, *YYCURSOR);
+               if (yych == 'N') goto yy657;
+               if (yych != 'n') goto yy186;
+yy657:
+               YYDEBUG(657, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy826;
-               if (yych != 't') goto yy295;
-yy826:
-               YYDEBUG(826, *YYCURSOR);
+               if (yych == 'E') goto yy658;
+               if (yych != 'e') goto yy186;
+yy658:
+               YYDEBUG(658, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(827, *YYCURSOR);
+               YYDEBUG(659, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1493 "Zend/zend_language_scanner.l"
+#line 1530 "Zend/zend_language_scanner.l"
                {
-       return T_DEFAULT;
+       return T_CLONE;
 }
-#line 8131 "Zend/zend_language_scanner.c"
-yy828:
-               YYDEBUG(828, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy829;
-               if (yych != 'a') goto yy295;
-yy829:
-               YYDEBUG(829, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy830;
-               if (yych != 'r') goto yy295;
-yy830:
-               YYDEBUG(830, *YYCURSOR);
+#line 6622 "Zend/zend_language_scanner.c"
+yy660:
+               YYDEBUG(660, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy831;
-               if (yych != 'e') goto yy295;
-yy831:
-               YYDEBUG(831, *YYCURSOR);
+               if (yych == 'S') goto yy661;
+               if (yych != 's') goto yy186;
+yy661:
+               YYDEBUG(661, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(832, *YYCURSOR);
+               YYDEBUG(662, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1465 "Zend/zend_language_scanner.l"
+#line 1468 "Zend/zend_language_scanner.l"
                {
-       return T_DECLARE;
+       return T_CLASS;
 }
-#line 8159 "Zend/zend_language_scanner.c"
-yy833:
-               YYDEBUG(833, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy895;
-               if (yych == 'h') goto yy895;
-               goto yy295;
-yy834:
-               YYDEBUG(834, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy889;
-               if (yych == 's') goto yy889;
-               goto yy295;
-yy835:
-               YYDEBUG(835, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'P') goto yy885;
-               if (yych == 'p') goto yy885;
-               goto yy295;
-yy836:
-               YYDEBUG(836, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'D') goto yy851;
-               if (yych == 'd') goto yy851;
-               goto yy295;
-yy837:
-               YYDEBUG(837, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy848;
-               if (yych == 'a') goto yy848;
-               goto yy295;
-yy838:
-               YYDEBUG(838, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'T') {
-                       if (yych == 'I') goto yy839;
-                       if (yych <= 'S') goto yy295;
-                       goto yy840;
-               } else {
-                       if (yych <= 'i') {
-                               if (yych <= 'h') goto yy295;
-                       } else {
-                               if (yych == 't') goto yy840;
-                               goto yy295;
-                       }
-               }
-yy839:
-               YYDEBUG(839, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy846;
-               if (yych == 't') goto yy846;
-               goto yy295;
-yy840:
-               YYDEBUG(840, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy841;
-               if (yych != 'e') goto yy295;
-yy841:
-               YYDEBUG(841, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy842;
-               if (yych != 'n') goto yy295;
-yy842:
-               YYDEBUG(842, *YYCURSOR);
+#line 6640 "Zend/zend_language_scanner.c"
+yy663:
+               YYDEBUG(663, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy843;
-               if (yych != 'd') goto yy295;
-yy843:
-               YYDEBUG(843, *YYCURSOR);
+               if (yych == 'C') goto yy667;
+               if (yych == 'c') goto yy667;
+               goto yy186;
+yy664:
+               YYDEBUG(664, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy844;
-               if (yych != 's') goto yy295;
-yy844:
-               YYDEBUG(844, *YYCURSOR);
+               if (yych == 'E') goto yy665;
+               if (yych != 'e') goto yy186;
+yy665:
+               YYDEBUG(665, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(845, *YYCURSOR);
+               YYDEBUG(666, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1525 "Zend/zend_language_scanner.l"
+#line 1440 "Zend/zend_language_scanner.l"
                {
-       return T_EXTENDS;
+       return T_CASE;
 }
-#line 8243 "Zend/zend_language_scanner.c"
-yy846:
-               YYDEBUG(846, *YYCURSOR);
+#line 6664 "Zend/zend_language_scanner.c"
+yy667:
+               YYDEBUG(667, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'H') goto yy668;
+               if (yych != 'h') goto yy186;
+yy668:
+               YYDEBUG(668, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(847, *YYCURSOR);
+               YYDEBUG(669, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1389 "Zend/zend_language_scanner.l"
+#line 1364 "Zend/zend_language_scanner.l"
                {
-       return T_EXIT;
+       return T_CATCH;
 }
-#line 8256 "Zend/zend_language_scanner.c"
-yy848:
-               YYDEBUG(848, *YYCURSOR);
+#line 6682 "Zend/zend_language_scanner.c"
+yy670:
+               YYDEBUG(670, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'N') goto yy687;
+               if (yych == 'n') goto yy687;
+               goto yy186;
+yy671:
+               YYDEBUG(671, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'R') goto yy680;
+               if (yych == 'r') goto yy680;
+               goto yy186;
+yy672:
+               YYDEBUG(672, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'N') goto yy673;
+               if (yych != 'n') goto yy186;
+yy673:
+               YYDEBUG(673, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'C') goto yy674;
+               if (yych != 'c') goto yy186;
+yy674:
+               YYDEBUG(674, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy675;
+               if (yych != 't') goto yy186;
+yy675:
+               YYDEBUG(675, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'I') goto yy676;
+               if (yych != 'i') goto yy186;
+yy676:
+               YYDEBUG(676, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'O') goto yy677;
+               if (yych != 'o') goto yy186;
+yy677:
+               YYDEBUG(677, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy849;
-               if (yych != 'l') goto yy295;
-yy849:
-               YYDEBUG(849, *YYCURSOR);
+               if (yych == 'N') goto yy678;
+               if (yych != 'n') goto yy186;
+yy678:
+               YYDEBUG(678, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(850, *YYCURSOR);
+               YYDEBUG(679, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1623 "Zend/zend_language_scanner.l"
+#line 1348 "Zend/zend_language_scanner.l"
                {
-       return T_EVAL;
+       return T_FUNCTION;
 }
-#line 8274 "Zend/zend_language_scanner.c"
-yy851:
-               YYDEBUG(851, *YYCURSOR);
-               yych = *++YYCURSOR;
-               YYDEBUG(-1, yych);
-               switch (yych) {
-               case 'D':
-               case 'd':       goto yy852;
-               case 'F':
-               case 'f':       goto yy853;
-               case 'I':
-               case 'i':       goto yy854;
-               case 'S':
-               case 's':       goto yy855;
-               case 'W':
-               case 'w':       goto yy856;
-               default:        goto yy295;
-               }
-yy852:
-               YYDEBUG(852, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy878;
-               if (yych == 'e') goto yy878;
-               goto yy295;
-yy853:
-               YYDEBUG(853, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy870;
-               if (yych == 'o') goto yy870;
-               goto yy295;
-yy854:
-               YYDEBUG(854, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'F') goto yy868;
-               if (yych == 'f') goto yy868;
-               goto yy295;
-yy855:
-               YYDEBUG(855, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'W') goto yy862;
-               if (yych == 'w') goto yy862;
-               goto yy295;
-yy856:
-               YYDEBUG(856, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy857;
-               if (yych != 'h') goto yy295;
-yy857:
-               YYDEBUG(857, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy858;
-               if (yych != 'i') goto yy295;
-yy858:
-               YYDEBUG(858, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy859;
-               if (yych != 'l') goto yy295;
-yy859:
-               YYDEBUG(859, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy860;
-               if (yych != 'e') goto yy295;
-yy860:
-               YYDEBUG(860, *YYCURSOR);
+#line 6737 "Zend/zend_language_scanner.c"
+yy680:
+               YYDEBUG(680, *YYCURSOR);
                ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+               if ((yych = *YYCURSOR) <= '^') {
+                       if (yych <= '@') {
+                               if (yych <= '/') goto yy681;
+                               if (yych <= '9') goto yy185;
+                       } else {
+                               if (yych == 'E') goto yy682;
+                               if (yych <= 'Z') goto yy185;
+                       }
+               } else {
+                       if (yych <= 'd') {
+                               if (yych != '`') goto yy185;
+                       } else {
+                               if (yych <= 'e') goto yy682;
+                               if (yych <= 'z') goto yy185;
+                               if (yych >= 0x7F) goto yy185;
+                       }
                }
-               YYDEBUG(861, *YYCURSOR);
+yy681:
+               YYDEBUG(681, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1441 "Zend/zend_language_scanner.l"
+#line 1400 "Zend/zend_language_scanner.l"
                {
-       return T_ENDWHILE;
+       return T_FOR;
 }
-#line 8348 "Zend/zend_language_scanner.c"
-yy862:
-               YYDEBUG(862, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy863;
-               if (yych != 'i') goto yy295;
-yy863:
-               YYDEBUG(863, *YYCURSOR);
+#line 6765 "Zend/zend_language_scanner.c"
+yy682:
+               YYDEBUG(682, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy864;
-               if (yych != 't') goto yy295;
-yy864:
-               YYDEBUG(864, *YYCURSOR);
+               if (yych == 'A') goto yy683;
+               if (yych != 'a') goto yy186;
+yy683:
+               YYDEBUG(683, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy865;
-               if (yych != 'c') goto yy295;
-yy865:
-               YYDEBUG(865, *YYCURSOR);
+               if (yych == 'C') goto yy684;
+               if (yych != 'c') goto yy186;
+yy684:
+               YYDEBUG(684, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy866;
-               if (yych != 'h') goto yy295;
-yy866:
-               YYDEBUG(866, *YYCURSOR);
+               if (yych == 'H') goto yy685;
+               if (yych != 'h') goto yy186;
+yy685:
+               YYDEBUG(685, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(867, *YYCURSOR);
+               YYDEBUG(686, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1485 "Zend/zend_language_scanner.l"
+#line 1408 "Zend/zend_language_scanner.l"
                {
-       return T_ENDSWITCH;
+       return T_FOREACH;
 }
-#line 8381 "Zend/zend_language_scanner.c"
-yy868:
-               YYDEBUG(868, *YYCURSOR);
+#line 6793 "Zend/zend_language_scanner.c"
+yy687:
+               YYDEBUG(687, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy688;
+               if (yych != 'a') goto yy186;
+yy688:
+               YYDEBUG(688, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'L') goto yy689;
+               if (yych != 'l') goto yy186;
+yy689:
+               YYDEBUG(689, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(869, *YYCURSOR);
+               YYDEBUG(690, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1429 "Zend/zend_language_scanner.l"
+#line 1626 "Zend/zend_language_scanner.l"
                {
-       return T_ENDIF;
+       return T_FINAL;
 }
-#line 8394 "Zend/zend_language_scanner.c"
-yy870:
-               YYDEBUG(870, *YYCURSOR);
+#line 6816 "Zend/zend_language_scanner.c"
+yy691:
+               YYDEBUG(691, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy871;
-               if (yych != 'r') goto yy295;
-yy871:
-               YYDEBUG(871, *YYCURSOR);
-               ++YYCURSOR;
-               if ((yych = *YYCURSOR) <= '^') {
-                       if (yych <= '@') {
-                               if (yych <= '/') goto yy872;
-                               if (yych <= '9') goto yy294;
-                       } else {
-                               if (yych == 'E') goto yy873;
-                               if (yych <= 'Z') goto yy294;
-                       }
+               if (yych <= 'F') {
+                       if (yych == 'C') goto yy697;
+                       if (yych <= 'E') goto yy186;
+                       goto yy698;
                } else {
-                       if (yych <= 'd') {
-                               if (yych != '`') goto yy294;
+                       if (yych <= 'c') {
+                               if (yych <= 'b') goto yy186;
+                               goto yy697;
                        } else {
-                               if (yych <= 'e') goto yy873;
-                               if (yych <= 'z') goto yy294;
-                               if (yych >= 0x7F) goto yy294;
+                               if (yych == 'f') goto yy698;
+                               goto yy186;
                        }
                }
-yy872:
-               YYDEBUG(872, *YYCURSOR);
+yy692:
+               YYDEBUG(692, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy695;
+               if (yych == 'e') goto yy695;
+               goto yy186;
+yy693:
+               YYDEBUG(693, *YYCURSOR);
+               ++YYCURSOR;
+               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+                       goto yy185;
+               }
+               YYDEBUG(694, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1453 "Zend/zend_language_scanner.l"
+#line 1396 "Zend/zend_language_scanner.l"
                {
-       return T_ENDFOR;
+       return T_DO;
 }
-#line 8427 "Zend/zend_language_scanner.c"
-yy873:
-               YYDEBUG(873, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy874;
-               if (yych != 'a') goto yy295;
-yy874:
-               YYDEBUG(874, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy875;
-               if (yych != 'c') goto yy295;
-yy875:
-               YYDEBUG(875, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy876;
-               if (yych != 'h') goto yy295;
-yy876:
-               YYDEBUG(876, *YYCURSOR);
+#line 6851 "Zend/zend_language_scanner.c"
+yy695:
+               YYDEBUG(695, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(877, *YYCURSOR);
+               YYDEBUG(696, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1461 "Zend/zend_language_scanner.l"
+#line 1344 "Zend/zend_language_scanner.l"
                {
-       return T_ENDFOREACH;
+       return T_EXIT;
 }
-#line 8455 "Zend/zend_language_scanner.c"
-yy878:
-               YYDEBUG(878, *YYCURSOR);
+#line 6864 "Zend/zend_language_scanner.c"
+yy697:
+               YYDEBUG(697, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy879;
-               if (yych != 'c') goto yy295;
-yy879:
-               YYDEBUG(879, *YYCURSOR);
+               if (yych == 'L') goto yy704;
+               if (yych == 'l') goto yy704;
+               goto yy186;
+yy698:
+               YYDEBUG(698, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy880;
-               if (yych != 'l') goto yy295;
-yy880:
-               YYDEBUG(880, *YYCURSOR);
+               if (yych == 'A') goto yy699;
+               if (yych != 'a') goto yy186;
+yy699:
+               YYDEBUG(699, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy881;
-               if (yych != 'a') goto yy295;
-yy881:
-               YYDEBUG(881, *YYCURSOR);
+               if (yych == 'U') goto yy700;
+               if (yych != 'u') goto yy186;
+yy700:
+               YYDEBUG(700, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy882;
-               if (yych != 'r') goto yy295;
-yy882:
-               YYDEBUG(882, *YYCURSOR);
+               if (yych == 'L') goto yy701;
+               if (yych != 'l') goto yy186;
+yy701:
+               YYDEBUG(701, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy883;
-               if (yych != 'e') goto yy295;
-yy883:
-               YYDEBUG(883, *YYCURSOR);
+               if (yych == 'T') goto yy702;
+               if (yych != 't') goto yy186;
+yy702:
+               YYDEBUG(702, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(884, *YYCURSOR);
+               YYDEBUG(703, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1469 "Zend/zend_language_scanner.l"
+#line 1444 "Zend/zend_language_scanner.l"
                {
-       return T_ENDDECLARE;
+       return T_DEFAULT;
 }
-#line 8493 "Zend/zend_language_scanner.c"
-yy885:
-               YYDEBUG(885, *YYCURSOR);
+#line 6903 "Zend/zend_language_scanner.c"
+yy704:
+               YYDEBUG(704, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy705;
+               if (yych != 'a') goto yy186;
+yy705:
+               YYDEBUG(705, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy886;
-               if (yych != 't') goto yy295;
-yy886:
-               YYDEBUG(886, *YYCURSOR);
+               if (yych == 'R') goto yy706;
+               if (yych != 'r') goto yy186;
+yy706:
+               YYDEBUG(706, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy887;
-               if (yych != 'y') goto yy295;
-yy887:
-               YYDEBUG(887, *YYCURSOR);
+               if (yych == 'E') goto yy707;
+               if (yych != 'e') goto yy186;
+yy707:
+               YYDEBUG(707, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(888, *YYCURSOR);
+               YYDEBUG(708, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1659 "Zend/zend_language_scanner.l"
+#line 1416 "Zend/zend_language_scanner.l"
                {
-       return T_EMPTY;
+       return T_DECLARE;
 }
-#line 8516 "Zend/zend_language_scanner.c"
-yy889:
-               YYDEBUG(889, *YYCURSOR);
+#line 6931 "Zend/zend_language_scanner.c"
+yy709:
+               YYDEBUG(709, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy890;
-               if (yych != 'e') goto yy295;
-yy890:
-               YYDEBUG(890, *YYCURSOR);
-               ++YYCURSOR;
-               if ((yych = *YYCURSOR) <= '^') {
-                       if (yych <= '@') {
-                               if (yych <= '/') goto yy891;
-                               if (yych <= '9') goto yy294;
-                       } else {
-                               if (yych == 'I') goto yy892;
-                               if (yych <= 'Z') goto yy294;
-                       }
+               if (yych == 'H') goto yy771;
+               if (yych == 'h') goto yy771;
+               goto yy186;
+yy710:
+               YYDEBUG(710, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'S') goto yy765;
+               if (yych == 's') goto yy765;
+               goto yy186;
+yy711:
+               YYDEBUG(711, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'P') goto yy761;
+               if (yych == 'p') goto yy761;
+               goto yy186;
+yy712:
+               YYDEBUG(712, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'D') goto yy727;
+               if (yych == 'd') goto yy727;
+               goto yy186;
+yy713:
+               YYDEBUG(713, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy724;
+               if (yych == 'a') goto yy724;
+               goto yy186;
+yy714:
+               YYDEBUG(714, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'T') {
+                       if (yych == 'I') goto yy715;
+                       if (yych <= 'S') goto yy186;
+                       goto yy716;
                } else {
-                       if (yych <= 'h') {
-                               if (yych != '`') goto yy294;
+                       if (yych <= 'i') {
+                               if (yych <= 'h') goto yy186;
                        } else {
-                               if (yych <= 'i') goto yy892;
-                               if (yych <= 'z') goto yy294;
-                               if (yych >= 0x7F) goto yy294;
+                               if (yych == 't') goto yy716;
+                               goto yy186;
                        }
                }
-yy891:
-               YYDEBUG(891, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1433 "Zend/zend_language_scanner.l"
-               {
-       return T_ELSE;
-}
-#line 8549 "Zend/zend_language_scanner.c"
-yy892:
-               YYDEBUG(892, *YYCURSOR);
+yy715:
+               YYDEBUG(715, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy722;
+               if (yych == 't') goto yy722;
+               goto yy186;
+yy716:
+               YYDEBUG(716, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy717;
+               if (yych != 'e') goto yy186;
+yy717:
+               YYDEBUG(717, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'N') goto yy718;
+               if (yych != 'n') goto yy186;
+yy718:
+               YYDEBUG(718, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'D') goto yy719;
+               if (yych != 'd') goto yy186;
+yy719:
+               YYDEBUG(719, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'F') goto yy893;
-               if (yych != 'f') goto yy295;
-yy893:
-               YYDEBUG(893, *YYCURSOR);
+               if (yych == 'S') goto yy720;
+               if (yych != 's') goto yy186;
+yy720:
+               YYDEBUG(720, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
+                       goto yy185;
                }
-               YYDEBUG(894, *YYCURSOR);
+               YYDEBUG(721, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1425 "Zend/zend_language_scanner.l"
+#line 1476 "Zend/zend_language_scanner.l"
                {
-       return T_ELSEIF;
+       return T_EXTENDS;
 }
-#line 8567 "Zend/zend_language_scanner.c"
-yy895:
-               YYDEBUG(895, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy896;
-               if (yych != 'o') goto yy295;
-yy896:
-               YYDEBUG(896, *YYCURSOR);
+#line 7015 "Zend/zend_language_scanner.c"
+yy722:
+               YYDEBUG(722, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy294;
-               }
-               YYDEBUG(897, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1509 "Zend/zend_language_scanner.l"
-               {
-       return T_ECHO;
-}
-#line 8585 "Zend/zend_language_scanner.c"
-       }
-/* *********************************** */
-yyc_ST_LOOKING_FOR_PROPERTY:
-       {
-               static const unsigned char yybm[] = {
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0, 128, 128,   0,   0, 128,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                       128,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,   0,   0,   0,   0,   0,   0, 
-                         0,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,   0,   0,   0,   0,  64, 
-                         0,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,   0,   0,   0,   0,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-               };
-               YYDEBUG(898, *YYCURSOR);
-               YYFILL(2);
-               yych = *YYCURSOR;
-               if (yych <= ',') {
-                       if (yych <= '\f') {
-                               if (yych <= 0x00) goto yy900;
-                               if (yych <= 0x08) goto yy908;
-                               if (yych <= '\n') goto yy902;
-                               goto yy908;
-                       } else {
-                               if (yych <= '\r') goto yy902;
-                               if (yych == ' ') goto yy902;
-                               goto yy908;
-                       }
-               } else {
-                       if (yych <= '^') {
-                               if (yych <= '-') goto yy904;
-                               if (yych <= '@') goto yy908;
-                               if (yych <= 'Z') goto yy906;
-                               goto yy908;
-                       } else {
-                               if (yych <= '`') {
-                                       if (yych <= '_') goto yy906;
-                                       goto yy908;
-                               } else {
-                                       if (yych <= 'z') goto yy906;
-                                       if (yych <= '~') goto yy908;
-                                       goto yy906;
-                               }
-                       }
+                       goto yy185;
                }
-yy900:
-               YYDEBUG(900, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(901, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2620 "Zend/zend_language_scanner.l"
-               { return 0; }
-#line 8662 "Zend/zend_language_scanner.c"
-yy902:
-               YYDEBUG(902, *YYCURSOR);
-               ++YYCURSOR;
-               yych = *YYCURSOR;
-               goto yy914;
-yy903:
-               YYDEBUG(903, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1538 "Zend/zend_language_scanner.l"
-               {
-       Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
-       Z_STRLEN_P(zendlval) = yyleng;
-       Z_TYPE_P(zendlval) = IS_STRING;
-       HANDLE_NEWLINES(yytext, yyleng);
-       return T_WHITESPACE;
-}
-#line 8679 "Zend/zend_language_scanner.c"
-yy904:
-               YYDEBUG(904, *YYCURSOR);
-               ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '>') goto yy911;
-yy905:
-               YYDEBUG(905, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1561 "Zend/zend_language_scanner.l"
-               {
-       yyless(0);
-       yy_pop_state(TSRMLS_C);
-       goto restart;
-}
-#line 8693 "Zend/zend_language_scanner.c"
-yy906:
-               YYDEBUG(906, *YYCURSOR);
-               ++YYCURSOR;
-               yych = *YYCURSOR;
-               goto yy910;
-yy907:
-               YYDEBUG(907, *YYCURSOR);
+               YYDEBUG(723, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1550 "Zend/zend_language_scanner.l"
+#line 1340 "Zend/zend_language_scanner.l"
                {
-       yy_pop_state(TSRMLS_C);
-       if (!zend_copy_scanner_string(zendlval, yytext, yyleng, IS_UNICODE, SCNG(output_conv) TSRMLS_CC)) {
-               return 0;
-       }
-       if (!zend_check_and_normalize_identifier(zendlval)) {
-               return 0;
-       }
-       return T_STRING;
+       return T_EXIT;
 }
-#line 8713 "Zend/zend_language_scanner.c"
-yy908:
-               YYDEBUG(908, *YYCURSOR);
+#line 7028 "Zend/zend_language_scanner.c"
+yy724:
+               YYDEBUG(724, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy905;
-yy909:
-               YYDEBUG(909, *YYCURSOR);
+               if (yych == 'L') goto yy725;
+               if (yych != 'l') goto yy186;
+yy725:
+               YYDEBUG(725, *YYCURSOR);
                ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy910:
-               YYDEBUG(910, *YYCURSOR);
-               if (yybm[0+yych] & 64) {
-                       goto yy909;
+               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+                       goto yy185;
                }
-               goto yy907;
-yy911:
-               YYDEBUG(911, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(912, *YYCURSOR);
+               YYDEBUG(726, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1546 "Zend/zend_language_scanner.l"
+#line 1574 "Zend/zend_language_scanner.l"
                {
-       return T_OBJECT_OPERATOR;
+       return T_EVAL;
 }
-#line 8738 "Zend/zend_language_scanner.c"
-yy913:
-               YYDEBUG(913, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy914:
-               YYDEBUG(914, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy913;
-               }
-               goto yy903;
-       }
-/* *********************************** */
-yyc_ST_LOOKING_FOR_VARNAME:
-       {
-               static const unsigned char yybm[] = {
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                         0,   0,   0,   0,   0,   0,   0,   0, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128,   0,   0,   0,   0,   0,   0, 
-                         0, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128,   0,   0,   0,   0, 128, 
-                         0, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128,   0,   0,   0,   0, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-                       128, 128, 128, 128, 128, 128, 128, 128, 
-               };
-               YYDEBUG(915, *YYCURSOR);
-               YYFILL(2);
-               yych = *YYCURSOR;
-               if (yych <= '^') {
-                       if (yych <= 0x00) goto yy917;
-                       if (yych <= '@') goto yy921;
-                       if (yych <= 'Z') goto yy919;
-                       goto yy921;
-               } else {
-                       if (yych <= '`') {
-                               if (yych <= '_') goto yy919;
-                               goto yy921;
-                       } else {
-                               if (yych <= 'z') goto yy919;
-                               if (yych <= '~') goto yy921;
-                               goto yy919;
-                       }
+#line 7046 "Zend/zend_language_scanner.c"
+yy727:
+               YYDEBUG(727, *YYCURSOR);
+               yych = *++YYCURSOR;
+               YYDEBUG(-1, yych);
+               switch (yych) {
+               case 'D':
+               case 'd':       goto yy728;
+               case 'F':
+               case 'f':       goto yy729;
+               case 'I':
+               case 'i':       goto yy730;
+               case 'S':
+               case 's':       goto yy731;
+               case 'W':
+               case 'w':       goto yy732;
+               default:        goto yy186;
                }
-yy917:
-               YYDEBUG(917, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(918, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2620 "Zend/zend_language_scanner.l"
-               { return 0; }
-#line 8813 "Zend/zend_language_scanner.c"
-yy919:
-               YYDEBUG(919, *YYCURSOR);
+yy728:
+               YYDEBUG(728, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy754;
+               if (yych == 'e') goto yy754;
+               goto yy186;
+yy729:
+               YYDEBUG(729, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'O') goto yy746;
+               if (yych == 'o') goto yy746;
+               goto yy186;
+yy730:
+               YYDEBUG(730, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'F') goto yy744;
+               if (yych == 'f') goto yy744;
+               goto yy186;
+yy731:
+               YYDEBUG(731, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'W') goto yy738;
+               if (yych == 'w') goto yy738;
+               goto yy186;
+yy732:
+               YYDEBUG(732, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'H') goto yy733;
+               if (yych != 'h') goto yy186;
+yy733:
+               YYDEBUG(733, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'I') goto yy734;
+               if (yych != 'i') goto yy186;
+yy734:
+               YYDEBUG(734, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'L') goto yy735;
+               if (yych != 'l') goto yy186;
+yy735:
+               YYDEBUG(735, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy736;
+               if (yych != 'e') goto yy186;
+yy736:
+               YYDEBUG(736, *YYCURSOR);
                ++YYCURSOR;
-               yych = *YYCURSOR;
-               goto yy924;
-yy920:
-               YYDEBUG(920, *YYCURSOR);
+               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+                       goto yy185;
+               }
+               YYDEBUG(737, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1837 "Zend/zend_language_scanner.l"
+#line 1392 "Zend/zend_language_scanner.l"
                {
-       if (!zend_copy_scanner_string(zendlval, yytext, yyleng, IS_UNICODE, SCNG(output_conv) TSRMLS_CC)) {
-               return 0;
-       }
-       if (!zend_check_and_normalize_identifier(zendlval)) {
-               return 0;
-       }
-       yy_pop_state(TSRMLS_C);
-       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
-       return T_STRING_VARNAME;
+       return T_ENDWHILE;
 }
-#line 8834 "Zend/zend_language_scanner.c"
-yy921:
-               YYDEBUG(921, *YYCURSOR);
+#line 7120 "Zend/zend_language_scanner.c"
+yy738:
+               YYDEBUG(738, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'I') goto yy739;
+               if (yych != 'i') goto yy186;
+yy739:
+               YYDEBUG(739, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy740;
+               if (yych != 't') goto yy186;
+yy740:
+               YYDEBUG(740, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'C') goto yy741;
+               if (yych != 'c') goto yy186;
+yy741:
+               YYDEBUG(741, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'H') goto yy742;
+               if (yych != 'h') goto yy186;
+yy742:
+               YYDEBUG(742, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(922, *YYCURSOR);
+               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+                       goto yy185;
+               }
+               YYDEBUG(743, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1850 "Zend/zend_language_scanner.l"
+#line 1436 "Zend/zend_language_scanner.l"
                {
-       yyless(0);
-       yy_pop_state(TSRMLS_C);
-       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
-       goto restart;
+       return T_ENDSWITCH;
 }
-#line 8847 "Zend/zend_language_scanner.c"
-yy923:
-               YYDEBUG(923, *YYCURSOR);
+#line 7153 "Zend/zend_language_scanner.c"
+yy744:
+               YYDEBUG(744, *YYCURSOR);
                ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy924:
-               YYDEBUG(924, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy923;
-               }
-               goto yy920;
-       }
-/* *********************************** */
-yyc_ST_NOWDOC:
-       {
-               static const unsigned char yybm[] = {
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  32,  16,  16,  64,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                        16,  16,  16,  16,  16,  16,  16,  16, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144,  16,  16,  16,  16,  16,  16, 
-                        16, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144,  16,  16,  16,  16, 144, 
-                        16, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144,  16,  16,  16,  16, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-                       144, 144, 144, 144, 144, 144, 144, 144, 
-               };
-               YYDEBUG(925, *YYCURSOR);
-               YYFILL(2);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 32) {
-                       goto yy931;
+               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+                       goto yy185;
                }
-               if (yych <= 0x00) goto yy927;
-               if (yych == '\r') goto yy933;
-               goto yy929;
-yy927:
-               YYDEBUG(927, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               goto yy930;
-               YYDEBUG(928, *YYCURSOR);
+               YYDEBUG(745, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2620 "Zend/zend_language_scanner.l"
-               { return 0; }
-#line 8915 "Zend/zend_language_scanner.c"
-yy929:
-               YYDEBUG(929, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy930:
-               YYDEBUG(930, *YYCURSOR);
-               if (yybm[0+yych] & 16) {
-                       goto yy929;
-               }
-               if (yych <= '\f') goto yy940;
-               goto yy942;
-yy931:
-               YYDEBUG(931, *YYCURSOR);
+#line 1380 "Zend/zend_language_scanner.l"
+               {
+       return T_ENDIF;
+}
+#line 7166 "Zend/zend_language_scanner.c"
+yy746:
+               YYDEBUG(746, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'R') goto yy747;
+               if (yych != 'r') goto yy186;
+yy747:
+               YYDEBUG(747, *YYCURSOR);
                ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(932, *YYCURSOR);
-               if (yybm[0+yych] & 32) {
-                       goto yy931;
-               }
-               if (yych <= '^') {
-                       if (yych <= '\r') {
-                               if (yych <= '\f') goto yy929;
+               if ((yych = *YYCURSOR) <= '^') {
+                       if (yych <= '@') {
+                               if (yych <= '/') goto yy748;
+                               if (yych <= '9') goto yy185;
                        } else {
-                               if (yych <= '@') goto yy929;
-                               if (yych <= 'Z') goto yy935;
-                               goto yy929;
+                               if (yych == 'E') goto yy749;
+                               if (yych <= 'Z') goto yy185;
                        }
                } else {
-                       if (yych <= '`') {
-                               if (yych <= '_') goto yy935;
-                               goto yy929;
+                       if (yych <= 'd') {
+                               if (yych != '`') goto yy185;
                        } else {
-                               if (yych <= 'z') goto yy935;
-                               if (yych <= '~') goto yy929;
-                               goto yy935;
+                               if (yych <= 'e') goto yy749;
+                               if (yych <= 'z') goto yy185;
+                               if (yych >= 0x7F) goto yy185;
                        }
                }
-yy933:
-               YYDEBUG(933, *YYCURSOR);
+yy748:
+               YYDEBUG(748, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 1404 "Zend/zend_language_scanner.l"
+               {
+       return T_ENDFOR;
+}
+#line 7199 "Zend/zend_language_scanner.c"
+yy749:
+               YYDEBUG(749, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy750;
+               if (yych != 'a') goto yy186;
+yy750:
+               YYDEBUG(750, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'C') goto yy751;
+               if (yych != 'c') goto yy186;
+yy751:
+               YYDEBUG(751, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'H') goto yy752;
+               if (yych != 'h') goto yy186;
+yy752:
+               YYDEBUG(752, *YYCURSOR);
                ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(934, *YYCURSOR);
-               if (yybm[0+yych] & 32) {
-                       goto yy931;
-               }
-               if (yych <= '^') {
-                       if (yych <= '\r') {
-                               if (yych <= '\f') goto yy929;
-                               goto yy933;
-                       } else {
-                               if (yych <= '@') goto yy929;
-                               if (yych >= '[') goto yy929;
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych >= '`') goto yy929;
-                       } else {
-                               if (yych <= 'z') goto yy935;
-                               if (yych <= '~') goto yy929;
-                       }
+               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+                       goto yy185;
                }
-yy935:
-               YYDEBUG(935, *YYCURSOR);
+               YYDEBUG(753, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 1412 "Zend/zend_language_scanner.l"
+               {
+       return T_ENDFOREACH;
+}
+#line 7227 "Zend/zend_language_scanner.c"
+yy754:
+               YYDEBUG(754, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'C') goto yy755;
+               if (yych != 'c') goto yy186;
+yy755:
+               YYDEBUG(755, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'L') goto yy756;
+               if (yych != 'l') goto yy186;
+yy756:
+               YYDEBUG(756, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy757;
+               if (yych != 'a') goto yy186;
+yy757:
+               YYDEBUG(757, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'R') goto yy758;
+               if (yych != 'r') goto yy186;
+yy758:
+               YYDEBUG(758, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy759;
+               if (yych != 'e') goto yy186;
+yy759:
+               YYDEBUG(759, *YYCURSOR);
                ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(936, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy935;
-               }
-               if (yych <= '\f') {
-                       if (yych == '\n') goto yy938;
-                       goto yy929;
-               } else {
-                       if (yych <= '\r') goto yy938;
-                       if (yych != ';') goto yy929;
+               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+                       goto yy185;
                }
-               YYDEBUG(937, *YYCURSOR);
+               YYDEBUG(760, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 1420 "Zend/zend_language_scanner.l"
+               {
+       return T_ENDDECLARE;
+}
+#line 7265 "Zend/zend_language_scanner.c"
+yy761:
+               YYDEBUG(761, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy762;
+               if (yych != 't') goto yy186;
+yy762:
+               YYDEBUG(762, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'Y') goto yy763;
+               if (yych != 'y') goto yy186;
+yy763:
+               YYDEBUG(763, *YYCURSOR);
                ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy929;
+               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+                       goto yy185;
                }
-yy938:
-               YYDEBUG(938, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(939, *YYCURSOR);
+               YYDEBUG(764, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2567 "Zend/zend_language_scanner.l"
+#line 1610 "Zend/zend_language_scanner.l"
                {
-       char *end = yytext + yyleng - 1;
-
-       if (end[-1] == ';') {
-               end--;
-               yyleng--;
-       }
-
-       if (yyleng > CG(heredoc_len) && !memcmp(end - CG(heredoc_len), CG(heredoc), CG(heredoc_len))) {
-               int len = yyleng - CG(heredoc_len) - 2; /* 2 for newline before and after label */
-
-               /* May have matched fooLABEL; make sure there's a newline before it */
-               if (yytext[len] != '\n') {
-                       if (yytext[len] != '\r') {
-                               yyless(yyleng - 1);
-                               yymore();
-                       }
-               } else if (len > 0 && yytext[len - 1] == '\r') {
-                       len--; /* Windows newline */
-               }
-
-               /* Go back before label, to match in ST_END_HEREDOC state. yytext will include
-                * newline before label, for zend_highlight/strip, tokenizer, etc. */
-               yyless(yyleng - CG(heredoc_len) - 1); /* 1 for newline after label */
-
-               CG(increment_lineno) = 1; /* For newline before label */
-               BEGIN(ST_END_HEREDOC);
-
-               if (!zend_copy_scanner_string(zendlval, yytext, len, CG(literal_type), SCNG(output_conv) TSRMLS_CC)) {
-                       return 0;
-               }
-               HANDLE_NEWLINES(yytext, len);
-               return T_ENCAPSED_AND_WHITESPACE;
-       } else {
-               /* Go back to end of label, so the next match works correctly in case of
-                * another label at the beginning of the next line */
-               yyless(yyleng - 1);
-               yymore();
-       }
+       return T_EMPTY;
 }
-#line 9049 "Zend/zend_language_scanner.c"
-yy940:
-               YYDEBUG(940, *YYCURSOR);
+#line 7288 "Zend/zend_language_scanner.c"
+yy765:
+               YYDEBUG(765, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy766;
+               if (yych != 'e') goto yy186;
+yy766:
+               YYDEBUG(766, *YYCURSOR);
                ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(941, *YYCURSOR);
-               if (yych <= 'Z') {
-                       if (yych <= '\f') {
-                               if (yych == '\n') goto yy940;
-                               goto yy929;
+               if ((yych = *YYCURSOR) <= '^') {
+                       if (yych <= '@') {
+                               if (yych <= '/') goto yy767;
+                               if (yych <= '9') goto yy185;
                        } else {
-                               if (yych <= '\r') goto yy942;
-                               if (yych <= '@') goto yy929;
-                               goto yy935;
+                               if (yych == 'I') goto yy768;
+                               if (yych <= 'Z') goto yy185;
                        }
                } else {
-                       if (yych <= '`') {
-                               if (yych == '_') goto yy935;
-                               goto yy929;
+                       if (yych <= 'h') {
+                               if (yych != '`') goto yy185;
                        } else {
-                               if (yych <= 'z') goto yy935;
-                               if (yych <= '~') goto yy929;
-                               goto yy935;
+                               if (yych <= 'i') goto yy768;
+                               if (yych <= 'z') goto yy185;
+                               if (yych >= 0x7F) goto yy185;
                        }
                }
-yy942:
-               YYDEBUG(942, *YYCURSOR);
+yy767:
+               YYDEBUG(767, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 1384 "Zend/zend_language_scanner.l"
+               {
+       return T_ELSE;
+}
+#line 7321 "Zend/zend_language_scanner.c"
+yy768:
+               YYDEBUG(768, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'F') goto yy769;
+               if (yych != 'f') goto yy186;
+yy769:
+               YYDEBUG(769, *YYCURSOR);
                ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(943, *YYCURSOR);
-               if (yych <= 'Z') {
-                       if (yych <= '\f') {
-                               if (yych == '\n') goto yy940;
-                               goto yy929;
-                       } else {
-                               if (yych <= '\r') goto yy942;
-                               if (yych <= '@') goto yy929;
-                               goto yy935;
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych == '_') goto yy935;
-                               goto yy929;
-                       } else {
-                               if (yych <= 'z') goto yy935;
-                               if (yych <= '~') goto yy929;
-                               goto yy935;
-                       }
+               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+                       goto yy185;
+               }
+               YYDEBUG(770, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 1376 "Zend/zend_language_scanner.l"
+               {
+       return T_ELSEIF;
+}
+#line 7339 "Zend/zend_language_scanner.c"
+yy771:
+               YYDEBUG(771, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'O') goto yy772;
+               if (yych != 'o') goto yy186;
+yy772:
+               YYDEBUG(772, *YYCURSOR);
+               ++YYCURSOR;
+               if (yybm[0+(yych = *YYCURSOR)] & 8) {
+                       goto yy185;
                }
+               YYDEBUG(773, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 1460 "Zend/zend_language_scanner.l"
+               {
+       return T_ECHO;
+}
+#line 7357 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
-yyc_ST_ONE_LINE_COMMENT:
+yyc_ST_LOOKING_FOR_PROPERTY:
        {
                static const unsigned char yybm[] = {
-                       128,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,   0,  64,  64,   0,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,   0,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,   0,   0, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
-                        64,  64,  64,  64,  64,  64,  64,  64, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0, 128, 128,   0,   0, 128,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                       128,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
                         64,  64,  64,  64,  64,  64,  64,  64, 
+                        64,  64,   0,   0,   0,   0,   0,   0, 
+                         0,  64,  64,  64,  64,  64,  64,  64, 
                         64,  64,  64,  64,  64,  64,  64,  64, 
                         64,  64,  64,  64,  64,  64,  64,  64, 
+                        64,  64,  64,   0,   0,   0,   0,  64, 
+                         0,  64,  64,  64,  64,  64,  64,  64, 
                         64,  64,  64,  64,  64,  64,  64,  64, 
                         64,  64,  64,  64,  64,  64,  64,  64, 
+                        64,  64,  64,   0,   0,   0,   0,  64, 
                         64,  64,  64,  64,  64,  64,  64,  64, 
                         64,  64,  64,  64,  64,  64,  64,  64, 
                         64,  64,  64,  64,  64,  64,  64,  64, 
@@ -9134,168 +7392,281 @@ yyc_ST_ONE_LINE_COMMENT:
                         64,  64,  64,  64,  64,  64,  64,  64, 
                         64,  64,  64,  64,  64,  64,  64,  64, 
                };
-               YYDEBUG(944, *YYCURSOR);
+               YYDEBUG(774, *YYCURSOR);
                YYFILL(2);
                yych = *YYCURSOR;
-               if (yybm[0+yych] & 64) {
-                       goto yy952;
-               }
-               if (yych <= '\r') {
-                       if (yych <= 0x00) goto yy946;
-                       if (yych <= '\f') goto yy955;
-                       goto yy956;
+               if (yych <= '-') {
+                       if (yych <= '\r') {
+                               if (yych <= 0x08) goto yy782;
+                               if (yych <= '\n') goto yy776;
+                               if (yych <= '\f') goto yy782;
+                       } else {
+                               if (yych == ' ') goto yy776;
+                               if (yych <= ',') goto yy782;
+                               goto yy778;
+                       }
                } else {
-                       if (yych <= '=') goto yy948;
-                       if (yych <= '>') goto yy950;
-                       goto yy951;
+                       if (yych <= '_') {
+                               if (yych <= '@') goto yy782;
+                               if (yych <= 'Z') goto yy780;
+                               if (yych <= '^') goto yy782;
+                               goto yy780;
+                       } else {
+                               if (yych <= '`') goto yy782;
+                               if (yych <= 'z') goto yy780;
+                               if (yych <= '~') goto yy782;
+                               goto yy780;
+                       }
                }
-yy946:
-               YYDEBUG(946, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               goto yy961;
-               YYDEBUG(947, *YYCURSOR);
+yy776:
+               YYDEBUG(776, *YYCURSOR);
+               ++YYCURSOR;
+               yych = *YYCURSOR;
+               goto yy788;
+yy777:
+               YYDEBUG(777, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2620 "Zend/zend_language_scanner.l"
-               { return 0; }
-#line 9162 "Zend/zend_language_scanner.c"
-yy948:
-               YYDEBUG(948, *YYCURSOR);
+#line 1489 "Zend/zend_language_scanner.l"
+               {
+       Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
+       Z_STRLEN_P(zendlval) = yyleng;
+       Z_TYPE_P(zendlval) = IS_STRING;
+       HANDLE_NEWLINES(yytext, yyleng);
+       return T_WHITESPACE;
+}
+#line 7438 "Zend/zend_language_scanner.c"
+yy778:
+               YYDEBUG(778, *YYCURSOR);
                ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '>') goto yy962;
-yy949:
-               YYDEBUG(949, *YYCURSOR);
+               if ((yych = *YYCURSOR) == '>') goto yy785;
+yy779:
+               YYDEBUG(779, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2222 "Zend/zend_language_scanner.l"
+#line 1512 "Zend/zend_language_scanner.l"
                {
-       yymore();
+       yyless(0);
+       yy_pop_state(TSRMLS_C);
+       goto restart;
 }
-#line 9174 "Zend/zend_language_scanner.c"
-yy950:
-               YYDEBUG(950, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy949;
-yy951:
-               YYDEBUG(951, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '>') goto yy962;
-               goto yy949;
-yy952:
-               YYDEBUG(952, *YYCURSOR);
-               yyaccept = 1;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(1);
+#line 7452 "Zend/zend_language_scanner.c"
+yy780:
+               YYDEBUG(780, *YYCURSOR);
+               ++YYCURSOR;
                yych = *YYCURSOR;
-               YYDEBUG(953, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy960;
-               }
-               if (yych <= '\r') {
-                       if (yych == '\n') goto yy959;
-                       if (yych <= '\f') goto yy952;
-                       goto yy959;
-               } else {
-                       if (yych <= '%') {
-                               if (yych <= '$') goto yy952;
-                               goto yy959;
-                       } else {
-                               if (yych <= '=') goto yy952;
-                               if (yych <= '?') goto yy959;
-                               goto yy952;
-                       }
-               }
-yy954:
-               YYDEBUG(954, *YYCURSOR);
+               goto yy784;
+yy781:
+               YYDEBUG(781, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2226 "Zend/zend_language_scanner.l"
+#line 1501 "Zend/zend_language_scanner.l"
                {
-       switch (yytext[yyleng-1]) {
-               case '?': case '%': case '>':
-                       yyless(yyleng-1);
-                       yymore();
-                       break;
-               case '\n':
-                       CG(zend_lineno)++;
-                       /* intentional fall through */
-               default:
-                       Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
-                       Z_STRLEN_P(zendlval) = yyleng;
-                       Z_TYPE_P(zendlval) = IS_STRING;
-                       BEGIN(ST_IN_SCRIPTING);
-                       return T_COMMENT;
+       yy_pop_state(TSRMLS_C);
+       if (!zend_copy_scanner_string(zendlval, yytext, yyleng, IS_UNICODE, SCNG(output_conv) TSRMLS_CC)) {
+               return 0;
        }
+       if (!zend_check_and_normalize_identifier(zendlval)) {
+               return 0;
+       }
+       return T_STRING;
 }
-#line 9229 "Zend/zend_language_scanner.c"
-yy955:
-               YYDEBUG(955, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy954;
-yy956:
-               YYDEBUG(956, *YYCURSOR);
+#line 7472 "Zend/zend_language_scanner.c"
+yy782:
+               YYDEBUG(782, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '\n') goto yy954;
-               YYDEBUG(957, *YYCURSOR);
+               goto yy779;
+yy783:
+               YYDEBUG(783, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(958, *YYCURSOR);
+               YYFILL(1);
+               yych = *YYCURSOR;
+yy784:
+               YYDEBUG(784, *YYCURSOR);
+               if (yybm[0+yych] & 64) {
+                       goto yy783;
+               }
+               goto yy781;
+yy785:
+               YYDEBUG(785, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(786, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2244 "Zend/zend_language_scanner.l"
+#line 1497 "Zend/zend_language_scanner.l"
                {
-       Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
-       Z_STRLEN_P(zendlval) = yyleng;
-       Z_TYPE_P(zendlval) = IS_STRING;
-       BEGIN(ST_IN_SCRIPTING);
-       CG(zend_lineno)++;
-       return T_COMMENT;
+       return T_OBJECT_OPERATOR;
 }
-#line 9251 "Zend/zend_language_scanner.c"
-yy959:
-               YYDEBUG(959, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy954;
-yy960:
-               YYDEBUG(960, *YYCURSOR);
+#line 7497 "Zend/zend_language_scanner.c"
+yy787:
+               YYDEBUG(787, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy961:
-               YYDEBUG(961, *YYCURSOR);
+yy788:
+               YYDEBUG(788, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy960;
+                       goto yy787;
                }
-               if (yych <= '\r') {
-                       if (yych == '\n') goto yy959;
-                       if (yych <= '\f') goto yy952;
-                       goto yy959;
+               goto yy777;
+       }
+/* *********************************** */
+yyc_ST_LOOKING_FOR_VARNAME:
+       {
+               static const unsigned char yybm[] = {
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                       128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128,   0,   0,   0,   0,   0,   0, 
+                         0, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128,   0,   0,   0,   0, 128, 
+                         0, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128,   0,   0,   0,   0, 128, 
+                       128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128, 128, 128, 128, 128, 128, 
+                       128, 128, 128, 128, 128, 128, 128, 128, 
+               };
+               YYDEBUG(789, *YYCURSOR);
+               YYFILL(2);
+               yych = *YYCURSOR;
+               if (yych <= '_') {
+                       if (yych <= '@') goto yy793;
+                       if (yych <= 'Z') goto yy791;
+                       if (yych <= '^') goto yy793;
                } else {
-                       if (yych <= '%') {
-                               if (yych <= '$') goto yy952;
-                               goto yy959;
-                       } else {
-                               if (yych <= '=') goto yy952;
-                               if (yych <= '?') goto yy959;
-                               goto yy952;
-                       }
+                       if (yych <= '`') goto yy793;
+                       if (yych <= 'z') goto yy791;
+                       if (yych <= '~') goto yy793;
                }
-yy962:
-               YYDEBUG(962, *YYCURSOR);
+yy791:
+               YYDEBUG(791, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(963, *YYCURSOR);
+               yych = *YYCURSOR;
+               goto yy796;
+yy792:
+               YYDEBUG(792, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2253 "Zend/zend_language_scanner.l"
+#line 1788 "Zend/zend_language_scanner.l"
                {
-    if (CG(asp_tags) || yytext[yyleng-2] != '%') { /* asp comment? */
-               Z_STRVAL_P(zendlval) = yytext; /* no copying - intentional */
-               Z_STRLEN_P(zendlval) = yyleng-2;
-               Z_TYPE_P(zendlval) = IS_STRING;
-               yyless(yyleng - 2);
-               BEGIN(ST_IN_SCRIPTING);
-               return T_COMMENT;
-       } else {
-               yymore();
+       if (!zend_copy_scanner_string(zendlval, yytext, yyleng, IS_UNICODE, SCNG(output_conv) TSRMLS_CC)) {
+               return 0;
        }
+       if (!zend_check_and_normalize_identifier(zendlval)) {
+               return 0;
+       }
+       yy_pop_state(TSRMLS_C);
+       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
+       return T_STRING_VARNAME;
+}
+#line 7579 "Zend/zend_language_scanner.c"
+yy793:
+               YYDEBUG(793, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(794, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 1801 "Zend/zend_language_scanner.l"
+               {
+       yyless(0);
+       yy_pop_state(TSRMLS_C);
+       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
+       goto restart;
 }
-#line 9298 "Zend/zend_language_scanner.c"
+#line 7592 "Zend/zend_language_scanner.c"
+yy795:
+               YYDEBUG(795, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
+yy796:
+               YYDEBUG(796, *YYCURSOR);
+               if (yybm[0+yych] & 128) {
+                       goto yy795;
+               }
+               goto yy792;
+       }
+/* *********************************** */
+yyc_ST_NOWDOC:
+       YYDEBUG(797, *YYCURSOR);
+       YYFILL(1);
+       yych = *YYCURSOR;
+       YYDEBUG(799, *YYCURSOR);
+       ++YYCURSOR;
+       YYDEBUG(800, *YYCURSOR);
+       yyleng = YYCURSOR - SCNG(yy_text);
+#line 2632 "Zend/zend_language_scanner.l"
+       {
+       int newline = 0;
+
+       if (YYCURSOR > YYLIMIT) {
+               return 0;
+       }
+
+       YYCURSOR--;
+
+       while (YYCURSOR < YYLIMIT) {
+               switch (*YYCURSOR++) {
+                       case '\r':
+                               if (*YYCURSOR == '\n') {
+                                       YYCURSOR++;
+                               }
+                               /* fall through */
+                       case '\n':
+                               /* Check for ending label on the next line */
+                               if (IS_LABEL_START(*YYCURSOR) && CG(heredoc_len) < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, CG(heredoc), CG(heredoc_len))) {
+                                       YYCTYPE *end = YYCURSOR + CG(heredoc_len);
+
+                                       if (*end == ';') {
+                                               end++;
+                                       }
+
+                                       if (*end == '\n' || *end == '\r') {
+                                               /* newline before label will be subtracted from returned text, but
+                                                * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */
+                                               if (YYCURSOR[-2] == '\r' && YYCURSOR[-1] == '\n') {
+                                                       newline = 2; /* Windows newline */
+                                               } else {
+                                                       newline = 1;
+                                               }
+
+                                               CG(increment_lineno) = 1; /* For newline before label */
+                                               BEGIN(ST_END_HEREDOC);
+
+                                               goto nowdoc_scan_done;
+                                       }
+                               }
+                               /* fall through */
+                       default:
+                               continue;
+               }
+       }
+
+nowdoc_scan_done:
+       yyleng = YYCURSOR - SCNG(yy_text);
+
+       if (!zend_copy_scanner_string(zendlval, yytext, yyleng - newline, CG(literal_type), SCNG(output_conv) TSRMLS_CC)) {
+               return 0;
        }
+       HANDLE_NEWLINES(yytext, yyleng - newline);
+       return T_ENCAPSED_AND_WHITESPACE;
+}
+#line 7670 "Zend/zend_language_scanner.c"
 /* *********************************** */
 yyc_ST_VAR_OFFSET:
        {
@@ -9333,77 +7704,69 @@ yyc_ST_VAR_OFFSET:
                         32,  32,  32,  32,  32,  32,  32,  32, 
                         32,  32,  32,  32,  32,  32,  32,  32, 
                };
-               YYDEBUG(964, *YYCURSOR);
+               YYDEBUG(801, *YYCURSOR);
                YYFILL(3);
                yych = *YYCURSOR;
                if (yych <= '/') {
-                       if (yych <= 0x1F) {
-                               if (yych <= '\n') {
-                                       if (yych <= 0x00) goto yy966;
-                                       if (yych <= 0x08) goto yy980;
-                                       goto yy976;
+                       if (yych <= ' ') {
+                               if (yych <= '\f') {
+                                       if (yych <= 0x08) goto yy815;
+                                       if (yych <= '\n') goto yy811;
+                                       goto yy815;
                                } else {
-                                       if (yych == '\r') goto yy976;
-                                       goto yy980;
+                                       if (yych <= '\r') goto yy811;
+                                       if (yych <= 0x1F) goto yy815;
+                                       goto yy811;
                                }
                        } else {
-                               if (yych <= '#') {
-                                       if (yych <= ' ') goto yy976;
-                                       if (yych <= '"') goto yy975;
-                                       goto yy976;
+                               if (yych <= '$') {
+                                       if (yych <= '"') goto yy810;
+                                       if (yych <= '#') goto yy811;
+                                       goto yy806;
                                } else {
-                                       if (yych <= '$') goto yy971;
-                                       if (yych == '\'') goto yy976;
-                                       goto yy975;
+                                       if (yych == '\'') goto yy811;
+                                       goto yy810;
                                }
                        }
                } else {
                        if (yych <= '\\') {
                                if (yych <= '@') {
-                                       if (yych <= '0') goto yy968;
-                                       if (yych <= '9') goto yy970;
-                                       goto yy975;
+                                       if (yych <= '0') goto yy803;
+                                       if (yych <= '9') goto yy805;
+                                       goto yy810;
                                } else {
-                                       if (yych <= 'Z') goto yy978;
-                                       if (yych <= '[') goto yy975;
-                                       goto yy976;
+                                       if (yych <= 'Z') goto yy813;
+                                       if (yych <= '[') goto yy810;
+                                       goto yy811;
                                }
                        } else {
                                if (yych <= '_') {
-                                       if (yych <= ']') goto yy973;
-                                       if (yych <= '^') goto yy975;
-                                       goto yy978;
+                                       if (yych <= ']') goto yy808;
+                                       if (yych <= '^') goto yy810;
+                                       goto yy813;
                                } else {
-                                       if (yych <= '`') goto yy975;
-                                       if (yych <= 'z') goto yy978;
-                                       if (yych <= '~') goto yy975;
-                                       goto yy978;
+                                       if (yych <= '`') goto yy810;
+                                       if (yych <= 'z') goto yy813;
+                                       if (yych <= '~') goto yy810;
+                                       goto yy813;
                                }
                        }
                }
-yy966:
-               YYDEBUG(966, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(967, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2620 "Zend/zend_language_scanner.l"
-               { return 0; }
-#line 9392 "Zend/zend_language_scanner.c"
-yy968:
-               YYDEBUG(968, *YYCURSOR);
+yy803:
+               YYDEBUG(803, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= 'W') {
-                       if (yych <= '/') goto yy969;
-                       if (yych <= '9') goto yy991;
+                       if (yych <= '/') goto yy804;
+                       if (yych <= '9') goto yy826;
                } else {
-                       if (yych <= 'X') goto yy989;
-                       if (yych == 'x') goto yy989;
+                       if (yych <= 'X') goto yy824;
+                       if (yych == 'x') goto yy824;
                }
-yy969:
-               YYDEBUG(969, *YYCURSOR);
+yy804:
+               YYDEBUG(804, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1900 "Zend/zend_language_scanner.l"
+#line 1851 "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)) {
                Z_LVAL_P(zendlval) = strtol(yytext, NULL, 10);
@@ -9415,124 +7778,127 @@ yy969:
        }
        return T_NUM_STRING;
 }
-#line 9419 "Zend/zend_language_scanner.c"
-yy970:
-               YYDEBUG(970, *YYCURSOR);
+#line 7782 "Zend/zend_language_scanner.c"
+yy805:
+               YYDEBUG(805, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy988;
-yy971:
-               YYDEBUG(971, *YYCURSOR);
+               goto yy823;
+yy806:
+               YYDEBUG(806, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '_') {
-                       if (yych <= '@') goto yy972;
-                       if (yych <= 'Z') goto yy984;
-                       if (yych >= '_') goto yy984;
+                       if (yych <= '@') goto yy807;
+                       if (yych <= 'Z') goto yy819;
+                       if (yych >= '_') goto yy819;
                } else {
-                       if (yych <= '`') goto yy972;
-                       if (yych <= 'z') goto yy984;
-                       if (yych >= 0x7F) goto yy984;
+                       if (yych <= '`') goto yy807;
+                       if (yych <= 'z') goto yy819;
+                       if (yych >= 0x7F) goto yy819;
                }
-yy972:
-               YYDEBUG(972, *YYCURSOR);
+yy807:
+               YYDEBUG(807, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2186 "Zend/zend_language_scanner.l"
+#line 2164 "Zend/zend_language_scanner.l"
                {
        /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
        return yytext[0];
 }
-#line 9444 "Zend/zend_language_scanner.c"
-yy973:
-               YYDEBUG(973, *YYCURSOR);
+#line 7807 "Zend/zend_language_scanner.c"
+yy808:
+               YYDEBUG(808, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(974, *YYCURSOR);
+               YYDEBUG(809, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2181 "Zend/zend_language_scanner.l"
+#line 2159 "Zend/zend_language_scanner.l"
                {
        yy_pop_state(TSRMLS_C);
        return ']';
 }
-#line 9455 "Zend/zend_language_scanner.c"
-yy975:
-               YYDEBUG(975, *YYCURSOR);
+#line 7818 "Zend/zend_language_scanner.c"
+yy810:
+               YYDEBUG(810, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy972;
-yy976:
-               YYDEBUG(976, *YYCURSOR);
+               goto yy807;
+yy811:
+               YYDEBUG(811, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(977, *YYCURSOR);
+               YYDEBUG(812, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2191 "Zend/zend_language_scanner.l"
+#line 2169 "Zend/zend_language_scanner.l"
                {
        /* Invalid rule to return a more explicit parse error with proper line number */
        yyless(0);
        yy_pop_state(TSRMLS_C);
-       ZVAL_EMPTY_TEXT(zendlval); /* Empty since it won't be used */
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 9473 "Zend/zend_language_scanner.c"
-yy978:
-               YYDEBUG(978, *YYCURSOR);
+#line 7835 "Zend/zend_language_scanner.c"
+yy813:
+               YYDEBUG(813, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
-               goto yy983;
-yy979:
-               YYDEBUG(979, *YYCURSOR);
+               goto yy818;
+yy814:
+               YYDEBUG(814, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2209 "Zend/zend_language_scanner.l"
+#line 2186 "Zend/zend_language_scanner.l"
                {
        if (!zend_copy_scanner_string(zendlval, yytext, yyleng, CG(literal_type), SCNG(output_conv) TSRMLS_CC)) {
                return 0;
        }
        return T_STRING;
 }
-#line 9489 "Zend/zend_language_scanner.c"
-yy980:
-               YYDEBUG(980, *YYCURSOR);
+#line 7851 "Zend/zend_language_scanner.c"
+yy815:
+               YYDEBUG(815, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(981, *YYCURSOR);
+               YYDEBUG(816, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2622 "Zend/zend_language_scanner.l"
+#line 2689 "Zend/zend_language_scanner.l"
                {
+       if (YYCURSOR > YYLIMIT) {
+               return 0;
+       }
+
        zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
        goto restart;
 }
-#line 9500 "Zend/zend_language_scanner.c"
-yy982:
-               YYDEBUG(982, *YYCURSOR);
+#line 7866 "Zend/zend_language_scanner.c"
+yy817:
+               YYDEBUG(817, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy983:
-               YYDEBUG(983, *YYCURSOR);
+yy818:
+               YYDEBUG(818, *YYCURSOR);
                if (yybm[0+yych] & 32) {
-                       goto yy982;
+                       goto yy817;
                }
-               goto yy979;
-yy984:
-               YYDEBUG(984, *YYCURSOR);
+               goto yy814;
+yy819:
+               YYDEBUG(819, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(985, *YYCURSOR);
+               YYDEBUG(820, *YYCURSOR);
                if (yych <= '^') {
                        if (yych <= '9') {
-                               if (yych >= '0') goto yy984;
+                               if (yych >= '0') goto yy819;
                        } else {
-                               if (yych <= '@') goto yy986;
-                               if (yych <= 'Z') goto yy984;
+                               if (yych <= '@') goto yy821;
+                               if (yych <= 'Z') goto yy819;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych <= '_') goto yy984;
+                               if (yych <= '_') goto yy819;
                        } else {
-                               if (yych <= 'z') goto yy984;
-                               if (yych >= 0x7F) goto yy984;
+                               if (yych <= 'z') goto yy819;
+                               if (yych >= 0x7F) goto yy819;
                        }
                }
-yy986:
-               YYDEBUG(986, *YYCURSOR);
+yy821:
+               YYDEBUG(821, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 2171 "Zend/zend_language_scanner.l"
+#line 2149 "Zend/zend_language_scanner.l"
                {
        if (!zend_copy_scanner_string(zendlval, (yytext+1), (yyleng-1), IS_UNICODE, SCNG(output_conv) TSRMLS_CC)) {
                return 0;
@@ -9542,58 +7908,58 @@ yy986:
        }
        return T_VARIABLE;
 }
-#line 9546 "Zend/zend_language_scanner.c"
-yy987:
-               YYDEBUG(987, *YYCURSOR);
+#line 7912 "Zend/zend_language_scanner.c"
+yy822:
+               YYDEBUG(822, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy988:
-               YYDEBUG(988, *YYCURSOR);
+yy823:
+               YYDEBUG(823, *YYCURSOR);
                if (yybm[0+yych] & 64) {
-                       goto yy987;
+                       goto yy822;
                }
-               goto yy969;
-yy989:
-               YYDEBUG(989, *YYCURSOR);
+               goto yy804;
+yy824:
+               YYDEBUG(824, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yybm[0+yych] & 128) {
-                       goto yy994;
+                       goto yy829;
                }
-               YYDEBUG(990, *YYCURSOR);
+               YYDEBUG(825, *YYCURSOR);
                YYCURSOR = YYMARKER;
-               goto yy969;
-yy991:
-               YYDEBUG(991, *YYCURSOR);
+               goto yy804;
+yy826:
+               YYDEBUG(826, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(992, *YYCURSOR);
-               if (yych <= '/') goto yy993;
-               if (yych <= '9') goto yy991;
-yy993:
-               YYDEBUG(993, *YYCURSOR);
+               YYDEBUG(827, *YYCURSOR);
+               if (yych <= '/') goto yy828;
+               if (yych <= '9') goto yy826;
+yy828:
+               YYDEBUG(828, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1912 "Zend/zend_language_scanner.l"
+#line 1863 "Zend/zend_language_scanner.l"
                { /* Offset must be treated as a string */
        if (!zend_copy_scanner_string(zendlval, yytext, yyleng, CG(literal_type), SCNG(output_conv) TSRMLS_CC)) {
                return 0;
        }
        return T_NUM_STRING;
 }
-#line 9585 "Zend/zend_language_scanner.c"
-yy994:
-               YYDEBUG(994, *YYCURSOR);
+#line 7951 "Zend/zend_language_scanner.c"
+yy829:
+               YYDEBUG(829, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(995, *YYCURSOR);
+               YYDEBUG(830, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy994;
+                       goto yy829;
                }
-               goto yy993;
+               goto yy828;
        }
 }
-#line 2627 "Zend/zend_language_scanner.l"
+#line 2698 "Zend/zend_language_scanner.l"
 
 }
index 0abb9a83d4ca533d0e6bad13600578d8887f9805..e3e345bf0b9b2eac10833d412d2454b2565db501 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Thu Mar 26 16:22:31 2009 */
+/* Generated by re2c 0.13.5 on Mon May 04 20:02:45 2009 */
 #line 3 "Zend/zend_language_scanner_defs.h"
 
 enum YYCONDTYPE {
@@ -10,9 +10,6 @@ enum YYCONDTYPE {
        yycST_LOOKING_FOR_VARNAME,
        yycST_VAR_OFFSET,
        yycINITIAL,
-       yycST_ONE_LINE_COMMENT,
-       yycST_COMMENT,
-       yycST_DOC_COMMENT,
        yycST_END_HEREDOC,
        yycST_NOWDOC,
 };