]> granicus.if.org Git - php/commitdiff
Merge branch '5.3' into 5.4
authorGustavo André dos Santos Lopes <cataphract@php.net>
Wed, 28 Mar 2012 07:44:05 +0000 (08:44 +0100)
committerGustavo André dos Santos Lopes <cataphract@php.net>
Wed, 28 Mar 2012 07:57:19 +0000 (08:57 +0100)
Zend/zend_language_scanner.c and Zend/zend_language_scanner_defs.h had to be changed manually.

1  2 
Zend/zend_language_scanner.c
Zend/zend_language_scanner_defs.h

index 6fd3e6da7e3ed8ad6118a91f6a1eae1e29704cd2,1d0ada7a64d5f6e8319c55a7da1d334c04a83349..3f6189efeea9cd303b472879f56fee9eaa50863a
- /* Generated by re2c 0.13.5 on Wed Mar 28 01:54:21 2012 */\r
- #line 1 "Zend/zend_language_scanner.l"\r
- /*\r
-    +----------------------------------------------------------------------+\r
-    | Zend Engine                                                          |\r
-    +----------------------------------------------------------------------+\r
-    | Copyright (c) 1998-2012 Zend Technologies Ltd. (http://www.zend.com) |\r
-    +----------------------------------------------------------------------+\r
-    | This source file is subject to version 2.00 of the Zend license,     |\r
-    | that is bundled with this package in the file LICENSE, and is        |\r
-    | available through the world-wide-web at the following url:           |\r
-    | http://www.zend.com/license/2_00.txt.                                |\r
-    | If you did not receive a copy of the Zend license and are unable to  |\r
-    | obtain it through the world-wide-web, please send a note to          |\r
-    | license@zend.com so we can mail you a copy immediately.              |\r
-    +----------------------------------------------------------------------+\r
-    | Authors: Marcus Boerger <helly@php.net>                              |\r
-    |          Nuno Lopes <nlopess@php.net>                                |\r
-    |          Scott MacVicar <scottmac@php.net>                           |\r
-    | Flex version authors:                                                |\r
-    |          Andi Gutmans <andi@zend.com>                                |\r
-    |          Zeev Suraski <zeev@zend.com>                                |\r
-    +----------------------------------------------------------------------+\r
- */\r
\r
- /* $Id$ */\r
\r
- #if 0\r
- # define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c)\r
- #else\r
- # define YYDEBUG(s, c)\r
- #endif\r
\r
- #include "zend_language_scanner_defs.h"\r
\r
- #include <errno.h>\r
- #include "zend.h"\r
- #include "zend_alloc.h"\r
- #include <zend_language_parser.h>\r
- #include "zend_compile.h"\r
- #include "zend_language_scanner.h"\r
- #include "zend_highlight.h"\r
- #include "zend_constants.h"\r
- #include "zend_variables.h"\r
- #include "zend_operators.h"\r
- #include "zend_API.h"\r
- #include "zend_strtod.h"\r
- #include "zend_exceptions.h"\r
- #include "tsrm_virtual_cwd.h"\r
- #include "tsrm_config_common.h"\r
\r
- #define YYCTYPE   unsigned char\r
- #define YYFILL(n) { if ((YYCURSOR + n) >= (YYLIMIT + ZEND_MMAP_AHEAD)) { return 0; } }\r
- #define YYCURSOR  SCNG(yy_cursor)\r
- #define YYLIMIT   SCNG(yy_limit)\r
- #define YYMARKER  SCNG(yy_marker)\r
\r
- #define YYGETCONDITION()  SCNG(yy_state)\r
- #define YYSETCONDITION(s) SCNG(yy_state) = s\r
\r
- #define STATE(name)  yyc##name\r
\r
- /* emulate flex constructs */\r
- #define BEGIN(state) YYSETCONDITION(STATE(state))\r
- #define YYSTATE      YYGETCONDITION()\r
- #define yytext       ((char*)SCNG(yy_text))\r
- #define yyleng       SCNG(yy_leng)\r
- #define yyless(x)    do { YYCURSOR = (unsigned char*)yytext + x; \\r
-                           yyleng   = (unsigned int)x; } while(0)\r
- #define yymore()     goto yymore_restart\r
\r
- /* perform sanity check. If this message is triggered you should\r
-    increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */\r
- #define YYMAXFILL 16\r
- #if ZEND_MMAP_AHEAD < YYMAXFILL\r
- # error ZEND_MMAP_AHEAD should be greater than or equal to YYMAXFILL\r
- #endif\r
\r
- #ifdef HAVE_STDARG_H\r
- # include <stdarg.h>\r
- #endif\r
\r
- #ifdef HAVE_UNISTD_H\r
- # include <unistd.h>\r
- #endif\r
\r
- /* Globals Macros */\r
- #define SCNG  LANG_SCNG\r
- #ifdef ZTS\r
- ZEND_API ts_rsrc_id language_scanner_globals_id;\r
- #else\r
- ZEND_API zend_php_scanner_globals language_scanner_globals;\r
- #endif\r
\r
- #define HANDLE_NEWLINES(s, l)                                                                                                 \\r
- do {                                                                                                                                                  \\r
-       char *p = (s), *boundary = p+(l);                                                                                       \\r
-                                                                                                                                                               \\r
-       while (p<boundary) {                                                                                                            \\r
-               if (*p == '\n' || (*p == '\r' && (*(p+1) != '\n'))) {                                   \\r
-                       CG(zend_lineno)++;                                                                                                      \\r
-               }                                                                                                                                               \\r
-               p++;                                                                                                                                    \\r
-       }                                                                                                                                                       \\r
- } while (0)\r
\r
- #define HANDLE_NEWLINE(c) \\r
- { \\r
-       if (c == '\n' || c == '\r') { \\r
-               CG(zend_lineno)++; \\r
-       } \\r
- }\r
\r
- /* To save initial string length after scanning to first variable, CG(doc_comment_len) can be reused */\r
- #define SET_DOUBLE_QUOTES_SCANNED_LENGTH(len) CG(doc_comment_len) = (len)\r
- #define GET_DOUBLE_QUOTES_SCANNED_LENGTH()    CG(doc_comment_len)\r
\r
- #define IS_LABEL_START(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || (c) == '_' || (c) >= 0x7F)\r
\r
- #define ZEND_IS_OCT(c)  ((c)>='0' && (c)<='7')\r
- #define ZEND_IS_HEX(c)  (((c)>='0' && (c)<='9') || ((c)>='a' && (c)<='f') || ((c)>='A' && (c)<='F'))\r
\r
- BEGIN_EXTERN_C()\r
\r
- static void _yy_push_state(int new_state TSRMLS_DC)\r
- {\r
-       zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION(), sizeof(int));\r
-       YYSETCONDITION(new_state);\r
- }\r
\r
- #define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm)\r
\r
- static void yy_pop_state(TSRMLS_D)\r
- {\r
-       int *stack_state;\r
-       zend_stack_top(&SCNG(state_stack), (void **) &stack_state);\r
-       YYSETCONDITION(*stack_state);\r
-       zend_stack_del_top(&SCNG(state_stack));\r
- }\r
\r
- static void yy_scan_buffer(char *str, unsigned int len TSRMLS_DC)\r
- {\r
-       YYCURSOR       = (YYCTYPE*)str;\r
-       YYLIMIT        = YYCURSOR + len;\r
-       if (!SCNG(yy_start)) {\r
-               SCNG(yy_start) = YYCURSOR;\r
-       }\r
- }\r
\r
- void startup_scanner(TSRMLS_D)\r
- {\r
-       CG(heredoc) = NULL;\r
-       CG(heredoc_len) = 0;\r
-       CG(doc_comment) = NULL;\r
-       CG(doc_comment_len) = 0;\r
-       zend_stack_init(&SCNG(state_stack));\r
- }\r
\r
- void shutdown_scanner(TSRMLS_D)\r
- {\r
-       if (CG(heredoc)) {\r
-               efree(CG(heredoc));\r
-               CG(heredoc_len)=0;\r
-       }\r
-       zend_stack_destroy(&SCNG(state_stack));\r
-       RESET_DOC_COMMENT();\r
- }\r
\r
- ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state TSRMLS_DC)\r
- {\r
-       lex_state->yy_leng   = SCNG(yy_leng);\r
-       lex_state->yy_start  = SCNG(yy_start);\r
-       lex_state->yy_text   = SCNG(yy_text);\r
-       lex_state->yy_cursor = SCNG(yy_cursor);\r
-       lex_state->yy_marker = SCNG(yy_marker);\r
-       lex_state->yy_limit  = SCNG(yy_limit);\r
\r
-       lex_state->state_stack = SCNG(state_stack);\r
-       zend_stack_init(&SCNG(state_stack));\r
\r
-       lex_state->in = SCNG(yy_in);\r
-       lex_state->yy_state = YYSTATE;\r
-       lex_state->filename = zend_get_compiled_filename(TSRMLS_C);\r
-       lex_state->lineno = CG(zend_lineno);\r
\r
- #ifdef ZEND_MULTIBYTE\r
-       lex_state->script_org = SCNG(script_org);\r
-       lex_state->script_org_size = SCNG(script_org_size);\r
-       lex_state->script_filtered = SCNG(script_filtered);\r
-       lex_state->script_filtered_size = SCNG(script_filtered_size);\r
-       lex_state->input_filter = SCNG(input_filter);\r
-       lex_state->output_filter = SCNG(output_filter);\r
-       lex_state->script_encoding = SCNG(script_encoding);\r
-       lex_state->internal_encoding = SCNG(internal_encoding);\r
- #endif /* ZEND_MULTIBYTE */\r
- }\r
\r
- ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state TSRMLS_DC)\r
- {\r
-       SCNG(yy_leng)   = lex_state->yy_leng;\r
-       SCNG(yy_start)  = lex_state->yy_start;\r
-       SCNG(yy_text)   = lex_state->yy_text;\r
-       SCNG(yy_cursor) = lex_state->yy_cursor;\r
-       SCNG(yy_marker) = lex_state->yy_marker;\r
-       SCNG(yy_limit)  = lex_state->yy_limit;\r
\r
-       zend_stack_destroy(&SCNG(state_stack));\r
-       SCNG(state_stack) = lex_state->state_stack;\r
\r
-       SCNG(yy_in) = lex_state->in;\r
-       YYSETCONDITION(lex_state->yy_state);\r
-       CG(zend_lineno) = lex_state->lineno;\r
-       zend_restore_compiled_filename(lex_state->filename TSRMLS_CC);\r
- #ifdef ZEND_MULTIBYTE\r
-       if (SCNG(script_org)) {\r
-               efree(SCNG(script_org));\r
-               SCNG(script_org) = NULL;\r
-       }\r
-       if (SCNG(script_filtered)) {\r
-               efree(SCNG(script_filtered));\r
-               SCNG(script_filtered) = NULL;\r
-       }\r
-       SCNG(script_org) = lex_state->script_org;\r
-       SCNG(script_org_size) = lex_state->script_org_size;\r
-       SCNG(script_filtered) = lex_state->script_filtered;\r
-       SCNG(script_filtered_size) = lex_state->script_filtered_size;\r
-       SCNG(input_filter) = lex_state->input_filter;\r
-       SCNG(output_filter) = lex_state->output_filter;\r
-       SCNG(script_encoding) = lex_state->script_encoding;\r
-       SCNG(internal_encoding) = lex_state->internal_encoding;\r
- #endif /* ZEND_MULTIBYTE */\r
\r
-       if (CG(heredoc)) {\r
-               efree(CG(heredoc));\r
-               CG(heredoc) = NULL;\r
-               CG(heredoc_len) = 0;\r
-       }\r
- }\r
\r
- ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC)\r
- {\r
-       zend_llist_del_element(&CG(open_files), file_handle, (int (*)(void *, void *)) zend_compare_file_handles);\r
-       /* zend_file_handle_dtor() operates on the copy, so we have to NULLify the original here */\r
-       file_handle->opened_path = NULL;\r
-       if (file_handle->free_filename) {\r
-               file_handle->filename = NULL;\r
-       }\r
- }\r
\r
\r
- ZEND_API int open_file_for_scanning(zend_file_handle *file_handle TSRMLS_DC)\r
- {\r
-       char *file_path = NULL, *buf;\r
-       size_t size, offset = 0;\r
-       \r
-       /* The shebang line was read, get the current position to obtain the buffer start */\r
-       if (CG(start_lineno) == 2 && file_handle->type == ZEND_HANDLE_FP && file_handle->handle.fp) {\r
-               if ((offset = ftell(file_handle->handle.fp)) == -1) {\r
-                       offset = 0;\r
-               }\r
-       }\r
\r
-       if (zend_stream_fixup(file_handle, &buf, &size TSRMLS_CC) == FAILURE) {\r
-               return FAILURE;\r
-       }\r
\r
-       zend_llist_add_element(&CG(open_files), file_handle);\r
-       if (file_handle->handle.stream.handle >= (void*)file_handle && file_handle->handle.stream.handle <= (void*)(file_handle+1)) {\r
-               zend_file_handle *fh = (zend_file_handle*)zend_llist_get_last(&CG(open_files));\r
-               size_t diff = (char*)file_handle->handle.stream.handle - (char*)file_handle;\r
-               fh->handle.stream.handle = (void*)(((char*)fh) + diff);\r
-               file_handle->handle.stream.handle = fh->handle.stream.handle;\r
-       }\r
\r
-       /* Reset the scanner for scanning the new file */\r
-       SCNG(yy_in) = file_handle;\r
-       SCNG(yy_start) = NULL;\r
\r
-       if (size != -1) {\r
- #ifdef ZEND_MULTIBYTE\r
-               if (zend_multibyte_read_script((unsigned char *)buf, size TSRMLS_CC) != 0) {\r
-                       return FAILURE;\r
-               }\r
\r
-               SCNG(yy_in) = NULL;\r
\r
-               zend_multibyte_set_filter(NULL TSRMLS_CC);\r
\r
-               if (!SCNG(input_filter)) {\r
-                       SCNG(script_filtered) = (unsigned char*)emalloc(SCNG(script_org_size)+1);\r
-                       memcpy(SCNG(script_filtered), SCNG(script_org), SCNG(script_org_size)+1);\r
-                       SCNG(script_filtered_size) = SCNG(script_org_size);\r
-               } else {\r
-                       SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size) TSRMLS_CC);\r
-                       if (SCNG(script_filtered) == NULL) {\r
-                               zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "\r
-                                               "encoding \"%s\" to a compatible encoding", LANG_SCNG(script_encoding)->name);\r
-                       }\r
-               }\r
-               SCNG(yy_start) = SCNG(script_filtered) - offset;\r
-               yy_scan_buffer((char *)SCNG(script_filtered), SCNG(script_filtered_size) TSRMLS_CC);\r
- #else /* !ZEND_MULTIBYTE */\r
-               SCNG(yy_start) = buf - offset;\r
-               yy_scan_buffer(buf, size TSRMLS_CC);\r
- #endif /* ZEND_MULTIBYTE */\r
-       } else {\r
-               zend_error_noreturn(E_COMPILE_ERROR, "zend_stream_mmap() failed");\r
-       }\r
\r
-       BEGIN(INITIAL);\r
\r
-       if (file_handle->opened_path) {\r
-               file_path = file_handle->opened_path;\r
-       } else {\r
-               file_path = file_handle->filename;\r
-       }\r
\r
-       zend_set_compiled_filename(file_path TSRMLS_CC);\r
\r
-       if (CG(start_lineno)) {\r
-               CG(zend_lineno) = CG(start_lineno);\r
-               CG(start_lineno) = 0;\r
-       } else {\r
-               CG(zend_lineno) = 1;\r
-       }\r
\r
-       CG(increment_lineno) = 0;\r
-       return SUCCESS;\r
- }\r
- END_EXTERN_C()\r
\r
\r
- ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSRMLS_DC)\r
- {\r
-       zend_lex_state original_lex_state;\r
-       zend_op_array *op_array = (zend_op_array *) emalloc(sizeof(zend_op_array));\r
-       zend_op_array *original_active_op_array = CG(active_op_array);\r
-       zend_op_array *retval=NULL;\r
-       int compiler_result;\r
-       zend_bool compilation_successful=0;\r
-       znode retval_znode;\r
-       zend_bool original_in_compilation = CG(in_compilation);\r
\r
-       retval_znode.op_type = IS_CONST;\r
-       retval_znode.u.constant.type = IS_LONG;\r
-       retval_znode.u.constant.value.lval = 1;\r
-       Z_UNSET_ISREF(retval_znode.u.constant);\r
-       Z_SET_REFCOUNT(retval_znode.u.constant, 1);\r
\r
-       zend_save_lexical_state(&original_lex_state TSRMLS_CC);\r
\r
-       retval = op_array; /* success oriented */\r
\r
-       if (open_file_for_scanning(file_handle TSRMLS_CC)==FAILURE) {\r
-               if (type==ZEND_REQUIRE) {\r
-                       zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, file_handle->filename TSRMLS_CC);\r
-                       zend_bailout();\r
-               } else {\r
-                       zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, file_handle->filename TSRMLS_CC);\r
-               }\r
-               compilation_successful=0;\r
-       } else {\r
-               init_op_array(op_array, ZEND_USER_FUNCTION, INITIAL_OP_ARRAY_SIZE TSRMLS_CC);\r
-               CG(in_compilation) = 1;\r
-               CG(active_op_array) = op_array;\r
-               compiler_result = zendparse(TSRMLS_C);\r
-               zend_do_return(&retval_znode, 0 TSRMLS_CC);\r
-               CG(in_compilation) = original_in_compilation;\r
-               if (compiler_result==1) { /* parser error */\r
-                       zend_bailout();\r
-               }\r
-               compilation_successful=1;\r
-       }\r
\r
-       if (retval) {\r
-               CG(active_op_array) = original_active_op_array;\r
-               if (compilation_successful) {\r
-                       pass_two(op_array TSRMLS_CC);\r
-                       zend_release_labels(TSRMLS_C);\r
-               } else {\r
-                       efree(op_array);\r
-                       retval = NULL;\r
-               }\r
-       }\r
-       zend_restore_lexical_state(&original_lex_state TSRMLS_CC);\r
-       return retval;\r
- }\r
\r
\r
- zend_op_array *compile_filename(int type, zval *filename TSRMLS_DC)\r
- {\r
-       zend_file_handle file_handle;\r
-       zval tmp;\r
-       zend_op_array *retval;\r
-       char *opened_path = NULL;\r
\r
-       if (filename->type != IS_STRING) {\r
-               tmp = *filename;\r
-               zval_copy_ctor(&tmp);\r
-               convert_to_string(&tmp);\r
-               filename = &tmp;\r
-       }\r
-       file_handle.filename = filename->value.str.val;\r
-       file_handle.free_filename = 0;\r
-       file_handle.type = ZEND_HANDLE_FILENAME;\r
-       file_handle.opened_path = NULL;\r
-       file_handle.handle.fp = NULL;\r
\r
-       retval = zend_compile_file(&file_handle, type TSRMLS_CC);\r
-       if (retval && file_handle.handle.stream.handle) {\r
-               int dummy = 1;\r
\r
-               if (!file_handle.opened_path) {\r
-                       file_handle.opened_path = opened_path = estrndup(filename->value.str.val, filename->value.str.len);\r
-               }\r
\r
-               zend_hash_add(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)+1, (void *)&dummy, sizeof(int), NULL);\r
\r
-               if (opened_path) {\r
-                       efree(opened_path);\r
-               }\r
-       }\r
-       zend_destroy_file_handle(&file_handle TSRMLS_CC);\r
\r
-       if (filename==&tmp) {\r
-               zval_dtor(&tmp);\r
-       }\r
-       return retval;\r
- }\r
\r
- ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_DC)\r
- {\r
-       /* enforce two trailing NULLs for flex... */\r
-       str->value.str.val = safe_erealloc(str->value.str.val, 1, str->value.str.len, ZEND_MMAP_AHEAD);\r
\r
-       memset(str->value.str.val + str->value.str.len, 0, ZEND_MMAP_AHEAD);\r
\r
-       SCNG(yy_in)=NULL;\r
-       SCNG(yy_start) = NULL;\r
\r
- #ifdef ZEND_MULTIBYTE\r
-       SCNG(script_org) = (unsigned char *)estrdup(str->value.str.val);\r
-       SCNG(script_org_size) = str->value.str.len;\r
\r
-       zend_multibyte_set_filter(CG(internal_encoding) TSRMLS_CC);\r
\r
-       if (!SCNG(input_filter)) {\r
-               SCNG(script_filtered) = (unsigned char*)emalloc(SCNG(script_org_size)+1);\r
-               memcpy(SCNG(script_filtered), SCNG(script_org), SCNG(script_org_size)+1);\r
-               SCNG(script_filtered_size) = SCNG(script_org_size);\r
-       } else {\r
-               SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size) TSRMLS_CC);\r
-       }\r
\r
-       yy_scan_buffer((char *)SCNG(script_filtered), SCNG(script_filtered_size) TSRMLS_CC);    \r
- #else /* !ZEND_MULTIBYTE */\r
-       yy_scan_buffer(str->value.str.val, str->value.str.len TSRMLS_CC);\r
- #endif /* ZEND_MULTIBYTE */\r
\r
-       zend_set_compiled_filename(filename TSRMLS_CC);\r
-       CG(zend_lineno) = 1;\r
-       CG(increment_lineno) = 0;\r
-       return SUCCESS;\r
- }\r
\r
\r
- ZEND_API size_t zend_get_scanned_file_offset(TSRMLS_D)\r
- {\r
-       size_t offset = SCNG(yy_cursor) - SCNG(yy_start);\r
- #ifdef ZEND_MULTIBYTE\r
-       if (SCNG(input_filter)) {\r
-               size_t original_offset = offset, length = 0; do {\r
-                       unsigned char *p = NULL;\r
-                       SCNG(input_filter)(&p, &length, SCNG(script_org), offset TSRMLS_CC);\r
-                       if (!p) {\r
-                               break;\r
-                       }\r
-                       efree(p);\r
-                       if (length > original_offset) {\r
-                               offset--;\r
-                       } else if (length < original_offset) {\r
-                               offset++;\r
-                       }\r
-               } while (original_offset != length);\r
-       }\r
- #endif\r
-       return offset;\r
- }\r
\r
\r
- zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC)\r
- {\r
-       zend_lex_state original_lex_state;\r
-       zend_op_array *op_array = (zend_op_array *) emalloc(sizeof(zend_op_array));\r
-       zend_op_array *original_active_op_array = CG(active_op_array);\r
-       zend_op_array *retval;\r
-       zval tmp;\r
-       int compiler_result;\r
-       zend_bool original_in_compilation = CG(in_compilation);\r
\r
-       if (source_string->value.str.len==0) {\r
-               efree(op_array);\r
-               return NULL;\r
-       }\r
\r
-       CG(in_compilation) = 1;\r
\r
-       tmp = *source_string;\r
-       zval_copy_ctor(&tmp);\r
-       convert_to_string(&tmp);\r
-       source_string = &tmp;\r
\r
-       zend_save_lexical_state(&original_lex_state TSRMLS_CC);\r
-       if (zend_prepare_string_for_scanning(source_string, filename TSRMLS_CC)==FAILURE) {\r
-               efree(op_array);\r
-               retval = NULL;\r
-       } else {\r
-               zend_bool orig_interactive = CG(interactive);\r
\r
-               CG(interactive) = 0;\r
-               init_op_array(op_array, ZEND_EVAL_CODE, INITIAL_OP_ARRAY_SIZE TSRMLS_CC);\r
-               CG(interactive) = orig_interactive;\r
-               CG(active_op_array) = op_array;\r
-               BEGIN(ST_IN_SCRIPTING);\r
-               compiler_result = zendparse(TSRMLS_C);\r
\r
- #ifdef ZEND_MULTIBYTE\r
-               if (SCNG(script_org)) {\r
-                       efree(SCNG(script_org));\r
-                       SCNG(script_org) = NULL;\r
-               }\r
-               if (SCNG(script_filtered)) {\r
-                       efree(SCNG(script_filtered));\r
-                       SCNG(script_filtered) = NULL;\r
-               }\r
- #endif /* ZEND_MULTIBYTE */\r
\r
-               if (compiler_result==1) {\r
-                       CG(active_op_array) = original_active_op_array;\r
-                       CG(unclean_shutdown)=1;\r
-                       destroy_op_array(op_array TSRMLS_CC);\r
-                       efree(op_array);\r
-                       retval = NULL;\r
-               } else {\r
-                       zend_do_return(NULL, 0 TSRMLS_CC);\r
-                       CG(active_op_array) = original_active_op_array;\r
-                       pass_two(op_array TSRMLS_CC);\r
-                       zend_release_labels(TSRMLS_C);\r
-                       retval = op_array;\r
-               }\r
-       }\r
-       zend_restore_lexical_state(&original_lex_state TSRMLS_CC);\r
-       zval_dtor(&tmp);\r
-       CG(in_compilation) = original_in_compilation;\r
-       return retval;\r
- }\r
\r
\r
- BEGIN_EXTERN_C()\r
- int highlight_file(char *filename, zend_syntax_highlighter_ini *syntax_highlighter_ini TSRMLS_DC)\r
- {\r
-       zend_lex_state original_lex_state;\r
-       zend_file_handle file_handle;\r
\r
-       file_handle.type = ZEND_HANDLE_FILENAME;\r
-       file_handle.filename = filename;\r
-       file_handle.free_filename = 0;\r
-       file_handle.opened_path = NULL;\r
-       zend_save_lexical_state(&original_lex_state TSRMLS_CC);\r
-       if (open_file_for_scanning(&file_handle TSRMLS_CC)==FAILURE) {\r
-               zend_message_dispatcher(ZMSG_FAILED_HIGHLIGHT_FOPEN, filename TSRMLS_CC);\r
-               zend_restore_lexical_state(&original_lex_state TSRMLS_CC);\r
-               return FAILURE;\r
-       }\r
-       zend_highlight(syntax_highlighter_ini TSRMLS_CC);\r
- #ifdef ZEND_MULTIBYTE\r
-       if (SCNG(script_org)) {\r
-               efree(SCNG(script_org));\r
-               SCNG(script_org) = NULL;\r
-       }\r
-       if (SCNG(script_filtered)) {\r
-               efree(SCNG(script_filtered));\r
-               SCNG(script_filtered) = NULL;\r
-       }\r
- #endif /* ZEND_MULTIBYTE */\r
-       zend_destroy_file_handle(&file_handle TSRMLS_CC);\r
-       zend_restore_lexical_state(&original_lex_state TSRMLS_CC);\r
-       return SUCCESS;\r
- }\r
\r
- int highlight_string(zval *str, zend_syntax_highlighter_ini *syntax_highlighter_ini, char *str_name TSRMLS_DC)\r
- {\r
-       zend_lex_state original_lex_state;\r
-       zval tmp = *str;\r
\r
-       str = &tmp;\r
-       zval_copy_ctor(str);\r
-       zend_save_lexical_state(&original_lex_state TSRMLS_CC);\r
-       if (zend_prepare_string_for_scanning(str, str_name TSRMLS_CC)==FAILURE) {\r
-               zend_restore_lexical_state(&original_lex_state TSRMLS_CC);\r
-               return FAILURE;\r
-       }\r
-       BEGIN(INITIAL);\r
-       zend_highlight(syntax_highlighter_ini TSRMLS_CC);\r
- #ifdef ZEND_MULTIBYTE\r
-       if (SCNG(script_org)) {\r
-               efree(SCNG(script_org));\r
-               SCNG(script_org) = NULL;\r
-       }\r
-       if (SCNG(script_filtered)) {\r
-               efree(SCNG(script_filtered));\r
-               SCNG(script_filtered) = NULL;\r
-       }\r
- #endif /* ZEND_MULTIBYTE */\r
-       zend_restore_lexical_state(&original_lex_state TSRMLS_CC);\r
-       zval_dtor(str);\r
-       return SUCCESS;\r
- }\r
- END_EXTERN_C()\r
\r
- #ifdef ZEND_MULTIBYTE\r
\r
- BEGIN_EXTERN_C()\r
- ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter, zend_encoding *old_encoding TSRMLS_DC)\r
- {\r
-       size_t original_offset, offset, free_flag, new_len, length;\r
-       unsigned char *p;\r
\r
-       /* calculate current position */\r
-       offset = original_offset = YYCURSOR - SCNG(yy_start);\r
-       if (old_input_filter && offset > 0) {\r
-               zend_encoding *new_encoding = SCNG(script_encoding);\r
-               zend_encoding_filter new_filter = SCNG(input_filter);\r
-               SCNG(script_encoding) = old_encoding;\r
-               SCNG(input_filter) = old_input_filter;\r
-               offset = zend_get_scanned_file_offset(TSRMLS_C);\r
-               SCNG(script_encoding) = new_encoding;\r
-               SCNG(input_filter) = new_filter;\r
-       }\r
\r
-       /* convert and set */\r
-       if (!SCNG(input_filter)) {\r
-               length = SCNG(script_org_size) - offset;\r
-               p = SCNG(script_org) + offset;\r
-               free_flag = 0;\r
-       } else {\r
-               SCNG(input_filter)(&p, &length, SCNG(script_org) + offset, SCNG(script_org_size) - offset TSRMLS_CC);\r
-               free_flag = 1;\r
-       }\r
\r
-       new_len = original_offset + length;\r
\r
-       if (new_len > YYLIMIT - SCNG(yy_start)) {\r
-               unsigned char *new_yy_start = erealloc(SCNG(yy_start), new_len);\r
-               SCNG(yy_cursor) = new_yy_start + (SCNG(yy_cursor) - SCNG(yy_start));\r
-               SCNG(yy_marker) = new_yy_start + (SCNG(yy_marker) - SCNG(yy_start));\r
-               SCNG(yy_text) = new_yy_start + (SCNG(yy_text) - SCNG(yy_start));\r
-               SCNG(yy_start) = new_yy_start;\r
-               SCNG(script_filtered) = new_yy_start;\r
-               SCNG(script_filtered_size) = new_len;\r
-       }\r
\r
-       SCNG(yy_limit) = SCNG(yy_start) + new_len;\r
-       memmove(SCNG(yy_start) + original_offset, p, length);\r
\r
-       if (free_flag) {\r
-               efree(p);\r
-       }\r
- }\r
\r
\r
- ZEND_API int zend_multibyte_yyinput(zend_file_handle *file_handle, char *buf, size_t len TSRMLS_DC)\r
- {\r
-       size_t n;\r
\r
-       if (CG(interactive) == 0) {\r
-               if (zend_stream_fixup(file_handle, &buf, &len TSRMLS_CC) == FAILURE) {\r
-                       return FAILURE;\r
-               }\r
-               n = len;\r
-               return n;\r
-       }\r
\r
-       /* interactive */\r
-       if (SCNG(script_org)) {\r
-               efree(SCNG(script_org));\r
-       }\r
-       if (SCNG(script_filtered)) {\r
-               efree(SCNG(script_filtered));\r
-       }\r
-       SCNG(script_org) = NULL;\r
-       SCNG(script_org_size) = 0;\r
\r
-       /* TODO: support widechars */\r
-       if (zend_stream_fixup(file_handle, &buf, &len TSRMLS_CC) == FAILURE) {\r
-               return FAILURE;\r
-       }\r
-       n = len;\r
\r
-       SCNG(script_org_size) = n;\r
-       SCNG(script_org) = (unsigned char*)emalloc(SCNG(script_org_size) + 1);\r
-       memcpy(SCNG(script_org), buf, n);\r
\r
-       return n;\r
- }\r
\r
\r
- ZEND_API int zend_multibyte_read_script(unsigned char *buf, size_t n TSRMLS_DC)\r
- {\r
-       if (SCNG(script_org)) {\r
-               efree(SCNG(script_org));\r
-               SCNG(script_org) = NULL;\r
-       }\r
-       SCNG(script_org_size) = n;      \r
-       \r
-       SCNG(script_org) = (unsigned char*)emalloc(SCNG(script_org_size) + 1);\r
-       memcpy(SCNG(script_org), buf, n);\r
-       *(SCNG(script_org)+SCNG(script_org_size)) = '\0';\r
\r
-       return 0;\r
- }\r
\r
\r
- # define zend_copy_value(zendlval, yytext, yyleng) \\r
-       if (SCNG(output_filter)) { \\r
-               size_t sz = 0; \\r
-               SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)yytext, (size_t)yyleng TSRMLS_CC); \\r
-               zendlval->value.str.len = sz; \\r
-       } else { \\r
-               zendlval->value.str.val = (char *) estrndup(yytext, yyleng); \\r
-               zendlval->value.str.len = yyleng; \\r
-       }\r
- #else /* ZEND_MULTIBYTE */\r
- # define zend_copy_value(zendlval, yytext, yyleng) \\r
-       zendlval->value.str.val = (char *)estrndup(yytext, yyleng); \\r
-       zendlval->value.str.len = yyleng;\r
- #endif /* ZEND_MULTIBYTE */\r
\r
- static void zend_scan_escape_string(zval *zendlval, char *str, int len, char quote_type TSRMLS_DC)\r
- {\r
-       register char *s, *t;\r
-       char *end;\r
\r
-       ZVAL_STRINGL(zendlval, str, len, 1);\r
\r
-       /* convert escape sequences */\r
-       s = t = zendlval->value.str.val;\r
-       end = s+zendlval->value.str.len;\r
-       while (s<end) {\r
-               if (*s=='\\') {\r
-                       s++;\r
-                       if (s >= end) {\r
-                               *t++ = '\\';\r
-                               break;\r
-                       }\r
\r
-                       switch(*s) {\r
-                               case 'n':\r
-                                       *t++ = '\n';\r
-                                       zendlval->value.str.len--;\r
-                                       break;\r
-                               case 'r':\r
-                                       *t++ = '\r';\r
-                                       zendlval->value.str.len--;\r
-                                       break;\r
-                               case 't':\r
-                                       *t++ = '\t';\r
-                                       zendlval->value.str.len--;\r
-                                       break;\r
-                               case 'f':\r
-                                       *t++ = '\f';\r
-                                       zendlval->value.str.len--;\r
-                                       break;\r
-                               case 'v':\r
-                                       *t++ = '\v';\r
-                                       zendlval->value.str.len--;\r
-                                       break;\r
-                               case '"':\r
-                               case '`':\r
-                                       if (*s != quote_type) {\r
-                                               *t++ = '\\';\r
-                                               *t++ = *s;\r
-                                               break;\r
-                                       }\r
-                               case '\\':\r
-                               case '$':\r
-                                       *t++ = *s;\r
-                                       zendlval->value.str.len--;\r
-                                       break;\r
-                               case 'x':\r
-                               case 'X':\r
-                                       if (ZEND_IS_HEX(*(s+1))) {\r
-                                               char hex_buf[3] = { 0, 0, 0 };\r
\r
-                                               zendlval->value.str.len--; /* for the 'x' */\r
\r
-                                               hex_buf[0] = *(++s);\r
-                                               zendlval->value.str.len--;\r
-                                               if (ZEND_IS_HEX(*(s+1))) {\r
-                                                       hex_buf[1] = *(++s);\r
-                                                       zendlval->value.str.len--;\r
-                                               }\r
-                                               *t++ = (char) strtol(hex_buf, NULL, 16);\r
-                                       } else {\r
-                                               *t++ = '\\';\r
-                                               *t++ = *s;\r
-                                       }\r
-                                       break;\r
-                               default:\r
-                                       /* check for an octal */\r
-                                       if (ZEND_IS_OCT(*s)) {\r
-                                               char octal_buf[4] = { 0, 0, 0, 0 };\r
\r
-                                               octal_buf[0] = *s;\r
-                                               zendlval->value.str.len--;\r
-                                               if (ZEND_IS_OCT(*(s+1))) {\r
-                                                       octal_buf[1] = *(++s);\r
-                                                       zendlval->value.str.len--;\r
-                                                       if (ZEND_IS_OCT(*(s+1))) {\r
-                                                               octal_buf[2] = *(++s);\r
-                                                               zendlval->value.str.len--;\r
-                                                       }\r
-                                               }\r
-                                               *t++ = (char) strtol(octal_buf, NULL, 8);\r
-                                       } else {\r
-                                               *t++ = '\\';\r
-                                               *t++ = *s;\r
-                                       }\r
-                                       break;\r
-                       }\r
-               } else {\r
-                       *t++ = *s;\r
-               }\r
\r
-               if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {\r
-                       CG(zend_lineno)++;\r
-               }\r
-               s++;\r
-       }\r
-       *t = 0;\r
- #ifdef ZEND_MULTIBYTE\r
-       if (SCNG(output_filter)) {\r
-               size_t sz = 0;\r
-               s = zendlval->value.str.val;\r
-               SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)s, (size_t)zendlval->value.str.len TSRMLS_CC);\r
-               zendlval->value.str.len = sz;\r
-               efree(s);\r
-       }\r
- #endif /* ZEND_MULTIBYTE */\r
- }\r
\r
\r
- int lex_scan(zval *zendlval TSRMLS_DC)\r
- {\r
- restart:\r
-       SCNG(yy_text) = YYCURSOR;\r
\r
- yymore_restart:\r
\r
\r
- #line 862 "Zend/zend_language_scanner.c"\r
- {\r
-       YYCTYPE yych;\r
-       unsigned int yyaccept = 0;\r
-       if (YYGETCONDITION() < 5) {\r
-               if (YYGETCONDITION() < 2) {\r
-                       if (YYGETCONDITION() < 1) {\r
-                               goto yyc_ST_IN_SCRIPTING;\r
-                       } else {\r
-                               goto yyc_ST_LOOKING_FOR_PROPERTY;\r
-                       }\r
-               } else {\r
-                       if (YYGETCONDITION() < 3) {\r
-                               goto yyc_ST_BACKQUOTE;\r
-                       } else {\r
-                               if (YYGETCONDITION() < 4) {\r
-                                       goto yyc_ST_DOUBLE_QUOTES;\r
-                               } else {\r
-                                       goto yyc_ST_HEREDOC;\r
-                               }\r
-                       }\r
-               }\r
-       } else {\r
-               if (YYGETCONDITION() < 7) {\r
-                       if (YYGETCONDITION() < 6) {\r
-                               goto yyc_ST_LOOKING_FOR_VARNAME;\r
-                       } else {\r
-                               goto yyc_ST_VAR_OFFSET;\r
-                       }\r
-               } else {\r
-                       if (YYGETCONDITION() < 8) {\r
-                               goto yyc_INITIAL;\r
-                       } else {\r
-                               if (YYGETCONDITION() < 9) {\r
-                                       goto yyc_ST_END_HEREDOC;\r
-                               } else {\r
-                                       goto yyc_ST_NOWDOC;\r
-                               }\r
-                       }\r
-               }\r
-       }\r
- /* *********************************** */\r
- yyc_INITIAL:\r
-       {\r
-               static const unsigned char yybm[] = {\r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0, 128, 128,   0,   0, 128,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                       128,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-               };\r
\r
-               YYDEBUG(0, *YYCURSOR);\r
-               YYFILL(8);\r
-               yych = *YYCURSOR;\r
-               if (yych != '<') goto yy4;\r
-               YYDEBUG(2, *YYCURSOR);\r
-               yyaccept = 0;\r
-               yych = *(YYMARKER = ++YYCURSOR);\r
-               if (yych <= '?') {\r
-                       if (yych == '%') goto yy7;\r
-                       if (yych >= '?') goto yy5;\r
-               } else {\r
-                       if (yych <= 'S') {\r
-                               if (yych >= 'S') goto yy9;\r
-                       } else {\r
-                               if (yych == 's') goto yy9;\r
-                       }\r
-               }\r
- yy3:\r
-               YYDEBUG(3, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1590 "Zend/zend_language_scanner.l"\r
-               {\r
-       if (YYCURSOR > YYLIMIT) {\r
-               return 0;\r
-       }\r
\r
- inline_char_handler:\r
\r
-       while (1) {\r
-               YYCTYPE *ptr = memchr(YYCURSOR, '<', YYLIMIT - YYCURSOR);\r
\r
-               YYCURSOR = ptr ? ptr + 1 : YYLIMIT;\r
\r
-               if (YYCURSOR < YYLIMIT) {\r
-                       switch (*YYCURSOR) {\r
-                               case '?':\r
-                                       if (CG(short_tags) || !strncasecmp(YYCURSOR + 1, "php", 3)) { /* Assume [ \t\n\r] follows "php" */\r
-                                               break;\r
-                                       }\r
-                                       continue;\r
-                               case '%':\r
-                                       if (CG(asp_tags)) {\r
-                                               break;\r
-                                       }\r
-                                       continue;\r
-                               case 's':\r
-                               case 'S':\r
-                                       /* Probably NOT an opening PHP <script> tag, so don't end the HTML chunk yet\r
-                                        * If it is, the PHP <script> tag rule checks for any HTML scanned before it */\r
-                                       YYCURSOR--;\r
-                                       yymore();\r
-                               default:\r
-                                       continue;\r
-                       }\r
\r
-                       YYCURSOR--;\r
-               }\r
\r
-               break;\r
-       }\r
\r
- inline_html:\r
-       yyleng = YYCURSOR - SCNG(yy_text);\r
\r
- #ifdef ZEND_MULTIBYTE\r
-       if (SCNG(output_filter)) {\r
-               int readsize;\r
-               size_t sz = 0;\r
-               readsize = SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)yytext, (size_t)yyleng TSRMLS_CC);\r
-               zendlval->value.str.len = sz;\r
-               if (readsize < yyleng) {\r
-                       yyless(readsize);\r
-               }\r
-       } else {\r
-         zendlval->value.str.val = (char *) estrndup(yytext, yyleng);\r
-         zendlval->value.str.len = yyleng;\r
-       }\r
- #else /* !ZEND_MULTIBYTE */\r
-       zendlval->value.str.val = (char *) estrndup(yytext, yyleng);\r
-       zendlval->value.str.len = yyleng;\r
- #endif\r
-       zendlval->type = IS_STRING;\r
-       HANDLE_NEWLINES(yytext, yyleng);\r
-       return T_INLINE_HTML;\r
- }\r
- #line 1026 "Zend/zend_language_scanner.c"\r
- yy4:\r
-               YYDEBUG(4, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               goto yy3;\r
- yy5:\r
-               YYDEBUG(5, *YYCURSOR);\r
-               yyaccept = 1;\r
-               yych = *(YYMARKER = ++YYCURSOR);\r
-               if (yych <= 'O') {\r
-                       if (yych == '=') goto yy45;\r
-               } else {\r
-                       if (yych <= 'P') goto yy47;\r
-                       if (yych == 'p') goto yy47;\r
-               }\r
- yy6:\r
-               YYDEBUG(6, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1578 "Zend/zend_language_scanner.l"\r
-               {\r
-       if (CG(short_tags)) {\r
-               zendlval->value.str.val = yytext; /* no copying - intentional */\r
-               zendlval->value.str.len = yyleng;\r
-               zendlval->type = IS_STRING;\r
-               BEGIN(ST_IN_SCRIPTING);\r
-               return T_OPEN_TAG;\r
-       } else {\r
-               goto inline_char_handler;\r
-       }\r
- }\r
- #line 1056 "Zend/zend_language_scanner.c"\r
- yy7:\r
-               YYDEBUG(7, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if ((yych = *YYCURSOR) == '=') goto yy43;\r
-               YYDEBUG(8, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1555 "Zend/zend_language_scanner.l"\r
-               {\r
-       if (CG(asp_tags)) {\r
-               zendlval->value.str.val = yytext; /* no copying - intentional */\r
-               zendlval->value.str.len = yyleng;\r
-               zendlval->type = IS_STRING;\r
-               BEGIN(ST_IN_SCRIPTING);\r
-               return T_OPEN_TAG;\r
-       } else {\r
-               goto inline_char_handler;\r
-       }\r
- }\r
- #line 1075 "Zend/zend_language_scanner.c"\r
- yy9:\r
-               YYDEBUG(9, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'C') goto yy11;\r
-               if (yych == 'c') goto yy11;\r
- yy10:\r
-               YYDEBUG(10, *YYCURSOR);\r
-               YYCURSOR = YYMARKER;\r
-               if (yyaccept <= 0) {\r
-                       goto yy3;\r
-               } else {\r
-                       goto yy6;\r
-               }\r
- yy11:\r
-               YYDEBUG(11, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'R') goto yy12;\r
-               if (yych != 'r') goto yy10;\r
- yy12:\r
-               YYDEBUG(12, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'I') goto yy13;\r
-               if (yych != 'i') goto yy10;\r
- yy13:\r
-               YYDEBUG(13, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'P') goto yy14;\r
-               if (yych != 'p') goto yy10;\r
- yy14:\r
-               YYDEBUG(14, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy15;\r
-               if (yych != 't') goto yy10;\r
- yy15:\r
-               YYDEBUG(15, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'L') goto yy10;\r
-               if (yych == 'l') goto yy10;\r
-               goto yy17;\r
- yy16:\r
-               YYDEBUG(16, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(8);\r
-               yych = *YYCURSOR;\r
- yy17:\r
-               YYDEBUG(17, *YYCURSOR);\r
-               if (yybm[0+yych] & 128) {\r
-                       goto yy16;\r
-               }\r
-               if (yych == 'L') goto yy18;\r
-               if (yych != 'l') goto yy10;\r
- yy18:\r
-               YYDEBUG(18, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy19;\r
-               if (yych != 'a') goto yy10;\r
- yy19:\r
-               YYDEBUG(19, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'N') goto yy20;\r
-               if (yych != 'n') goto yy10;\r
- yy20:\r
-               YYDEBUG(20, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'G') goto yy21;\r
-               if (yych != 'g') goto yy10;\r
- yy21:\r
-               YYDEBUG(21, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'U') goto yy22;\r
-               if (yych != 'u') goto yy10;\r
- yy22:\r
-               YYDEBUG(22, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy23;\r
-               if (yych != 'a') goto yy10;\r
- yy23:\r
-               YYDEBUG(23, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'G') goto yy24;\r
-               if (yych != 'g') goto yy10;\r
- yy24:\r
-               YYDEBUG(24, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy25;\r
-               if (yych != 'e') goto yy10;\r
- yy25:\r
-               YYDEBUG(25, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(26, *YYCURSOR);\r
-               if (yych <= '\r') {\r
-                       if (yych <= 0x08) goto yy10;\r
-                       if (yych <= '\n') goto yy25;\r
-                       if (yych <= '\f') goto yy10;\r
-                       goto yy25;\r
-               } else {\r
-                       if (yych <= ' ') {\r
-                               if (yych <= 0x1F) goto yy10;\r
-                               goto yy25;\r
-                       } else {\r
-                               if (yych != '=') goto yy10;\r
-                       }\r
-               }\r
- yy27:\r
-               YYDEBUG(27, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(5);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(28, *YYCURSOR);\r
-               if (yych <= '!') {\r
-                       if (yych <= '\f') {\r
-                               if (yych <= 0x08) goto yy10;\r
-                               if (yych <= '\n') goto yy27;\r
-                               goto yy10;\r
-                       } else {\r
-                               if (yych <= '\r') goto yy27;\r
-                               if (yych == ' ') goto yy27;\r
-                               goto yy10;\r
-                       }\r
-               } else {\r
-                       if (yych <= 'O') {\r
-                               if (yych <= '"') goto yy30;\r
-                               if (yych == '\'') goto yy31;\r
-                               goto yy10;\r
-                       } else {\r
-                               if (yych <= 'P') goto yy29;\r
-                               if (yych != 'p') goto yy10;\r
-                       }\r
-               }\r
- yy29:\r
-               YYDEBUG(29, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'H') goto yy42;\r
-               if (yych == 'h') goto yy42;\r
-               goto yy10;\r
- yy30:\r
-               YYDEBUG(30, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'P') goto yy39;\r
-               if (yych == 'p') goto yy39;\r
-               goto yy10;\r
- yy31:\r
-               YYDEBUG(31, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'P') goto yy32;\r
-               if (yych != 'p') goto yy10;\r
- yy32:\r
-               YYDEBUG(32, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'H') goto yy33;\r
-               if (yych != 'h') goto yy10;\r
- yy33:\r
-               YYDEBUG(33, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'P') goto yy34;\r
-               if (yych != 'p') goto yy10;\r
- yy34:\r
-               YYDEBUG(34, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych != '\'') goto yy10;\r
- yy35:\r
-               YYDEBUG(35, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(36, *YYCURSOR);\r
-               if (yych <= '\r') {\r
-                       if (yych <= 0x08) goto yy10;\r
-                       if (yych <= '\n') goto yy35;\r
-                       if (yych <= '\f') goto yy10;\r
-                       goto yy35;\r
-               } else {\r
-                       if (yych <= ' ') {\r
-                               if (yych <= 0x1F) goto yy10;\r
-                               goto yy35;\r
-                       } else {\r
-                               if (yych != '>') goto yy10;\r
-                       }\r
-               }\r
-               YYDEBUG(37, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(38, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1511 "Zend/zend_language_scanner.l"\r
-               {\r
-       YYCTYPE *bracket = zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1));\r
\r
-       if (bracket != SCNG(yy_text)) {\r
-               /* Handle previously scanned HTML, as possible <script> tags found are assumed to not be PHP's */\r
-               YYCURSOR = bracket;\r
-               goto inline_html;\r
-       }\r
\r
-       HANDLE_NEWLINES(yytext, yyleng);\r
-       zendlval->value.str.val = yytext; /* no copying - intentional */\r
-       zendlval->value.str.len = yyleng;\r
-       zendlval->type = IS_STRING;\r
-       BEGIN(ST_IN_SCRIPTING);\r
-       return T_OPEN_TAG;\r
- }\r
- #line 1278 "Zend/zend_language_scanner.c"\r
- yy39:\r
-               YYDEBUG(39, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'H') goto yy40;\r
-               if (yych != 'h') goto yy10;\r
- yy40:\r
-               YYDEBUG(40, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'P') goto yy41;\r
-               if (yych != 'p') goto yy10;\r
- yy41:\r
-               YYDEBUG(41, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '"') goto yy35;\r
-               goto yy10;\r
- yy42:\r
-               YYDEBUG(42, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'P') goto yy35;\r
-               if (yych == 'p') goto yy35;\r
-               goto yy10;\r
- yy43:\r
-               YYDEBUG(43, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(44, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1529 "Zend/zend_language_scanner.l"\r
-               {\r
-       if (CG(asp_tags)) {\r
-               zendlval->value.str.val = yytext; /* no copying - intentional */\r
-               zendlval->value.str.len = yyleng;\r
-               zendlval->type = IS_STRING;\r
-               BEGIN(ST_IN_SCRIPTING);\r
-               return T_OPEN_TAG_WITH_ECHO;\r
-       } else {\r
-               goto inline_char_handler;\r
-       }\r
- }\r
- #line 1317 "Zend/zend_language_scanner.c"\r
- yy45:\r
-               YYDEBUG(45, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(46, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1542 "Zend/zend_language_scanner.l"\r
-               {\r
-       if (CG(short_tags)) {\r
-               zendlval->value.str.val = yytext; /* no copying - intentional */\r
-               zendlval->value.str.len = yyleng;\r
-               zendlval->type = IS_STRING;\r
-               BEGIN(ST_IN_SCRIPTING);\r
-               return T_OPEN_TAG_WITH_ECHO;\r
-       } else {\r
-               goto inline_char_handler;\r
-       }\r
- }\r
- #line 1335 "Zend/zend_language_scanner.c"\r
- yy47:\r
-               YYDEBUG(47, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'H') goto yy48;\r
-               if (yych != 'h') goto yy10;\r
- yy48:\r
-               YYDEBUG(48, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'P') goto yy49;\r
-               if (yych != 'p') goto yy10;\r
- yy49:\r
-               YYDEBUG(49, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= '\f') {\r
-                       if (yych <= 0x08) goto yy10;\r
-                       if (yych >= '\v') goto yy10;\r
-               } else {\r
-                       if (yych <= '\r') goto yy52;\r
-                       if (yych != ' ') goto yy10;\r
-               }\r
- yy50:\r
-               YYDEBUG(50, *YYCURSOR);\r
-               ++YYCURSOR;\r
- yy51:\r
-               YYDEBUG(51, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1568 "Zend/zend_language_scanner.l"\r
-               {\r
-       zendlval->value.str.val = yytext; /* no copying - intentional */\r
-       zendlval->value.str.len = yyleng;\r
-       zendlval->type = IS_STRING;\r
-       HANDLE_NEWLINE(yytext[yyleng-1]);\r
-       BEGIN(ST_IN_SCRIPTING);\r
-       return T_OPEN_TAG;\r
- }\r
- #line 1371 "Zend/zend_language_scanner.c"\r
- yy52:\r
-               YYDEBUG(52, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if ((yych = *YYCURSOR) == '\n') goto yy50;\r
-               goto yy51;\r
-       }\r
- /* *********************************** */\r
- yyc_ST_BACKQUOTE:\r
-       {\r
-               static const unsigned char yybm[] = {\r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128,   0,   0,   0,   0,   0,   0, \r
-                         0, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128,   0,   0,   0,   0, 128, \r
-                         0, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128,   0,   0,   0,   0, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-               };\r
-               YYDEBUG(53, *YYCURSOR);\r
-               YYFILL(2);\r
-               yych = *YYCURSOR;\r
-               if (yych <= '_') {\r
-                       if (yych != '$') goto yy60;\r
-               } else {\r
-                       if (yych <= '`') goto yy58;\r
-                       if (yych == '{') goto yy57;\r
-                       goto yy60;\r
-               }\r
-               YYDEBUG(55, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if ((yych = *YYCURSOR) <= '_') {\r
-                       if (yych <= '@') goto yy56;\r
-                       if (yych <= 'Z') goto yy63;\r
-                       if (yych >= '_') goto yy63;\r
-               } else {\r
-                       if (yych <= 'z') {\r
-                               if (yych >= 'a') goto yy63;\r
-                       } else {\r
-                               if (yych <= '{') goto yy66;\r
-                               if (yych >= 0x7F) goto yy63;\r
-                       }\r
-               }\r
- yy56:\r
-               YYDEBUG(56, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 2048 "Zend/zend_language_scanner.l"\r
-               {\r
-       if (YYCURSOR > YYLIMIT) {\r
-               return 0;\r
-       }\r
-       if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {\r
-               YYCURSOR++;\r
-       }\r
\r
-       while (YYCURSOR < YYLIMIT) {\r
-               switch (*YYCURSOR++) {\r
-                       case '`':\r
-                               break;\r
-                       case '$':\r
-                               if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {\r
-                                       break;\r
-                               }\r
-                               continue;\r
-                       case '{':\r
-                               if (*YYCURSOR == '$') {\r
-                                       break;\r
-                               }\r
-                               continue;\r
-                       case '\\':\r
-                               if (YYCURSOR < YYLIMIT) {\r
-                                       YYCURSOR++;\r
-                               }\r
-                               /* fall through */\r
-                       default:\r
-                               continue;\r
-               }\r
\r
-               YYCURSOR--;\r
-               break;\r
-       }\r
\r
-       yyleng = YYCURSOR - SCNG(yy_text);\r
\r
-       zend_scan_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC);\r
-       return T_ENCAPSED_AND_WHITESPACE;\r
- }\r
- #line 1483 "Zend/zend_language_scanner.c"\r
- yy57:\r
-               YYDEBUG(57, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '$') goto yy61;\r
-               goto yy56;\r
- yy58:\r
-               YYDEBUG(58, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(59, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1992 "Zend/zend_language_scanner.l"\r
-               {\r
-       BEGIN(ST_IN_SCRIPTING);\r
-       return '`';\r
- }\r
- #line 1499 "Zend/zend_language_scanner.c"\r
- yy60:\r
-               YYDEBUG(60, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               goto yy56;\r
- yy61:\r
-               YYDEBUG(61, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(62, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1979 "Zend/zend_language_scanner.l"\r
-               {\r
-       zendlval->value.lval = (long) '{';\r
-       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);\r
-       yyless(1);\r
-       return T_CURLY_OPEN;\r
- }\r
- #line 1516 "Zend/zend_language_scanner.c"\r
- yy63:\r
-               YYDEBUG(63, *YYCURSOR);\r
-               yyaccept = 0;\r
-               YYMARKER = ++YYCURSOR;\r
-               YYFILL(3);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(64, *YYCURSOR);\r
-               if (yybm[0+yych] & 128) {\r
-                       goto yy63;\r
-               }\r
-               if (yych == '-') goto yy68;\r
-               if (yych == '[') goto yy70;\r
- yy65:\r
-               YYDEBUG(65, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1677 "Zend/zend_language_scanner.l"\r
-               {\r
-       zend_copy_value(zendlval, (yytext+1), (yyleng-1));\r
-       zendlval->type = IS_STRING;\r
-       return T_VARIABLE;\r
- }\r
- #line 1538 "Zend/zend_language_scanner.c"\r
- yy66:\r
-               YYDEBUG(66, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(67, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1300 "Zend/zend_language_scanner.l"\r
-               {\r
-       yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);\r
-       return T_DOLLAR_OPEN_CURLY_BRACES;\r
- }\r
- #line 1549 "Zend/zend_language_scanner.c"\r
- yy68:\r
-               YYDEBUG(68, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '>') goto yy72;\r
- yy69:\r
-               YYDEBUG(69, *YYCURSOR);\r
-               YYCURSOR = YYMARKER;\r
-               goto yy65;\r
- yy70:\r
-               YYDEBUG(70, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(71, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1669 "Zend/zend_language_scanner.l"\r
-               {\r
-       yyless(yyleng - 1);\r
-       yy_push_state(ST_VAR_OFFSET TSRMLS_CC);\r
-       zend_copy_value(zendlval, (yytext+1), (yyleng-1));\r
-       zendlval->type = IS_STRING;\r
-       return T_VARIABLE;\r
- }\r
- #line 1571 "Zend/zend_language_scanner.c"\r
- yy72:\r
-               YYDEBUG(72, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= '_') {\r
-                       if (yych <= '@') goto yy69;\r
-                       if (yych <= 'Z') goto yy73;\r
-                       if (yych <= '^') goto yy69;\r
-               } else {\r
-                       if (yych <= '`') goto yy69;\r
-                       if (yych <= 'z') goto yy73;\r
-                       if (yych <= '~') goto yy69;\r
-               }\r
- yy73:\r
-               YYDEBUG(73, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(74, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1659 "Zend/zend_language_scanner.l"\r
-               {\r
-       yyless(yyleng - 3);\r
-       yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);\r
-       zend_copy_value(zendlval, (yytext+1), (yyleng-1));\r
-       zendlval->type = IS_STRING;\r
-       return T_VARIABLE;\r
- }\r
- #line 1597 "Zend/zend_language_scanner.c"\r
-       }\r
- /* *********************************** */\r
- yyc_ST_DOUBLE_QUOTES:\r
-       {\r
-               static const unsigned char yybm[] = {\r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128,   0,   0,   0,   0,   0,   0, \r
-                         0, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128,   0,   0,   0,   0, 128, \r
-                         0, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128,   0,   0,   0,   0, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-               };\r
-               YYDEBUG(75, *YYCURSOR);\r
-               YYFILL(2);\r
-               yych = *YYCURSOR;\r
-               if (yych <= '#') {\r
-                       if (yych == '"') goto yy80;\r
-                       goto yy82;\r
-               } else {\r
-                       if (yych <= '$') goto yy77;\r
-                       if (yych == '{') goto yy79;\r
-                       goto yy82;\r
-               }\r
- yy77:\r
-               YYDEBUG(77, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if ((yych = *YYCURSOR) <= '_') {\r
-                       if (yych <= '@') goto yy78;\r
-                       if (yych <= 'Z') goto yy85;\r
-                       if (yych >= '_') goto yy85;\r
-               } else {\r
-                       if (yych <= 'z') {\r
-                               if (yych >= 'a') goto yy85;\r
-                       } else {\r
-                               if (yych <= '{') goto yy88;\r
-                               if (yych >= 0x7F) goto yy85;\r
-                       }\r
-               }\r
- yy78:\r
-               YYDEBUG(78, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1998 "Zend/zend_language_scanner.l"\r
-               {\r
-       if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {\r
-               YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;\r
-               SET_DOUBLE_QUOTES_SCANNED_LENGTH(0);\r
\r
-               goto double_quotes_scan_done;\r
-       }\r
\r
-       if (YYCURSOR > YYLIMIT) {\r
-               return 0;\r
-       }\r
-       if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {\r
-               YYCURSOR++;\r
-       }\r
\r
-       while (YYCURSOR < YYLIMIT) {\r
-               switch (*YYCURSOR++) {\r
-                       case '"':\r
-                               break;\r
-                       case '$':\r
-                               if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {\r
-                                       break;\r
-                               }\r
-                               continue;\r
-                       case '{':\r
-                               if (*YYCURSOR == '$') {\r
-                                       break;\r
-                               }\r
-                               continue;\r
-                       case '\\':\r
-                               if (YYCURSOR < YYLIMIT) {\r
-                                       YYCURSOR++;\r
-                               }\r
-                               /* fall through */\r
-                       default:\r
-                               continue;\r
-               }\r
\r
-               YYCURSOR--;\r
-               break;\r
-       }\r
\r
- double_quotes_scan_done:\r
-       yyleng = YYCURSOR - SCNG(yy_text);\r
\r
-       zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC);\r
-       return T_ENCAPSED_AND_WHITESPACE;\r
- }\r
- #line 1714 "Zend/zend_language_scanner.c"\r
- yy79:\r
-               YYDEBUG(79, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '$') goto yy83;\r
-               goto yy78;\r
- yy80:\r
-               YYDEBUG(80, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(81, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1987 "Zend/zend_language_scanner.l"\r
-               {\r
-       BEGIN(ST_IN_SCRIPTING);\r
-       return '"';\r
- }\r
- #line 1730 "Zend/zend_language_scanner.c"\r
- yy82:\r
-               YYDEBUG(82, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               goto yy78;\r
- yy83:\r
-               YYDEBUG(83, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(84, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1979 "Zend/zend_language_scanner.l"\r
-               {\r
-       zendlval->value.lval = (long) '{';\r
-       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);\r
-       yyless(1);\r
-       return T_CURLY_OPEN;\r
- }\r
- #line 1747 "Zend/zend_language_scanner.c"\r
- yy85:\r
-               YYDEBUG(85, *YYCURSOR);\r
-               yyaccept = 0;\r
-               YYMARKER = ++YYCURSOR;\r
-               YYFILL(3);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(86, *YYCURSOR);\r
-               if (yybm[0+yych] & 128) {\r
-                       goto yy85;\r
-               }\r
-               if (yych == '-') goto yy90;\r
-               if (yych == '[') goto yy92;\r
- yy87:\r
-               YYDEBUG(87, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1677 "Zend/zend_language_scanner.l"\r
-               {\r
-       zend_copy_value(zendlval, (yytext+1), (yyleng-1));\r
-       zendlval->type = IS_STRING;\r
-       return T_VARIABLE;\r
- }\r
- #line 1769 "Zend/zend_language_scanner.c"\r
- yy88:\r
-               YYDEBUG(88, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(89, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1300 "Zend/zend_language_scanner.l"\r
-               {\r
-       yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);\r
-       return T_DOLLAR_OPEN_CURLY_BRACES;\r
- }\r
- #line 1780 "Zend/zend_language_scanner.c"\r
- yy90:\r
-               YYDEBUG(90, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '>') goto yy94;\r
- yy91:\r
-               YYDEBUG(91, *YYCURSOR);\r
-               YYCURSOR = YYMARKER;\r
-               goto yy87;\r
- yy92:\r
-               YYDEBUG(92, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(93, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1669 "Zend/zend_language_scanner.l"\r
-               {\r
-       yyless(yyleng - 1);\r
-       yy_push_state(ST_VAR_OFFSET TSRMLS_CC);\r
-       zend_copy_value(zendlval, (yytext+1), (yyleng-1));\r
-       zendlval->type = IS_STRING;\r
-       return T_VARIABLE;\r
- }\r
- #line 1802 "Zend/zend_language_scanner.c"\r
- yy94:\r
-               YYDEBUG(94, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= '_') {\r
-                       if (yych <= '@') goto yy91;\r
-                       if (yych <= 'Z') goto yy95;\r
-                       if (yych <= '^') goto yy91;\r
-               } else {\r
-                       if (yych <= '`') goto yy91;\r
-                       if (yych <= 'z') goto yy95;\r
-                       if (yych <= '~') goto yy91;\r
-               }\r
- yy95:\r
-               YYDEBUG(95, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(96, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1659 "Zend/zend_language_scanner.l"\r
-               {\r
-       yyless(yyleng - 3);\r
-       yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);\r
-       zend_copy_value(zendlval, (yytext+1), (yyleng-1));\r
-       zendlval->type = IS_STRING;\r
-       return T_VARIABLE;\r
- }\r
- #line 1828 "Zend/zend_language_scanner.c"\r
-       }\r
- /* *********************************** */\r
- yyc_ST_END_HEREDOC:\r
-       YYDEBUG(97, *YYCURSOR);\r
-       YYFILL(1);\r
-       yych = *YYCURSOR;\r
-       YYDEBUG(99, *YYCURSOR);\r
-       ++YYCURSOR;\r
-       YYDEBUG(100, *YYCURSOR);\r
-       yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1966 "Zend/zend_language_scanner.l"\r
-       {\r
-       YYCURSOR += CG(heredoc_len) - 1;\r
-       yyleng = CG(heredoc_len);\r
\r
-       Z_STRVAL_P(zendlval) = CG(heredoc);\r
-       Z_STRLEN_P(zendlval) = CG(heredoc_len);\r
-       CG(heredoc) = NULL;\r
-       CG(heredoc_len) = 0;\r
-       BEGIN(ST_IN_SCRIPTING);\r
-       return T_END_HEREDOC;\r
- }\r
- #line 1851 "Zend/zend_language_scanner.c"\r
- /* *********************************** */\r
- yyc_ST_HEREDOC:\r
-       {\r
-               static const unsigned char yybm[] = {\r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128,   0,   0,   0,   0,   0,   0, \r
-                         0, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128,   0,   0,   0,   0, 128, \r
-                         0, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128,   0,   0,   0,   0, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-               };\r
-               YYDEBUG(101, *YYCURSOR);\r
-               YYFILL(2);\r
-               yych = *YYCURSOR;\r
-               if (yych == '$') goto yy103;\r
-               if (yych == '{') goto yy105;\r
-               goto yy106;\r
- yy103:\r
-               YYDEBUG(103, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if ((yych = *YYCURSOR) <= '_') {\r
-                       if (yych <= '@') goto yy104;\r
-                       if (yych <= 'Z') goto yy109;\r
-                       if (yych >= '_') goto yy109;\r
-               } else {\r
-                       if (yych <= 'z') {\r
-                               if (yych >= 'a') goto yy109;\r
-                       } else {\r
-                               if (yych <= '{') goto yy112;\r
-                               if (yych >= 0x7F) goto yy109;\r
-                       }\r
-               }\r
- yy104:\r
-               YYDEBUG(104, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 2090 "Zend/zend_language_scanner.l"\r
-               {\r
-       int newline = 0;\r
\r
-       if (YYCURSOR > YYLIMIT) {\r
-               return 0;\r
-       }\r
\r
-       YYCURSOR--;\r
\r
-       while (YYCURSOR < YYLIMIT) {\r
-               switch (*YYCURSOR++) {\r
-                       case '\r':\r
-                               if (*YYCURSOR == '\n') {\r
-                                       YYCURSOR++;\r
-                               }\r
-                               /* fall through */\r
-                       case '\n':\r
-                               /* Check for ending label on the next line */\r
-                               if (IS_LABEL_START(*YYCURSOR) && CG(heredoc_len) < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, CG(heredoc), CG(heredoc_len))) {\r
-                                       YYCTYPE *end = YYCURSOR + CG(heredoc_len);\r
\r
-                                       if (*end == ';') {\r
-                                               end++;\r
-                                       }\r
\r
-                                       if (*end == '\n' || *end == '\r') {\r
-                                               /* newline before label will be subtracted from returned text, but\r
-                                                * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */\r
-                                               if (YYCURSOR[-2] == '\r' && YYCURSOR[-1] == '\n') {\r
-                                                       newline = 2; /* Windows newline */\r
-                                               } else {\r
-                                                       newline = 1;\r
-                                               }\r
\r
-                                               CG(increment_lineno) = 1; /* For newline before label */\r
-                                               BEGIN(ST_END_HEREDOC);\r
\r
-                                               goto heredoc_scan_done;\r
-                                       }\r
-                               }\r
-                               continue;\r
-                       case '$':\r
-                               if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {\r
-                                       break;\r
-                               }\r
-                               continue;\r
-                       case '{':\r
-                               if (*YYCURSOR == '$') {\r
-                                       break;\r
-                               }\r
-                               continue;\r
-                       case '\\':\r
-                               if (YYCURSOR < YYLIMIT && *YYCURSOR != '\n' && *YYCURSOR != '\r') {\r
-                                       YYCURSOR++;\r
-                               }\r
-                               /* fall through */\r
-                       default:\r
-                               continue;\r
-               }\r
\r
-               YYCURSOR--;\r
-               break;\r
-       }\r
\r
- heredoc_scan_done:\r
-       yyleng = YYCURSOR - SCNG(yy_text);\r
\r
-       zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0 TSRMLS_CC);\r
-       return T_ENCAPSED_AND_WHITESPACE;\r
- }\r
- #line 1984 "Zend/zend_language_scanner.c"\r
- yy105:\r
-               YYDEBUG(105, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '$') goto yy107;\r
-               goto yy104;\r
- yy106:\r
-               YYDEBUG(106, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               goto yy104;\r
- yy107:\r
-               YYDEBUG(107, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(108, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1979 "Zend/zend_language_scanner.l"\r
-               {\r
-       zendlval->value.lval = (long) '{';\r
-       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);\r
-       yyless(1);\r
-       return T_CURLY_OPEN;\r
- }\r
- #line 2006 "Zend/zend_language_scanner.c"\r
- yy109:\r
-               YYDEBUG(109, *YYCURSOR);\r
-               yyaccept = 0;\r
-               YYMARKER = ++YYCURSOR;\r
-               YYFILL(3);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(110, *YYCURSOR);\r
-               if (yybm[0+yych] & 128) {\r
-                       goto yy109;\r
-               }\r
-               if (yych == '-') goto yy114;\r
-               if (yych == '[') goto yy116;\r
- yy111:\r
-               YYDEBUG(111, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1677 "Zend/zend_language_scanner.l"\r
-               {\r
-       zend_copy_value(zendlval, (yytext+1), (yyleng-1));\r
-       zendlval->type = IS_STRING;\r
-       return T_VARIABLE;\r
- }\r
- #line 2028 "Zend/zend_language_scanner.c"\r
- yy112:\r
-               YYDEBUG(112, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(113, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1300 "Zend/zend_language_scanner.l"\r
-               {\r
-       yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);\r
-       return T_DOLLAR_OPEN_CURLY_BRACES;\r
- }\r
- #line 2039 "Zend/zend_language_scanner.c"\r
- yy114:\r
-               YYDEBUG(114, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '>') goto yy118;\r
- yy115:\r
-               YYDEBUG(115, *YYCURSOR);\r
-               YYCURSOR = YYMARKER;\r
-               goto yy111;\r
- yy116:\r
-               YYDEBUG(116, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(117, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1669 "Zend/zend_language_scanner.l"\r
-               {\r
-       yyless(yyleng - 1);\r
-       yy_push_state(ST_VAR_OFFSET TSRMLS_CC);\r
-       zend_copy_value(zendlval, (yytext+1), (yyleng-1));\r
-       zendlval->type = IS_STRING;\r
-       return T_VARIABLE;\r
- }\r
- #line 2061 "Zend/zend_language_scanner.c"\r
- yy118:\r
-               YYDEBUG(118, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= '_') {\r
-                       if (yych <= '@') goto yy115;\r
-                       if (yych <= 'Z') goto yy119;\r
-                       if (yych <= '^') goto yy115;\r
-               } else {\r
-                       if (yych <= '`') goto yy115;\r
-                       if (yych <= 'z') goto yy119;\r
-                       if (yych <= '~') goto yy115;\r
-               }\r
- yy119:\r
-               YYDEBUG(119, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(120, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1659 "Zend/zend_language_scanner.l"\r
-               {\r
-       yyless(yyleng - 3);\r
-       yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);\r
-       zend_copy_value(zendlval, (yytext+1), (yyleng-1));\r
-       zendlval->type = IS_STRING;\r
-       return T_VARIABLE;\r
- }\r
- #line 2087 "Zend/zend_language_scanner.c"\r
-       }\r
- /* *********************************** */\r
- yyc_ST_IN_SCRIPTING:\r
-       {\r
-               static const unsigned char yybm[] = {\r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0, 192,  64,   0,   0,  64,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                       192,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                        56,  56,  56,  56,  56,  56,  56,  56, \r
-                        56,  56,   0,   0,   0,   0,   0,   0, \r
-                         0,  40,  40,  40,  40,  40,  40,   8, \r
-                         8,   8,   8,   8,   8,   8,   8,   8, \r
-                         8,   8,   8,   8,   8,   8,   8,   8, \r
-                         8,   8,   8,   0,   0,   0,   0,   8, \r
-                         0,  40,  40,  40,  40,  40,  40,   8, \r
-                         8,   8,   8,   8,   8,   8,   8,   8, \r
-                         8,   8,   8,   8,   8,   8,   8,   8, \r
-                         8,   8,   8,   0,   0,   0,   0,   8, \r
-                         8,   8,   8,   8,   8,   8,   8,   8, \r
-                         8,   8,   8,   8,   8,   8,   8,   8, \r
-                         8,   8,   8,   8,   8,   8,   8,   8, \r
-                         8,   8,   8,   8,   8,   8,   8,   8, \r
-                         8,   8,   8,   8,   8,   8,   8,   8, \r
-                         8,   8,   8,   8,   8,   8,   8,   8, \r
-                         8,   8,   8,   8,   8,   8,   8,   8, \r
-                         8,   8,   8,   8,   8,   8,   8,   8, \r
-                         8,   8,   8,   8,   8,   8,   8,   8, \r
-                         8,   8,   8,   8,   8,   8,   8,   8, \r
-                         8,   8,   8,   8,   8,   8,   8,   8, \r
-                         8,   8,   8,   8,   8,   8,   8,   8, \r
-                         8,   8,   8,   8,   8,   8,   8,   8, \r
-                         8,   8,   8,   8,   8,   8,   8,   8, \r
-                         8,   8,   8,   8,   8,   8,   8,   8, \r
-                         8,   8,   8,   8,   8,   8,   8,   8, \r
-               };\r
-               YYDEBUG(121, *YYCURSOR);\r
-               YYFILL(16);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(-1, yych);\r
-               switch (yych) {\r
-               case 0x00:\r
-               case 0x01:\r
-               case 0x02:\r
-               case 0x03:\r
-               case 0x04:\r
-               case 0x05:\r
-               case 0x06:\r
-               case 0x07:\r
-               case 0x08:\r
-               case '\v':\r
-               case '\f':\r
-               case 0x0E:\r
-               case 0x0F:\r
-               case 0x10:\r
-               case 0x11:\r
-               case 0x12:\r
-               case 0x13:\r
-               case 0x14:\r
-               case 0x15:\r
-               case 0x16:\r
-               case 0x17:\r
-               case 0x18:\r
-               case 0x19:\r
-               case 0x1A:\r
-               case 0x1B:\r
-               case 0x1C:\r
-               case 0x1D:\r
-               case 0x1E:\r
-               case 0x1F:      goto yy183;\r
-               case '\t':\r
-               case '\n':\r
-               case '\r':\r
-               case ' ':       goto yy139;\r
-               case '!':       goto yy152;\r
-               case '"':       goto yy179;\r
-               case '#':       goto yy175;\r
-               case '$':       goto yy164;\r
-               case '%':       goto yy158;\r
-               case '&':       goto yy159;\r
-               case '\'':      goto yy177;\r
-               case '(':       goto yy146;\r
-               case ')':\r
-               case ',':\r
-               case ';':\r
-               case '@':\r
-               case '[':\r
-               case ']':\r
-               case '~':       goto yy165;\r
-               case '*':       goto yy155;\r
-               case '+':       goto yy151;\r
-               case '-':       goto yy137;\r
-               case '.':       goto yy157;\r
-               case '/':       goto yy156;\r
-               case '0':       goto yy171;\r
-               case '1':\r
-               case '2':\r
-               case '3':\r
-               case '4':\r
-               case '5':\r
-               case '6':\r
-               case '7':\r
-               case '8':\r
-               case '9':       goto yy173;\r
-               case ':':       goto yy141;\r
-               case '<':       goto yy153;\r
-               case '=':       goto yy149;\r
-               case '>':       goto yy154;\r
-               case '?':       goto yy166;\r
-               case 'A':\r
-               case 'a':       goto yy132;\r
-               case 'B':\r
-               case 'b':       goto yy134;\r
-               case 'C':\r
-               case 'c':       goto yy127;\r
-               case 'D':\r
-               case 'd':       goto yy125;\r
-               case 'E':\r
-               case 'e':       goto yy123;\r
-               case 'F':\r
-               case 'f':       goto yy126;\r
-               case 'G':\r
-               case 'g':       goto yy135;\r
-               case 'I':\r
-               case 'i':       goto yy130;\r
-               case 'L':\r
-               case 'l':       goto yy150;\r
-               case 'N':\r
-               case 'n':       goto yy144;\r
-               case 'O':\r
-               case 'o':       goto yy162;\r
-               case 'P':\r
-               case 'p':       goto yy136;\r
-               case 'R':\r
-               case 'r':       goto yy128;\r
-               case 'S':\r
-               case 's':       goto yy133;\r
-               case 'T':\r
-               case 't':       goto yy129;\r
-               case 'U':\r
-               case 'u':       goto yy147;\r
-               case 'V':\r
-               case 'v':       goto yy145;\r
-               case 'W':\r
-               case 'w':       goto yy131;\r
-               case 'X':\r
-               case 'x':       goto yy163;\r
-               case '\\':      goto yy142;\r
-               case '^':       goto yy161;\r
-               case '_':       goto yy148;\r
-               case '`':       goto yy181;\r
-               case '{':       goto yy167;\r
-               case '|':       goto yy160;\r
-               case '}':       goto yy169;\r
-               default:        goto yy174;\r
-               }\r
- yy123:\r
-               YYDEBUG(123, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(-1, yych);\r
-               switch ((yych = *YYCURSOR)) {\r
-               case 'C':\r
-               case 'c':       goto yy701;\r
-               case 'L':\r
-               case 'l':       goto yy702;\r
-               case 'M':\r
-               case 'm':       goto yy703;\r
-               case 'N':\r
-               case 'n':       goto yy704;\r
-               case 'V':\r
-               case 'v':       goto yy705;\r
-               case 'X':\r
-               case 'x':       goto yy706;\r
-               default:        goto yy186;\r
-               }\r
- yy124:\r
-               YYDEBUG(124, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1700 "Zend/zend_language_scanner.l"\r
-               {\r
-       zend_copy_value(zendlval, yytext, yyleng);\r
-       zendlval->type = IS_STRING;\r
-       return T_STRING;\r
- }\r
- #line 2274 "Zend/zend_language_scanner.c"\r
- yy125:\r
-               YYDEBUG(125, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= 'O') {\r
-                       if (yych <= 'H') {\r
-                               if (yych == 'E') goto yy683;\r
-                               goto yy186;\r
-                       } else {\r
-                               if (yych <= 'I') goto yy684;\r
-                               if (yych <= 'N') goto yy186;\r
-                               goto yy685;\r
-                       }\r
-               } else {\r
-                       if (yych <= 'h') {\r
-                               if (yych == 'e') goto yy683;\r
-                               goto yy186;\r
-                       } else {\r
-                               if (yych <= 'i') goto yy684;\r
-                               if (yych == 'o') goto yy685;\r
-                               goto yy186;\r
-                       }\r
-               }\r
- yy126:\r
-               YYDEBUG(126, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= 'U') {\r
-                       if (yych <= 'N') {\r
-                               if (yych == 'I') goto yy662;\r
-                               goto yy186;\r
-                       } else {\r
-                               if (yych <= 'O') goto yy663;\r
-                               if (yych <= 'T') goto yy186;\r
-                               goto yy664;\r
-                       }\r
-               } else {\r
-                       if (yych <= 'n') {\r
-                               if (yych == 'i') goto yy662;\r
-                               goto yy186;\r
-                       } else {\r
-                               if (yych <= 'o') goto yy663;\r
-                               if (yych == 'u') goto yy664;\r
-                               goto yy186;\r
-                       }\r
-               }\r
- yy127:\r
-               YYDEBUG(127, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= 'O') {\r
-                       if (yych <= 'K') {\r
-                               if (yych == 'A') goto yy634;\r
-                               goto yy186;\r
-                       } else {\r
-                               if (yych <= 'L') goto yy635;\r
-                               if (yych <= 'N') goto yy186;\r
-                               goto yy636;\r
-                       }\r
-               } else {\r
-                       if (yych <= 'k') {\r
-                               if (yych == 'a') goto yy634;\r
-                               goto yy186;\r
-                       } else {\r
-                               if (yych <= 'l') goto yy635;\r
-                               if (yych == 'o') goto yy636;\r
-                               goto yy186;\r
-                       }\r
-               }\r
- yy128:\r
-               YYDEBUG(128, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy616;\r
-               if (yych == 'e') goto yy616;\r
-               goto yy186;\r
- yy129:\r
-               YYDEBUG(129, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= 'R') {\r
-                       if (yych == 'H') goto yy608;\r
-                       if (yych <= 'Q') goto yy186;\r
-                       goto yy609;\r
-               } else {\r
-                       if (yych <= 'h') {\r
-                               if (yych <= 'g') goto yy186;\r
-                               goto yy608;\r
-                       } else {\r
-                               if (yych == 'r') goto yy609;\r
-                               goto yy186;\r
-                       }\r
-               }\r
- yy130:\r
-               YYDEBUG(130, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= 'S') {\r
-                       if (yych <= 'L') {\r
-                               if (yych == 'F') goto yy561;\r
-                               goto yy186;\r
-                       } else {\r
-                               if (yych <= 'M') goto yy563;\r
-                               if (yych <= 'N') goto yy564;\r
-                               if (yych <= 'R') goto yy186;\r
-                               goto yy565;\r
-                       }\r
-               } else {\r
-                       if (yych <= 'm') {\r
-                               if (yych == 'f') goto yy561;\r
-                               if (yych <= 'l') goto yy186;\r
-                               goto yy563;\r
-                       } else {\r
-                               if (yych <= 'n') goto yy564;\r
-                               if (yych == 's') goto yy565;\r
-                               goto yy186;\r
-                       }\r
-               }\r
- yy131:\r
-               YYDEBUG(131, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'H') goto yy556;\r
-               if (yych == 'h') goto yy556;\r
-               goto yy186;\r
- yy132:\r
-               YYDEBUG(132, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= 'S') {\r
-                       if (yych <= 'M') {\r
-                               if (yych == 'B') goto yy538;\r
-                               goto yy186;\r
-                       } else {\r
-                               if (yych <= 'N') goto yy539;\r
-                               if (yych <= 'Q') goto yy186;\r
-                               if (yych <= 'R') goto yy540;\r
-                               goto yy541;\r
-                       }\r
-               } else {\r
-                       if (yych <= 'n') {\r
-                               if (yych == 'b') goto yy538;\r
-                               if (yych <= 'm') goto yy186;\r
-                               goto yy539;\r
-                       } else {\r
-                               if (yych <= 'q') goto yy186;\r
-                               if (yych <= 'r') goto yy540;\r
-                               if (yych <= 's') goto yy541;\r
-                               goto yy186;\r
-                       }\r
-               }\r
- yy133:\r
-               YYDEBUG(133, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= 'W') {\r
-                       if (yych == 'T') goto yy526;\r
-                       if (yych <= 'V') goto yy186;\r
-                       goto yy527;\r
-               } else {\r
-                       if (yych <= 't') {\r
-                               if (yych <= 's') goto yy186;\r
-                               goto yy526;\r
-                       } else {\r
-                               if (yych == 'w') goto yy527;\r
-                               goto yy186;\r
-                       }\r
-               }\r
- yy134:\r
-               YYDEBUG(134, *YYCURSOR);\r
-               yyaccept = 0;\r
-               yych = *(YYMARKER = ++YYCURSOR);\r
-               if (yych <= ';') {\r
-                       if (yych <= '"') {\r
-                               if (yych <= '!') goto yy186;\r
-                               goto yy518;\r
-                       } else {\r
-                               if (yych == '\'') goto yy519;\r
-                               goto yy186;\r
-                       }\r
-               } else {\r
-                       if (yych <= 'R') {\r
-                               if (yych <= '<') goto yy517;\r
-                               if (yych <= 'Q') goto yy186;\r
-                               goto yy520;\r
-                       } else {\r
-                               if (yych == 'r') goto yy520;\r
-                               goto yy186;\r
-                       }\r
-               }\r
- yy135:\r
-               YYDEBUG(135, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= 'O') {\r
-                       if (yych == 'L') goto yy507;\r
-                       if (yych <= 'N') goto yy186;\r
-                       goto yy508;\r
-               } else {\r
-                       if (yych <= 'l') {\r
-                               if (yych <= 'k') goto yy186;\r
-                               goto yy507;\r
-                       } else {\r
-                               if (yych == 'o') goto yy508;\r
-                               goto yy186;\r
-                       }\r
-               }\r
- yy136:\r
-               YYDEBUG(136, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= 'U') {\r
-                       if (yych == 'R') goto yy483;\r
-                       if (yych <= 'T') goto yy186;\r
-                       goto yy484;\r
-               } else {\r
-                       if (yych <= 'r') {\r
-                               if (yych <= 'q') goto yy186;\r
-                               goto yy483;\r
-                       } else {\r
-                               if (yych == 'u') goto yy484;\r
-                               goto yy186;\r
-                       }\r
-               }\r
- yy137:\r
-               YYDEBUG(137, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if ((yych = *YYCURSOR) <= '<') {\r
-                       if (yych == '-') goto yy479;\r
-               } else {\r
-                       if (yych <= '=') goto yy477;\r
-                       if (yych <= '>') goto yy481;\r
-               }\r
- yy138:\r
-               YYDEBUG(138, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1289 "Zend/zend_language_scanner.l"\r
-               {\r
-       return yytext[0];\r
- }\r
- #line 2504 "Zend/zend_language_scanner.c"\r
- yy139:\r
-               YYDEBUG(139, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               yych = *YYCURSOR;\r
-               goto yy476;\r
- yy140:\r
-               YYDEBUG(140, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1024 "Zend/zend_language_scanner.l"\r
-               {\r
-       zendlval->value.str.val = yytext; /* no copying - intentional */\r
-       zendlval->value.str.len = yyleng;\r
-       zendlval->type = IS_STRING;\r
-       HANDLE_NEWLINES(yytext, yyleng);\r
-       return T_WHITESPACE;\r
- }\r
- #line 2521 "Zend/zend_language_scanner.c"\r
- yy141:\r
-               YYDEBUG(141, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == ':') goto yy473;\r
-               goto yy138;\r
- yy142:\r
-               YYDEBUG(142, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(143, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1053 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_NS_SEPARATOR;\r
- }\r
- #line 2536 "Zend/zend_language_scanner.c"\r
- yy144:\r
-               YYDEBUG(144, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= 'E') {\r
-                       if (yych == 'A') goto yy461;\r
-                       if (yych <= 'D') goto yy186;\r
-                       goto yy462;\r
-               } else {\r
-                       if (yych <= 'a') {\r
-                               if (yych <= '`') goto yy186;\r
-                               goto yy461;\r
-                       } else {\r
-                               if (yych == 'e') goto yy462;\r
-                               goto yy186;\r
-                       }\r
-               }\r
- yy145:\r
-               YYDEBUG(145, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy458;\r
-               if (yych == 'a') goto yy458;\r
-               goto yy186;\r
- yy146:\r
-               YYDEBUG(146, *YYCURSOR);\r
-               yyaccept = 1;\r
-               yych = *(YYMARKER = ++YYCURSOR);\r
-               if (yych <= 'S') {\r
-                       if (yych <= 'D') {\r
-                               if (yych <= ' ') {\r
-                                       if (yych == '\t') goto yy379;\r
-                                       if (yych <= 0x1F) goto yy138;\r
-                                       goto yy379;\r
-                               } else {\r
-                                       if (yych <= '@') goto yy138;\r
-                                       if (yych == 'C') goto yy138;\r
-                                       goto yy379;\r
-                               }\r
-                       } else {\r
-                               if (yych <= 'I') {\r
-                                       if (yych == 'F') goto yy379;\r
-                                       if (yych <= 'H') goto yy138;\r
-                                       goto yy379;\r
-                               } else {\r
-                                       if (yych == 'O') goto yy379;\r
-                                       if (yych <= 'Q') goto yy138;\r
-                                       goto yy379;\r
-                               }\r
-                       }\r
-               } else {\r
-                       if (yych <= 'f') {\r
-                               if (yych <= 'b') {\r
-                                       if (yych == 'U') goto yy379;\r
-                                       if (yych <= '`') goto yy138;\r
-                                       goto yy379;\r
-                               } else {\r
-                                       if (yych == 'd') goto yy379;\r
-                                       if (yych <= 'e') goto yy138;\r
-                                       goto yy379;\r
-                               }\r
-                       } else {\r
-                               if (yych <= 'o') {\r
-                                       if (yych == 'i') goto yy379;\r
-                                       if (yych <= 'n') goto yy138;\r
-                                       goto yy379;\r
-                               } else {\r
-                                       if (yych <= 's') {\r
-                                               if (yych <= 'q') goto yy138;\r
-                                               goto yy379;\r
-                                       } else {\r
-                                               if (yych == 'u') goto yy379;\r
-                                               goto yy138;\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
- yy147:\r
-               YYDEBUG(147, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= 'S') {\r
-                       if (yych == 'N') goto yy370;\r
-                       if (yych <= 'R') goto yy186;\r
-                       goto yy371;\r
-               } else {\r
-                       if (yych <= 'n') {\r
-                               if (yych <= 'm') goto yy186;\r
-                               goto yy370;\r
-                       } else {\r
-                               if (yych == 's') goto yy371;\r
-                               goto yy186;\r
-                       }\r
-               }\r
- yy148:\r
-               YYDEBUG(148, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '_') goto yy296;\r
-               goto yy186;\r
- yy149:\r
-               YYDEBUG(149, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= '<') goto yy138;\r
-               if (yych <= '=') goto yy290;\r
-               if (yych <= '>') goto yy292;\r
-               goto yy138;\r
- yy150:\r
-               YYDEBUG(150, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'I') goto yy286;\r
-               if (yych == 'i') goto yy286;\r
-               goto yy186;\r
- yy151:\r
-               YYDEBUG(151, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '+') goto yy284;\r
-               if (yych == '=') goto yy282;\r
-               goto yy138;\r
- yy152:\r
-               YYDEBUG(152, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '=') goto yy279;\r
-               goto yy138;\r
- yy153:\r
-               YYDEBUG(153, *YYCURSOR);\r
-               yyaccept = 1;\r
-               yych = *(YYMARKER = ++YYCURSOR);\r
-               if (yych <= ';') {\r
-                       if (yych == '/') goto yy251;\r
-                       goto yy138;\r
-               } else {\r
-                       if (yych <= '<') goto yy249;\r
-                       if (yych <= '=') goto yy252;\r
-                       if (yych <= '>') goto yy254;\r
-                       goto yy138;\r
-               }\r
- yy154:\r
-               YYDEBUG(154, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= '<') goto yy138;\r
-               if (yych <= '=') goto yy245;\r
-               if (yych <= '>') goto yy243;\r
-               goto yy138;\r
- yy155:\r
-               YYDEBUG(155, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '=') goto yy241;\r
-               goto yy138;\r
- yy156:\r
-               YYDEBUG(156, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= '.') {\r
-                       if (yych == '*') goto yy233;\r
-                       goto yy138;\r
-               } else {\r
-                       if (yych <= '/') goto yy235;\r
-                       if (yych == '=') goto yy236;\r
-                       goto yy138;\r
-               }\r
- yy157:\r
-               YYDEBUG(157, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= '/') goto yy138;\r
-               if (yych <= '9') goto yy229;\r
-               if (yych == '=') goto yy231;\r
-               goto yy138;\r
- yy158:\r
-               YYDEBUG(158, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= '<') goto yy138;\r
-               if (yych <= '=') goto yy225;\r
-               if (yych <= '>') goto yy223;\r
-               goto yy138;\r
- yy159:\r
-               YYDEBUG(159, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '&') goto yy219;\r
-               if (yych == '=') goto yy221;\r
-               goto yy138;\r
- yy160:\r
-               YYDEBUG(160, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '=') goto yy217;\r
-               if (yych == '|') goto yy215;\r
-               goto yy138;\r
- yy161:\r
-               YYDEBUG(161, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '=') goto yy213;\r
-               goto yy138;\r
- yy162:\r
-               YYDEBUG(162, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'R') goto yy211;\r
-               if (yych == 'r') goto yy211;\r
-               goto yy186;\r
- yy163:\r
-               YYDEBUG(163, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'O') goto yy208;\r
-               if (yych == 'o') goto yy208;\r
-               goto yy186;\r
- yy164:\r
-               YYDEBUG(164, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= '_') {\r
-                       if (yych <= '@') goto yy138;\r
-                       if (yych <= 'Z') goto yy205;\r
-                       if (yych <= '^') goto yy138;\r
-                       goto yy205;\r
-               } else {\r
-                       if (yych <= '`') goto yy138;\r
-                       if (yych <= 'z') goto yy205;\r
-                       if (yych <= '~') goto yy138;\r
-                       goto yy205;\r
-               }\r
- yy165:\r
-               YYDEBUG(165, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               goto yy138;\r
- yy166:\r
-               YYDEBUG(166, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '>') goto yy201;\r
-               goto yy138;\r
- yy167:\r
-               YYDEBUG(167, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(168, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1294 "Zend/zend_language_scanner.l"\r
-               {\r
-       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);\r
-       return '{';\r
- }\r
- #line 2769 "Zend/zend_language_scanner.c"\r
- yy169:\r
-               YYDEBUG(169, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(170, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1306 "Zend/zend_language_scanner.l"\r
-               {\r
-       RESET_DOC_COMMENT();\r
-       if (!zend_stack_is_empty(&SCNG(state_stack))) {\r
-               yy_pop_state(TSRMLS_C);\r
-       }\r
-       return '}';\r
- }\r
- #line 2783 "Zend/zend_language_scanner.c"\r
- yy171:\r
-               YYDEBUG(171, *YYCURSOR);\r
-               yyaccept = 2;\r
-               yych = *(YYMARKER = ++YYCURSOR);\r
-               if (yych <= 'E') {\r
-                       if (yych <= '/') {\r
-                               if (yych == '.') goto yy187;\r
-                       } else {\r
-                               if (yych <= '9') goto yy190;\r
-                               if (yych >= 'E') goto yy192;\r
-                       }\r
-               } else {\r
-                       if (yych <= 'd') {\r
-                               if (yych == 'X') goto yy197;\r
-                       } else {\r
-                               if (yych <= 'e') goto yy192;\r
-                               if (yych == 'x') goto yy197;\r
-                       }\r
-               }\r
- yy172:\r
-               YYDEBUG(172, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1332 "Zend/zend_language_scanner.l"\r
-               {\r
-       if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */\r
-               zendlval->value.lval = strtol(yytext, NULL, 0);\r
-       } else {\r
-               errno = 0;\r
-               zendlval->value.lval = strtol(yytext, NULL, 0);\r
-               if (errno == ERANGE) { /* Overflow */\r
-                       if (yytext[0] == '0') { /* octal overflow */\r
-                               zendlval->value.dval = zend_oct_strtod(yytext, NULL);\r
-                       } else {\r
-                               zendlval->value.dval = zend_strtod(yytext, NULL);\r
-                       }\r
-                       zendlval->type = IS_DOUBLE;\r
-                       return T_DNUMBER;\r
-               }\r
-       }\r
\r
-       zendlval->type = IS_LONG;\r
-       return T_LNUMBER;\r
- }\r
- #line 2827 "Zend/zend_language_scanner.c"\r
- yy173:\r
-               YYDEBUG(173, *YYCURSOR);\r
-               yyaccept = 2;\r
-               yych = *(YYMARKER = ++YYCURSOR);\r
-               if (yych <= '9') {\r
-                       if (yych == '.') goto yy187;\r
-                       if (yych <= '/') goto yy172;\r
-                       goto yy190;\r
-               } else {\r
-                       if (yych <= 'E') {\r
-                               if (yych <= 'D') goto yy172;\r
-                               goto yy192;\r
-                       } else {\r
-                               if (yych == 'e') goto yy192;\r
-                               goto yy172;\r
-                       }\r
-               }\r
- yy174:\r
-               YYDEBUG(174, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               goto yy186;\r
- yy175:\r
-               YYDEBUG(175, *YYCURSOR);\r
-               ++YYCURSOR;\r
- yy176:\r
-               YYDEBUG(176, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1707 "Zend/zend_language_scanner.l"\r
-               {\r
-       while (YYCURSOR < YYLIMIT) {\r
-               switch (*YYCURSOR++) {\r
-                       case '\r':\r
-                               if (*YYCURSOR == '\n') {\r
-                                       YYCURSOR++;\r
-                               }\r
-                               /* fall through */\r
-                       case '\n':\r
-                               CG(zend_lineno)++;\r
-                               break;\r
-                       case '%':\r
-                               if (!CG(asp_tags)) {\r
-                                       continue;\r
-                               }\r
-                               /* fall through */\r
-                       case '?':\r
-                               if (*YYCURSOR == '>') {\r
-                                       YYCURSOR--;\r
-                                       break;\r
-                               }\r
-                               /* fall through */\r
-                       default:\r
-                               continue;\r
-               }\r
\r
-               break;\r
-       }\r
\r
-       yyleng = YYCURSOR - SCNG(yy_text);\r
\r
-       return T_COMMENT;\r
- }\r
- #line 2889 "Zend/zend_language_scanner.c"\r
- yy177:\r
-               YYDEBUG(177, *YYCURSOR);\r
-               ++YYCURSOR;\r
- yy178:\r
-               YYDEBUG(178, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1798 "Zend/zend_language_scanner.l"\r
-               {\r
-       register char *s, *t;\r
-       char *end;\r
-       int bprefix = (yytext[0] != '\'') ? 1 : 0;\r
\r
-       while (1) {\r
-               if (YYCURSOR < YYLIMIT) {\r
-                       if (*YYCURSOR == '\'') {\r
-                               YYCURSOR++;\r
-                               yyleng = YYCURSOR - SCNG(yy_text);\r
\r
-                               break;\r
-                       } else if (*YYCURSOR++ == '\\' && YYCURSOR < YYLIMIT) {\r
-                               YYCURSOR++;\r
-                       }\r
-               } else {\r
-                       yyleng = YYLIMIT - SCNG(yy_text);\r
\r
-                       /* Unclosed single quotes; treat similar to double quotes, but without a separate token\r
-                        * for ' (unrecognized by parser), instead of old flex fallback to "Unexpected character..."\r
-                        * rule, which continued in ST_IN_SCRIPTING state after the quote */\r
-                       return T_ENCAPSED_AND_WHITESPACE;\r
-               }\r
-       }\r
\r
-       zendlval->value.str.val = estrndup(yytext+bprefix+1, yyleng-bprefix-2);\r
-       zendlval->value.str.len = yyleng-bprefix-2;\r
-       zendlval->type = IS_STRING;\r
\r
-       /* convert escape sequences */\r
-       s = t = zendlval->value.str.val;\r
-       end = s+zendlval->value.str.len;\r
-       while (s<end) {\r
-               if (*s=='\\') {\r
-                       s++;\r
\r
-                       switch(*s) {\r
-                               case '\\':\r
-                               case '\'':\r
-                                       *t++ = *s;\r
-                                       zendlval->value.str.len--;\r
-                                       break;\r
-                               default:\r
-                                       *t++ = '\\';\r
-                                       *t++ = *s;\r
-                                       break;\r
-                       }\r
-               } else {\r
-                       *t++ = *s;\r
-               }\r
\r
-               if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {\r
-                       CG(zend_lineno)++;\r
-               }\r
-               s++;\r
-       }\r
-       *t = 0;\r
\r
- #ifdef ZEND_MULTIBYTE\r
-       if (SCNG(output_filter)) {\r
-               size_t sz = 0;\r
-               s = zendlval->value.str.val;\r
-               SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)s, (size_t)zendlval->value.str.len TSRMLS_CC);\r
-               zendlval->value.str.len = sz;\r
-               efree(s);\r
-       }\r
- #endif /* ZEND_MULTIBYTE */\r
-       return T_CONSTANT_ENCAPSED_STRING;\r
- }\r
- #line 2966 "Zend/zend_language_scanner.c"\r
- yy179:\r
-               YYDEBUG(179, *YYCURSOR);\r
-               ++YYCURSOR;\r
- yy180:\r
-               YYDEBUG(180, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1869 "Zend/zend_language_scanner.l"\r
-               {\r
-       int bprefix = (yytext[0] != '"') ? 1 : 0;\r
\r
-       while (YYCURSOR < YYLIMIT) {\r
-               switch (*YYCURSOR++) {\r
-                       case '"':\r
-                               yyleng = YYCURSOR - SCNG(yy_text);\r
-                               zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"' TSRMLS_CC);\r
-                               return T_CONSTANT_ENCAPSED_STRING;\r
-                       case '$':\r
-                               if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {\r
-                                       break;\r
-                               }\r
-                               continue;\r
-                       case '{':\r
-                               if (*YYCURSOR == '$') {\r
-                                       break;\r
-                               }\r
-                               continue;\r
-                       case '\\':\r
-                               if (YYCURSOR < YYLIMIT) {\r
-                                       YYCURSOR++;\r
-                               }\r
-                               /* fall through */\r
-                       default:\r
-                               continue;\r
-               }\r
\r
-               YYCURSOR--;\r
-               break;\r
-       }\r
\r
-       /* Remember how much was scanned to save rescanning */\r
-       SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng);\r
\r
-       YYCURSOR = SCNG(yy_text) + yyleng;\r
\r
-       BEGIN(ST_DOUBLE_QUOTES);\r
-       return '"';\r
- }\r
- #line 3014 "Zend/zend_language_scanner.c"\r
- yy181:\r
-               YYDEBUG(181, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(182, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1960 "Zend/zend_language_scanner.l"\r
-               {\r
-       BEGIN(ST_BACKQUOTE);\r
-       return '`';\r
- }\r
- #line 3025 "Zend/zend_language_scanner.c"\r
- yy183:\r
-               YYDEBUG(183, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(184, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 2218 "Zend/zend_language_scanner.l"\r
-               {\r
-       if (YYCURSOR > YYLIMIT) {\r
-               return 0;\r
-       }\r
\r
-       zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);\r
-       goto restart;\r
- }\r
- #line 3040 "Zend/zend_language_scanner.c"\r
- yy185:\r
-               YYDEBUG(185, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
- yy186:\r
-               YYDEBUG(186, *YYCURSOR);\r
-               if (yybm[0+yych] & 8) {\r
-                       goto yy185;\r
-               }\r
-               goto yy124;\r
- yy187:\r
-               YYDEBUG(187, *YYCURSOR);\r
-               yyaccept = 3;\r
-               YYMARKER = ++YYCURSOR;\r
-               YYFILL(3);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(188, *YYCURSOR);\r
-               if (yybm[0+yych] & 16) {\r
-                       goto yy187;\r
-               }\r
-               if (yych == 'E') goto yy192;\r
-               if (yych == 'e') goto yy192;\r
- yy189:\r
-               YYDEBUG(189, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1397 "Zend/zend_language_scanner.l"\r
-               {\r
-       zendlval->value.dval = zend_strtod(yytext, NULL);\r
-       zendlval->type = IS_DOUBLE;\r
-       return T_DNUMBER;\r
- }\r
- #line 3073 "Zend/zend_language_scanner.c"\r
- yy190:\r
-               YYDEBUG(190, *YYCURSOR);\r
-               yyaccept = 2;\r
-               YYMARKER = ++YYCURSOR;\r
-               YYFILL(3);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(191, *YYCURSOR);\r
-               if (yych <= '9') {\r
-                       if (yych == '.') goto yy187;\r
-                       if (yych <= '/') goto yy172;\r
-                       goto yy190;\r
-               } else {\r
-                       if (yych <= 'E') {\r
-                               if (yych <= 'D') goto yy172;\r
-                       } else {\r
-                               if (yych != 'e') goto yy172;\r
-                       }\r
-               }\r
- yy192:\r
-               YYDEBUG(192, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= ',') {\r
-                       if (yych == '+') goto yy194;\r
-               } else {\r
-                       if (yych <= '-') goto yy194;\r
-                       if (yych <= '/') goto yy193;\r
-                       if (yych <= '9') goto yy195;\r
-               }\r
- yy193:\r
-               YYDEBUG(193, *YYCURSOR);\r
-               YYCURSOR = YYMARKER;\r
-               if (yyaccept <= 2) {\r
-                       if (yyaccept <= 1) {\r
-                               if (yyaccept <= 0) {\r
-                                       goto yy124;\r
-                               } else {\r
-                                       goto yy138;\r
-                               }\r
-                       } else {\r
-                               goto yy172;\r
-                       }\r
-               } else {\r
-                       if (yyaccept <= 4) {\r
-                               if (yyaccept <= 3) {\r
-                                       goto yy189;\r
-                               } else {\r
-                                       goto yy234;\r
-                               }\r
-                       } else {\r
-                               goto yy250;\r
-                       }\r
-               }\r
- yy194:\r
-               YYDEBUG(194, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= '/') goto yy193;\r
-               if (yych >= ':') goto yy193;\r
- yy195:\r
-               YYDEBUG(195, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(196, *YYCURSOR);\r
-               if (yych <= '/') goto yy189;\r
-               if (yych <= '9') goto yy195;\r
-               goto yy189;\r
- yy197:\r
-               YYDEBUG(197, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yybm[0+yych] & 32) {\r
-                       goto yy198;\r
-               }\r
-               goto yy193;\r
- yy198:\r
-               YYDEBUG(198, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(199, *YYCURSOR);\r
-               if (yybm[0+yych] & 32) {\r
-                       goto yy198;\r
-               }\r
-               YYDEBUG(200, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1353 "Zend/zend_language_scanner.l"\r
-               {\r
-       char *hex = yytext + 2; /* Skip "0x" */\r
-       int len = yyleng - 2;\r
\r
-       /* Skip any leading 0s */\r
-       while (*hex == '0') {\r
-               hex++;\r
-               len--;\r
-       }\r
\r
-       if (len < SIZEOF_LONG * 2 || (len == SIZEOF_LONG * 2 && *hex <= '7')) {\r
-               if (len == 0) {\r
-                       zendlval->value.lval = 0;\r
-               } else {\r
-                       zendlval->value.lval = strtol(hex, NULL, 16);\r
-               }\r
-               zendlval->type = IS_LONG;\r
-               return T_LNUMBER;\r
-       } else {\r
-               zendlval->value.dval = zend_hex_strtod(hex, NULL);\r
-               zendlval->type = IS_DOUBLE;\r
-               return T_DNUMBER;\r
-       }\r
- }\r
- #line 3183 "Zend/zend_language_scanner.c"\r
- yy201:\r
-               YYDEBUG(201, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if ((yych = *YYCURSOR) == '\n') goto yy203;\r
-               if (yych == '\r') goto yy204;\r
- yy202:\r
-               YYDEBUG(202, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1775 "Zend/zend_language_scanner.l"\r
-               {\r
-       zendlval->value.str.val = yytext; /* no copying - intentional */\r
-       zendlval->value.str.len = yyleng;\r
-       zendlval->type = IS_STRING;\r
-       BEGIN(INITIAL);\r
-       return T_CLOSE_TAG;  /* implicit ';' at php-end tag */\r
- }\r
- #line 3200 "Zend/zend_language_scanner.c"\r
- yy203:\r
-               YYDEBUG(203, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               goto yy202;\r
- yy204:\r
-               YYDEBUG(204, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '\n') goto yy203;\r
-               goto yy202;\r
- yy205:\r
-               YYDEBUG(205, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(206, *YYCURSOR);\r
-               if (yych <= '^') {\r
-                       if (yych <= '9') {\r
-                               if (yych >= '0') goto yy205;\r
-                       } else {\r
-                               if (yych <= '@') goto yy207;\r
-                               if (yych <= 'Z') goto yy205;\r
-                       }\r
-               } else {\r
-                       if (yych <= '`') {\r
-                               if (yych <= '_') goto yy205;\r
-                       } else {\r
-                               if (yych <= 'z') goto yy205;\r
-                               if (yych >= 0x7F) goto yy205;\r
-                       }\r
-               }\r
- yy207:\r
-               YYDEBUG(207, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1677 "Zend/zend_language_scanner.l"\r
-               {\r
-       zend_copy_value(zendlval, (yytext+1), (yyleng-1));\r
-       zendlval->type = IS_STRING;\r
-       return T_VARIABLE;\r
- }\r
- #line 3240 "Zend/zend_language_scanner.c"\r
- yy208:\r
-               YYDEBUG(208, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'R') goto yy209;\r
-               if (yych != 'r') goto yy186;\r
- yy209:\r
-               YYDEBUG(209, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(210, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1277 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_LOGICAL_XOR;\r
- }\r
- #line 3258 "Zend/zend_language_scanner.c"\r
- yy211:\r
-               YYDEBUG(211, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(212, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1269 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_LOGICAL_OR;\r
- }\r
- #line 3271 "Zend/zend_language_scanner.c"\r
- yy213:\r
-               YYDEBUG(213, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(214, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1257 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_XOR_EQUAL;\r
- }\r
- #line 3281 "Zend/zend_language_scanner.c"\r
- yy215:\r
-               YYDEBUG(215, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(216, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1261 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_BOOLEAN_OR;\r
- }\r
- #line 3291 "Zend/zend_language_scanner.c"\r
- yy217:\r
-               YYDEBUG(217, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(218, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1253 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_OR_EQUAL;\r
- }\r
- #line 3301 "Zend/zend_language_scanner.c"\r
- yy219:\r
-               YYDEBUG(219, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(220, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1265 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_BOOLEAN_AND;\r
- }\r
- #line 3311 "Zend/zend_language_scanner.c"\r
- yy221:\r
-               YYDEBUG(221, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(222, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1249 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_AND_EQUAL;\r
- }\r
- #line 3321 "Zend/zend_language_scanner.c"\r
- yy223:\r
-               YYDEBUG(223, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if ((yych = *YYCURSOR) == '\n') goto yy227;\r
-               if (yych == '\r') goto yy228;\r
- yy224:\r
-               YYDEBUG(224, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1784 "Zend/zend_language_scanner.l"\r
-               {\r
-       if (CG(asp_tags)) {\r
-               BEGIN(INITIAL);\r
-               zendlval->value.str.len = yyleng;\r
-               zendlval->type = IS_STRING;\r
-               zendlval->value.str.val = yytext; /* no copying - intentional */\r
-               return T_CLOSE_TAG;  /* implicit ';' at php-end tag */\r
-       } else {\r
-               yyless(1);\r
-               return yytext[0];\r
-       }\r
- }\r
- #line 3343 "Zend/zend_language_scanner.c"\r
- yy225:\r
-               YYDEBUG(225, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(226, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1237 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_MOD_EQUAL;\r
- }\r
- #line 3353 "Zend/zend_language_scanner.c"\r
- yy227:\r
-               YYDEBUG(227, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               goto yy224;\r
- yy228:\r
-               YYDEBUG(228, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '\n') goto yy227;\r
-               goto yy224;\r
- yy229:\r
-               YYDEBUG(229, *YYCURSOR);\r
-               yyaccept = 3;\r
-               YYMARKER = ++YYCURSOR;\r
-               YYFILL(3);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(230, *YYCURSOR);\r
-               if (yych <= 'D') {\r
-                       if (yych <= '/') goto yy189;\r
-                       if (yych <= '9') goto yy229;\r
-                       goto yy189;\r
-               } else {\r
-                       if (yych <= 'E') goto yy192;\r
-                       if (yych == 'e') goto yy192;\r
-                       goto yy189;\r
-               }\r
- yy231:\r
-               YYDEBUG(231, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(232, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1233 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_CONCAT_EQUAL;\r
- }\r
- #line 3388 "Zend/zend_language_scanner.c"\r
- yy233:\r
-               YYDEBUG(233, *YYCURSOR);\r
-               yyaccept = 4;\r
-               yych = *(YYMARKER = ++YYCURSOR);\r
-               if (yych == '*') goto yy238;\r
- yy234:\r
-               YYDEBUG(234, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1741 "Zend/zend_language_scanner.l"\r
-               {\r
-       int doc_com;\r
\r
-       if (yyleng > 2) {\r
-               doc_com = 1;\r
-               RESET_DOC_COMMENT();\r
-       } else {\r
-               doc_com = 0;\r
-       }\r
\r
-       while (YYCURSOR < YYLIMIT) {\r
-               if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {\r
-                       break;\r
-               }\r
-       }\r
\r
-       if (YYCURSOR < YYLIMIT) {\r
-               YYCURSOR++;\r
-       } else {\r
-               zend_error(E_COMPILE_WARNING, "Unterminated comment starting line %d", CG(zend_lineno));\r
-       }\r
\r
-       yyleng = YYCURSOR - SCNG(yy_text);\r
-       HANDLE_NEWLINES(yytext, yyleng);\r
\r
-       if (doc_com) {\r
-               CG(doc_comment) = estrndup(yytext, yyleng);\r
-               CG(doc_comment_len) = yyleng;\r
-               return T_DOC_COMMENT;\r
-       }\r
\r
-       return T_COMMENT;\r
- }\r
- #line 3431 "Zend/zend_language_scanner.c"\r
- yy235:\r
-               YYDEBUG(235, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               goto yy176;\r
- yy236:\r
-               YYDEBUG(236, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(237, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1229 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_DIV_EQUAL;\r
- }\r
- #line 3445 "Zend/zend_language_scanner.c"\r
- yy238:\r
-               YYDEBUG(238, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yybm[0+yych] & 64) {\r
-                       goto yy239;\r
-               }\r
-               goto yy193;\r
- yy239:\r
-               YYDEBUG(239, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(240, *YYCURSOR);\r
-               if (yybm[0+yych] & 64) {\r
-                       goto yy239;\r
-               }\r
-               goto yy234;\r
- yy241:\r
-               YYDEBUG(241, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(242, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1225 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_MUL_EQUAL;\r
- }\r
- #line 3472 "Zend/zend_language_scanner.c"\r
- yy243:\r
-               YYDEBUG(243, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if ((yych = *YYCURSOR) == '=') goto yy247;\r
-               YYDEBUG(244, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1285 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_SR;\r
- }\r
- #line 3483 "Zend/zend_language_scanner.c"\r
- yy245:\r
-               YYDEBUG(245, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(246, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1213 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_IS_GREATER_OR_EQUAL;\r
- }\r
- #line 3493 "Zend/zend_language_scanner.c"\r
- yy247:\r
-               YYDEBUG(247, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(248, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1245 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_SR_EQUAL;\r
- }\r
- #line 3503 "Zend/zend_language_scanner.c"\r
- yy249:\r
-               YYDEBUG(249, *YYCURSOR);\r
-               yyaccept = 5;\r
-               yych = *(YYMARKER = ++YYCURSOR);\r
-               if (yych <= ';') goto yy250;\r
-               if (yych <= '<') goto yy265;\r
-               if (yych <= '=') goto yy263;\r
- yy250:\r
-               YYDEBUG(250, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1281 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_SL;\r
- }\r
- #line 3518 "Zend/zend_language_scanner.c"\r
- yy251:\r
-               YYDEBUG(251, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'S') goto yy256;\r
-               if (yych == 's') goto yy256;\r
-               goto yy193;\r
- yy252:\r
-               YYDEBUG(252, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(253, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1209 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_IS_SMALLER_OR_EQUAL;\r
- }\r
- #line 3534 "Zend/zend_language_scanner.c"\r
- yy254:\r
-               YYDEBUG(254, *YYCURSOR);\r
-               ++YYCURSOR;\r
- yy255:\r
-               YYDEBUG(255, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1205 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_IS_NOT_EQUAL;\r
- }\r
- #line 3545 "Zend/zend_language_scanner.c"\r
- yy256:\r
-               YYDEBUG(256, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'C') goto yy257;\r
-               if (yych != 'c') goto yy193;\r
- yy257:\r
-               YYDEBUG(257, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'R') goto yy258;\r
-               if (yych != 'r') goto yy193;\r
- yy258:\r
-               YYDEBUG(258, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'I') goto yy259;\r
-               if (yych != 'i') goto yy193;\r
- yy259:\r
-               YYDEBUG(259, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'P') goto yy260;\r
-               if (yych != 'p') goto yy193;\r
- yy260:\r
-               YYDEBUG(260, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy261;\r
-               if (yych != 't') goto yy193;\r
- yy261:\r
-               YYDEBUG(261, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(3);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(262, *YYCURSOR);\r
-               if (yych <= '\r') {\r
-                       if (yych <= 0x08) goto yy193;\r
-                       if (yych <= '\n') goto yy261;\r
-                       if (yych <= '\f') goto yy193;\r
-                       goto yy261;\r
-               } else {\r
-                       if (yych <= ' ') {\r
-                               if (yych <= 0x1F) goto yy193;\r
-                               goto yy261;\r
-                       } else {\r
-                               if (yych == '>') goto yy201;\r
-                               goto yy193;\r
-                       }\r
-               }\r
- yy263:\r
-               YYDEBUG(263, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(264, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1241 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_SL_EQUAL;\r
- }\r
- #line 3600 "Zend/zend_language_scanner.c"\r
- yy265:\r
-               YYDEBUG(265, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(2);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(266, *YYCURSOR);\r
-               if (yybm[0+yych] & 128) {\r
-                       goto yy265;\r
-               }\r
-               if (yych <= 'Z') {\r
-                       if (yych <= '&') {\r
-                               if (yych == '"') goto yy270;\r
-                               goto yy193;\r
-                       } else {\r
-                               if (yych <= '\'') goto yy269;\r
-                               if (yych <= '@') goto yy193;\r
-                       }\r
-               } else {\r
-                       if (yych <= '`') {\r
-                               if (yych != '_') goto yy193;\r
-                       } else {\r
-                               if (yych <= 'z') goto yy267;\r
-                               if (yych <= '~') goto yy193;\r
-                       }\r
-               }\r
- yy267:\r
-               YYDEBUG(267, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(2);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(268, *YYCURSOR);\r
-               if (yych <= '@') {\r
-                       if (yych <= '\f') {\r
-                               if (yych == '\n') goto yy274;\r
-                               goto yy193;\r
-                       } else {\r
-                               if (yych <= '\r') goto yy276;\r
-                               if (yych <= '/') goto yy193;\r
-                               if (yych <= '9') goto yy267;\r
-                               goto yy193;\r
-                       }\r
-               } else {\r
-                       if (yych <= '_') {\r
-                               if (yych <= 'Z') goto yy267;\r
-                               if (yych <= '^') goto yy193;\r
-                               goto yy267;\r
-                       } else {\r
-                               if (yych <= '`') goto yy193;\r
-                               if (yych <= 'z') goto yy267;\r
-                               if (yych <= '~') goto yy193;\r
-                               goto yy267;\r
-                       }\r
-               }\r
- yy269:\r
-               YYDEBUG(269, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '\'') goto yy193;\r
-               if (yych <= '/') goto yy278;\r
-               if (yych <= '9') goto yy193;\r
-               goto yy278;\r
- yy270:\r
-               YYDEBUG(270, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '"') goto yy193;\r
-               if (yych <= '/') goto yy272;\r
-               if (yych <= '9') goto yy193;\r
-               goto yy272;\r
- yy271:\r
-               YYDEBUG(271, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(3);\r
-               yych = *YYCURSOR;\r
- yy272:\r
-               YYDEBUG(272, *YYCURSOR);\r
-               if (yych <= 'Z') {\r
-                       if (yych <= '/') {\r
-                               if (yych != '"') goto yy193;\r
-                       } else {\r
-                               if (yych <= '9') goto yy271;\r
-                               if (yych <= '@') goto yy193;\r
-                               goto yy271;\r
-                       }\r
-               } else {\r
-                       if (yych <= '`') {\r
-                               if (yych == '_') goto yy271;\r
-                               goto yy193;\r
-                       } else {\r
-                               if (yych <= 'z') goto yy271;\r
-                               if (yych <= '~') goto yy193;\r
-                               goto yy271;\r
-                       }\r
-               }\r
- yy273:\r
-               YYDEBUG(273, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '\n') goto yy274;\r
-               if (yych == '\r') goto yy276;\r
-               goto yy193;\r
- yy274:\r
-               YYDEBUG(274, *YYCURSOR);\r
-               ++YYCURSOR;\r
- yy275:\r
-               YYDEBUG(275, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1911 "Zend/zend_language_scanner.l"\r
-               {\r
-       char *s;\r
-       int bprefix = (yytext[0] != '<') ? 1 : 0;\r
\r
-       /* save old heredoc label */\r
-       Z_STRVAL_P(zendlval) = CG(heredoc);\r
-       Z_STRLEN_P(zendlval) = CG(heredoc_len);\r
\r
-       CG(zend_lineno)++;\r
-       CG(heredoc_len) = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);\r
-       s = yytext+bprefix+3;\r
-       while ((*s == ' ') || (*s == '\t')) {\r
-               s++;\r
-               CG(heredoc_len)--;\r
-       }\r
\r
-       if (*s == '\'') {\r
-               s++;\r
-               CG(heredoc_len) -= 2;\r
\r
-               BEGIN(ST_NOWDOC);\r
-       } else {\r
-               if (*s == '"') {\r
-                       s++;\r
-                       CG(heredoc_len) -= 2;\r
-               }\r
\r
-               BEGIN(ST_HEREDOC);\r
-       }\r
\r
-       CG(heredoc) = estrndup(s, CG(heredoc_len));\r
\r
-       /* Check for ending label on the next line */\r
-       if (CG(heredoc_len) < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, CG(heredoc_len))) {\r
-               YYCTYPE *end = YYCURSOR + CG(heredoc_len);\r
\r
-               if (*end == ';') {\r
-                       end++;\r
-               }\r
\r
-               if (*end == '\n' || *end == '\r') {\r
-                       BEGIN(ST_END_HEREDOC);\r
-               }\r
-       }\r
\r
-       return T_START_HEREDOC;\r
- }\r
- #line 3753 "Zend/zend_language_scanner.c"\r
- yy276:\r
-               YYDEBUG(276, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '\n') goto yy274;\r
-               goto yy275;\r
- yy277:\r
-               YYDEBUG(277, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(3);\r
-               yych = *YYCURSOR;\r
- yy278:\r
-               YYDEBUG(278, *YYCURSOR);\r
-               if (yych <= 'Z') {\r
-                       if (yych <= '/') {\r
-                               if (yych == '\'') goto yy273;\r
-                               goto yy193;\r
-                       } else {\r
-                               if (yych <= '9') goto yy277;\r
-                               if (yych <= '@') goto yy193;\r
-                               goto yy277;\r
-                       }\r
-               } else {\r
-                       if (yych <= '`') {\r
-                               if (yych == '_') goto yy277;\r
-                               goto yy193;\r
-                       } else {\r
-                               if (yych <= 'z') goto yy277;\r
-                               if (yych <= '~') goto yy193;\r
-                               goto yy277;\r
-                       }\r
-               }\r
- yy279:\r
-               YYDEBUG(279, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych != '=') goto yy255;\r
-               YYDEBUG(280, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(281, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1197 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_IS_NOT_IDENTICAL;\r
- }\r
- #line 3797 "Zend/zend_language_scanner.c"\r
- yy282:\r
-               YYDEBUG(282, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(283, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1217 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_PLUS_EQUAL;\r
- }\r
- #line 3807 "Zend/zend_language_scanner.c"\r
- yy284:\r
-               YYDEBUG(284, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(285, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1185 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_INC;\r
- }\r
- #line 3817 "Zend/zend_language_scanner.c"\r
- yy286:\r
-               YYDEBUG(286, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'S') goto yy287;\r
-               if (yych != 's') goto yy186;\r
- yy287:\r
-               YYDEBUG(287, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy288;\r
-               if (yych != 't') goto yy186;\r
- yy288:\r
-               YYDEBUG(288, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(289, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1177 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_LIST;\r
- }\r
- #line 3840 "Zend/zend_language_scanner.c"\r
- yy290:\r
-               YYDEBUG(290, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if ((yych = *YYCURSOR) == '=') goto yy294;\r
-               YYDEBUG(291, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1201 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_IS_EQUAL;\r
- }\r
- #line 3851 "Zend/zend_language_scanner.c"\r
- yy292:\r
-               YYDEBUG(292, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(293, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1173 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_DOUBLE_ARROW;\r
- }\r
- #line 3861 "Zend/zend_language_scanner.c"\r
- yy294:\r
-               YYDEBUG(294, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(295, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1193 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_IS_IDENTICAL;\r
- }\r
- #line 3871 "Zend/zend_language_scanner.c"\r
- yy296:\r
-               YYDEBUG(296, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               YYDEBUG(-1, yych);\r
-               switch (yych) {\r
-               case 'C':\r
-               case 'c':       goto yy298;\r
-               case 'D':\r
-               case 'd':       goto yy302;\r
-               case 'F':\r
-               case 'f':       goto yy299;\r
-               case 'H':\r
-               case 'h':       goto yy297;\r
-               case 'L':\r
-               case 'l':       goto yy301;\r
-               case 'M':\r
-               case 'm':       goto yy300;\r
-               case 'N':\r
-               case 'n':       goto yy303;\r
-               default:        goto yy186;\r
-               }\r
- yy297:\r
-               YYDEBUG(297, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy357;\r
-               if (yych == 'a') goto yy357;\r
-               goto yy186;\r
- yy298:\r
-               YYDEBUG(298, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'L') goto yy350;\r
-               if (yych == 'l') goto yy350;\r
-               goto yy186;\r
- yy299:\r
-               YYDEBUG(299, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= 'U') {\r
-                       if (yych == 'I') goto yy334;\r
-                       if (yych <= 'T') goto yy186;\r
-                       goto yy335;\r
-               } else {\r
-                       if (yych <= 'i') {\r
-                               if (yych <= 'h') goto yy186;\r
-                               goto yy334;\r
-                       } else {\r
-                               if (yych == 'u') goto yy335;\r
-                               goto yy186;\r
-                       }\r
-               }\r
- yy300:\r
-               YYDEBUG(300, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy326;\r
-               if (yych == 'e') goto yy326;\r
-               goto yy186;\r
- yy301:\r
-               YYDEBUG(301, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'I') goto yy320;\r
-               if (yych == 'i') goto yy320;\r
-               goto yy186;\r
- yy302:\r
-               YYDEBUG(302, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'I') goto yy315;\r
-               if (yych == 'i') goto yy315;\r
-               goto yy186;\r
- yy303:\r
-               YYDEBUG(303, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy304;\r
-               if (yych != 'a') goto yy186;\r
- yy304:\r
-               YYDEBUG(304, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'M') goto yy305;\r
-               if (yych != 'm') goto yy186;\r
- yy305:\r
-               YYDEBUG(305, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy306;\r
-               if (yych != 'e') goto yy186;\r
- yy306:\r
-               YYDEBUG(306, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'S') goto yy307;\r
-               if (yych != 's') goto yy186;\r
- yy307:\r
-               YYDEBUG(307, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'P') goto yy308;\r
-               if (yych != 'p') goto yy186;\r
- yy308:\r
-               YYDEBUG(308, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy309;\r
-               if (yych != 'a') goto yy186;\r
- yy309:\r
-               YYDEBUG(309, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'C') goto yy310;\r
-               if (yych != 'c') goto yy186;\r
- yy310:\r
-               YYDEBUG(310, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy311;\r
-               if (yych != 'e') goto yy186;\r
- yy311:\r
-               YYDEBUG(311, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych != '_') goto yy186;\r
-               YYDEBUG(312, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych != '_') goto yy186;\r
-               YYDEBUG(313, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(314, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1501 "Zend/zend_language_scanner.l"\r
-               {\r
-       if (CG(current_namespace)) {\r
-               *zendlval = *CG(current_namespace);\r
-               zval_copy_ctor(zendlval);\r
-       } else {\r
-               ZVAL_EMPTY_STRING(zendlval);\r
-       }\r
-       return T_NS_C;\r
- }\r
- #line 4003 "Zend/zend_language_scanner.c"\r
- yy315:\r
-               YYDEBUG(315, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'R') goto yy316;\r
-               if (yych != 'r') goto yy186;\r
- yy316:\r
-               YYDEBUG(316, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych != '_') goto yy186;\r
-               YYDEBUG(317, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych != '_') goto yy186;\r
-               YYDEBUG(318, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(319, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1474 "Zend/zend_language_scanner.l"\r
-               {\r
-       char *filename = zend_get_compiled_filename(TSRMLS_C);\r
-       const size_t filename_len = strlen(filename);\r
-       char *dirname;\r
\r
-       if (!filename) {\r
-               filename = "";\r
-       }\r
\r
-       dirname = estrndup(filename, filename_len);\r
-       zend_dirname(dirname, filename_len);\r
\r
-       if (strcmp(dirname, ".") == 0) {\r
-               dirname = erealloc(dirname, MAXPATHLEN);\r
- #if HAVE_GETCWD\r
-               VCWD_GETCWD(dirname, MAXPATHLEN);\r
- #elif HAVE_GETWD\r
-               VCWD_GETWD(dirname);\r
- #endif\r
-       }\r
\r
-       zendlval->value.str.len = strlen(dirname);\r
-       zendlval->value.str.val = dirname;\r
-       zendlval->type = IS_STRING;\r
-       return T_DIR;\r
- }\r
- #line 4050 "Zend/zend_language_scanner.c"\r
- yy320:\r
-               YYDEBUG(320, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'N') goto yy321;\r
-               if (yych != 'n') goto yy186;\r
- yy321:\r
-               YYDEBUG(321, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy322;\r
-               if (yych != 'e') goto yy186;\r
- yy322:\r
-               YYDEBUG(322, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych != '_') goto yy186;\r
-               YYDEBUG(323, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych != '_') goto yy186;\r
-               YYDEBUG(324, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(325, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1456 "Zend/zend_language_scanner.l"\r
-               {\r
-       zendlval->value.lval = CG(zend_lineno);\r
-       zendlval->type = IS_LONG;\r
-       return T_LINE;\r
- }\r
- #line 4081 "Zend/zend_language_scanner.c"\r
- yy326:\r
-               YYDEBUG(326, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy327;\r
-               if (yych != 't') goto yy186;\r
- yy327:\r
-               YYDEBUG(327, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'H') goto yy328;\r
-               if (yych != 'h') goto yy186;\r
- yy328:\r
-               YYDEBUG(328, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'O') goto yy329;\r
-               if (yych != 'o') goto yy186;\r
- yy329:\r
-               YYDEBUG(329, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'D') goto yy330;\r
-               if (yych != 'd') goto yy186;\r
- yy330:\r
-               YYDEBUG(330, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych != '_') goto yy186;\r
-               YYDEBUG(331, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych != '_') goto yy186;\r
-               YYDEBUG(332, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(333, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1435 "Zend/zend_language_scanner.l"\r
-               {\r
-       char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL;\r
-       char *func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL;\r
-       size_t len = 0;\r
\r
-       if (class_name) {\r
-               len += strlen(class_name) + 2;\r
-       }\r
-       if (func_name) {\r
-               len += strlen(func_name);\r
-       }\r
\r
-       zendlval->value.str.len = zend_spprintf(&zendlval->value.str.val, 0, "%s%s%s", \r
-               class_name ? class_name : "",\r
-               class_name && func_name ? "::" : "",\r
-               func_name ? func_name : ""\r
-               );\r
-       zendlval->type = IS_STRING;\r
-       return T_METHOD_C;\r
- }\r
- #line 4137 "Zend/zend_language_scanner.c"\r
- yy334:\r
-               YYDEBUG(334, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'L') goto yy345;\r
-               if (yych == 'l') goto yy345;\r
-               goto yy186;\r
- yy335:\r
-               YYDEBUG(335, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'N') goto yy336;\r
-               if (yych != 'n') goto yy186;\r
- yy336:\r
-               YYDEBUG(336, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'C') goto yy337;\r
-               if (yych != 'c') goto yy186;\r
- yy337:\r
-               YYDEBUG(337, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy338;\r
-               if (yych != 't') goto yy186;\r
- yy338:\r
-               YYDEBUG(338, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'I') goto yy339;\r
-               if (yych != 'i') goto yy186;\r
- yy339:\r
-               YYDEBUG(339, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'O') goto yy340;\r
-               if (yych != 'o') goto yy186;\r
- yy340:\r
-               YYDEBUG(340, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'N') goto yy341;\r
-               if (yych != 'n') goto yy186;\r
- yy341:\r
-               YYDEBUG(341, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych != '_') goto yy186;\r
-               YYDEBUG(342, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych != '_') goto yy186;\r
-               YYDEBUG(343, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(344, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1419 "Zend/zend_language_scanner.l"\r
-               {\r
-       char *func_name = NULL;\r
\r
-       if (CG(active_op_array)) {\r
-               func_name = CG(active_op_array)->function_name;\r
-       }\r
\r
-       if (!func_name) {\r
-               func_name = "";\r
-       }\r
-       zendlval->value.str.len = strlen(func_name);\r
-       zendlval->value.str.val = estrndup(func_name, zendlval->value.str.len);\r
-       zendlval->type = IS_STRING;\r
-       return T_FUNC_C;\r
- }\r
- #line 4204 "Zend/zend_language_scanner.c"\r
- yy345:\r
-               YYDEBUG(345, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy346;\r
-               if (yych != 'e') goto yy186;\r
- yy346:\r
-               YYDEBUG(346, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych != '_') goto yy186;\r
-               YYDEBUG(347, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych != '_') goto yy186;\r
-               YYDEBUG(348, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(349, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1462 "Zend/zend_language_scanner.l"\r
-               {\r
-       char *filename = zend_get_compiled_filename(TSRMLS_C);\r
\r
-       if (!filename) {\r
-               filename = "";\r
-       }\r
-       zendlval->value.str.len = strlen(filename);\r
-       zendlval->value.str.val = estrndup(filename, zendlval->value.str.len);\r
-       zendlval->type = IS_STRING;\r
-       return T_FILE;\r
- }\r
- #line 4236 "Zend/zend_language_scanner.c"\r
- yy350:\r
-               YYDEBUG(350, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy351;\r
-               if (yych != 'a') goto yy186;\r
- yy351:\r
-               YYDEBUG(351, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'S') goto yy352;\r
-               if (yych != 's') goto yy186;\r
- yy352:\r
-               YYDEBUG(352, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'S') goto yy353;\r
-               if (yych != 's') goto yy186;\r
- yy353:\r
-               YYDEBUG(353, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych != '_') goto yy186;\r
-               YYDEBUG(354, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych != '_') goto yy186;\r
-               YYDEBUG(355, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(356, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1403 "Zend/zend_language_scanner.l"\r
-               {\r
-       char *class_name = NULL;\r
\r
-       if (CG(active_class_entry)) {\r
-               class_name = CG(active_class_entry)->name;\r
-       }\r
\r
-       if (!class_name) {\r
-               class_name = "";\r
-       }\r
-       zendlval->value.str.len = strlen(class_name);\r
-       zendlval->value.str.val = estrndup(class_name, zendlval->value.str.len);\r
-       zendlval->type = IS_STRING;\r
-       return T_CLASS_C;\r
- }\r
- #line 4282 "Zend/zend_language_scanner.c"\r
- yy357:\r
-               YYDEBUG(357, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'L') goto yy358;\r
-               if (yych != 'l') goto yy186;\r
- yy358:\r
-               YYDEBUG(358, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy359;\r
-               if (yych != 't') goto yy186;\r
- yy359:\r
-               YYDEBUG(359, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych != '_') goto yy186;\r
-               YYDEBUG(360, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'C') goto yy361;\r
-               if (yych != 'c') goto yy186;\r
- yy361:\r
-               YYDEBUG(361, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'O') goto yy362;\r
-               if (yych != 'o') goto yy186;\r
- yy362:\r
-               YYDEBUG(362, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'M') goto yy363;\r
-               if (yych != 'm') goto yy186;\r
- yy363:\r
-               YYDEBUG(363, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'P') goto yy364;\r
-               if (yych != 'p') goto yy186;\r
- yy364:\r
-               YYDEBUG(364, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'I') goto yy365;\r
-               if (yych != 'i') goto yy186;\r
- yy365:\r
-               YYDEBUG(365, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'L') goto yy366;\r
-               if (yych != 'l') goto yy186;\r
- yy366:\r
-               YYDEBUG(366, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy367;\r
-               if (yych != 'e') goto yy186;\r
- yy367:\r
-               YYDEBUG(367, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'R') goto yy368;\r
-               if (yych != 'r') goto yy186;\r
- yy368:\r
-               YYDEBUG(368, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(369, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1141 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_HALT_COMPILER;\r
- }\r
- #line 4348 "Zend/zend_language_scanner.c"\r
- yy370:\r
-               YYDEBUG(370, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'S') goto yy374;\r
-               if (yych == 's') goto yy374;\r
-               goto yy186;\r
- yy371:\r
-               YYDEBUG(371, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy372;\r
-               if (yych != 'e') goto yy186;\r
- yy372:\r
-               YYDEBUG(372, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(373, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1125 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_USE;\r
- }\r
- #line 4372 "Zend/zend_language_scanner.c"\r
- yy374:\r
-               YYDEBUG(374, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy375;\r
-               if (yych != 'e') goto yy186;\r
- yy375:\r
-               YYDEBUG(375, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy376;\r
-               if (yych != 't') goto yy186;\r
- yy376:\r
-               YYDEBUG(376, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(377, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1169 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_UNSET;\r
- }\r
- #line 4395 "Zend/zend_language_scanner.c"\r
- yy378:\r
-               YYDEBUG(378, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(7);\r
-               yych = *YYCURSOR;\r
- yy379:\r
-               YYDEBUG(379, *YYCURSOR);\r
-               if (yych <= 'S') {\r
-                       if (yych <= 'D') {\r
-                               if (yych <= ' ') {\r
-                                       if (yych == '\t') goto yy378;\r
-                                       if (yych <= 0x1F) goto yy193;\r
-                                       goto yy378;\r
-                               } else {\r
-                                       if (yych <= 'A') {\r
-                                               if (yych <= '@') goto yy193;\r
-                                               goto yy383;\r
-                                       } else {\r
-                                               if (yych <= 'B') goto yy381;\r
-                                               if (yych <= 'C') goto yy193;\r
-                                               goto yy386;\r
-                                       }\r
-                               }\r
-                       } else {\r
-                               if (yych <= 'I') {\r
-                                       if (yych == 'F') goto yy387;\r
-                                       if (yych <= 'H') goto yy193;\r
-                                       goto yy388;\r
-                               } else {\r
-                                       if (yych <= 'O') {\r
-                                               if (yych <= 'N') goto yy193;\r
-                                               goto yy382;\r
-                                       } else {\r
-                                               if (yych <= 'Q') goto yy193;\r
-                                               if (yych <= 'R') goto yy385;\r
-                                               goto yy384;\r
-                                       }\r
-                               }\r
-                       }\r
-               } else {\r
-                       if (yych <= 'f') {\r
-                               if (yych <= 'a') {\r
-                                       if (yych == 'U') goto yy380;\r
-                                       if (yych <= '`') goto yy193;\r
-                                       goto yy383;\r
-                               } else {\r
-                                       if (yych <= 'c') {\r
-                                               if (yych <= 'b') goto yy381;\r
-                                               goto yy193;\r
-                                       } else {\r
-                                               if (yych <= 'd') goto yy386;\r
-                                               if (yych <= 'e') goto yy193;\r
-                                               goto yy387;\r
-                                       }\r
-                               }\r
-                       } else {\r
-                               if (yych <= 'q') {\r
-                                       if (yych <= 'i') {\r
-                                               if (yych <= 'h') goto yy193;\r
-                                               goto yy388;\r
-                                       } else {\r
-                                               if (yych == 'o') goto yy382;\r
-                                               goto yy193;\r
-                                       }\r
-                               } else {\r
-                                       if (yych <= 's') {\r
-                                               if (yych <= 'r') goto yy385;\r
-                                               goto yy384;\r
-                                       } else {\r
-                                               if (yych != 'u') goto yy193;\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
- yy380:\r
-               YYDEBUG(380, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'N') goto yy451;\r
-               if (yych == 'n') goto yy451;\r
-               goto yy193;\r
- yy381:\r
-               YYDEBUG(381, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= 'O') {\r
-                       if (yych == 'I') goto yy434;\r
-                       if (yych <= 'N') goto yy193;\r
-                       goto yy435;\r
-               } else {\r
-                       if (yych <= 'i') {\r
-                               if (yych <= 'h') goto yy193;\r
-                               goto yy434;\r
-                       } else {\r
-                               if (yych == 'o') goto yy435;\r
-                               goto yy193;\r
-                       }\r
-               }\r
- yy382:\r
-               YYDEBUG(382, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'B') goto yy426;\r
-               if (yych == 'b') goto yy426;\r
-               goto yy193;\r
- yy383:\r
-               YYDEBUG(383, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'R') goto yy419;\r
-               if (yych == 'r') goto yy419;\r
-               goto yy193;\r
- yy384:\r
-               YYDEBUG(384, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy411;\r
-               if (yych == 't') goto yy411;\r
-               goto yy193;\r
- yy385:\r
-               YYDEBUG(385, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy409;\r
-               if (yych == 'e') goto yy409;\r
-               goto yy193;\r
- yy386:\r
-               YYDEBUG(386, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'O') goto yy405;\r
-               if (yych == 'o') goto yy405;\r
-               goto yy193;\r
- yy387:\r
-               YYDEBUG(387, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'L') goto yy398;\r
-               if (yych == 'l') goto yy398;\r
-               goto yy193;\r
- yy388:\r
-               YYDEBUG(388, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'N') goto yy389;\r
-               if (yych != 'n') goto yy193;\r
- yy389:\r
-               YYDEBUG(389, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy390;\r
-               if (yych != 't') goto yy193;\r
- yy390:\r
-               YYDEBUG(390, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy391;\r
-               if (yych != 'e') goto yy393;\r
- yy391:\r
-               YYDEBUG(391, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'G') goto yy396;\r
-               if (yych == 'g') goto yy396;\r
-               goto yy193;\r
- yy392:\r
-               YYDEBUG(392, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
- yy393:\r
-               YYDEBUG(393, *YYCURSOR);\r
-               if (yych <= 0x1F) {\r
-                       if (yych == '\t') goto yy392;\r
-                       goto yy193;\r
-               } else {\r
-                       if (yych <= ' ') goto yy392;\r
-                       if (yych != ')') goto yy193;\r
-               }\r
-               YYDEBUG(394, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(395, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1069 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_INT_CAST;\r
- }\r
- #line 4571 "Zend/zend_language_scanner.c"\r
- yy396:\r
-               YYDEBUG(396, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy397;\r
-               if (yych != 'e') goto yy193;\r
- yy397:\r
-               YYDEBUG(397, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'R') goto yy392;\r
-               if (yych == 'r') goto yy392;\r
-               goto yy193;\r
- yy398:\r
-               YYDEBUG(398, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'O') goto yy399;\r
-               if (yych != 'o') goto yy193;\r
- yy399:\r
-               YYDEBUG(399, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy400;\r
-               if (yych != 'a') goto yy193;\r
- yy400:\r
-               YYDEBUG(400, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy401;\r
-               if (yych != 't') goto yy193;\r
- yy401:\r
-               YYDEBUG(401, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(402, *YYCURSOR);\r
-               if (yych <= 0x1F) {\r
-                       if (yych == '\t') goto yy401;\r
-                       goto yy193;\r
-               } else {\r
-                       if (yych <= ' ') goto yy401;\r
-                       if (yych != ')') goto yy193;\r
-               }\r
-               YYDEBUG(403, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(404, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1073 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_DOUBLE_CAST;\r
- }\r
- #line 4619 "Zend/zend_language_scanner.c"\r
- yy405:\r
-               YYDEBUG(405, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'U') goto yy406;\r
-               if (yych != 'u') goto yy193;\r
- yy406:\r
-               YYDEBUG(406, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'B') goto yy407;\r
-               if (yych != 'b') goto yy193;\r
- yy407:\r
-               YYDEBUG(407, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'L') goto yy408;\r
-               if (yych != 'l') goto yy193;\r
- yy408:\r
-               YYDEBUG(408, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy401;\r
-               if (yych == 'e') goto yy401;\r
-               goto yy193;\r
- yy409:\r
-               YYDEBUG(409, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy410;\r
-               if (yych != 'a') goto yy193;\r
- yy410:\r
-               YYDEBUG(410, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'L') goto yy401;\r
-               if (yych == 'l') goto yy401;\r
-               goto yy193;\r
- yy411:\r
-               YYDEBUG(411, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'R') goto yy412;\r
-               if (yych != 'r') goto yy193;\r
- yy412:\r
-               YYDEBUG(412, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'I') goto yy413;\r
-               if (yych != 'i') goto yy193;\r
- yy413:\r
-               YYDEBUG(413, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'N') goto yy414;\r
-               if (yych != 'n') goto yy193;\r
- yy414:\r
-               YYDEBUG(414, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'G') goto yy415;\r
-               if (yych != 'g') goto yy193;\r
- yy415:\r
-               YYDEBUG(415, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(416, *YYCURSOR);\r
-               if (yych <= 0x1F) {\r
-                       if (yych == '\t') goto yy415;\r
-                       goto yy193;\r
-               } else {\r
-                       if (yych <= ' ') goto yy415;\r
-                       if (yych != ')') goto yy193;\r
-               }\r
-               YYDEBUG(417, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(418, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1077 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_STRING_CAST;\r
- }\r
- #line 4693 "Zend/zend_language_scanner.c"\r
- yy419:\r
-               YYDEBUG(419, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'R') goto yy420;\r
-               if (yych != 'r') goto yy193;\r
- yy420:\r
-               YYDEBUG(420, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy421;\r
-               if (yych != 'a') goto yy193;\r
- yy421:\r
-               YYDEBUG(421, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'Y') goto yy422;\r
-               if (yych != 'y') goto yy193;\r
- yy422:\r
-               YYDEBUG(422, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(423, *YYCURSOR);\r
-               if (yych <= 0x1F) {\r
-                       if (yych == '\t') goto yy422;\r
-                       goto yy193;\r
-               } else {\r
-                       if (yych <= ' ') goto yy422;\r
-                       if (yych != ')') goto yy193;\r
-               }\r
-               YYDEBUG(424, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(425, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1085 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_ARRAY_CAST;\r
- }\r
- #line 4730 "Zend/zend_language_scanner.c"\r
- yy426:\r
-               YYDEBUG(426, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'J') goto yy427;\r
-               if (yych != 'j') goto yy193;\r
- yy427:\r
-               YYDEBUG(427, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy428;\r
-               if (yych != 'e') goto yy193;\r
- yy428:\r
-               YYDEBUG(428, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'C') goto yy429;\r
-               if (yych != 'c') goto yy193;\r
- yy429:\r
-               YYDEBUG(429, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy430;\r
-               if (yych != 't') goto yy193;\r
- yy430:\r
-               YYDEBUG(430, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(431, *YYCURSOR);\r
-               if (yych <= 0x1F) {\r
-                       if (yych == '\t') goto yy430;\r
-                       goto yy193;\r
-               } else {\r
-                       if (yych <= ' ') goto yy430;\r
-                       if (yych != ')') goto yy193;\r
-               }\r
-               YYDEBUG(432, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(433, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1089 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_OBJECT_CAST;\r
- }\r
- #line 4772 "Zend/zend_language_scanner.c"\r
- yy434:\r
-               YYDEBUG(434, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'N') goto yy444;\r
-               if (yych == 'n') goto yy444;\r
-               goto yy193;\r
- yy435:\r
-               YYDEBUG(435, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'O') goto yy436;\r
-               if (yych != 'o') goto yy193;\r
- yy436:\r
-               YYDEBUG(436, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'L') goto yy437;\r
-               if (yych != 'l') goto yy193;\r
- yy437:\r
-               YYDEBUG(437, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy442;\r
-               if (yych == 'e') goto yy442;\r
-               goto yy439;\r
- yy438:\r
-               YYDEBUG(438, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
- yy439:\r
-               YYDEBUG(439, *YYCURSOR);\r
-               if (yych <= 0x1F) {\r
-                       if (yych == '\t') goto yy438;\r
-                       goto yy193;\r
-               } else {\r
-                       if (yych <= ' ') goto yy438;\r
-                       if (yych != ')') goto yy193;\r
-               }\r
-               YYDEBUG(440, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(441, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1093 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_BOOL_CAST;\r
- }\r
- #line 4817 "Zend/zend_language_scanner.c"\r
- yy442:\r
-               YYDEBUG(442, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy443;\r
-               if (yych != 'a') goto yy193;\r
- yy443:\r
-               YYDEBUG(443, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'N') goto yy438;\r
-               if (yych == 'n') goto yy438;\r
-               goto yy193;\r
- yy444:\r
-               YYDEBUG(444, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy445;\r
-               if (yych != 'a') goto yy193;\r
- yy445:\r
-               YYDEBUG(445, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'R') goto yy446;\r
-               if (yych != 'r') goto yy193;\r
- yy446:\r
-               YYDEBUG(446, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'Y') goto yy447;\r
-               if (yych != 'y') goto yy193;\r
- yy447:\r
-               YYDEBUG(447, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(448, *YYCURSOR);\r
-               if (yych <= 0x1F) {\r
-                       if (yych == '\t') goto yy447;\r
-                       goto yy193;\r
-               } else {\r
-                       if (yych <= ' ') goto yy447;\r
-                       if (yych != ')') goto yy193;\r
-               }\r
-               YYDEBUG(449, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(450, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1081 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_STRING_CAST;\r
- }\r
- #line 4865 "Zend/zend_language_scanner.c"\r
- yy451:\r
-               YYDEBUG(451, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'S') goto yy452;\r
-               if (yych != 's') goto yy193;\r
- yy452:\r
-               YYDEBUG(452, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy453;\r
-               if (yych != 'e') goto yy193;\r
- yy453:\r
-               YYDEBUG(453, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy454;\r
-               if (yych != 't') goto yy193;\r
- yy454:\r
-               YYDEBUG(454, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(455, *YYCURSOR);\r
-               if (yych <= 0x1F) {\r
-                       if (yych == '\t') goto yy454;\r
-                       goto yy193;\r
-               } else {\r
-                       if (yych <= ' ') goto yy454;\r
-                       if (yych != ')') goto yy193;\r
-               }\r
-               YYDEBUG(456, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(457, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1097 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_UNSET_CAST;\r
- }\r
- #line 4902 "Zend/zend_language_scanner.c"\r
- yy458:\r
-               YYDEBUG(458, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'R') goto yy459;\r
-               if (yych != 'r') goto yy186;\r
- yy459:\r
-               YYDEBUG(459, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(460, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1065 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_VAR;\r
- }\r
- #line 4920 "Zend/zend_language_scanner.c"\r
- yy461:\r
-               YYDEBUG(461, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'M') goto yy465;\r
-               if (yych == 'm') goto yy465;\r
-               goto yy186;\r
- yy462:\r
-               YYDEBUG(462, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'W') goto yy463;\r
-               if (yych != 'w') goto yy186;\r
- yy463:\r
-               YYDEBUG(463, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(464, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1057 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_NEW;\r
- }\r
- #line 4944 "Zend/zend_language_scanner.c"\r
- yy465:\r
-               YYDEBUG(465, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy466;\r
-               if (yych != 'e') goto yy186;\r
- yy466:\r
-               YYDEBUG(466, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'S') goto yy467;\r
-               if (yych != 's') goto yy186;\r
- yy467:\r
-               YYDEBUG(467, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'P') goto yy468;\r
-               if (yych != 'p') goto yy186;\r
- yy468:\r
-               YYDEBUG(468, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy469;\r
-               if (yych != 'a') goto yy186;\r
- yy469:\r
-               YYDEBUG(469, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'C') goto yy470;\r
-               if (yych != 'c') goto yy186;\r
- yy470:\r
-               YYDEBUG(470, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy471;\r
-               if (yych != 'e') goto yy186;\r
- yy471:\r
-               YYDEBUG(471, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(472, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1121 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_NAMESPACE;\r
- }\r
- #line 4987 "Zend/zend_language_scanner.c"\r
- yy473:\r
-               YYDEBUG(473, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(474, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1049 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_PAAMAYIM_NEKUDOTAYIM;\r
- }\r
- #line 4997 "Zend/zend_language_scanner.c"\r
- yy475:\r
-               YYDEBUG(475, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
- yy476:\r
-               YYDEBUG(476, *YYCURSOR);\r
-               if (yych <= '\f') {\r
-                       if (yych <= 0x08) goto yy140;\r
-                       if (yych <= '\n') goto yy475;\r
-                       goto yy140;\r
-               } else {\r
-                       if (yych <= '\r') goto yy475;\r
-                       if (yych == ' ') goto yy475;\r
-                       goto yy140;\r
-               }\r
- yy477:\r
-               YYDEBUG(477, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(478, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1221 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_MINUS_EQUAL;\r
- }\r
- #line 5023 "Zend/zend_language_scanner.c"\r
- yy479:\r
-               YYDEBUG(479, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(480, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1189 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_DEC;\r
- }\r
- #line 5033 "Zend/zend_language_scanner.c"\r
- yy481:\r
-               YYDEBUG(481, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(482, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1019 "Zend/zend_language_scanner.l"\r
-               {\r
-       yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);\r
-       return T_OBJECT_OPERATOR;\r
- }\r
- #line 5044 "Zend/zend_language_scanner.c"\r
- yy483:\r
-               YYDEBUG(483, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= 'O') {\r
-                       if (yych == 'I') goto yy490;\r
-                       if (yych <= 'N') goto yy186;\r
-                       goto yy491;\r
-               } else {\r
-                       if (yych <= 'i') {\r
-                               if (yych <= 'h') goto yy186;\r
-                               goto yy490;\r
-                       } else {\r
-                               if (yych == 'o') goto yy491;\r
-                               goto yy186;\r
-                       }\r
-               }\r
- yy484:\r
-               YYDEBUG(484, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'B') goto yy485;\r
-               if (yych != 'b') goto yy186;\r
- yy485:\r
-               YYDEBUG(485, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'L') goto yy486;\r
-               if (yych != 'l') goto yy186;\r
- yy486:\r
-               YYDEBUG(486, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'I') goto yy487;\r
-               if (yych != 'i') goto yy186;\r
- yy487:\r
-               YYDEBUG(487, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'C') goto yy488;\r
-               if (yych != 'c') goto yy186;\r
- yy488:\r
-               YYDEBUG(488, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(489, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1165 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_PUBLIC;\r
- }\r
- #line 5093 "Zend/zend_language_scanner.c"\r
- yy490:\r
-               YYDEBUG(490, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= 'V') {\r
-                       if (yych == 'N') goto yy499;\r
-                       if (yych <= 'U') goto yy186;\r
-                       goto yy500;\r
-               } else {\r
-                       if (yych <= 'n') {\r
-                               if (yych <= 'm') goto yy186;\r
-                               goto yy499;\r
-                       } else {\r
-                               if (yych == 'v') goto yy500;\r
-                               goto yy186;\r
-                       }\r
-               }\r
- yy491:\r
-               YYDEBUG(491, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy492;\r
-               if (yych != 't') goto yy186;\r
- yy492:\r
-               YYDEBUG(492, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy493;\r
-               if (yych != 'e') goto yy186;\r
- yy493:\r
-               YYDEBUG(493, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'C') goto yy494;\r
-               if (yych != 'c') goto yy186;\r
- yy494:\r
-               YYDEBUG(494, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy495;\r
-               if (yych != 't') goto yy186;\r
- yy495:\r
-               YYDEBUG(495, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy496;\r
-               if (yych != 'e') goto yy186;\r
- yy496:\r
-               YYDEBUG(496, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'D') goto yy497;\r
-               if (yych != 'd') goto yy186;\r
- yy497:\r
-               YYDEBUG(497, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(498, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1161 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_PROTECTED;\r
- }\r
- #line 5152 "Zend/zend_language_scanner.c"\r
- yy499:\r
-               YYDEBUG(499, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy505;\r
-               if (yych == 't') goto yy505;\r
-               goto yy186;\r
- yy500:\r
-               YYDEBUG(500, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy501;\r
-               if (yych != 'a') goto yy186;\r
- yy501:\r
-               YYDEBUG(501, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy502;\r
-               if (yych != 't') goto yy186;\r
- yy502:\r
-               YYDEBUG(502, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy503;\r
-               if (yych != 'e') goto yy186;\r
- yy503:\r
-               YYDEBUG(503, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(504, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1157 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_PRIVATE;\r
- }\r
- #line 5186 "Zend/zend_language_scanner.c"\r
- yy505:\r
-               YYDEBUG(505, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(506, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 999 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_PRINT;\r
- }\r
- #line 5199 "Zend/zend_language_scanner.c"\r
- yy507:\r
-               YYDEBUG(507, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'O') goto yy512;\r
-               if (yych == 'o') goto yy512;\r
-               goto yy186;\r
- yy508:\r
-               YYDEBUG(508, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy509;\r
-               if (yych != 't') goto yy186;\r
- yy509:\r
-               YYDEBUG(509, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'O') goto yy510;\r
-               if (yych != 'o') goto yy186;\r
- yy510:\r
-               YYDEBUG(510, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(511, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 991 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_GOTO;\r
- }\r
- #line 5228 "Zend/zend_language_scanner.c"\r
- yy512:\r
-               YYDEBUG(512, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'B') goto yy513;\r
-               if (yych != 'b') goto yy186;\r
- yy513:\r
-               YYDEBUG(513, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy514;\r
-               if (yych != 'a') goto yy186;\r
- yy514:\r
-               YYDEBUG(514, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'L') goto yy515;\r
-               if (yych != 'l') goto yy186;\r
- yy515:\r
-               YYDEBUG(515, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(516, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1129 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_GLOBAL;\r
- }\r
- #line 5256 "Zend/zend_language_scanner.c"\r
- yy517:\r
-               YYDEBUG(517, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '<') goto yy525;\r
-               goto yy193;\r
- yy518:\r
-               YYDEBUG(518, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               goto yy180;\r
- yy519:\r
-               YYDEBUG(519, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               goto yy178;\r
- yy520:\r
-               YYDEBUG(520, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy521;\r
-               if (yych != 'e') goto yy186;\r
- yy521:\r
-               YYDEBUG(521, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy522;\r
-               if (yych != 'a') goto yy186;\r
- yy522:\r
-               YYDEBUG(522, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'K') goto yy523;\r
-               if (yych != 'k') goto yy186;\r
- yy523:\r
-               YYDEBUG(523, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(524, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 983 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_BREAK;\r
- }\r
- #line 5297 "Zend/zend_language_scanner.c"\r
- yy525:\r
-               YYDEBUG(525, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == '<') goto yy265;\r
-               goto yy193;\r
- yy526:\r
-               YYDEBUG(526, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy533;\r
-               if (yych == 'a') goto yy533;\r
-               goto yy186;\r
- yy527:\r
-               YYDEBUG(527, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'I') goto yy528;\r
-               if (yych != 'i') goto yy186;\r
- yy528:\r
-               YYDEBUG(528, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy529;\r
-               if (yych != 't') goto yy186;\r
- yy529:\r
-               YYDEBUG(529, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'C') goto yy530;\r
-               if (yych != 'c') goto yy186;\r
- yy530:\r
-               YYDEBUG(530, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'H') goto yy531;\r
-               if (yych != 'h') goto yy186;\r
- yy531:\r
-               YYDEBUG(531, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(532, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 967 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_SWITCH;\r
- }\r
- #line 5341 "Zend/zend_language_scanner.c"\r
- yy533:\r
-               YYDEBUG(533, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy534;\r
-               if (yych != 't') goto yy186;\r
- yy534:\r
-               YYDEBUG(534, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'I') goto yy535;\r
-               if (yych != 'i') goto yy186;\r
- yy535:\r
-               YYDEBUG(535, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'C') goto yy536;\r
-               if (yych != 'c') goto yy186;\r
- yy536:\r
-               YYDEBUG(536, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(537, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1145 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_STATIC;\r
- }\r
- #line 5369 "Zend/zend_language_scanner.c"\r
- yy538:\r
-               YYDEBUG(538, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'S') goto yy549;\r
-               if (yych == 's') goto yy549;\r
-               goto yy186;\r
- yy539:\r
-               YYDEBUG(539, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'D') goto yy547;\r
-               if (yych == 'd') goto yy547;\r
-               goto yy186;\r
- yy540:\r
-               YYDEBUG(540, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'R') goto yy543;\r
-               if (yych == 'r') goto yy543;\r
-               goto yy186;\r
- yy541:\r
-               YYDEBUG(541, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(542, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 963 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_AS;\r
- }\r
- #line 5400 "Zend/zend_language_scanner.c"\r
- yy543:\r
-               YYDEBUG(543, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy544;\r
-               if (yych != 'a') goto yy186;\r
- yy544:\r
-               YYDEBUG(544, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'Y') goto yy545;\r
-               if (yych != 'y') goto yy186;\r
- yy545:\r
-               YYDEBUG(545, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(546, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1181 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_ARRAY;\r
- }\r
- #line 5423 "Zend/zend_language_scanner.c"\r
- yy547:\r
-               YYDEBUG(547, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(548, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1273 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_LOGICAL_AND;\r
- }\r
- #line 5436 "Zend/zend_language_scanner.c"\r
- yy549:\r
-               YYDEBUG(549, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy550;\r
-               if (yych != 't') goto yy186;\r
- yy550:\r
-               YYDEBUG(550, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'R') goto yy551;\r
-               if (yych != 'r') goto yy186;\r
- yy551:\r
-               YYDEBUG(551, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy552;\r
-               if (yych != 'a') goto yy186;\r
- yy552:\r
-               YYDEBUG(552, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'C') goto yy553;\r
-               if (yych != 'c') goto yy186;\r
- yy553:\r
-               YYDEBUG(553, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy554;\r
-               if (yych != 't') goto yy186;\r
- yy554:\r
-               YYDEBUG(554, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(555, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1149 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_ABSTRACT;\r
- }\r
- #line 5474 "Zend/zend_language_scanner.c"\r
- yy556:\r
-               YYDEBUG(556, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'I') goto yy557;\r
-               if (yych != 'i') goto yy186;\r
- yy557:\r
-               YYDEBUG(557, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'L') goto yy558;\r
-               if (yych != 'l') goto yy186;\r
- yy558:\r
-               YYDEBUG(558, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy559;\r
-               if (yych != 'e') goto yy186;\r
- yy559:\r
-               YYDEBUG(559, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(560, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 923 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_WHILE;\r
- }\r
- #line 5502 "Zend/zend_language_scanner.c"\r
- yy561:\r
-               YYDEBUG(561, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(562, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 907 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_IF;\r
- }\r
- #line 5515 "Zend/zend_language_scanner.c"\r
- yy563:\r
-               YYDEBUG(563, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'P') goto yy599;\r
-               if (yych == 'p') goto yy599;\r
-               goto yy186;\r
- yy564:\r
-               YYDEBUG(564, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= 'T') {\r
-                       if (yych <= 'C') {\r
-                               if (yych <= 'B') goto yy186;\r
-                               goto yy572;\r
-                       } else {\r
-                               if (yych <= 'R') goto yy186;\r
-                               if (yych <= 'S') goto yy570;\r
-                               goto yy571;\r
-                       }\r
-               } else {\r
-                       if (yych <= 'r') {\r
-                               if (yych == 'c') goto yy572;\r
-                               goto yy186;\r
-                       } else {\r
-                               if (yych <= 's') goto yy570;\r
-                               if (yych <= 't') goto yy571;\r
-                               goto yy186;\r
-                       }\r
-               }\r
- yy565:\r
-               YYDEBUG(565, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'S') goto yy566;\r
-               if (yych != 's') goto yy186;\r
- yy566:\r
-               YYDEBUG(566, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy567;\r
-               if (yych != 'e') goto yy186;\r
- yy567:\r
-               YYDEBUG(567, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy568;\r
-               if (yych != 't') goto yy186;\r
- yy568:\r
-               YYDEBUG(568, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(569, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1133 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_ISSET;\r
- }\r
- #line 5571 "Zend/zend_language_scanner.c"\r
- yy570:\r
-               YYDEBUG(570, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy591;\r
-               if (yych == 't') goto yy591;\r
-               goto yy186;\r
- yy571:\r
-               YYDEBUG(571, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy584;\r
-               if (yych == 'e') goto yy584;\r
-               goto yy186;\r
- yy572:\r
-               YYDEBUG(572, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'L') goto yy573;\r
-               if (yych != 'l') goto yy186;\r
- yy573:\r
-               YYDEBUG(573, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'U') goto yy574;\r
-               if (yych != 'u') goto yy186;\r
- yy574:\r
-               YYDEBUG(574, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'D') goto yy575;\r
-               if (yych != 'd') goto yy186;\r
- yy575:\r
-               YYDEBUG(575, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy576;\r
-               if (yych != 'e') goto yy186;\r
- yy576:\r
-               YYDEBUG(576, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if ((yych = *YYCURSOR) <= '^') {\r
-                       if (yych <= '9') {\r
-                               if (yych >= '0') goto yy185;\r
-                       } else {\r
-                               if (yych <= '@') goto yy577;\r
-                               if (yych <= 'Z') goto yy185;\r
-                       }\r
-               } else {\r
-                       if (yych <= '`') {\r
-                               if (yych <= '_') goto yy578;\r
-                       } else {\r
-                               if (yych <= 'z') goto yy185;\r
-                               if (yych >= 0x7F) goto yy185;\r
-                       }\r
-               }\r
- yy577:\r
-               YYDEBUG(577, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1105 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_INCLUDE;\r
- }\r
- #line 5629 "Zend/zend_language_scanner.c"\r
- yy578:\r
-               YYDEBUG(578, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'O') goto yy579;\r
-               if (yych != 'o') goto yy186;\r
- yy579:\r
-               YYDEBUG(579, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'N') goto yy580;\r
-               if (yych != 'n') goto yy186;\r
- yy580:\r
-               YYDEBUG(580, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'C') goto yy581;\r
-               if (yych != 'c') goto yy186;\r
- yy581:\r
-               YYDEBUG(581, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy582;\r
-               if (yych != 'e') goto yy186;\r
- yy582:\r
-               YYDEBUG(582, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(583, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1109 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_INCLUDE_ONCE;\r
- }\r
- #line 5662 "Zend/zend_language_scanner.c"\r
- yy584:\r
-               YYDEBUG(584, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'R') goto yy585;\r
-               if (yych != 'r') goto yy186;\r
- yy585:\r
-               YYDEBUG(585, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'F') goto yy586;\r
-               if (yych != 'f') goto yy186;\r
- yy586:\r
-               YYDEBUG(586, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy587;\r
-               if (yych != 'a') goto yy186;\r
- yy587:\r
-               YYDEBUG(587, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'C') goto yy588;\r
-               if (yych != 'c') goto yy186;\r
- yy588:\r
-               YYDEBUG(588, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy589;\r
-               if (yych != 'e') goto yy186;\r
- yy589:\r
-               YYDEBUG(589, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(590, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1007 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_INTERFACE;\r
- }\r
- #line 5700 "Zend/zend_language_scanner.c"\r
- yy591:\r
-               YYDEBUG(591, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy592;\r
-               if (yych != 'a') goto yy186;\r
- yy592:\r
-               YYDEBUG(592, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'N') goto yy593;\r
-               if (yych != 'n') goto yy186;\r
- yy593:\r
-               YYDEBUG(593, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'C') goto yy594;\r
-               if (yych != 'c') goto yy186;\r
- yy594:\r
-               YYDEBUG(594, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy595;\r
-               if (yych != 'e') goto yy186;\r
- yy595:\r
-               YYDEBUG(595, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'O') goto yy596;\r
-               if (yych != 'o') goto yy186;\r
- yy596:\r
-               YYDEBUG(596, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'F') goto yy597;\r
-               if (yych != 'f') goto yy186;\r
- yy597:\r
-               YYDEBUG(597, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(598, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 959 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_INSTANCEOF;\r
- }\r
- #line 5743 "Zend/zend_language_scanner.c"\r
- yy599:\r
-               YYDEBUG(599, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'L') goto yy600;\r
-               if (yych != 'l') goto yy186;\r
- yy600:\r
-               YYDEBUG(600, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy601;\r
-               if (yych != 'e') goto yy186;\r
- yy601:\r
-               YYDEBUG(601, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'M') goto yy602;\r
-               if (yych != 'm') goto yy186;\r
- yy602:\r
-               YYDEBUG(602, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy603;\r
-               if (yych != 'e') goto yy186;\r
- yy603:\r
-               YYDEBUG(603, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'N') goto yy604;\r
-               if (yych != 'n') goto yy186;\r
- yy604:\r
-               YYDEBUG(604, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy605;\r
-               if (yych != 't') goto yy186;\r
- yy605:\r
-               YYDEBUG(605, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'S') goto yy606;\r
-               if (yych != 's') goto yy186;\r
- yy606:\r
-               YYDEBUG(606, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(607, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1015 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_IMPLEMENTS;\r
- }\r
- #line 5791 "Zend/zend_language_scanner.c"\r
- yy608:\r
-               YYDEBUG(608, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'R') goto yy612;\r
-               if (yych == 'r') goto yy612;\r
-               goto yy186;\r
- yy609:\r
-               YYDEBUG(609, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'Y') goto yy610;\r
-               if (yych != 'y') goto yy186;\r
- yy610:\r
-               YYDEBUG(610, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(611, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 895 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_TRY;\r
- }\r
- #line 5815 "Zend/zend_language_scanner.c"\r
- yy612:\r
-               YYDEBUG(612, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'O') goto yy613;\r
-               if (yych != 'o') goto yy186;\r
- yy613:\r
-               YYDEBUG(613, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'W') goto yy614;\r
-               if (yych != 'w') goto yy186;\r
- yy614:\r
-               YYDEBUG(614, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(615, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 903 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_THROW;\r
- }\r
- #line 5838 "Zend/zend_language_scanner.c"\r
- yy616:\r
-               YYDEBUG(616, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= 'T') {\r
-                       if (yych == 'Q') goto yy618;\r
-                       if (yych <= 'S') goto yy186;\r
-               } else {\r
-                       if (yych <= 'q') {\r
-                               if (yych <= 'p') goto yy186;\r
-                               goto yy618;\r
-                       } else {\r
-                               if (yych != 't') goto yy186;\r
-                       }\r
-               }\r
-               YYDEBUG(617, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'U') goto yy630;\r
-               if (yych == 'u') goto yy630;\r
-               goto yy186;\r
- yy618:\r
-               YYDEBUG(618, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'U') goto yy619;\r
-               if (yych != 'u') goto yy186;\r
- yy619:\r
-               YYDEBUG(619, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'I') goto yy620;\r
-               if (yych != 'i') goto yy186;\r
- yy620:\r
-               YYDEBUG(620, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'R') goto yy621;\r
-               if (yych != 'r') goto yy186;\r
- yy621:\r
-               YYDEBUG(621, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy622;\r
-               if (yych != 'e') goto yy186;\r
- yy622:\r
-               YYDEBUG(622, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if ((yych = *YYCURSOR) <= '^') {\r
-                       if (yych <= '9') {\r
-                               if (yych >= '0') goto yy185;\r
-                       } else {\r
-                               if (yych <= '@') goto yy623;\r
-                               if (yych <= 'Z') goto yy185;\r
-                       }\r
-               } else {\r
-                       if (yych <= '`') {\r
-                               if (yych <= '_') goto yy624;\r
-                       } else {\r
-                               if (yych <= 'z') goto yy185;\r
-                               if (yych >= 0x7F) goto yy185;\r
-                       }\r
-               }\r
- yy623:\r
-               YYDEBUG(623, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1113 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_REQUIRE;\r
- }\r
- #line 5903 "Zend/zend_language_scanner.c"\r
- yy624:\r
-               YYDEBUG(624, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'O') goto yy625;\r
-               if (yych != 'o') goto yy186;\r
- yy625:\r
-               YYDEBUG(625, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'N') goto yy626;\r
-               if (yych != 'n') goto yy186;\r
- yy626:\r
-               YYDEBUG(626, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'C') goto yy627;\r
-               if (yych != 'c') goto yy186;\r
- yy627:\r
-               YYDEBUG(627, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy628;\r
-               if (yych != 'e') goto yy186;\r
- yy628:\r
-               YYDEBUG(628, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(629, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1117 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_REQUIRE_ONCE;\r
- }\r
- #line 5936 "Zend/zend_language_scanner.c"\r
- yy630:\r
-               YYDEBUG(630, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'R') goto yy631;\r
-               if (yych != 'r') goto yy186;\r
- yy631:\r
-               YYDEBUG(631, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'N') goto yy632;\r
-               if (yych != 'n') goto yy186;\r
- yy632:\r
-               YYDEBUG(632, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(633, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 891 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_RETURN;\r
- }\r
- #line 5959 "Zend/zend_language_scanner.c"\r
- yy634:\r
-               YYDEBUG(634, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= 'T') {\r
-                       if (yych <= 'R') goto yy186;\r
-                       if (yych <= 'S') goto yy656;\r
-                       goto yy655;\r
-               } else {\r
-                       if (yych <= 'r') goto yy186;\r
-                       if (yych <= 's') goto yy656;\r
-                       if (yych <= 't') goto yy655;\r
-                       goto yy186;\r
-               }\r
- yy635:\r
-               YYDEBUG(635, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= 'O') {\r
-                       if (yych == 'A') goto yy647;\r
-                       if (yych <= 'N') goto yy186;\r
-                       goto yy648;\r
-               } else {\r
-                       if (yych <= 'a') {\r
-                               if (yych <= '`') goto yy186;\r
-                               goto yy647;\r
-                       } else {\r
-                               if (yych == 'o') goto yy648;\r
-                               goto yy186;\r
-                       }\r
-               }\r
- yy636:\r
-               YYDEBUG(636, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'N') goto yy637;\r
-               if (yych != 'n') goto yy186;\r
- yy637:\r
-               YYDEBUG(637, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= 'T') {\r
-                       if (yych <= 'R') goto yy186;\r
-                       if (yych >= 'T') goto yy639;\r
-               } else {\r
-                       if (yych <= 'r') goto yy186;\r
-                       if (yych <= 's') goto yy638;\r
-                       if (yych <= 't') goto yy639;\r
-                       goto yy186;\r
-               }\r
- yy638:\r
-               YYDEBUG(638, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy645;\r
-               if (yych == 't') goto yy645;\r
-               goto yy186;\r
- yy639:\r
-               YYDEBUG(639, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'I') goto yy640;\r
-               if (yych != 'i') goto yy186;\r
- yy640:\r
-               YYDEBUG(640, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'N') goto yy641;\r
-               if (yych != 'n') goto yy186;\r
- yy641:\r
-               YYDEBUG(641, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'U') goto yy642;\r
-               if (yych != 'u') goto yy186;\r
- yy642:\r
-               YYDEBUG(642, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy643;\r
-               if (yych != 'e') goto yy186;\r
- yy643:\r
-               YYDEBUG(643, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(644, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 987 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_CONTINUE;\r
- }\r
- #line 6044 "Zend/zend_language_scanner.c"\r
- yy645:\r
-               YYDEBUG(645, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(646, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 887 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_CONST;\r
- }\r
- #line 6057 "Zend/zend_language_scanner.c"\r
- yy647:\r
-               YYDEBUG(647, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'S') goto yy652;\r
-               if (yych == 's') goto yy652;\r
-               goto yy186;\r
- yy648:\r
-               YYDEBUG(648, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'N') goto yy649;\r
-               if (yych != 'n') goto yy186;\r
- yy649:\r
-               YYDEBUG(649, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy650;\r
-               if (yych != 'e') goto yy186;\r
- yy650:\r
-               YYDEBUG(650, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(651, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1061 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_CLONE;\r
- }\r
- #line 6086 "Zend/zend_language_scanner.c"\r
- yy652:\r
-               YYDEBUG(652, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'S') goto yy653;\r
-               if (yych != 's') goto yy186;\r
- yy653:\r
-               YYDEBUG(653, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(654, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1003 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_CLASS;\r
- }\r
- #line 6104 "Zend/zend_language_scanner.c"\r
- yy655:\r
-               YYDEBUG(655, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'C') goto yy659;\r
-               if (yych == 'c') goto yy659;\r
-               goto yy186;\r
- yy656:\r
-               YYDEBUG(656, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy657;\r
-               if (yych != 'e') goto yy186;\r
- yy657:\r
-               YYDEBUG(657, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(658, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 975 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_CASE;\r
- }\r
- #line 6128 "Zend/zend_language_scanner.c"\r
- yy659:\r
-               YYDEBUG(659, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'H') goto yy660;\r
-               if (yych != 'h') goto yy186;\r
- yy660:\r
-               YYDEBUG(660, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(661, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 899 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_CATCH;\r
- }\r
- #line 6146 "Zend/zend_language_scanner.c"\r
- yy662:\r
-               YYDEBUG(662, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'N') goto yy679;\r
-               if (yych == 'n') goto yy679;\r
-               goto yy186;\r
- yy663:\r
-               YYDEBUG(663, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'R') goto yy672;\r
-               if (yych == 'r') goto yy672;\r
-               goto yy186;\r
- yy664:\r
-               YYDEBUG(664, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'N') goto yy665;\r
-               if (yych != 'n') goto yy186;\r
- yy665:\r
-               YYDEBUG(665, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'C') goto yy666;\r
-               if (yych != 'c') goto yy186;\r
- yy666:\r
-               YYDEBUG(666, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy667;\r
-               if (yych != 't') goto yy186;\r
- yy667:\r
-               YYDEBUG(667, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'I') goto yy668;\r
-               if (yych != 'i') goto yy186;\r
- yy668:\r
-               YYDEBUG(668, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'O') goto yy669;\r
-               if (yych != 'o') goto yy186;\r
- yy669:\r
-               YYDEBUG(669, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'N') goto yy670;\r
-               if (yych != 'n') goto yy186;\r
- yy670:\r
-               YYDEBUG(670, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(671, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 883 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_FUNCTION;\r
- }\r
- #line 6201 "Zend/zend_language_scanner.c"\r
- yy672:\r
-               YYDEBUG(672, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if ((yych = *YYCURSOR) <= '^') {\r
-                       if (yych <= '@') {\r
-                               if (yych <= '/') goto yy673;\r
-                               if (yych <= '9') goto yy185;\r
-                       } else {\r
-                               if (yych == 'E') goto yy674;\r
-                               if (yych <= 'Z') goto yy185;\r
-                       }\r
-               } else {\r
-                       if (yych <= 'd') {\r
-                               if (yych != '`') goto yy185;\r
-                       } else {\r
-                               if (yych <= 'e') goto yy674;\r
-                               if (yych <= 'z') goto yy185;\r
-                               if (yych >= 0x7F) goto yy185;\r
-                       }\r
-               }\r
- yy673:\r
-               YYDEBUG(673, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 935 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_FOR;\r
- }\r
- #line 6229 "Zend/zend_language_scanner.c"\r
- yy674:\r
-               YYDEBUG(674, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy675;\r
-               if (yych != 'a') goto yy186;\r
- yy675:\r
-               YYDEBUG(675, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'C') goto yy676;\r
-               if (yych != 'c') goto yy186;\r
- yy676:\r
-               YYDEBUG(676, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'H') goto yy677;\r
-               if (yych != 'h') goto yy186;\r
- yy677:\r
-               YYDEBUG(677, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(678, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 943 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_FOREACH;\r
- }\r
- #line 6257 "Zend/zend_language_scanner.c"\r
- yy679:\r
-               YYDEBUG(679, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy680;\r
-               if (yych != 'a') goto yy186;\r
- yy680:\r
-               YYDEBUG(680, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'L') goto yy681;\r
-               if (yych != 'l') goto yy186;\r
- yy681:\r
-               YYDEBUG(681, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(682, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1153 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_FINAL;\r
- }\r
- #line 6280 "Zend/zend_language_scanner.c"\r
- yy683:\r
-               YYDEBUG(683, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= 'F') {\r
-                       if (yych == 'C') goto yy689;\r
-                       if (yych <= 'E') goto yy186;\r
-                       goto yy690;\r
-               } else {\r
-                       if (yych <= 'c') {\r
-                               if (yych <= 'b') goto yy186;\r
-                               goto yy689;\r
-                       } else {\r
-                               if (yych == 'f') goto yy690;\r
-                               goto yy186;\r
-                       }\r
-               }\r
- yy684:\r
-               YYDEBUG(684, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy687;\r
-               if (yych == 'e') goto yy687;\r
-               goto yy186;\r
- yy685:\r
-               YYDEBUG(685, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(686, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 931 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_DO;\r
- }\r
- #line 6315 "Zend/zend_language_scanner.c"\r
- yy687:\r
-               YYDEBUG(687, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(688, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 879 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_EXIT;\r
- }\r
- #line 6328 "Zend/zend_language_scanner.c"\r
- yy689:\r
-               YYDEBUG(689, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'L') goto yy696;\r
-               if (yych == 'l') goto yy696;\r
-               goto yy186;\r
- yy690:\r
-               YYDEBUG(690, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy691;\r
-               if (yych != 'a') goto yy186;\r
- yy691:\r
-               YYDEBUG(691, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'U') goto yy692;\r
-               if (yych != 'u') goto yy186;\r
- yy692:\r
-               YYDEBUG(692, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'L') goto yy693;\r
-               if (yych != 'l') goto yy186;\r
- yy693:\r
-               YYDEBUG(693, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy694;\r
-               if (yych != 't') goto yy186;\r
- yy694:\r
-               YYDEBUG(694, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(695, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 979 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_DEFAULT;\r
- }\r
- #line 6367 "Zend/zend_language_scanner.c"\r
- yy696:\r
-               YYDEBUG(696, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy697;\r
-               if (yych != 'a') goto yy186;\r
- yy697:\r
-               YYDEBUG(697, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'R') goto yy698;\r
-               if (yych != 'r') goto yy186;\r
- yy698:\r
-               YYDEBUG(698, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy699;\r
-               if (yych != 'e') goto yy186;\r
- yy699:\r
-               YYDEBUG(699, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(700, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 951 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_DECLARE;\r
- }\r
- #line 6395 "Zend/zend_language_scanner.c"\r
- yy701:\r
-               YYDEBUG(701, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'H') goto yy763;\r
-               if (yych == 'h') goto yy763;\r
-               goto yy186;\r
- yy702:\r
-               YYDEBUG(702, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'S') goto yy757;\r
-               if (yych == 's') goto yy757;\r
-               goto yy186;\r
- yy703:\r
-               YYDEBUG(703, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'P') goto yy753;\r
-               if (yych == 'p') goto yy753;\r
-               goto yy186;\r
- yy704:\r
-               YYDEBUG(704, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'D') goto yy719;\r
-               if (yych == 'd') goto yy719;\r
-               goto yy186;\r
- yy705:\r
-               YYDEBUG(705, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy716;\r
-               if (yych == 'a') goto yy716;\r
-               goto yy186;\r
- yy706:\r
-               YYDEBUG(706, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych <= 'T') {\r
-                       if (yych == 'I') goto yy707;\r
-                       if (yych <= 'S') goto yy186;\r
-                       goto yy708;\r
-               } else {\r
-                       if (yych <= 'i') {\r
-                               if (yych <= 'h') goto yy186;\r
-                       } else {\r
-                               if (yych == 't') goto yy708;\r
-                               goto yy186;\r
-                       }\r
-               }\r
- yy707:\r
-               YYDEBUG(707, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy714;\r
-               if (yych == 't') goto yy714;\r
-               goto yy186;\r
- yy708:\r
-               YYDEBUG(708, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy709;\r
-               if (yych != 'e') goto yy186;\r
- yy709:\r
-               YYDEBUG(709, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'N') goto yy710;\r
-               if (yych != 'n') goto yy186;\r
- yy710:\r
-               YYDEBUG(710, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'D') goto yy711;\r
-               if (yych != 'd') goto yy186;\r
- yy711:\r
-               YYDEBUG(711, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'S') goto yy712;\r
-               if (yych != 's') goto yy186;\r
- yy712:\r
-               YYDEBUG(712, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(713, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1011 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_EXTENDS;\r
- }\r
- #line 6479 "Zend/zend_language_scanner.c"\r
- yy714:\r
-               YYDEBUG(714, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(715, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 875 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_EXIT;\r
- }\r
- #line 6492 "Zend/zend_language_scanner.c"\r
- yy716:\r
-               YYDEBUG(716, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'L') goto yy717;\r
-               if (yych != 'l') goto yy186;\r
- yy717:\r
-               YYDEBUG(717, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(718, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1101 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_EVAL;\r
- }\r
- #line 6510 "Zend/zend_language_scanner.c"\r
- yy719:\r
-               YYDEBUG(719, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               YYDEBUG(-1, yych);\r
-               switch (yych) {\r
-               case 'D':\r
-               case 'd':       goto yy720;\r
-               case 'F':\r
-               case 'f':       goto yy721;\r
-               case 'I':\r
-               case 'i':       goto yy722;\r
-               case 'S':\r
-               case 's':       goto yy723;\r
-               case 'W':\r
-               case 'w':       goto yy724;\r
-               default:        goto yy186;\r
-               }\r
- yy720:\r
-               YYDEBUG(720, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy746;\r
-               if (yych == 'e') goto yy746;\r
-               goto yy186;\r
- yy721:\r
-               YYDEBUG(721, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'O') goto yy738;\r
-               if (yych == 'o') goto yy738;\r
-               goto yy186;\r
- yy722:\r
-               YYDEBUG(722, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'F') goto yy736;\r
-               if (yych == 'f') goto yy736;\r
-               goto yy186;\r
- yy723:\r
-               YYDEBUG(723, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'W') goto yy730;\r
-               if (yych == 'w') goto yy730;\r
-               goto yy186;\r
- yy724:\r
-               YYDEBUG(724, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'H') goto yy725;\r
-               if (yych != 'h') goto yy186;\r
- yy725:\r
-               YYDEBUG(725, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'I') goto yy726;\r
-               if (yych != 'i') goto yy186;\r
- yy726:\r
-               YYDEBUG(726, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'L') goto yy727;\r
-               if (yych != 'l') goto yy186;\r
- yy727:\r
-               YYDEBUG(727, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy728;\r
-               if (yych != 'e') goto yy186;\r
- yy728:\r
-               YYDEBUG(728, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(729, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 927 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_ENDWHILE;\r
- }\r
- #line 6584 "Zend/zend_language_scanner.c"\r
- yy730:\r
-               YYDEBUG(730, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'I') goto yy731;\r
-               if (yych != 'i') goto yy186;\r
- yy731:\r
-               YYDEBUG(731, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy732;\r
-               if (yych != 't') goto yy186;\r
- yy732:\r
-               YYDEBUG(732, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'C') goto yy733;\r
-               if (yych != 'c') goto yy186;\r
- yy733:\r
-               YYDEBUG(733, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'H') goto yy734;\r
-               if (yych != 'h') goto yy186;\r
- yy734:\r
-               YYDEBUG(734, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(735, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 971 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_ENDSWITCH;\r
- }\r
- #line 6617 "Zend/zend_language_scanner.c"\r
- yy736:\r
-               YYDEBUG(736, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(737, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 915 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_ENDIF;\r
- }\r
- #line 6630 "Zend/zend_language_scanner.c"\r
- yy738:\r
-               YYDEBUG(738, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'R') goto yy739;\r
-               if (yych != 'r') goto yy186;\r
- yy739:\r
-               YYDEBUG(739, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if ((yych = *YYCURSOR) <= '^') {\r
-                       if (yych <= '@') {\r
-                               if (yych <= '/') goto yy740;\r
-                               if (yych <= '9') goto yy185;\r
-                       } else {\r
-                               if (yych == 'E') goto yy741;\r
-                               if (yych <= 'Z') goto yy185;\r
-                       }\r
-               } else {\r
-                       if (yych <= 'd') {\r
-                               if (yych != '`') goto yy185;\r
-                       } else {\r
-                               if (yych <= 'e') goto yy741;\r
-                               if (yych <= 'z') goto yy185;\r
-                               if (yych >= 0x7F) goto yy185;\r
-                       }\r
-               }\r
- yy740:\r
-               YYDEBUG(740, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 939 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_ENDFOR;\r
- }\r
- #line 6663 "Zend/zend_language_scanner.c"\r
- yy741:\r
-               YYDEBUG(741, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy742;\r
-               if (yych != 'a') goto yy186;\r
- yy742:\r
-               YYDEBUG(742, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'C') goto yy743;\r
-               if (yych != 'c') goto yy186;\r
- yy743:\r
-               YYDEBUG(743, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'H') goto yy744;\r
-               if (yych != 'h') goto yy186;\r
- yy744:\r
-               YYDEBUG(744, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(745, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 947 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_ENDFOREACH;\r
- }\r
- #line 6691 "Zend/zend_language_scanner.c"\r
- yy746:\r
-               YYDEBUG(746, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'C') goto yy747;\r
-               if (yych != 'c') goto yy186;\r
- yy747:\r
-               YYDEBUG(747, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'L') goto yy748;\r
-               if (yych != 'l') goto yy186;\r
- yy748:\r
-               YYDEBUG(748, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'A') goto yy749;\r
-               if (yych != 'a') goto yy186;\r
- yy749:\r
-               YYDEBUG(749, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'R') goto yy750;\r
-               if (yych != 'r') goto yy186;\r
- yy750:\r
-               YYDEBUG(750, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy751;\r
-               if (yych != 'e') goto yy186;\r
- yy751:\r
-               YYDEBUG(751, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(752, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 955 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_ENDDECLARE;\r
- }\r
- #line 6729 "Zend/zend_language_scanner.c"\r
- yy753:\r
-               YYDEBUG(753, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'T') goto yy754;\r
-               if (yych != 't') goto yy186;\r
- yy754:\r
-               YYDEBUG(754, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'Y') goto yy755;\r
-               if (yych != 'y') goto yy186;\r
- yy755:\r
-               YYDEBUG(755, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(756, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1137 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_EMPTY;\r
- }\r
- #line 6752 "Zend/zend_language_scanner.c"\r
- yy757:\r
-               YYDEBUG(757, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'E') goto yy758;\r
-               if (yych != 'e') goto yy186;\r
- yy758:\r
-               YYDEBUG(758, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if ((yych = *YYCURSOR) <= '^') {\r
-                       if (yych <= '@') {\r
-                               if (yych <= '/') goto yy759;\r
-                               if (yych <= '9') goto yy185;\r
-                       } else {\r
-                               if (yych == 'I') goto yy760;\r
-                               if (yych <= 'Z') goto yy185;\r
-                       }\r
-               } else {\r
-                       if (yych <= 'h') {\r
-                               if (yych != '`') goto yy185;\r
-                       } else {\r
-                               if (yych <= 'i') goto yy760;\r
-                               if (yych <= 'z') goto yy185;\r
-                               if (yych >= 0x7F) goto yy185;\r
-                       }\r
-               }\r
- yy759:\r
-               YYDEBUG(759, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 919 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_ELSE;\r
- }\r
- #line 6785 "Zend/zend_language_scanner.c"\r
- yy760:\r
-               YYDEBUG(760, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'F') goto yy761;\r
-               if (yych != 'f') goto yy186;\r
- yy761:\r
-               YYDEBUG(761, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(762, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 911 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_ELSEIF;\r
- }\r
- #line 6803 "Zend/zend_language_scanner.c"\r
- yy763:\r
-               YYDEBUG(763, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yych == 'O') goto yy764;\r
-               if (yych != 'o') goto yy186;\r
- yy764:\r
-               YYDEBUG(764, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if (yybm[0+(yych = *YYCURSOR)] & 8) {\r
-                       goto yy185;\r
-               }\r
-               YYDEBUG(765, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 995 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_ECHO;\r
- }\r
- #line 6821 "Zend/zend_language_scanner.c"\r
-       }\r
- /* *********************************** */\r
- yyc_ST_LOOKING_FOR_PROPERTY:\r
-       {\r
-               static const unsigned char yybm[] = {\r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0, 128, 128,   0,   0, 128,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                       128,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                        64,  64,  64,  64,  64,  64,  64,  64, \r
-                        64,  64,   0,   0,   0,   0,   0,   0, \r
-                         0,  64,  64,  64,  64,  64,  64,  64, \r
-                        64,  64,  64,  64,  64,  64,  64,  64, \r
-                        64,  64,  64,  64,  64,  64,  64,  64, \r
-                        64,  64,  64,   0,   0,   0,   0,  64, \r
-                         0,  64,  64,  64,  64,  64,  64,  64, \r
-                        64,  64,  64,  64,  64,  64,  64,  64, \r
-                        64,  64,  64,  64,  64,  64,  64,  64, \r
-                        64,  64,  64,   0,   0,   0,   0,  64, \r
-                        64,  64,  64,  64,  64,  64,  64,  64, \r
-                        64,  64,  64,  64,  64,  64,  64,  64, \r
-                        64,  64,  64,  64,  64,  64,  64,  64, \r
-                        64,  64,  64,  64,  64,  64,  64,  64, \r
-                        64,  64,  64,  64,  64,  64,  64,  64, \r
-                        64,  64,  64,  64,  64,  64,  64,  64, \r
-                        64,  64,  64,  64,  64,  64,  64,  64, \r
-                        64,  64,  64,  64,  64,  64,  64,  64, \r
-                        64,  64,  64,  64,  64,  64,  64,  64, \r
-                        64,  64,  64,  64,  64,  64,  64,  64, \r
-                        64,  64,  64,  64,  64,  64,  64,  64, \r
-                        64,  64,  64,  64,  64,  64,  64,  64, \r
-                        64,  64,  64,  64,  64,  64,  64,  64, \r
-                        64,  64,  64,  64,  64,  64,  64,  64, \r
-                        64,  64,  64,  64,  64,  64,  64,  64, \r
-                        64,  64,  64,  64,  64,  64,  64,  64, \r
-               };\r
-               YYDEBUG(766, *YYCURSOR);\r
-               YYFILL(2);\r
-               yych = *YYCURSOR;\r
-               if (yych <= '-') {\r
-                       if (yych <= '\r') {\r
-                               if (yych <= 0x08) goto yy774;\r
-                               if (yych <= '\n') goto yy768;\r
-                               if (yych <= '\f') goto yy774;\r
-                       } else {\r
-                               if (yych == ' ') goto yy768;\r
-                               if (yych <= ',') goto yy774;\r
-                               goto yy770;\r
-                       }\r
-               } else {\r
-                       if (yych <= '_') {\r
-                               if (yych <= '@') goto yy774;\r
-                               if (yych <= 'Z') goto yy772;\r
-                               if (yych <= '^') goto yy774;\r
-                               goto yy772;\r
-                       } else {\r
-                               if (yych <= '`') goto yy774;\r
-                               if (yych <= 'z') goto yy772;\r
-                               if (yych <= '~') goto yy774;\r
-                               goto yy772;\r
-                       }\r
-               }\r
- yy768:\r
-               YYDEBUG(768, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               yych = *YYCURSOR;\r
-               goto yy780;\r
- yy769:\r
-               YYDEBUG(769, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1024 "Zend/zend_language_scanner.l"\r
-               {\r
-       zendlval->value.str.val = yytext; /* no copying - intentional */\r
-       zendlval->value.str.len = yyleng;\r
-       zendlval->type = IS_STRING;\r
-       HANDLE_NEWLINES(yytext, yyleng);\r
-       return T_WHITESPACE;\r
- }\r
- #line 6902 "Zend/zend_language_scanner.c"\r
- yy770:\r
-               YYDEBUG(770, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if ((yych = *YYCURSOR) == '>') goto yy777;\r
- yy771:\r
-               YYDEBUG(771, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1043 "Zend/zend_language_scanner.l"\r
-               {\r
-       yyless(0);\r
-       yy_pop_state(TSRMLS_C);\r
-       goto restart;\r
- }\r
- #line 6916 "Zend/zend_language_scanner.c"\r
- yy772:\r
-               YYDEBUG(772, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               yych = *YYCURSOR;\r
-               goto yy776;\r
- yy773:\r
-               YYDEBUG(773, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1036 "Zend/zend_language_scanner.l"\r
-               {\r
-       yy_pop_state(TSRMLS_C);\r
-       zend_copy_value(zendlval, yytext, yyleng);\r
-       zendlval->type = IS_STRING;\r
-       return T_STRING;\r
- }\r
- #line 6932 "Zend/zend_language_scanner.c"\r
- yy774:\r
-               YYDEBUG(774, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               goto yy771;\r
- yy775:\r
-               YYDEBUG(775, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
- yy776:\r
-               YYDEBUG(776, *YYCURSOR);\r
-               if (yybm[0+yych] & 64) {\r
-                       goto yy775;\r
-               }\r
-               goto yy773;\r
- yy777:\r
-               YYDEBUG(777, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(778, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1032 "Zend/zend_language_scanner.l"\r
-               {\r
-       return T_OBJECT_OPERATOR;\r
- }\r
- #line 6957 "Zend/zend_language_scanner.c"\r
- yy779:\r
-               YYDEBUG(779, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
- yy780:\r
-               YYDEBUG(780, *YYCURSOR);\r
-               if (yybm[0+yych] & 128) {\r
-                       goto yy779;\r
-               }\r
-               goto yy769;\r
-       }\r
- /* *********************************** */\r
- yyc_ST_LOOKING_FOR_VARNAME:\r
-       {\r
-               static const unsigned char yybm[] = {\r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128,   0,   0,   0,   0,   0,   0, \r
-                         0, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128,   0,   0,   0,   0, 128, \r
-                         0, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128,   0,   0,   0,   0, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-                       128, 128, 128, 128, 128, 128, 128, 128, \r
-               };\r
-               YYDEBUG(781, *YYCURSOR);\r
-               YYFILL(2);\r
-               yych = *YYCURSOR;\r
-               if (yych <= '_') {\r
-                       if (yych <= '@') goto yy785;\r
-                       if (yych <= 'Z') goto yy783;\r
-                       if (yych <= '^') goto yy785;\r
-               } else {\r
-                       if (yych <= '`') goto yy785;\r
-                       if (yych <= 'z') goto yy783;\r
-                       if (yych <= '~') goto yy785;\r
-               }\r
- yy783:\r
-               YYDEBUG(783, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               yych = *YYCURSOR;\r
-               goto yy788;\r
- yy784:\r
-               YYDEBUG(784, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1315 "Zend/zend_language_scanner.l"\r
-               {\r
-       zend_copy_value(zendlval, yytext, yyleng);\r
-       zendlval->type = IS_STRING;\r
-       yy_pop_state(TSRMLS_C);\r
-       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);\r
-       return T_STRING_VARNAME;\r
- }\r
- #line 7035 "Zend/zend_language_scanner.c"\r
- yy785:\r
-               YYDEBUG(785, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(786, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1324 "Zend/zend_language_scanner.l"\r
-               {\r
-       yyless(0);\r
-       yy_pop_state(TSRMLS_C);\r
-       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);\r
-       goto restart;\r
- }\r
- #line 7048 "Zend/zend_language_scanner.c"\r
- yy787:\r
-               YYDEBUG(787, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
- yy788:\r
-               YYDEBUG(788, *YYCURSOR);\r
-               if (yybm[0+yych] & 128) {\r
-                       goto yy787;\r
-               }\r
-               goto yy784;\r
-       }\r
- /* *********************************** */\r
- yyc_ST_NOWDOC:\r
-       YYDEBUG(789, *YYCURSOR);\r
-       YYFILL(1);\r
-       yych = *YYCURSOR;\r
-       YYDEBUG(791, *YYCURSOR);\r
-       ++YYCURSOR;\r
-       YYDEBUG(792, *YYCURSOR);\r
-       yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 2162 "Zend/zend_language_scanner.l"\r
-       {\r
-       int newline = 0;\r
\r
-       if (YYCURSOR > YYLIMIT) {\r
-               return 0;\r
-       }\r
\r
-       YYCURSOR--;\r
\r
-       while (YYCURSOR < YYLIMIT) {\r
-               switch (*YYCURSOR++) {\r
-                       case '\r':\r
-                               if (*YYCURSOR == '\n') {\r
-                                       YYCURSOR++;\r
-                               }\r
-                               /* fall through */\r
-                       case '\n':\r
-                               /* Check for ending label on the next line */\r
-                               if (IS_LABEL_START(*YYCURSOR) && CG(heredoc_len) < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, CG(heredoc), CG(heredoc_len))) {\r
-                                       YYCTYPE *end = YYCURSOR + CG(heredoc_len);\r
\r
-                                       if (*end == ';') {\r
-                                               end++;\r
-                                       }\r
\r
-                                       if (*end == '\n' || *end == '\r') {\r
-                                               /* newline before label will be subtracted from returned text, but\r
-                                                * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */\r
-                                               if (YYCURSOR[-2] == '\r' && YYCURSOR[-1] == '\n') {\r
-                                                       newline = 2; /* Windows newline */\r
-                                               } else {\r
-                                                       newline = 1;\r
-                                               }\r
\r
-                                               CG(increment_lineno) = 1; /* For newline before label */\r
-                                               BEGIN(ST_END_HEREDOC);\r
\r
-                                               goto nowdoc_scan_done;\r
-                                       }\r
-                               }\r
-                               /* fall through */\r
-                       default:\r
-                               continue;\r
-               }\r
-       }\r
\r
- nowdoc_scan_done:\r
-       yyleng = YYCURSOR - SCNG(yy_text);\r
\r
-       zend_copy_value(zendlval, yytext, yyleng - newline);\r
-       zendlval->type = IS_STRING;\r
-       HANDLE_NEWLINES(yytext, yyleng - newline);\r
-       return T_ENCAPSED_AND_WHITESPACE;\r
- }\r
- #line 7125 "Zend/zend_language_scanner.c"\r
- /* *********************************** */\r
- yyc_ST_VAR_OFFSET:\r
-       {\r
-               static const unsigned char yybm[] = {\r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                         0,   0,   0,   0,   0,   0,   0,   0, \r
-                       224, 224, 224, 224, 224, 224, 224, 224, \r
-                       224, 224,   0,   0,   0,   0,   0,   0, \r
-                         0, 160, 160, 160, 160, 160, 160,  32, \r
-                        32,  32,  32,  32,  32,  32,  32,  32, \r
-                        32,  32,  32,  32,  32,  32,  32,  32, \r
-                        32,  32,  32,   0,   0,   0,   0,  32, \r
-                         0, 160, 160, 160, 160, 160, 160,  32, \r
-                        32,  32,  32,  32,  32,  32,  32,  32, \r
-                        32,  32,  32,  32,  32,  32,  32,  32, \r
-                        32,  32,  32,   0,   0,   0,   0,  32, \r
-                        32,  32,  32,  32,  32,  32,  32,  32, \r
-                        32,  32,  32,  32,  32,  32,  32,  32, \r
-                        32,  32,  32,  32,  32,  32,  32,  32, \r
-                        32,  32,  32,  32,  32,  32,  32,  32, \r
-                        32,  32,  32,  32,  32,  32,  32,  32, \r
-                        32,  32,  32,  32,  32,  32,  32,  32, \r
-                        32,  32,  32,  32,  32,  32,  32,  32, \r
-                        32,  32,  32,  32,  32,  32,  32,  32, \r
-                        32,  32,  32,  32,  32,  32,  32,  32, \r
-                        32,  32,  32,  32,  32,  32,  32,  32, \r
-                        32,  32,  32,  32,  32,  32,  32,  32, \r
-                        32,  32,  32,  32,  32,  32,  32,  32, \r
-                        32,  32,  32,  32,  32,  32,  32,  32, \r
-                        32,  32,  32,  32,  32,  32,  32,  32, \r
-                        32,  32,  32,  32,  32,  32,  32,  32, \r
-                        32,  32,  32,  32,  32,  32,  32,  32, \r
-               };\r
-               YYDEBUG(793, *YYCURSOR);\r
-               YYFILL(3);\r
-               yych = *YYCURSOR;\r
-               if (yych <= '/') {\r
-                       if (yych <= ' ') {\r
-                               if (yych <= '\f') {\r
-                                       if (yych <= 0x08) goto yy807;\r
-                                       if (yych <= '\n') goto yy803;\r
-                                       goto yy807;\r
-                               } else {\r
-                                       if (yych <= '\r') goto yy803;\r
-                                       if (yych <= 0x1F) goto yy807;\r
-                                       goto yy803;\r
-                               }\r
-                       } else {\r
-                               if (yych <= '$') {\r
-                                       if (yych <= '"') goto yy802;\r
-                                       if (yych <= '#') goto yy803;\r
-                                       goto yy798;\r
-                               } else {\r
-                                       if (yych == '\'') goto yy803;\r
-                                       goto yy802;\r
-                               }\r
-                       }\r
-               } else {\r
-                       if (yych <= '\\') {\r
-                               if (yych <= '@') {\r
-                                       if (yych <= '0') goto yy795;\r
-                                       if (yych <= '9') goto yy797;\r
-                                       goto yy802;\r
-                               } else {\r
-                                       if (yych <= 'Z') goto yy805;\r
-                                       if (yych <= '[') goto yy802;\r
-                                       goto yy803;\r
-                               }\r
-                       } else {\r
-                               if (yych <= '_') {\r
-                                       if (yych <= ']') goto yy800;\r
-                                       if (yych <= '^') goto yy802;\r
-                                       goto yy805;\r
-                               } else {\r
-                                       if (yych <= '`') goto yy802;\r
-                                       if (yych <= 'z') goto yy805;\r
-                                       if (yych <= '~') goto yy802;\r
-                                       goto yy805;\r
-                               }\r
-                       }\r
-               }\r
- yy795:\r
-               YYDEBUG(795, *YYCURSOR);\r
-               yyaccept = 0;\r
-               yych = *(YYMARKER = ++YYCURSOR);\r
-               if (yych <= 'W') {\r
-                       if (yych <= '/') goto yy796;\r
-                       if (yych <= '9') goto yy818;\r
-               } else {\r
-                       if (yych <= 'X') goto yy816;\r
-                       if (yych == 'x') goto yy816;\r
-               }\r
- yy796:\r
-               YYDEBUG(796, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1378 "Zend/zend_language_scanner.l"\r
-               { /* Offset could be treated as a long */\r
-       if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {\r
-               zendlval->value.lval = strtol(yytext, NULL, 10);\r
-               zendlval->type = IS_LONG;\r
-       } else {\r
-               zendlval->value.str.val = (char *)estrndup(yytext, yyleng);\r
-               zendlval->value.str.len = yyleng;\r
-               zendlval->type = IS_STRING;\r
-       }\r
-       return T_NUM_STRING;\r
- }\r
- #line 7237 "Zend/zend_language_scanner.c"\r
- yy797:\r
-               YYDEBUG(797, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               goto yy815;\r
- yy798:\r
-               YYDEBUG(798, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               if ((yych = *YYCURSOR) <= '_') {\r
-                       if (yych <= '@') goto yy799;\r
-                       if (yych <= 'Z') goto yy811;\r
-                       if (yych >= '_') goto yy811;\r
-               } else {\r
-                       if (yych <= '`') goto yy799;\r
-                       if (yych <= 'z') goto yy811;\r
-                       if (yych >= 0x7F) goto yy811;\r
-               }\r
- yy799:\r
-               YYDEBUG(799, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1688 "Zend/zend_language_scanner.l"\r
-               {\r
-       /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */\r
-       return yytext[0];\r
- }\r
- #line 7262 "Zend/zend_language_scanner.c"\r
- yy800:\r
-               YYDEBUG(800, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(801, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1683 "Zend/zend_language_scanner.l"\r
-               {\r
-       yy_pop_state(TSRMLS_C);\r
-       return ']';\r
- }\r
- #line 7273 "Zend/zend_language_scanner.c"\r
- yy802:\r
-               YYDEBUG(802, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               goto yy799;\r
- yy803:\r
-               YYDEBUG(803, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(804, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1693 "Zend/zend_language_scanner.l"\r
-               {\r
-       /* Invalid rule to return a more explicit parse error with proper line number */\r
-       yyless(0);\r
-       yy_pop_state(TSRMLS_C);\r
-       return T_ENCAPSED_AND_WHITESPACE;\r
- }\r
- #line 7290 "Zend/zend_language_scanner.c"\r
- yy805:\r
-               YYDEBUG(805, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               yych = *YYCURSOR;\r
-               goto yy810;\r
- yy806:\r
-               YYDEBUG(806, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1700 "Zend/zend_language_scanner.l"\r
-               {\r
-       zend_copy_value(zendlval, yytext, yyleng);\r
-       zendlval->type = IS_STRING;\r
-       return T_STRING;\r
- }\r
- #line 7305 "Zend/zend_language_scanner.c"\r
- yy807:\r
-               YYDEBUG(807, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYDEBUG(808, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 2218 "Zend/zend_language_scanner.l"\r
-               {\r
-       if (YYCURSOR > YYLIMIT) {\r
-               return 0;\r
-       }\r
\r
-       zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);\r
-       goto restart;\r
- }\r
- #line 7320 "Zend/zend_language_scanner.c"\r
- yy809:\r
-               YYDEBUG(809, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
- yy810:\r
-               YYDEBUG(810, *YYCURSOR);\r
-               if (yybm[0+yych] & 32) {\r
-                       goto yy809;\r
-               }\r
-               goto yy806;\r
- yy811:\r
-               YYDEBUG(811, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(812, *YYCURSOR);\r
-               if (yych <= '^') {\r
-                       if (yych <= '9') {\r
-                               if (yych >= '0') goto yy811;\r
-                       } else {\r
-                               if (yych <= '@') goto yy813;\r
-                               if (yych <= 'Z') goto yy811;\r
-                       }\r
-               } else {\r
-                       if (yych <= '`') {\r
-                               if (yych <= '_') goto yy811;\r
-                       } else {\r
-                               if (yych <= 'z') goto yy811;\r
-                               if (yych >= 0x7F) goto yy811;\r
-                       }\r
-               }\r
- yy813:\r
-               YYDEBUG(813, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1677 "Zend/zend_language_scanner.l"\r
-               {\r
-       zend_copy_value(zendlval, (yytext+1), (yyleng-1));\r
-       zendlval->type = IS_STRING;\r
-       return T_VARIABLE;\r
- }\r
- #line 7362 "Zend/zend_language_scanner.c"\r
- yy814:\r
-               YYDEBUG(814, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
- yy815:\r
-               YYDEBUG(815, *YYCURSOR);\r
-               if (yybm[0+yych] & 64) {\r
-                       goto yy814;\r
-               }\r
-               goto yy796;\r
- yy816:\r
-               YYDEBUG(816, *YYCURSOR);\r
-               yych = *++YYCURSOR;\r
-               if (yybm[0+yych] & 128) {\r
-                       goto yy821;\r
-               }\r
-               YYDEBUG(817, *YYCURSOR);\r
-               YYCURSOR = YYMARKER;\r
-               goto yy796;\r
- yy818:\r
-               YYDEBUG(818, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(819, *YYCURSOR);\r
-               if (yych <= '/') goto yy820;\r
-               if (yych <= '9') goto yy818;\r
- yy820:\r
-               YYDEBUG(820, *YYCURSOR);\r
-               yyleng = YYCURSOR - SCNG(yy_text);\r
- #line 1390 "Zend/zend_language_scanner.l"\r
-               { /* Offset must be treated as a string */\r
-       zendlval->value.str.val = (char *)estrndup(yytext, yyleng);\r
-       zendlval->value.str.len = yyleng;\r
-       zendlval->type = IS_STRING;\r
-       return T_NUM_STRING;\r
- }\r
- #line 7401 "Zend/zend_language_scanner.c"\r
- yy821:\r
-               YYDEBUG(821, *YYCURSOR);\r
-               ++YYCURSOR;\r
-               YYFILL(1);\r
-               yych = *YYCURSOR;\r
-               YYDEBUG(822, *YYCURSOR);\r
-               if (yybm[0+yych] & 128) {\r
-                       goto yy821;\r
-               }\r
-               goto yy820;\r
-       }\r
- }\r
- #line 2227 "Zend/zend_language_scanner.l"\r
\r
- }\r
 -/* Generated by re2c 0.13.5 on Wed Feb 15 17:38:31 2012 */
++/* Generated by re2c 0.13.5 on Thu Mar  1 21:27:30 2012 */
+ #line 1 "Zend/zend_language_scanner.l"
+ /*
+    +----------------------------------------------------------------------+
+    | Zend Engine                                                          |
+    +----------------------------------------------------------------------+
+    | Copyright (c) 1998-2012 Zend Technologies Ltd. (http://www.zend.com) |
+    +----------------------------------------------------------------------+
+    | This source file is subject to version 2.00 of the Zend license,     |
+    | that is bundled with this package in the file LICENSE, and is        |
+    | available through the world-wide-web at the following url:           |
+    | http://www.zend.com/license/2_00.txt.                                |
+    | If you did not receive a copy of the Zend license and are unable to  |
+    | obtain it through the world-wide-web, please send a note to          |
+    | license@zend.com so we can mail you a copy immediately.              |
+    +----------------------------------------------------------------------+
+    | Authors: Marcus Boerger <helly@php.net>                              |
+    |          Nuno Lopes <nlopess@php.net>                                |
+    |          Scott MacVicar <scottmac@php.net>                           |
+    | Flex version authors:                                                |
+    |          Andi Gutmans <andi@zend.com>                                |
+    |          Zeev Suraski <zeev@zend.com>                                |
+    +----------------------------------------------------------------------+
+ */
+ /* $Id$ */
+ #if 0
+ # define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c)
+ #else
+ # define YYDEBUG(s, c)
+ #endif
+ #include "zend_language_scanner_defs.h"
+ #include <errno.h>
+ #include "zend.h"
+ #include "zend_alloc.h"
+ #include <zend_language_parser.h>
+ #include "zend_compile.h"
+ #include "zend_language_scanner.h"
+ #include "zend_highlight.h"
+ #include "zend_constants.h"
+ #include "zend_variables.h"
+ #include "zend_operators.h"
+ #include "zend_API.h"
+ #include "zend_strtod.h"
+ #include "zend_exceptions.h"
+ #include "tsrm_virtual_cwd.h"
+ #include "tsrm_config_common.h"
+ #define YYCTYPE   unsigned char
+ #define YYFILL(n) { if ((YYCURSOR + n) >= (YYLIMIT + ZEND_MMAP_AHEAD)) { return 0; } }
+ #define YYCURSOR  SCNG(yy_cursor)
+ #define YYLIMIT   SCNG(yy_limit)
+ #define YYMARKER  SCNG(yy_marker)
+ #define YYGETCONDITION()  SCNG(yy_state)
+ #define YYSETCONDITION(s) SCNG(yy_state) = s
+ #define STATE(name)  yyc##name
+ /* emulate flex constructs */
+ #define BEGIN(state) YYSETCONDITION(STATE(state))
+ #define YYSTATE      YYGETCONDITION()
+ #define yytext       ((char*)SCNG(yy_text))
+ #define yyleng       SCNG(yy_leng)
+ #define yyless(x)    do { YYCURSOR = (unsigned char*)yytext + x; \
+                           yyleng   = (unsigned int)x; } while(0)
+ #define yymore()     goto yymore_restart
+ /* perform sanity check. If this message is triggered you should
+    increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */
+ #define YYMAXFILL 16
+ #if ZEND_MMAP_AHEAD < YYMAXFILL
+ # error ZEND_MMAP_AHEAD should be greater than or equal to YYMAXFILL
+ #endif
+ #ifdef HAVE_STDARG_H
+ # include <stdarg.h>
+ #endif
+ #ifdef HAVE_UNISTD_H
+ # include <unistd.h>
+ #endif
+ /* Globals Macros */
+ #define SCNG  LANG_SCNG
+ #ifdef ZTS
+ ZEND_API ts_rsrc_id language_scanner_globals_id;
+ #else
+ ZEND_API zend_php_scanner_globals language_scanner_globals;
+ #endif
+ #define HANDLE_NEWLINES(s, l)                                                                                                 \
+ do {                                                                                                                                                  \
+       char *p = (s), *boundary = p+(l);                                                                                       \
+                                                                                                                                                               \
+       while (p<boundary) {                                                                                                            \
+               if (*p == '\n' || (*p == '\r' && (*(p+1) != '\n'))) {                                   \
+                       CG(zend_lineno)++;                                                                                                      \
+               }                                                                                                                                               \
+               p++;                                                                                                                                    \
+       }                                                                                                                                                       \
+ } while (0)
+ #define HANDLE_NEWLINE(c) \
+ { \
+       if (c == '\n' || c == '\r') { \
+               CG(zend_lineno)++; \
+       } \
+ }
+ /* 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 size_t encoding_filter_script_to_internal(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length TSRMLS_DC)
++{
++      const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding(TSRMLS_C);
++      assert(internal_encoding && zend_multibyte_check_lexer_compatibility(internal_encoding));
++      return zend_multibyte_encoding_converter(to, to_length, from, from_length, internal_encoding, LANG_SCNG(script_encoding) TSRMLS_CC);
++}
++
++static size_t encoding_filter_script_to_intermediate(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length TSRMLS_DC)
++{
++      return zend_multibyte_encoding_converter(to, to_length, from, from_length, zend_multibyte_encoding_utf8, LANG_SCNG(script_encoding) TSRMLS_CC);
++}
++
++static size_t encoding_filter_intermediate_to_script(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length TSRMLS_DC)
++{
++      return zend_multibyte_encoding_converter(to, to_length, from, from_length,
++LANG_SCNG(script_encoding), zend_multibyte_encoding_utf8 TSRMLS_CC);
++}
++
++static size_t encoding_filter_intermediate_to_internal(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length TSRMLS_DC)
++{
++      const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding(TSRMLS_C);
++      assert(internal_encoding && zend_multibyte_check_lexer_compatibility(internal_encoding));
++      return zend_multibyte_encoding_converter(to, to_length, from, from_length,
++internal_encoding, zend_multibyte_encoding_utf8 TSRMLS_CC);
++}
++
++
+ static void _yy_push_state(int new_state TSRMLS_DC)
+ {
+       zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION(), sizeof(int));
+       YYSETCONDITION(new_state);
+ }
+ #define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm)
+ static void yy_pop_state(TSRMLS_D)
+ {
+       int *stack_state;
+       zend_stack_top(&SCNG(state_stack), (void **) &stack_state);
+       YYSETCONDITION(*stack_state);
+       zend_stack_del_top(&SCNG(state_stack));
+ }
+ static void yy_scan_buffer(char *str, unsigned int len TSRMLS_DC)
+ {
+       YYCURSOR       = (YYCTYPE*)str;
+       YYLIMIT        = YYCURSOR + len;
+       if (!SCNG(yy_start)) {
+               SCNG(yy_start) = YYCURSOR;
+       }
+ }
+ void startup_scanner(TSRMLS_D)
+ {
++      CG(parse_error) = 0;
+       CG(heredoc) = NULL;
+       CG(heredoc_len) = 0;
+       CG(doc_comment) = NULL;
+       CG(doc_comment_len) = 0;
+       zend_stack_init(&SCNG(state_stack));
+ }
+ void shutdown_scanner(TSRMLS_D)
+ {
+       if (CG(heredoc)) {
+               efree(CG(heredoc));
+               CG(heredoc_len)=0;
+       }
++      CG(parse_error) = 0;
+       zend_stack_destroy(&SCNG(state_stack));
+       RESET_DOC_COMMENT();
+ }
+ ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
+ {
+       lex_state->yy_leng   = SCNG(yy_leng);
+       lex_state->yy_start  = SCNG(yy_start);
+       lex_state->yy_text   = SCNG(yy_text);
+       lex_state->yy_cursor = SCNG(yy_cursor);
+       lex_state->yy_marker = SCNG(yy_marker);
+       lex_state->yy_limit  = SCNG(yy_limit);
+       lex_state->state_stack = SCNG(state_stack);
+       zend_stack_init(&SCNG(state_stack));
+       lex_state->in = SCNG(yy_in);
+       lex_state->yy_state = YYSTATE;
+       lex_state->filename = zend_get_compiled_filename(TSRMLS_C);
+       lex_state->lineno = CG(zend_lineno);
 -#ifdef ZEND_MULTIBYTE
+       lex_state->script_org = SCNG(script_org);
+       lex_state->script_org_size = SCNG(script_org_size);
+       lex_state->script_filtered = SCNG(script_filtered);
+       lex_state->script_filtered_size = SCNG(script_filtered_size);
+       lex_state->input_filter = SCNG(input_filter);
+       lex_state->output_filter = SCNG(output_filter);
+       lex_state->script_encoding = SCNG(script_encoding);
 -      lex_state->internal_encoding = SCNG(internal_encoding);
 -#endif /* ZEND_MULTIBYTE */
+ }
+ ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
+ {
+       SCNG(yy_leng)   = lex_state->yy_leng;
+       SCNG(yy_start)  = lex_state->yy_start;
+       SCNG(yy_text)   = lex_state->yy_text;
+       SCNG(yy_cursor) = lex_state->yy_cursor;
+       SCNG(yy_marker) = lex_state->yy_marker;
+       SCNG(yy_limit)  = lex_state->yy_limit;
+       zend_stack_destroy(&SCNG(state_stack));
+       SCNG(state_stack) = lex_state->state_stack;
+       SCNG(yy_in) = lex_state->in;
+       YYSETCONDITION(lex_state->yy_state);
+       CG(zend_lineno) = lex_state->lineno;
+       zend_restore_compiled_filename(lex_state->filename TSRMLS_CC);
 -#ifdef ZEND_MULTIBYTE
 -      if (SCNG(script_org)) {
 -              efree(SCNG(script_org));
 -              SCNG(script_org) = NULL;
 -      }
++
+       if (SCNG(script_filtered)) {
+               efree(SCNG(script_filtered));
+               SCNG(script_filtered) = NULL;
+       }
+       SCNG(script_org) = lex_state->script_org;
+       SCNG(script_org_size) = lex_state->script_org_size;
+       SCNG(script_filtered) = lex_state->script_filtered;
+       SCNG(script_filtered_size) = lex_state->script_filtered_size;
+       SCNG(input_filter) = lex_state->input_filter;
+       SCNG(output_filter) = lex_state->output_filter;
+       SCNG(script_encoding) = lex_state->script_encoding;
 -      SCNG(internal_encoding) = lex_state->internal_encoding;
 -#endif /* ZEND_MULTIBYTE */
+       if (CG(heredoc)) {
+               efree(CG(heredoc));
+               CG(heredoc) = NULL;
+               CG(heredoc_len) = 0;
+       }
+ }
+ ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC)
+ {
+       zend_llist_del_element(&CG(open_files), file_handle, (int (*)(void *, void *)) zend_compare_file_handles);
+       /* zend_file_handle_dtor() operates on the copy, so we have to NULLify the original here */
+       file_handle->opened_path = NULL;
+       if (file_handle->free_filename) {
+               file_handle->filename = NULL;
+       }
+ }
++#define BOM_UTF32_BE  "\x00\x00\xfe\xff"
++#define       BOM_UTF32_LE    "\xff\xfe\x00\x00"
++#define       BOM_UTF16_BE    "\xfe\xff"
++#define       BOM_UTF16_LE    "\xff\xfe"
++#define       BOM_UTF8                "\xef\xbb\xbf"
++
++static const zend_encoding *zend_multibyte_detect_utf_encoding(const unsigned char *script, size_t script_size TSRMLS_DC)
++{
++      const unsigned char *p;
++      int wchar_size = 2;
++      int le = 0;
++
++      /* utf-16 or utf-32? */
++      p = script;
++      while ((p-script) < script_size) {
++              p = memchr(p, 0, script_size-(p-script)-2);
++              if (!p) {
++                      break;
++              }
++              if (*(p+1) == '\0' && *(p+2) == '\0') {
++                      wchar_size = 4;
++                      break;
++              }
++
++              /* searching for UTF-32 specific byte orders, so this will do */
++              p += 4;
++      }
++
++      /* BE or LE? */
++      p = script;
++      while ((p-script) < script_size) {
++              if (*p == '\0' && *(p+wchar_size-1) != '\0') {
++                      /* BE */
++                      le = 0;
++                      break;
++              } else if (*p != '\0' && *(p+wchar_size-1) == '\0') {
++                      /* LE* */
++                      le = 1;
++                      break;
++              }
++              p += wchar_size;
++      }
++
++      if (wchar_size == 2) {
++              return le ? zend_multibyte_encoding_utf16le : zend_multibyte_encoding_utf16be;
++      } else {
++              return le ? zend_multibyte_encoding_utf32le : zend_multibyte_encoding_utf32be;
++      }
++
++      return NULL;
++}
++
++static const zend_encoding* zend_multibyte_detect_unicode(TSRMLS_D)
++{
++      const zend_encoding *script_encoding = NULL;
++      int bom_size;
++      unsigned char *pos1, *pos2;
++
++      if (LANG_SCNG(script_org_size) < sizeof(BOM_UTF32_LE)-1) {
++              return NULL;
++      }
++
++      /* check out BOM */
++      if (!memcmp(LANG_SCNG(script_org), BOM_UTF32_BE, sizeof(BOM_UTF32_BE)-1)) {
++              script_encoding = zend_multibyte_encoding_utf32be;
++              bom_size = sizeof(BOM_UTF32_BE)-1;
++      } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF32_LE, sizeof(BOM_UTF32_LE)-1)) {
++              script_encoding = zend_multibyte_encoding_utf32le;
++              bom_size = sizeof(BOM_UTF32_LE)-1;
++      } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF16_BE, sizeof(BOM_UTF16_BE)-1)) {
++              script_encoding = zend_multibyte_encoding_utf16be;
++              bom_size = sizeof(BOM_UTF16_BE)-1;
++      } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF16_LE, sizeof(BOM_UTF16_LE)-1)) {
++              script_encoding = zend_multibyte_encoding_utf16le;
++              bom_size = sizeof(BOM_UTF16_LE)-1;
++      } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF8, sizeof(BOM_UTF8)-1)) {
++              script_encoding = zend_multibyte_encoding_utf8;
++              bom_size = sizeof(BOM_UTF8)-1;
++      }
++
++      if (script_encoding) {
++              /* remove BOM */
++              LANG_SCNG(script_org) += bom_size;
++              LANG_SCNG(script_org_size) -= bom_size;
++
++              return script_encoding;
++      }
++
++      /* script contains NULL bytes -> auto-detection */
++      if ((pos1 = memchr(LANG_SCNG(script_org), 0, LANG_SCNG(script_org_size)))) {
++              /* check if the NULL byte is after the __HALT_COMPILER(); */
++              pos2 = LANG_SCNG(script_org);
++
++              while (pos1 - pos2 >= sizeof("__HALT_COMPILER();")-1) {
++                      pos2 = memchr(pos2, '_', pos1 - pos2);
++                      if (!pos2) break;
++                      pos2++;
++                      if (strncasecmp((char*)pos2, "_HALT_COMPILER", sizeof("_HALT_COMPILER")-1) == 0) {
++                              pos2 += sizeof("_HALT_COMPILER")-1;
++                              while (*pos2 == ' '  ||
++                                         *pos2 == '\t' ||
++                                         *pos2 == '\r' ||
++                                         *pos2 == '\n') {
++                                      pos2++;
++                              }
++                              if (*pos2 == '(') {
++                                      pos2++;
++                                      while (*pos2 == ' '  ||
++                                                 *pos2 == '\t' ||
++                                                 *pos2 == '\r' ||
++                                                 *pos2 == '\n') {
++                                              pos2++;
++                                      }
++                                      if (*pos2 == ')') {
++                                              pos2++;
++                                              while (*pos2 == ' '  ||
++                                                         *pos2 == '\t' ||
++                                                         *pos2 == '\r' ||
++                                                         *pos2 == '\n') {
++                                                      pos2++;
++                                              }
++                                              if (*pos2 == ';') {
++                                                      return NULL;
++                                              }
++                                      }
++                              }
++                      }
++              }
++              /* make best effort if BOM is missing */
++              return zend_multibyte_detect_utf_encoding(LANG_SCNG(script_org), LANG_SCNG(script_org_size) TSRMLS_CC);
++      }
++
++      return NULL;
++}
++
++static const zend_encoding* zend_multibyte_find_script_encoding(TSRMLS_D)
++{
++      const zend_encoding *script_encoding;
++
++      if (CG(detect_unicode)) {
++              /* check out bom(byte order mark) and see if containing wchars */
++              script_encoding = zend_multibyte_detect_unicode(TSRMLS_C);
++              if (script_encoding != NULL) {
++                      /* bom or wchar detection is prior to 'script_encoding' option */
++                      return script_encoding;
++              }
++      }
++
++      /* if no script_encoding specified, just leave alone */
++      if (!CG(script_encoding_list) || !CG(script_encoding_list_size)) {
++              return NULL;
++      }
++
++      /* if multiple encodings specified, detect automagically */
++      if (CG(script_encoding_list_size) > 1) {
++              return zend_multibyte_encoding_detector(LANG_SCNG(script_org), LANG_SCNG(script_org_size), CG(script_encoding_list), CG(script_encoding_list_size) TSRMLS_CC);
++      }
++
++      return CG(script_encoding_list)[0];
++}
++
++ZEND_API int zend_multibyte_set_filter(const zend_encoding *onetime_encoding TSRMLS_DC)
++{
++      const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding(TSRMLS_C);
++      const zend_encoding *script_encoding = onetime_encoding ? onetime_encoding: zend_multibyte_find_script_encoding(TSRMLS_C);
++
++      if (!script_encoding) {
++              return FAILURE;
++      }
++
++      /* judge input/output filter */
++      LANG_SCNG(script_encoding) = script_encoding;
++      LANG_SCNG(input_filter) = NULL;
++      LANG_SCNG(output_filter) = NULL;
++
++      if (!internal_encoding || LANG_SCNG(script_encoding) == internal_encoding) {
++              if (!zend_multibyte_check_lexer_compatibility(LANG_SCNG(script_encoding))) {
++                      /* and if not, work around w/ script_encoding -> utf-8 -> script_encoding conversion */
++                      LANG_SCNG(input_filter) = encoding_filter_script_to_intermediate;
++                      LANG_SCNG(output_filter) = encoding_filter_intermediate_to_script;
++              } else {
++                      LANG_SCNG(input_filter) = NULL;
++                      LANG_SCNG(output_filter) = NULL;
++              }
++              return SUCCESS;
++      }
++
++      if (zend_multibyte_check_lexer_compatibility(internal_encoding)) {
++              LANG_SCNG(input_filter) = encoding_filter_script_to_internal;
++              LANG_SCNG(output_filter) = NULL;
++      } else if (zend_multibyte_check_lexer_compatibility(LANG_SCNG(script_encoding))) {
++              LANG_SCNG(input_filter) = NULL;
++              LANG_SCNG(output_filter) = encoding_filter_script_to_internal;
++      } else {
++              /* both script and internal encodings are incompatible w/ flex */
++              LANG_SCNG(input_filter) = encoding_filter_script_to_intermediate;
++              LANG_SCNG(output_filter) = encoding_filter_intermediate_to_internal;
++      }
++
++      return 0;
++}
+ ZEND_API int open_file_for_scanning(zend_file_handle *file_handle TSRMLS_DC)
+ {
 -      char *file_path = NULL, *buf;
++      const char *file_path = NULL;
++      char *buf;
+       size_t size, offset = 0;
 -      
++
+       /* The shebang line was read, get the current position to obtain the buffer start */
+       if (CG(start_lineno) == 2 && file_handle->type == ZEND_HANDLE_FP && file_handle->handle.fp) {
+               if ((offset = ftell(file_handle->handle.fp)) == -1) {
+                       offset = 0;
+               }
+       }
+       if (zend_stream_fixup(file_handle, &buf, &size TSRMLS_CC) == FAILURE) {
+               return FAILURE;
+       }
+       zend_llist_add_element(&CG(open_files), file_handle);
+       if (file_handle->handle.stream.handle >= (void*)file_handle && file_handle->handle.stream.handle <= (void*)(file_handle+1)) {
+               zend_file_handle *fh = (zend_file_handle*)zend_llist_get_last(&CG(open_files));
+               size_t diff = (char*)file_handle->handle.stream.handle - (char*)file_handle;
+               fh->handle.stream.handle = (void*)(((char*)fh) + diff);
+               file_handle->handle.stream.handle = fh->handle.stream.handle;
+       }
+       /* Reset the scanner for scanning the new file */
+       SCNG(yy_in) = file_handle;
+       SCNG(yy_start) = NULL;
+       if (size != -1) {
 -#ifdef ZEND_MULTIBYTE
 -              if (zend_multibyte_read_script((unsigned char *)buf, size TSRMLS_CC) != 0) {
 -                      return FAILURE;
 -              }
 -
 -              SCNG(yy_in) = NULL;
++              if (CG(multibyte)) {
++                      SCNG(script_org) = (unsigned char*)buf;
++                      SCNG(script_org_size) = size;
++                      SCNG(script_filtered) = NULL;
 -              zend_multibyte_set_filter(NULL TSRMLS_CC);
++                      zend_multibyte_set_filter(NULL TSRMLS_CC);
 -              if (!SCNG(input_filter)) {
 -                      SCNG(script_filtered) = (unsigned char*)emalloc(SCNG(script_org_size)+1);
 -                      memcpy(SCNG(script_filtered), SCNG(script_org), SCNG(script_org_size)+1);
 -                      SCNG(script_filtered_size) = SCNG(script_org_size);
 -              } else {
 -                      SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size) TSRMLS_CC);
 -                      if (SCNG(script_filtered) == NULL) {
 -                              zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
 -                                              "encoding \"%s\" to a compatible encoding", LANG_SCNG(script_encoding)->name);
++                      if (SCNG(input_filter)) {
++                              if ((size_t)-1 == SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size) TSRMLS_CC)) {
++                                      zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
++                                                      "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
++                              }
++                              buf = (char*)SCNG(script_filtered);
++                              size = SCNG(script_filtered_size);
+                       }
+               }
 -              SCNG(yy_start) = SCNG(script_filtered) - offset;
 -              yy_scan_buffer((char *)SCNG(script_filtered), SCNG(script_filtered_size) TSRMLS_CC);
 -#else /* !ZEND_MULTIBYTE */
 -              SCNG(yy_start) = buf - offset;
++              SCNG(yy_start) = (unsigned char *)buf - offset;
+               yy_scan_buffer(buf, size TSRMLS_CC);
 -#endif /* ZEND_MULTIBYTE */
+       } else {
+               zend_error_noreturn(E_COMPILE_ERROR, "zend_stream_mmap() failed");
+       }
+       BEGIN(INITIAL);
+       if (file_handle->opened_path) {
+               file_path = file_handle->opened_path;
+       } else {
+               file_path = file_handle->filename;
+       }
+       zend_set_compiled_filename(file_path TSRMLS_CC);
+       if (CG(start_lineno)) {
+               CG(zend_lineno) = CG(start_lineno);
+               CG(start_lineno) = 0;
+       } else {
+               CG(zend_lineno) = 1;
+       }
+       CG(increment_lineno) = 0;
+       return SUCCESS;
+ }
+ END_EXTERN_C()
+ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSRMLS_DC)
+ {
+       zend_lex_state original_lex_state;
+       zend_op_array *op_array = (zend_op_array *) emalloc(sizeof(zend_op_array));
+       zend_op_array *original_active_op_array = CG(active_op_array);
+       zend_op_array *retval=NULL;
+       int compiler_result;
+       zend_bool compilation_successful=0;
+       znode retval_znode;
+       zend_bool original_in_compilation = CG(in_compilation);
+       retval_znode.op_type = IS_CONST;
+       retval_znode.u.constant.type = IS_LONG;
+       retval_znode.u.constant.value.lval = 1;
+       Z_UNSET_ISREF(retval_znode.u.constant);
+       Z_SET_REFCOUNT(retval_znode.u.constant, 1);
+       zend_save_lexical_state(&original_lex_state TSRMLS_CC);
+       retval = op_array; /* success oriented */
+       if (open_file_for_scanning(file_handle TSRMLS_CC)==FAILURE) {
+               if (type==ZEND_REQUIRE) {
+                       zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, file_handle->filename TSRMLS_CC);
+                       zend_bailout();
+               } else {
+                       zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, file_handle->filename TSRMLS_CC);
+               }
+               compilation_successful=0;
+       } else {
+               init_op_array(op_array, ZEND_USER_FUNCTION, INITIAL_OP_ARRAY_SIZE TSRMLS_CC);
+               CG(in_compilation) = 1;
+               CG(active_op_array) = op_array;
++              zend_init_compiler_context(TSRMLS_C);
+               compiler_result = zendparse(TSRMLS_C);
+               zend_do_return(&retval_znode, 0 TSRMLS_CC);
+               CG(in_compilation) = original_in_compilation;
+               if (compiler_result==1) { /* parser error */
+                       zend_bailout();
+               }
+               compilation_successful=1;
+       }
+       if (retval) {
+               CG(active_op_array) = original_active_op_array;
+               if (compilation_successful) {
+                       pass_two(op_array TSRMLS_CC);
+                       zend_release_labels(TSRMLS_C);
+               } else {
+                       efree(op_array);
+                       retval = NULL;
+               }
+       }
+       zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
+       return retval;
+ }
+ zend_op_array *compile_filename(int type, zval *filename TSRMLS_DC)
+ {
+       zend_file_handle file_handle;
+       zval tmp;
+       zend_op_array *retval;
+       char *opened_path = NULL;
+       if (filename->type != IS_STRING) {
+               tmp = *filename;
+               zval_copy_ctor(&tmp);
+               convert_to_string(&tmp);
+               filename = &tmp;
+       }
+       file_handle.filename = filename->value.str.val;
+       file_handle.free_filename = 0;
+       file_handle.type = ZEND_HANDLE_FILENAME;
+       file_handle.opened_path = NULL;
+       file_handle.handle.fp = NULL;
+       retval = zend_compile_file(&file_handle, type TSRMLS_CC);
+       if (retval && file_handle.handle.stream.handle) {
+               int dummy = 1;
+               if (!file_handle.opened_path) {
+                       file_handle.opened_path = opened_path = estrndup(filename->value.str.val, filename->value.str.len);
+               }
+               zend_hash_add(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)+1, (void *)&dummy, sizeof(int), NULL);
+               if (opened_path) {
+                       efree(opened_path);
+               }
+       }
+       zend_destroy_file_handle(&file_handle TSRMLS_CC);
+       if (filename==&tmp) {
+               zval_dtor(&tmp);
+       }
+       return retval;
+ }
+ ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_DC)
+ {
++      char *buf;
++      size_t size;
++
+       /* enforce two trailing NULLs for flex... */
 -      str->value.str.val = safe_erealloc(str->value.str.val, 1, str->value.str.len, ZEND_MMAP_AHEAD);
++      if (IS_INTERNED(str->value.str.val)) {
++              char *tmp = safe_emalloc(1, str->value.str.len, ZEND_MMAP_AHEAD);
++              memcpy(tmp, str->value.str.val, str->value.str.len + ZEND_MMAP_AHEAD);
++              str->value.str.val = tmp;
++      } else {
++              str->value.str.val = safe_erealloc(str->value.str.val, 1, str->value.str.len, ZEND_MMAP_AHEAD);
++      }
+       memset(str->value.str.val + str->value.str.len, 0, ZEND_MMAP_AHEAD);
 -      SCNG(yy_in)=NULL;
++      SCNG(yy_in) = NULL;
+       SCNG(yy_start) = NULL;
 -#ifdef ZEND_MULTIBYTE
 -      SCNG(script_org) = (unsigned char *)estrdup(str->value.str.val);
 -      SCNG(script_org_size) = str->value.str.len;
++      buf = str->value.str.val;
++      size = str->value.str.len;
 -      zend_multibyte_set_filter(CG(internal_encoding) TSRMLS_CC);
++      if (CG(multibyte)) {
++              SCNG(script_org) = (unsigned char*)buf;
++              SCNG(script_org_size) = size;
++              SCNG(script_filtered) = NULL;
 -      if (!SCNG(input_filter)) {
 -              SCNG(script_filtered) = (unsigned char*)emalloc(SCNG(script_org_size)+1);
 -              memcpy(SCNG(script_filtered), SCNG(script_org), SCNG(script_org_size)+1);
 -              SCNG(script_filtered_size) = SCNG(script_org_size);
 -      } else {
 -              SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size) TSRMLS_CC);
++              zend_multibyte_set_filter(zend_multibyte_get_internal_encoding(TSRMLS_C) TSRMLS_CC);
++
++              if (SCNG(input_filter)) {
++                      if ((size_t)-1 == SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size) TSRMLS_CC)) {
++                              zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
++                                              "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
++                      }
++                      buf = (char*)SCNG(script_filtered);
++                      size = SCNG(script_filtered_size);
++              }
+       }
 -      yy_scan_buffer((char *)SCNG(script_filtered), SCNG(script_filtered_size) TSRMLS_CC);    
 -#else /* !ZEND_MULTIBYTE */
 -      yy_scan_buffer(str->value.str.val, str->value.str.len TSRMLS_CC);
 -#endif /* ZEND_MULTIBYTE */
++      yy_scan_buffer(buf, size TSRMLS_CC);
+       zend_set_compiled_filename(filename TSRMLS_CC);
+       CG(zend_lineno) = 1;
+       CG(increment_lineno) = 0;
+       return SUCCESS;
+ }
+ ZEND_API size_t zend_get_scanned_file_offset(TSRMLS_D)
+ {
+       size_t offset = SCNG(yy_cursor) - SCNG(yy_start);
 -#ifdef ZEND_MULTIBYTE
+       if (SCNG(input_filter)) {
 -              size_t original_offset = offset, length = 0; do {
++              size_t original_offset = offset, length = 0;
++              do {
+                       unsigned char *p = NULL;
 -                      SCNG(input_filter)(&p, &length, SCNG(script_org), offset TSRMLS_CC);
 -                      if (!p) {
 -                              break;
++                      if ((size_t)-1 == SCNG(input_filter)(&p, &length, SCNG(script_org), offset TSRMLS_CC)) {
++                              return (size_t)-1;
+                       }
+                       efree(p);
+                       if (length > original_offset) {
+                               offset--;
+                       } else if (length < original_offset) {
+                               offset++;
+                       }
+               } while (original_offset != length);
+       }
 -#endif
+       return offset;
+ }
+ zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC)
+ {
+       zend_lex_state original_lex_state;
+       zend_op_array *op_array = (zend_op_array *) emalloc(sizeof(zend_op_array));
+       zend_op_array *original_active_op_array = CG(active_op_array);
+       zend_op_array *retval;
+       zval tmp;
+       int compiler_result;
+       zend_bool original_in_compilation = CG(in_compilation);
+       if (source_string->value.str.len==0) {
+               efree(op_array);
+               return NULL;
+       }
+       CG(in_compilation) = 1;
+       tmp = *source_string;
+       zval_copy_ctor(&tmp);
+       convert_to_string(&tmp);
+       source_string = &tmp;
+       zend_save_lexical_state(&original_lex_state TSRMLS_CC);
+       if (zend_prepare_string_for_scanning(source_string, filename TSRMLS_CC)==FAILURE) {
+               efree(op_array);
+               retval = NULL;
+       } else {
+               zend_bool orig_interactive = CG(interactive);
+               CG(interactive) = 0;
+               init_op_array(op_array, ZEND_EVAL_CODE, INITIAL_OP_ARRAY_SIZE TSRMLS_CC);
+               CG(interactive) = orig_interactive;
+               CG(active_op_array) = op_array;
++              zend_init_compiler_context(TSRMLS_C);
+               BEGIN(ST_IN_SCRIPTING);
+               compiler_result = zendparse(TSRMLS_C);
 -#ifdef ZEND_MULTIBYTE
 -              if (SCNG(script_org)) {
 -                      efree(SCNG(script_org));
 -                      SCNG(script_org) = NULL;
 -              }
+               if (SCNG(script_filtered)) {
+                       efree(SCNG(script_filtered));
+                       SCNG(script_filtered) = NULL;
+               }
 -#endif /* ZEND_MULTIBYTE */
+               if (compiler_result==1) {
+                       CG(active_op_array) = original_active_op_array;
+                       CG(unclean_shutdown)=1;
+                       destroy_op_array(op_array TSRMLS_CC);
+                       efree(op_array);
+                       retval = NULL;
+               } else {
+                       zend_do_return(NULL, 0 TSRMLS_CC);
+                       CG(active_op_array) = original_active_op_array;
+                       pass_two(op_array TSRMLS_CC);
+                       zend_release_labels(TSRMLS_C);
+                       retval = op_array;
+               }
+       }
+       zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
+       zval_dtor(&tmp);
+       CG(in_compilation) = original_in_compilation;
+       return retval;
+ }
+ BEGIN_EXTERN_C()
+ int highlight_file(char *filename, zend_syntax_highlighter_ini *syntax_highlighter_ini TSRMLS_DC)
+ {
+       zend_lex_state original_lex_state;
+       zend_file_handle file_handle;
+       file_handle.type = ZEND_HANDLE_FILENAME;
+       file_handle.filename = filename;
+       file_handle.free_filename = 0;
+       file_handle.opened_path = NULL;
+       zend_save_lexical_state(&original_lex_state TSRMLS_CC);
+       if (open_file_for_scanning(&file_handle TSRMLS_CC)==FAILURE) {
+               zend_message_dispatcher(ZMSG_FAILED_HIGHLIGHT_FOPEN, filename TSRMLS_CC);
+               zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
+               return FAILURE;
+       }
+       zend_highlight(syntax_highlighter_ini TSRMLS_CC);
 -#ifdef ZEND_MULTIBYTE
 -      if (SCNG(script_org)) {
 -              efree(SCNG(script_org));
 -              SCNG(script_org) = NULL;
 -      }
+       if (SCNG(script_filtered)) {
+               efree(SCNG(script_filtered));
+               SCNG(script_filtered) = NULL;
+       }
 -#endif /* ZEND_MULTIBYTE */
+       zend_destroy_file_handle(&file_handle TSRMLS_CC);
+       zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
+       return SUCCESS;
+ }
+ int highlight_string(zval *str, zend_syntax_highlighter_ini *syntax_highlighter_ini, char *str_name TSRMLS_DC)
+ {
+       zend_lex_state original_lex_state;
+       zval tmp = *str;
+       str = &tmp;
+       zval_copy_ctor(str);
+       zend_save_lexical_state(&original_lex_state TSRMLS_CC);
+       if (zend_prepare_string_for_scanning(str, str_name TSRMLS_CC)==FAILURE) {
+               zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
+               return FAILURE;
+       }
+       BEGIN(INITIAL);
+       zend_highlight(syntax_highlighter_ini TSRMLS_CC);
 -#ifdef ZEND_MULTIBYTE
 -      if (SCNG(script_org)) {
 -              efree(SCNG(script_org));
 -              SCNG(script_org) = NULL;
 -      }
+       if (SCNG(script_filtered)) {
+               efree(SCNG(script_filtered));
+               SCNG(script_filtered) = NULL;
+       }
 -#endif /* ZEND_MULTIBYTE */
+       zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
+       zval_dtor(str);
+       return SUCCESS;
+ }
 -END_EXTERN_C()
 -
 -#ifdef ZEND_MULTIBYTE
 -BEGIN_EXTERN_C()
 -ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter, zend_encoding *old_encoding TSRMLS_DC)
++ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter, const zend_encoding *old_encoding TSRMLS_DC)
+ {
 -      size_t original_offset, offset, free_flag, new_len, length;
 -      unsigned char *p;
 -
 -      /* calculate current position */
 -      offset = original_offset = YYCURSOR - SCNG(yy_start);
 -      if (old_input_filter && offset > 0) {
 -              zend_encoding *new_encoding = SCNG(script_encoding);
 -              zend_encoding_filter new_filter = SCNG(input_filter);
 -              SCNG(script_encoding) = old_encoding;
 -              SCNG(input_filter) = old_input_filter;
 -              offset = zend_get_scanned_file_offset(TSRMLS_C);
 -              SCNG(script_encoding) = new_encoding;
 -              SCNG(input_filter) = new_filter;
 -      }
++      size_t length;
++      unsigned char *new_yy_start;
+       /* convert and set */
+       if (!SCNG(input_filter)) {
 -              length = SCNG(script_org_size) - offset;
 -              p = SCNG(script_org) + offset;
 -              free_flag = 0;
++              if (SCNG(script_filtered)) {
++                      efree(SCNG(script_filtered));
++                      SCNG(script_filtered) = NULL;
++              }
++              SCNG(script_filtered_size) = 0;
++              length = SCNG(script_org_size);
++              new_yy_start = SCNG(script_org);
+       } else {
 -              SCNG(input_filter)(&p, &length, SCNG(script_org) + offset, SCNG(script_org_size) - offset TSRMLS_CC);
 -              free_flag = 1;
 -      }
 -
 -      new_len = original_offset + length;
 -
 -      if (new_len > YYLIMIT - SCNG(yy_start)) {
 -              unsigned char *new_yy_start = erealloc(SCNG(yy_start), new_len);
 -              SCNG(yy_cursor) = new_yy_start + (SCNG(yy_cursor) - SCNG(yy_start));
 -              SCNG(yy_marker) = new_yy_start + (SCNG(yy_marker) - SCNG(yy_start));
 -              SCNG(yy_text) = new_yy_start + (SCNG(yy_text) - SCNG(yy_start));
 -              SCNG(yy_start) = new_yy_start;
 -              SCNG(script_filtered) = new_yy_start;
 -              SCNG(script_filtered_size) = new_len;
 -      }
 -
 -      SCNG(yy_limit) = SCNG(yy_start) + new_len;
 -      memmove(SCNG(yy_start) + original_offset, p, length);
 -
 -      if (free_flag) {
 -              efree(p);
 -      }
 -}
 -
 -
 -ZEND_API int zend_multibyte_yyinput(zend_file_handle *file_handle, char *buf, size_t len TSRMLS_DC)
 -{
 -      size_t n;
 -
 -      if (CG(interactive) == 0) {
 -              if (zend_stream_fixup(file_handle, &buf, &len TSRMLS_CC) == FAILURE) {
 -                      return FAILURE;
++              if ((size_t)-1 == SCNG(input_filter)(&new_yy_start, &length, SCNG(script_org), SCNG(script_org_size) TSRMLS_CC)) {
++                      zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
++                                      "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
+               }
 -              n = len;
 -              return n;
 -      }
 -
 -      /* interactive */
 -      if (SCNG(script_org)) {
 -              efree(SCNG(script_org));
 -      }
 -      if (SCNG(script_filtered)) {
 -              efree(SCNG(script_filtered));
 -      }
 -      SCNG(script_org) = NULL;
 -      SCNG(script_org_size) = 0;
 -
 -      /* TODO: support widechars */
 -      if (zend_stream_fixup(file_handle, &buf, &len TSRMLS_CC) == FAILURE) {
 -              return FAILURE;
++              SCNG(script_filtered) = new_yy_start;
++              SCNG(script_filtered_size) = length;
+       }
 -      n = len;
 -      SCNG(script_org_size) = n;
 -      SCNG(script_org) = (unsigned char*)emalloc(SCNG(script_org_size) + 1);
 -      memcpy(SCNG(script_org), buf, n);
++      SCNG(yy_cursor) = new_yy_start + (SCNG(yy_cursor) - SCNG(yy_start));
++      SCNG(yy_marker) = new_yy_start + (SCNG(yy_marker) - SCNG(yy_start));
++      SCNG(yy_text) = new_yy_start + (SCNG(yy_text) - SCNG(yy_start));
++      SCNG(yy_limit) = new_yy_start + (SCNG(yy_limit) - SCNG(yy_start));
 -      return n;
 -}
 -
 -
 -ZEND_API int zend_multibyte_read_script(unsigned char *buf, size_t n TSRMLS_DC)
 -{
 -      if (SCNG(script_org)) {
 -              efree(SCNG(script_org));
 -              SCNG(script_org) = NULL;
 -      }
 -      SCNG(script_org_size) = n;      
 -      
 -      SCNG(script_org) = (unsigned char*)emalloc(SCNG(script_org_size) + 1);
 -      memcpy(SCNG(script_org), buf, n);
 -      *(SCNG(script_org)+SCNG(script_org_size)) = '\0';
 -
 -      return 0;
++      SCNG(yy_start) = new_yy_start;
+ }
+ # define zend_copy_value(zendlval, yytext, yyleng) \
+       if (SCNG(output_filter)) { \
+               size_t sz = 0; \
+               SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)yytext, (size_t)yyleng TSRMLS_CC); \
+               zendlval->value.str.len = sz; \
+       } else { \
+               zendlval->value.str.val = (char *) estrndup(yytext, yyleng); \
+               zendlval->value.str.len = yyleng; \
+       }
 -#else /* ZEND_MULTIBYTE */
 -# define zend_copy_value(zendlval, yytext, yyleng) \
 -      zendlval->value.str.val = (char *)estrndup(yytext, yyleng); \
 -      zendlval->value.str.len = yyleng;
 -#endif /* ZEND_MULTIBYTE */
+ static void zend_scan_escape_string(zval *zendlval, char *str, int len, char quote_type TSRMLS_DC)
+ {
+       register char *s, *t;
+       char *end;
+       ZVAL_STRINGL(zendlval, str, len, 1);
+       /* convert escape sequences */
+       s = t = zendlval->value.str.val;
+       end = s+zendlval->value.str.len;
+       while (s<end) {
+               if (*s=='\\') {
+                       s++;
+                       if (s >= end) {
+                               *t++ = '\\';
+                               break;
+                       }
+                       switch(*s) {
+                               case 'n':
+                                       *t++ = '\n';
+                                       zendlval->value.str.len--;
+                                       break;
+                               case 'r':
+                                       *t++ = '\r';
+                                       zendlval->value.str.len--;
+                                       break;
+                               case 't':
+                                       *t++ = '\t';
+                                       zendlval->value.str.len--;
+                                       break;
+                               case 'f':
+                                       *t++ = '\f';
+                                       zendlval->value.str.len--;
+                                       break;
+                               case 'v':
+                                       *t++ = '\v';
+                                       zendlval->value.str.len--;
+                                       break;
++                              case 'e':
++                                      *t++ = '\e';
++                                      zendlval->value.str.len--;
++                                      break;
+                               case '"':
+                               case '`':
+                                       if (*s != quote_type) {
+                                               *t++ = '\\';
+                                               *t++ = *s;
+                                               break;
+                                       }
+                               case '\\':
+                               case '$':
+                                       *t++ = *s;
+                                       zendlval->value.str.len--;
+                                       break;
+                               case 'x':
+                               case 'X':
+                                       if (ZEND_IS_HEX(*(s+1))) {
+                                               char hex_buf[3] = { 0, 0, 0 };
+                                               zendlval->value.str.len--; /* for the 'x' */
+                                               hex_buf[0] = *(++s);
+                                               zendlval->value.str.len--;
+                                               if (ZEND_IS_HEX(*(s+1))) {
+                                                       hex_buf[1] = *(++s);
+                                                       zendlval->value.str.len--;
+                                               }
+                                               *t++ = (char) strtol(hex_buf, NULL, 16);
+                                       } else {
+                                               *t++ = '\\';
+                                               *t++ = *s;
+                                       }
+                                       break;
+                               default:
+                                       /* check for an octal */
+                                       if (ZEND_IS_OCT(*s)) {
+                                               char octal_buf[4] = { 0, 0, 0, 0 };
+                                               octal_buf[0] = *s;
+                                               zendlval->value.str.len--;
+                                               if (ZEND_IS_OCT(*(s+1))) {
+                                                       octal_buf[1] = *(++s);
+                                                       zendlval->value.str.len--;
+                                                       if (ZEND_IS_OCT(*(s+1))) {
+                                                               octal_buf[2] = *(++s);
+                                                               zendlval->value.str.len--;
+                                                       }
+                                               }
+                                               *t++ = (char) strtol(octal_buf, NULL, 8);
+                                       } else {
+                                               *t++ = '\\';
+                                               *t++ = *s;
+                                       }
+                                       break;
+                       }
+               } else {
+                       *t++ = *s;
+               }
+               if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
+                       CG(zend_lineno)++;
+               }
+               s++;
+       }
+       *t = 0;
 -#ifdef ZEND_MULTIBYTE
+       if (SCNG(output_filter)) {
+               size_t sz = 0;
+               s = zendlval->value.str.val;
+               SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)s, (size_t)zendlval->value.str.len TSRMLS_CC);
+               zendlval->value.str.len = sz;
+               efree(s);
+       }
 -#endif /* ZEND_MULTIBYTE */
+ }
+ int lex_scan(zval *zendlval TSRMLS_DC)
+ {
+ restart:
+       SCNG(yy_text) = YYCURSOR;
+ yymore_restart:
 -#line 862 "Zend/zend_language_scanner.c"
++#line 995 "Zend/zend_language_scanner.c"
+ {
+       YYCTYPE yych;
+       unsigned int yyaccept = 0;
+       if (YYGETCONDITION() < 5) {
+               if (YYGETCONDITION() < 2) {
+                       if (YYGETCONDITION() < 1) {
+                               goto yyc_ST_IN_SCRIPTING;
+                       } else {
+                               goto yyc_ST_LOOKING_FOR_PROPERTY;
+                       }
+               } else {
+                       if (YYGETCONDITION() < 3) {
+                               goto yyc_ST_BACKQUOTE;
+                       } else {
+                               if (YYGETCONDITION() < 4) {
+                                       goto yyc_ST_DOUBLE_QUOTES;
+                               } else {
+                                       goto yyc_ST_HEREDOC;
+                               }
+                       }
+               }
+       } else {
+               if (YYGETCONDITION() < 7) {
+                       if (YYGETCONDITION() < 6) {
+                               goto yyc_ST_LOOKING_FOR_VARNAME;
+                       } else {
+                               goto yyc_ST_VAR_OFFSET;
+                       }
+               } else {
+                       if (YYGETCONDITION() < 8) {
+                               goto yyc_INITIAL;
+                       } else {
+                               if (YYGETCONDITION() < 9) {
+                                       goto yyc_ST_END_HEREDOC;
+                               } else {
+                                       goto yyc_ST_NOWDOC;
+                               }
+                       }
+               }
+       }
+ /* *********************************** */
+ yyc_INITIAL:
+       {
+               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, 
+                         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, 
+                         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, 
+                         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, 
+                         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, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+                         0,   0,   0,   0,   0,   0,   0,   0, 
+               };
+               YYDEBUG(0, *YYCURSOR);
+               YYFILL(8);
+               yych = *YYCURSOR;
+               if (yych != '<') goto yy4;
+               YYDEBUG(2, *YYCURSOR);
+               yyaccept = 0;
+               yych = *(YYMARKER = ++YYCURSOR);
+               if (yych <= '?') {
+                       if (yych == '%') goto yy7;
+                       if (yych >= '?') goto yy5;
+               } else {
+                       if (yych <= 'S') {
+                               if (yych >= 'S') goto yy9;
+                       } else {
+                               if (yych == 's') goto yy9;
+                       }
+               }
+ yy3:
+               YYDEBUG(3, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1590 "Zend/zend_language_scanner.l"
++#line 1783 "Zend/zend_language_scanner.l"
+               {
+       if (YYCURSOR > YYLIMIT) {
+               return 0;
+       }
+ inline_char_handler:
+       while (1) {
+               YYCTYPE *ptr = memchr(YYCURSOR, '<', YYLIMIT - YYCURSOR);
+               YYCURSOR = ptr ? ptr + 1 : YYLIMIT;
+               if (YYCURSOR < YYLIMIT) {
+                       switch (*YYCURSOR) {
+                               case '?':
 -                                      if (CG(short_tags) || !strncasecmp(YYCURSOR + 1, "php", 3)) { /* Assume [ \t\n\r] follows "php" */
++                                      if (CG(short_tags) || !strncasecmp((char*)YYCURSOR + 1, "php", 3) || (*(YYCURSOR + 1) == '=')) { /* 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);
 -#ifdef ZEND_MULTIBYTE
+       if (SCNG(output_filter)) {
+               int readsize;
+               size_t sz = 0;
+               readsize = SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)yytext, (size_t)yyleng TSRMLS_CC);
+               zendlval->value.str.len = sz;
+               if (readsize < yyleng) {
+                       yyless(readsize);
+               }
+       } else {
+         zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
+         zendlval->value.str.len = yyleng;
+       }
 -#else /* !ZEND_MULTIBYTE */
 -      zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
 -      zendlval->value.str.len = yyleng;
 -#endif
+       zendlval->type = IS_STRING;
+       HANDLE_NEWLINES(yytext, yyleng);
+       return T_INLINE_HTML;
+ }
 -#line 1026 "Zend/zend_language_scanner.c"
++#line 1154 "Zend/zend_language_scanner.c"
+ yy4:
+               YYDEBUG(4, *YYCURSOR);
+               yych = *++YYCURSOR;
+               goto yy3;
+ yy5:
+               YYDEBUG(5, *YYCURSOR);
+               yyaccept = 1;
+               yych = *(YYMARKER = ++YYCURSOR);
+               if (yych <= 'O') {
+                       if (yych == '=') goto yy45;
+               } else {
+                       if (yych <= 'P') goto yy47;
+                       if (yych == 'p') goto yy47;
+               }
+ yy6:
+               YYDEBUG(6, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1578 "Zend/zend_language_scanner.l"
++#line 1771 "Zend/zend_language_scanner.l"
+               {
+       if (CG(short_tags)) {
+               zendlval->value.str.val = yytext; /* no copying - intentional */
+               zendlval->value.str.len = yyleng;
+               zendlval->type = IS_STRING;
+               BEGIN(ST_IN_SCRIPTING);
+               return T_OPEN_TAG;
+       } else {
+               goto inline_char_handler;
+       }
+ }
 -#line 1056 "Zend/zend_language_scanner.c"
++#line 1184 "Zend/zend_language_scanner.c"
+ yy7:
+               YYDEBUG(7, *YYCURSOR);
+               ++YYCURSOR;
+               if ((yych = *YYCURSOR) == '=') goto yy43;
+               YYDEBUG(8, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1555 "Zend/zend_language_scanner.l"
++#line 1748 "Zend/zend_language_scanner.l"
+               {
+       if (CG(asp_tags)) {
+               zendlval->value.str.val = yytext; /* no copying - intentional */
+               zendlval->value.str.len = yyleng;
+               zendlval->type = IS_STRING;
+               BEGIN(ST_IN_SCRIPTING);
+               return T_OPEN_TAG;
+       } else {
+               goto inline_char_handler;
+       }
+ }
 -#line 1075 "Zend/zend_language_scanner.c"
++#line 1203 "Zend/zend_language_scanner.c"
+ yy9:
+               YYDEBUG(9, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'C') goto yy11;
+               if (yych == 'c') goto yy11;
+ yy10:
+               YYDEBUG(10, *YYCURSOR);
+               YYCURSOR = YYMARKER;
+               if (yyaccept <= 0) {
+                       goto yy3;
+               } else {
+                       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 == 'P') goto yy14;
+               if (yych != 'p') goto yy10;
+ yy14:
+               YYDEBUG(14, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy15;
+               if (yych != 't') goto yy10;
+ yy15:
+               YYDEBUG(15, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'L') goto yy10;
+               if (yych == 'l') goto yy10;
+               goto yy17;
+ yy16:
+               YYDEBUG(16, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(8);
+               yych = *YYCURSOR;
+ yy17:
+               YYDEBUG(17, *YYCURSOR);
+               if (yybm[0+yych] & 128) {
+                       goto yy16;
+               }
+               if (yych == 'L') goto yy18;
+               if (yych != 'l') goto yy10;
+ yy18:
+               YYDEBUG(18, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy19;
+               if (yych != 'a') goto yy10;
+ yy19:
+               YYDEBUG(19, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'N') goto yy20;
+               if (yych != 'n') goto yy10;
+ yy20:
+               YYDEBUG(20, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'G') goto yy21;
+               if (yych != 'g') goto yy10;
+ yy21:
+               YYDEBUG(21, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'U') goto yy22;
+               if (yych != 'u') goto yy10;
+ yy22:
+               YYDEBUG(22, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy23;
+               if (yych != 'a') goto yy10;
+ yy23:
+               YYDEBUG(23, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'G') goto yy24;
+               if (yych != 'g') goto yy10;
+ yy24:
+               YYDEBUG(24, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy25;
+               if (yych != 'e') goto yy10;
+ yy25:
+               YYDEBUG(25, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
+               YYDEBUG(26, *YYCURSOR);
+               if (yych <= '\r') {
+                       if (yych <= 0x08) goto yy10;
+                       if (yych <= '\n') goto yy25;
+                       if (yych <= '\f') goto yy10;
+                       goto yy25;
+               } else {
+                       if (yych <= ' ') {
+                               if (yych <= 0x1F) goto yy10;
+                               goto yy25;
+                       } else {
+                               if (yych != '=') goto yy10;
+                       }
+               }
+ yy27:
+               YYDEBUG(27, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(5);
+               yych = *YYCURSOR;
+               YYDEBUG(28, *YYCURSOR);
+               if (yych <= '!') {
+                       if (yych <= '\f') {
+                               if (yych <= 0x08) goto yy10;
+                               if (yych <= '\n') goto yy27;
+                               goto yy10;
+                       } else {
+                               if (yych <= '\r') goto yy27;
+                               if (yych == ' ') goto yy27;
+                               goto yy10;
+                       }
+               } else {
+                       if (yych <= 'O') {
+                               if (yych <= '"') goto yy30;
+                               if (yych == '\'') goto yy31;
+                               goto yy10;
+                       } else {
+                               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 == 'P') goto yy32;
+               if (yych != 'p') goto yy10;
+ yy32:
+               YYDEBUG(32, *YYCURSOR);
+               yych = *++YYCURSOR;
+               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 yy10;
+ yy34:
+               YYDEBUG(34, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '\'') goto yy10;
+ yy35:
+               YYDEBUG(35, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
+               YYDEBUG(36, *YYCURSOR);
+               if (yych <= '\r') {
+                       if (yych <= 0x08) goto yy10;
+                       if (yych <= '\n') goto yy35;
+                       if (yych <= '\f') goto yy10;
+                       goto yy35;
+               } else {
+                       if (yych <= ' ') {
+                               if (yych <= 0x1F) goto yy10;
+                               goto yy35;
+                       } else {
+                               if (yych != '>') goto yy10;
+                       }
+               }
+               YYDEBUG(37, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(38, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1511 "Zend/zend_language_scanner.l"
++#line 1708 "Zend/zend_language_scanner.l"
+               {
 -      YYCTYPE *bracket = zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1));
++      YYCTYPE *bracket = (YYCTYPE*)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);
+       zendlval->value.str.val = yytext; /* no copying - intentional */
+       zendlval->value.str.len = yyleng;
+       zendlval->type = IS_STRING;
+       BEGIN(ST_IN_SCRIPTING);
+       return T_OPEN_TAG;
+ }
 -#line 1278 "Zend/zend_language_scanner.c"
++#line 1406 "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 == '"') goto yy35;
+               goto yy10;
+ yy42:
+               YYDEBUG(42, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'P') goto yy35;
+               if (yych == 'p') goto yy35;
+               goto yy10;
+ yy43:
+               YYDEBUG(43, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(44, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1529 "Zend/zend_language_scanner.l"
++#line 1726 "Zend/zend_language_scanner.l"
+               {
+       if (CG(asp_tags)) {
+               zendlval->value.str.val = yytext; /* no copying - intentional */
+               zendlval->value.str.len = yyleng;
+               zendlval->type = IS_STRING;
+               BEGIN(ST_IN_SCRIPTING);
+               return T_OPEN_TAG_WITH_ECHO;
+       } else {
+               goto inline_char_handler;
+       }
+ }
 -#line 1317 "Zend/zend_language_scanner.c"
++#line 1445 "Zend/zend_language_scanner.c"
+ yy45:
+               YYDEBUG(45, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(46, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1542 "Zend/zend_language_scanner.l"
++#line 1739 "Zend/zend_language_scanner.l"
+               {
 -      if (CG(short_tags)) {
 -              zendlval->value.str.val = yytext; /* no copying - intentional */
 -              zendlval->value.str.len = yyleng;
 -              zendlval->type = IS_STRING;
 -              BEGIN(ST_IN_SCRIPTING);
 -              return T_OPEN_TAG_WITH_ECHO;
 -      } else {
 -              goto inline_char_handler;
 -      }
++      zendlval->value.str.val = yytext; /* no copying - intentional */
++      zendlval->value.str.len = yyleng;
++      zendlval->type = IS_STRING;
++      BEGIN(ST_IN_SCRIPTING);
++      return T_OPEN_TAG_WITH_ECHO;
+ }
 -#line 1335 "Zend/zend_language_scanner.c"
++#line 1459 "Zend/zend_language_scanner.c"
+ yy47:
+               YYDEBUG(47, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'H') goto yy48;
+               if (yych != 'h') goto yy10;
+ yy48:
+               YYDEBUG(48, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'P') goto yy49;
+               if (yych != 'p') goto yy10;
+ yy49:
+               YYDEBUG(49, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= '\f') {
+                       if (yych <= 0x08) goto yy10;
+                       if (yych >= '\v') goto yy10;
+               } else {
+                       if (yych <= '\r') goto yy52;
+                       if (yych != ' ') goto yy10;
+               }
+ yy50:
+               YYDEBUG(50, *YYCURSOR);
+               ++YYCURSOR;
+ yy51:
+               YYDEBUG(51, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1568 "Zend/zend_language_scanner.l"
++#line 1761 "Zend/zend_language_scanner.l"
+               {
+       zendlval->value.str.val = yytext; /* no copying - intentional */
+       zendlval->value.str.len = yyleng;
+       zendlval->type = IS_STRING;
+       HANDLE_NEWLINE(yytext[yyleng-1]);
+       BEGIN(ST_IN_SCRIPTING);
+       return T_OPEN_TAG;
+ }
 -#line 1371 "Zend/zend_language_scanner.c"
++#line 1495 "Zend/zend_language_scanner.c"
+ yy52:
+               YYDEBUG(52, *YYCURSOR);
+               ++YYCURSOR;
+               if ((yych = *YYCURSOR) == '\n') goto yy50;
+               goto yy51;
+       }
+ /* *********************************** */
+ yyc_ST_BACKQUOTE:
+       {
+               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(53, *YYCURSOR);
+               YYFILL(2);
+               yych = *YYCURSOR;
+               if (yych <= '_') {
+                       if (yych != '$') goto yy60;
+               } else {
+                       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 yy66;
+                               if (yych >= 0x7F) goto yy63;
+                       }
+               }
+ yy56:
+               YYDEBUG(56, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 2048 "Zend/zend_language_scanner.l"
++#line 2234 "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);
+       zend_scan_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC);
+       return T_ENCAPSED_AND_WHITESPACE;
+ }
 -#line 1483 "Zend/zend_language_scanner.c"
++#line 1607 "Zend/zend_language_scanner.c"
+ yy57:
+               YYDEBUG(57, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == '$') goto yy61;
+               goto yy56;
+ yy58:
+               YYDEBUG(58, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(59, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1992 "Zend/zend_language_scanner.l"
++#line 2178 "Zend/zend_language_scanner.l"
+               {
+       BEGIN(ST_IN_SCRIPTING);
+       return '`';
+ }
 -#line 1499 "Zend/zend_language_scanner.c"
++#line 1623 "Zend/zend_language_scanner.c"
+ yy60:
+               YYDEBUG(60, *YYCURSOR);
+               yych = *++YYCURSOR;
+               goto yy56;
+ yy61:
+               YYDEBUG(61, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(62, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1979 "Zend/zend_language_scanner.l"
++#line 2165 "Zend/zend_language_scanner.l"
+               {
+       zendlval->value.lval = (long) '{';
+       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
+       yyless(1);
+       return T_CURLY_OPEN;
+ }
 -#line 1516 "Zend/zend_language_scanner.c"
++#line 1640 "Zend/zend_language_scanner.c"
+ yy63:
+               YYDEBUG(63, *YYCURSOR);
+               yyaccept = 0;
+               YYMARKER = ++YYCURSOR;
+               YYFILL(3);
+               yych = *YYCURSOR;
+               YYDEBUG(64, *YYCURSOR);
+               if (yybm[0+yych] & 128) {
+                       goto yy63;
+               }
+               if (yych == '-') goto yy68;
+               if (yych == '[') goto yy70;
+ yy65:
+               YYDEBUG(65, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1677 "Zend/zend_language_scanner.l"
++#line 1865 "Zend/zend_language_scanner.l"
+               {
+       zend_copy_value(zendlval, (yytext+1), (yyleng-1));
+       zendlval->type = IS_STRING;
+       return T_VARIABLE;
+ }
 -#line 1538 "Zend/zend_language_scanner.c"
++#line 1662 "Zend/zend_language_scanner.c"
+ yy66:
+               YYDEBUG(66, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(67, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1300 "Zend/zend_language_scanner.l"
++#line 1442 "Zend/zend_language_scanner.l"
+               {
+       yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
+       return T_DOLLAR_OPEN_CURLY_BRACES;
+ }
 -#line 1549 "Zend/zend_language_scanner.c"
++#line 1673 "Zend/zend_language_scanner.c"
+ yy68:
+               YYDEBUG(68, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == '>') goto yy72;
+ yy69:
+               YYDEBUG(69, *YYCURSOR);
+               YYCURSOR = YYMARKER;
+               goto yy65;
+ yy70:
+               YYDEBUG(70, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(71, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1669 "Zend/zend_language_scanner.l"
++#line 1857 "Zend/zend_language_scanner.l"
+               {
+       yyless(yyleng - 1);
+       yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
+       zend_copy_value(zendlval, (yytext+1), (yyleng-1));
+       zendlval->type = IS_STRING;
+       return T_VARIABLE;
+ }
 -#line 1571 "Zend/zend_language_scanner.c"
++#line 1695 "Zend/zend_language_scanner.c"
+ yy72:
+               YYDEBUG(72, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= '_') {
+                       if (yych <= '@') goto yy69;
+                       if (yych <= 'Z') goto yy73;
+                       if (yych <= '^') goto yy69;
+               } else {
+                       if (yych <= '`') goto yy69;
+                       if (yych <= 'z') goto yy73;
+                       if (yych <= '~') goto yy69;
+               }
+ yy73:
+               YYDEBUG(73, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(74, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1659 "Zend/zend_language_scanner.l"
++#line 1847 "Zend/zend_language_scanner.l"
+               {
+       yyless(yyleng - 3);
+       yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
+       zend_copy_value(zendlval, (yytext+1), (yyleng-1));
+       zendlval->type = IS_STRING;
+       return T_VARIABLE;
+ }
 -#line 1597 "Zend/zend_language_scanner.c"
++#line 1721 "Zend/zend_language_scanner.c"
+       }
+ /* *********************************** */
+ 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, 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(75, *YYCURSOR);
+               YYFILL(2);
+               yych = *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 ((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;
+                       }
+               }
+ yy78:
+               YYDEBUG(78, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1998 "Zend/zend_language_scanner.l"
++#line 2184 "Zend/zend_language_scanner.l"
+               {
+       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);
+       zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC);
+       return T_ENCAPSED_AND_WHITESPACE;
+ }
 -#line 1714 "Zend/zend_language_scanner.c"
++#line 1838 "Zend/zend_language_scanner.c"
+ yy79:
+               YYDEBUG(79, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == '$') goto yy83;
+               goto yy78;
+ yy80:
+               YYDEBUG(80, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(81, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1987 "Zend/zend_language_scanner.l"
++#line 2173 "Zend/zend_language_scanner.l"
+               {
+       BEGIN(ST_IN_SCRIPTING);
+       return '"';
+ }
 -#line 1730 "Zend/zend_language_scanner.c"
++#line 1854 "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 1979 "Zend/zend_language_scanner.l"
++#line 2165 "Zend/zend_language_scanner.l"
+               {
+       zendlval->value.lval = (long) '{';
+       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
+       yyless(1);
+       return T_CURLY_OPEN;
+ }
 -#line 1747 "Zend/zend_language_scanner.c"
++#line 1871 "Zend/zend_language_scanner.c"
+ yy85:
+               YYDEBUG(85, *YYCURSOR);
+               yyaccept = 0;
+               YYMARKER = ++YYCURSOR;
+               YYFILL(3);
+               yych = *YYCURSOR;
+               YYDEBUG(86, *YYCURSOR);
+               if (yybm[0+yych] & 128) {
+                       goto yy85;
+               }
+               if (yych == '-') goto yy90;
+               if (yych == '[') goto yy92;
+ yy87:
+               YYDEBUG(87, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1677 "Zend/zend_language_scanner.l"
++#line 1865 "Zend/zend_language_scanner.l"
+               {
+       zend_copy_value(zendlval, (yytext+1), (yyleng-1));
+       zendlval->type = IS_STRING;
+       return T_VARIABLE;
+ }
 -#line 1769 "Zend/zend_language_scanner.c"
++#line 1893 "Zend/zend_language_scanner.c"
+ yy88:
+               YYDEBUG(88, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(89, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1300 "Zend/zend_language_scanner.l"
++#line 1442 "Zend/zend_language_scanner.l"
+               {
+       yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
+       return T_DOLLAR_OPEN_CURLY_BRACES;
+ }
 -#line 1780 "Zend/zend_language_scanner.c"
++#line 1904 "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(93, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1669 "Zend/zend_language_scanner.l"
++#line 1857 "Zend/zend_language_scanner.l"
+               {
+       yyless(yyleng - 1);
+       yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
+       zend_copy_value(zendlval, (yytext+1), (yyleng-1));
+       zendlval->type = IS_STRING;
+       return T_VARIABLE;
+ }
 -#line 1802 "Zend/zend_language_scanner.c"
++#line 1926 "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 1659 "Zend/zend_language_scanner.l"
++#line 1847 "Zend/zend_language_scanner.l"
+               {
+       yyless(yyleng - 3);
+       yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
+       zend_copy_value(zendlval, (yytext+1), (yyleng-1));
+       zendlval->type = IS_STRING;
+       return T_VARIABLE;
+ }
 -#line 1828 "Zend/zend_language_scanner.c"
++#line 1952 "Zend/zend_language_scanner.c"
+       }
+ /* *********************************** */
+ yyc_ST_END_HEREDOC:
+       YYDEBUG(97, *YYCURSOR);
+       YYFILL(1);
+       yych = *YYCURSOR;
+       YYDEBUG(99, *YYCURSOR);
+       ++YYCURSOR;
+       YYDEBUG(100, *YYCURSOR);
+       yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1966 "Zend/zend_language_scanner.l"
++#line 2152 "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 1851 "Zend/zend_language_scanner.c"
++#line 1975 "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, 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(101, *YYCURSOR);
+               YYFILL(2);
+               yych = *YYCURSOR;
+               if (yych == '$') goto yy103;
+               if (yych == '{') goto yy105;
+               goto yy106;
+ yy103:
+               YYDEBUG(103, *YYCURSOR);
+               ++YYCURSOR;
+               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;
+                       }
+               }
+ yy104:
+               YYDEBUG(104, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 2090 "Zend/zend_language_scanner.l"
++#line 2276 "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 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);
+       zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0 TSRMLS_CC);
+       return T_ENCAPSED_AND_WHITESPACE;
+ }
 -#line 1984 "Zend/zend_language_scanner.c"
++#line 2108 "Zend/zend_language_scanner.c"
+ yy105:
+               YYDEBUG(105, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == '$') goto yy107;
+               goto yy104;
+ yy106:
+               YYDEBUG(106, *YYCURSOR);
+               yych = *++YYCURSOR;
+               goto yy104;
+ yy107:
+               YYDEBUG(107, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(108, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1979 "Zend/zend_language_scanner.l"
++#line 2165 "Zend/zend_language_scanner.l"
+               {
+       zendlval->value.lval = (long) '{';
+       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
+       yyless(1);
+       return T_CURLY_OPEN;
+ }
 -#line 2006 "Zend/zend_language_scanner.c"
++#line 2130 "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 1677 "Zend/zend_language_scanner.l"
++#line 1865 "Zend/zend_language_scanner.l"
+               {
+       zend_copy_value(zendlval, (yytext+1), (yyleng-1));
+       zendlval->type = IS_STRING;
+       return T_VARIABLE;
+ }
 -#line 2028 "Zend/zend_language_scanner.c"
++#line 2152 "Zend/zend_language_scanner.c"
+ yy112:
+               YYDEBUG(112, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(113, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1300 "Zend/zend_language_scanner.l"
++#line 1442 "Zend/zend_language_scanner.l"
+               {
+       yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
+       return T_DOLLAR_OPEN_CURLY_BRACES;
+ }
 -#line 2039 "Zend/zend_language_scanner.c"
++#line 2163 "Zend/zend_language_scanner.c"
+ yy114:
+               YYDEBUG(114, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == '>') goto yy118;
+ yy115:
+               YYDEBUG(115, *YYCURSOR);
+               YYCURSOR = YYMARKER;
+               goto yy111;
+ yy116:
+               YYDEBUG(116, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(117, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1669 "Zend/zend_language_scanner.l"
++#line 1857 "Zend/zend_language_scanner.l"
+               {
+       yyless(yyleng - 1);
+       yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
+       zend_copy_value(zendlval, (yytext+1), (yyleng-1));
+       zendlval->type = IS_STRING;
+       return T_VARIABLE;
+ }
 -#line 2061 "Zend/zend_language_scanner.c"
++#line 2185 "Zend/zend_language_scanner.c"
+ yy118:
+               YYDEBUG(118, *YYCURSOR);
+               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;
+               }
+ yy119:
+               YYDEBUG(119, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(120, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1659 "Zend/zend_language_scanner.l"
++#line 1847 "Zend/zend_language_scanner.l"
+               {
+       yyless(yyleng - 3);
+       yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
+       zend_copy_value(zendlval, (yytext+1), (yyleng-1));
+       zendlval->type = IS_STRING;
+       return T_VARIABLE;
+ }
 -#line 2087 "Zend/zend_language_scanner.c"
++#line 2211 "Zend/zend_language_scanner.c"
+       }
+ /* *********************************** */
+ yyc_ST_IN_SCRIPTING:
+       {
+               static const unsigned char yybm[] = {
+                         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, 
++                       60,  60,  44,  44,  44,  44,  44,  44, 
++                       44,  44,   0,   0,   0,   0,   0,   0, 
++                        0,  36,  36,  36,  36,  36,  36,   4, 
++                        4,   4,   4,   4,   4,   4,   4,   4, 
++                        4,   4,   4,   4,   4,   4,   4,   4, 
++                        4,   4,   4,   0,   0,   0,   0,   4, 
++                        0,  36,  36,  36,  36,  36,  36,   4, 
++                        4,   4,   4,   4,   4,   4,   4,   4, 
++                        4,   4,   4,   4,   4,   4,   4,   4, 
++                        4,   4,   4,   0,   0,   0,   0,   4, 
++                        4,   4,   4,   4,   4,   4,   4,   4, 
++                        4,   4,   4,   4,   4,   4,   4,   4, 
++                        4,   4,   4,   4,   4,   4,   4,   4, 
++                        4,   4,   4,   4,   4,   4,   4,   4, 
++                        4,   4,   4,   4,   4,   4,   4,   4, 
++                        4,   4,   4,   4,   4,   4,   4,   4, 
++                        4,   4,   4,   4,   4,   4,   4,   4, 
++                        4,   4,   4,   4,   4,   4,   4,   4, 
++                        4,   4,   4,   4,   4,   4,   4,   4, 
++                        4,   4,   4,   4,   4,   4,   4,   4, 
++                        4,   4,   4,   4,   4,   4,   4,   4, 
++                        4,   4,   4,   4,   4,   4,   4,   4, 
++                        4,   4,   4,   4,   4,   4,   4,   4, 
++                        4,   4,   4,   4,   4,   4,   4,   4, 
++                        4,   4,   4,   4,   4,   4,   4,   4, 
++                        4,   4,   4,   4,   4,   4,   4,   4, 
+               };
+               YYDEBUG(121, *YYCURSOR);
+               YYFILL(16);
+               yych = *YYCURSOR;
+               YYDEBUG(-1, yych);
+               switch (yych) {
+               case 0x00:
+               case 0x01:
+               case 0x02:
+               case 0x03:
+               case 0x04:
+               case 0x05:
+               case 0x06:
+               case 0x07:
+               case 0x08:
+               case '\v':
+               case '\f':
+               case 0x0E:
+               case 0x0F:
+               case 0x10:
+               case 0x11:
+               case 0x12:
+               case 0x13:
+               case 0x14:
+               case 0x15:
+               case 0x16:
+               case 0x17:
+               case 0x18:
+               case 0x19:
+               case 0x1A:
+               case 0x1B:
+               case 0x1C:
+               case 0x1D:
+               case 0x1E:
+               case 0x1F:      goto yy183;
+               case '\t':
+               case '\n':
+               case '\r':
+               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 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':
+               case '4':
+               case '5':
+               case '6':
+               case '7':
+               case '8':
+               case '9':       goto yy173;
+               case ':':       goto yy141;
+               case '<':       goto yy153;
+               case '=':       goto yy149;
+               case '>':       goto yy154;
+               case '?':       goto yy166;
+               case 'A':
+               case 'a':       goto yy132;
+               case 'B':
+               case 'b':       goto yy134;
+               case 'C':
+               case 'c':       goto yy127;
+               case 'D':
+               case 'd':       goto yy125;
+               case 'E':
+               case 'e':       goto yy123;
+               case 'F':
+               case 'f':       goto yy126;
+               case 'G':
+               case 'g':       goto yy135;
+               case 'I':
+               case 'i':       goto yy130;
+               case 'L':
+               case 'l':       goto yy150;
+               case 'N':
+               case 'n':       goto yy144;
+               case 'O':
+               case 'o':       goto yy162;
+               case 'P':
+               case 'p':       goto yy136;
+               case 'R':
+               case 'r':       goto yy128;
+               case 'S':
+               case 's':       goto yy133;
+               case 'T':
+               case 't':       goto yy129;
+               case 'U':
+               case 'u':       goto yy147;
+               case 'V':
+               case 'v':       goto yy145;
+               case 'W':
+               case 'w':       goto yy131;
+               case 'X':
+               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;
+               }
+ yy123:
+               YYDEBUG(123, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(-1, yych);
+               switch ((yych = *YYCURSOR)) {
+               case 'C':
 -              case 'c':       goto yy701;
++              case 'c':       goto yy726;
+               case 'L':
 -              case 'l':       goto yy702;
++              case 'l':       goto yy727;
+               case 'M':
 -              case 'm':       goto yy703;
++              case 'm':       goto yy728;
+               case 'N':
 -              case 'n':       goto yy704;
++              case 'n':       goto yy729;
+               case 'V':
 -              case 'v':       goto yy705;
++              case 'v':       goto yy730;
+               case 'X':
 -              case 'x':       goto yy706;
++              case 'x':       goto yy731;
+               default:        goto yy186;
+               }
+ yy124:
+               YYDEBUG(124, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1700 "Zend/zend_language_scanner.l"
++#line 1888 "Zend/zend_language_scanner.l"
+               {
+       zend_copy_value(zendlval, yytext, yyleng);
+       zendlval->type = IS_STRING;
+       return T_STRING;
+ }
 -#line 2274 "Zend/zend_language_scanner.c"
++#line 2398 "Zend/zend_language_scanner.c"
+ yy125:
+               YYDEBUG(125, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'O') {
+                       if (yych <= 'H') {
 -                              if (yych == 'E') goto yy683;
++                              if (yych == 'E') goto yy708;
+                               goto yy186;
+                       } else {
 -                              if (yych <= 'I') goto yy684;
++                              if (yych <= 'I') goto yy709;
+                               if (yych <= 'N') goto yy186;
 -                              goto yy685;
++                              goto yy710;
+                       }
+               } else {
+                       if (yych <= 'h') {
 -                              if (yych == 'e') goto yy683;
++                              if (yych == 'e') goto yy708;
+                               goto yy186;
+                       } else {
 -                              if (yych <= 'i') goto yy684;
 -                              if (yych == 'o') goto yy685;
++                              if (yych <= 'i') goto yy709;
++                              if (yych == 'o') goto yy710;
+                               goto yy186;
+                       }
+               }
+ yy126:
+               YYDEBUG(126, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'U') {
+                       if (yych <= 'N') {
 -                              if (yych == 'I') goto yy662;
++                              if (yych == 'I') goto yy687;
+                               goto yy186;
+                       } else {
 -                              if (yych <= 'O') goto yy663;
++                              if (yych <= 'O') goto yy688;
+                               if (yych <= 'T') goto yy186;
 -                              goto yy664;
++                              goto yy689;
+                       }
+               } else {
+                       if (yych <= 'n') {
 -                              if (yych == 'i') goto yy662;
++                              if (yych == 'i') goto yy687;
+                               goto yy186;
+                       } else {
 -                              if (yych <= 'o') goto yy663;
 -                              if (yych == 'u') goto yy664;
++                              if (yych <= 'o') goto yy688;
++                              if (yych == 'u') goto yy689;
+                               goto yy186;
+                       }
+               }
+ yy127:
+               YYDEBUG(127, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'O') {
+                       if (yych <= 'K') {
 -                              if (yych == 'A') goto yy634;
++                              if (yych == 'A') goto yy652;
+                               goto yy186;
+                       } else {
 -                              if (yych <= 'L') goto yy635;
++                              if (yych <= 'L') goto yy653;
+                               if (yych <= 'N') goto yy186;
 -                              goto yy636;
++                              goto yy654;
+                       }
+               } else {
+                       if (yych <= 'k') {
 -                              if (yych == 'a') goto yy634;
++                              if (yych == 'a') goto yy652;
+                               goto yy186;
+                       } else {
 -                              if (yych <= 'l') goto yy635;
 -                              if (yych == 'o') goto yy636;
++                              if (yych <= 'l') goto yy653;
++                              if (yych == 'o') goto yy654;
+                               goto yy186;
+                       }
+               }
+ yy128:
+               YYDEBUG(128, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy616;
 -              if (yych == 'e') goto yy616;
++              if (yych == 'E') goto yy634;
++              if (yych == 'e') goto yy634;
+               goto yy186;
+ yy129:
+               YYDEBUG(129, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'R') {
 -                      if (yych == 'H') goto yy608;
++                      if (yych == 'H') goto yy622;
+                       if (yych <= 'Q') goto yy186;
 -                      goto yy609;
++                      goto yy623;
+               } else {
+                       if (yych <= 'h') {
+                               if (yych <= 'g') goto yy186;
 -                              goto yy608;
++                              goto yy622;
+                       } else {
 -                              if (yych == 'r') goto yy609;
++                              if (yych == 'r') goto yy623;
+                               goto yy186;
+                       }
+               }
+ yy130:
+               YYDEBUG(130, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'S') {
+                       if (yych <= 'L') {
 -                              if (yych == 'F') goto yy561;
++                              if (yych == 'F') goto yy569;
+                               goto yy186;
+                       } else {
 -                              if (yych <= 'M') goto yy563;
 -                              if (yych <= 'N') goto yy564;
++                              if (yych <= 'M') goto yy571;
++                              if (yych <= 'N') goto yy572;
+                               if (yych <= 'R') goto yy186;
 -                              goto yy565;
++                              goto yy573;
+                       }
+               } else {
+                       if (yych <= 'm') {
 -                              if (yych == 'f') goto yy561;
++                              if (yych == 'f') goto yy569;
+                               if (yych <= 'l') goto yy186;
 -                              goto yy563;
++                              goto yy571;
+                       } else {
 -                              if (yych <= 'n') goto yy564;
 -                              if (yych == 's') goto yy565;
++                              if (yych <= 'n') goto yy572;
++                              if (yych == 's') goto yy573;
+                               goto yy186;
+                       }
+               }
+ yy131:
+               YYDEBUG(131, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'H') goto yy556;
 -              if (yych == 'h') goto yy556;
++              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 yy538;
++                              if (yych == 'B') goto yy546;
+                               goto yy186;
+                       } else {
 -                              if (yych <= 'N') goto yy539;
++                              if (yych <= 'N') goto yy547;
+                               if (yych <= 'Q') goto yy186;
 -                              if (yych <= 'R') goto yy540;
 -                              goto yy541;
++                              if (yych <= 'R') goto yy548;
++                              goto yy549;
+                       }
+               } else {
+                       if (yych <= 'n') {
 -                              if (yych == 'b') goto yy538;
++                              if (yych == 'b') goto yy546;
+                               if (yych <= 'm') goto yy186;
 -                              goto yy539;
++                              goto yy547;
+                       } else {
+                               if (yych <= 'q') goto yy186;
 -                              if (yych <= 'r') goto yy540;
 -                              if (yych <= 's') goto yy541;
++                              if (yych <= 'r') goto yy548;
++                              if (yych <= 's') goto yy549;
+                               goto yy186;
+                       }
+               }
+ yy133:
+               YYDEBUG(133, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'W') {
 -                      if (yych == 'T') goto yy526;
++                      if (yych == 'T') goto yy534;
+                       if (yych <= 'V') goto yy186;
 -                      goto yy527;
++                      goto yy535;
+               } else {
+                       if (yych <= 't') {
+                               if (yych <= 's') goto yy186;
 -                              goto yy526;
++                              goto yy534;
+                       } else {
 -                              if (yych == 'w') goto yy527;
++                              if (yych == 'w') goto yy535;
+                               goto yy186;
+                       }
+               }
+ yy134:
+               YYDEBUG(134, *YYCURSOR);
+               yyaccept = 0;
+               yych = *(YYMARKER = ++YYCURSOR);
+               if (yych <= ';') {
+                       if (yych <= '"') {
+                               if (yych <= '!') goto yy186;
 -                              goto yy518;
++                              goto yy526;
+                       } else {
 -                              if (yych == '\'') goto yy519;
++                              if (yych == '\'') goto yy527;
+                               goto yy186;
+                       }
+               } else {
+                       if (yych <= 'R') {
 -                              if (yych <= '<') goto yy517;
++                              if (yych <= '<') goto yy525;
+                               if (yych <= 'Q') goto yy186;
 -                              goto yy520;
++                              goto yy528;
+                       } else {
 -                              if (yych == 'r') goto yy520;
++                              if (yych == 'r') goto yy528;
+                               goto yy186;
+                       }
+               }
+ yy135:
+               YYDEBUG(135, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'O') {
 -                      if (yych == 'L') goto yy507;
++                      if (yych == 'L') goto yy515;
+                       if (yych <= 'N') goto yy186;
 -                      goto yy508;
++                      goto yy516;
+               } else {
+                       if (yych <= 'l') {
+                               if (yych <= 'k') goto yy186;
 -                              goto yy507;
++                              goto yy515;
+                       } else {
 -                              if (yych == 'o') goto yy508;
++                              if (yych == 'o') goto yy516;
+                               goto yy186;
+                       }
+               }
+ yy136:
+               YYDEBUG(136, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'U') {
 -                      if (yych == 'R') goto yy483;
++                      if (yych == 'R') goto yy491;
+                       if (yych <= 'T') goto yy186;
 -                      goto yy484;
++                      goto yy492;
+               } else {
+                       if (yych <= 'r') {
+                               if (yych <= 'q') goto yy186;
 -                              goto yy483;
++                              goto yy491;
+                       } else {
 -                              if (yych == 'u') goto yy484;
++                              if (yych == 'u') goto yy492;
+                               goto yy186;
+                       }
+               }
+ yy137:
+               YYDEBUG(137, *YYCURSOR);
+               ++YYCURSOR;
+               if ((yych = *YYCURSOR) <= '<') {
 -                      if (yych == '-') goto yy479;
++                      if (yych == '-') goto yy487;
+               } else {
 -                      if (yych <= '=') goto yy477;
 -                      if (yych <= '>') goto yy481;
++                      if (yych <= '=') goto yy485;
++                      if (yych <= '>') goto yy489;
+               }
+ yy138:
+               YYDEBUG(138, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1289 "Zend/zend_language_scanner.l"
++#line 1431 "Zend/zend_language_scanner.l"
+               {
+       return yytext[0];
+ }
 -#line 2504 "Zend/zend_language_scanner.c"
++#line 2628 "Zend/zend_language_scanner.c"
+ yy139:
+               YYDEBUG(139, *YYCURSOR);
+               ++YYCURSOR;
+               yych = *YYCURSOR;
 -              goto yy476;
++              goto yy484;
+ yy140:
+               YYDEBUG(140, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1024 "Zend/zend_language_scanner.l"
++#line 1162 "Zend/zend_language_scanner.l"
+               {
+       zendlval->value.str.val = yytext; /* no copying - intentional */
+       zendlval->value.str.len = yyleng;
+       zendlval->type = IS_STRING;
+       HANDLE_NEWLINES(yytext, yyleng);
+       return T_WHITESPACE;
+ }
 -#line 2521 "Zend/zend_language_scanner.c"
++#line 2645 "Zend/zend_language_scanner.c"
+ yy141:
+               YYDEBUG(141, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == ':') goto yy473;
++              if (yych == ':') goto yy481;
+               goto yy138;
+ yy142:
+               YYDEBUG(142, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(143, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1053 "Zend/zend_language_scanner.l"
++#line 1191 "Zend/zend_language_scanner.l"
+               {
+       return T_NS_SEPARATOR;
+ }
 -#line 2536 "Zend/zend_language_scanner.c"
++#line 2660 "Zend/zend_language_scanner.c"
+ yy144:
+               YYDEBUG(144, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'E') {
 -                      if (yych == 'A') goto yy461;
++                      if (yych == 'A') goto yy469;
+                       if (yych <= 'D') goto yy186;
 -                      goto yy462;
++                      goto yy470;
+               } else {
+                       if (yych <= 'a') {
+                               if (yych <= '`') goto yy186;
 -                              goto yy461;
++                              goto yy469;
+                       } else {
 -                              if (yych == 'e') goto yy462;
++                              if (yych == 'e') goto yy470;
+                               goto yy186;
+                       }
+               }
+ yy145:
+               YYDEBUG(145, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy458;
 -              if (yych == 'a') goto yy458;
++              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 yy379;
++                                      if (yych == '\t') goto yy391;
+                                       if (yych <= 0x1F) goto yy138;
 -                                      goto yy379;
++                                      goto yy391;
+                               } else {
+                                       if (yych <= '@') goto yy138;
+                                       if (yych == 'C') goto yy138;
 -                                      goto yy379;
++                                      goto yy391;
+                               }
+                       } else {
+                               if (yych <= 'I') {
 -                                      if (yych == 'F') goto yy379;
++                                      if (yych == 'F') goto yy391;
+                                       if (yych <= 'H') goto yy138;
 -                                      goto yy379;
++                                      goto yy391;
+                               } else {
 -                                      if (yych == 'O') goto yy379;
++                                      if (yych == 'O') goto yy391;
+                                       if (yych <= 'Q') goto yy138;
 -                                      goto yy379;
++                                      goto yy391;
+                               }
+                       }
+               } else {
+                       if (yych <= 'f') {
+                               if (yych <= 'b') {
 -                                      if (yych == 'U') goto yy379;
++                                      if (yych == 'U') goto yy391;
+                                       if (yych <= '`') goto yy138;
 -                                      goto yy379;
++                                      goto yy391;
+                               } else {
 -                                      if (yych == 'd') goto yy379;
++                                      if (yych == 'd') goto yy391;
+                                       if (yych <= 'e') goto yy138;
 -                                      goto yy379;
++                                      goto yy391;
+                               }
+                       } else {
+                               if (yych <= 'o') {
 -                                      if (yych == 'i') goto yy379;
++                                      if (yych == 'i') goto yy391;
+                                       if (yych <= 'n') goto yy138;
 -                                      goto yy379;
++                                      goto yy391;
+                               } else {
+                                       if (yych <= 's') {
+                                               if (yych <= 'q') goto yy138;
 -                                              goto yy379;
++                                              goto yy391;
+                                       } else {
 -                                              if (yych == 'u') goto yy379;
++                                              if (yych == 'u') goto yy391;
+                                               goto yy138;
+                                       }
+                               }
+                       }
+               }
+ yy147:
+               YYDEBUG(147, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'S') {
 -                      if (yych == 'N') goto yy370;
++                      if (yych == 'N') goto yy382;
+                       if (yych <= 'R') goto yy186;
 -                      goto yy371;
++                      goto yy383;
+               } else {
+                       if (yych <= 'n') {
+                               if (yych <= 'm') goto yy186;
 -                              goto yy370;
++                              goto yy382;
+                       } else {
 -                              if (yych == 's') goto yy371;
++                              if (yych == 's') goto yy383;
+                               goto yy186;
+                       }
+               }
+ yy148:
+               YYDEBUG(148, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == '_') goto yy296;
++              if (yych == '_') goto yy300;
+               goto yy186;
+ yy149:
+               YYDEBUG(149, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= '<') goto yy138;
 -              if (yych <= '=') goto yy290;
 -              if (yych <= '>') goto yy292;
++              if (yych <= '=') goto yy294;
++              if (yych <= '>') goto yy296;
+               goto yy138;
+ yy150:
+               YYDEBUG(150, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy286;
 -              if (yych == 'i') goto yy286;
++              if (yych == 'I') goto yy290;
++              if (yych == 'i') goto yy290;
+               goto yy186;
+ yy151:
+               YYDEBUG(151, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == '+') goto yy284;
 -              if (yych == '=') goto yy282;
++              if (yych == '+') goto yy288;
++              if (yych == '=') goto yy286;
+               goto yy138;
+ yy152:
+               YYDEBUG(152, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == '=') goto yy279;
++              if (yych == '=') goto yy283;
+               goto yy138;
+ yy153:
+               YYDEBUG(153, *YYCURSOR);
+               yyaccept = 1;
+               yych = *(YYMARKER = ++YYCURSOR);
+               if (yych <= ';') {
 -                      if (yych == '/') goto yy251;
++                      if (yych == '/') goto yy255;
+                       goto yy138;
+               } else {
 -                      if (yych <= '<') goto yy249;
 -                      if (yych <= '=') goto yy252;
 -                      if (yych <= '>') goto yy254;
++                      if (yych <= '<') goto yy253;
++                      if (yych <= '=') goto yy256;
++                      if (yych <= '>') goto yy258;
+                       goto yy138;
+               }
+ yy154:
+               YYDEBUG(154, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= '<') goto yy138;
 -              if (yych <= '=') goto yy245;
 -              if (yych <= '>') goto yy243;
++              if (yych <= '=') goto yy249;
++              if (yych <= '>') goto yy247;
+               goto yy138;
+ yy155:
+               YYDEBUG(155, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == '=') goto yy241;
++              if (yych == '=') goto yy245;
+               goto yy138;
+ yy156:
+               YYDEBUG(156, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= '.') {
 -                      if (yych == '*') goto yy233;
++                      if (yych == '*') goto yy237;
+                       goto yy138;
+               } else {
 -                      if (yych <= '/') goto yy235;
 -                      if (yych == '=') goto yy236;
++                      if (yych <= '/') goto yy239;
++                      if (yych == '=') goto yy240;
+                       goto yy138;
+               }
+ yy157:
+               YYDEBUG(157, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= '/') goto yy138;
 -              if (yych <= '9') goto yy229;
 -              if (yych == '=') goto yy231;
++              if (yych <= '9') goto yy233;
++              if (yych == '=') goto yy235;
+               goto yy138;
+ yy158:
+               YYDEBUG(158, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= '<') goto yy138;
 -              if (yych <= '=') goto yy225;
 -              if (yych <= '>') goto yy223;
++              if (yych <= '=') goto yy229;
++              if (yych <= '>') goto yy227;
+               goto yy138;
+ yy159:
+               YYDEBUG(159, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == '&') goto yy219;
 -              if (yych == '=') goto yy221;
++              if (yych == '&') goto yy223;
++              if (yych == '=') goto yy225;
+               goto yy138;
+ yy160:
+               YYDEBUG(160, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == '=') goto yy217;
 -              if (yych == '|') goto yy215;
++              if (yych == '=') goto yy221;
++              if (yych == '|') goto yy219;
+               goto yy138;
+ yy161:
+               YYDEBUG(161, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == '=') goto yy213;
++              if (yych == '=') goto yy217;
+               goto yy138;
+ yy162:
+               YYDEBUG(162, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy211;
 -              if (yych == 'r') goto yy211;
++              if (yych == 'R') goto yy215;
++              if (yych == 'r') goto yy215;
+               goto yy186;
+ yy163:
+               YYDEBUG(163, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy208;
 -              if (yych == 'o') goto yy208;
++              if (yych == 'O') goto yy212;
++              if (yych == 'o') goto yy212;
+               goto yy186;
+ yy164:
+               YYDEBUG(164, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= '_') {
+                       if (yych <= '@') goto yy138;
 -                      if (yych <= 'Z') goto yy205;
++                      if (yych <= 'Z') goto yy209;
+                       if (yych <= '^') goto yy138;
 -                      goto yy205;
++                      goto yy209;
+               } else {
+                       if (yych <= '`') goto yy138;
 -                      if (yych <= 'z') goto yy205;
++                      if (yych <= 'z') goto yy209;
+                       if (yych <= '~') goto yy138;
 -                      goto yy205;
++                      goto yy209;
+               }
+ yy165:
+               YYDEBUG(165, *YYCURSOR);
+               yych = *++YYCURSOR;
+               goto yy138;
+ yy166:
+               YYDEBUG(166, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == '>') goto yy201;
++              if (yych == '>') goto yy205;
+               goto yy138;
+ yy167:
+               YYDEBUG(167, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(168, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1294 "Zend/zend_language_scanner.l"
++#line 1436 "Zend/zend_language_scanner.l"
+               {
+       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
+       return '{';
+ }
 -#line 2769 "Zend/zend_language_scanner.c"
++#line 2893 "Zend/zend_language_scanner.c"
+ yy169:
+               YYDEBUG(169, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(170, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1306 "Zend/zend_language_scanner.l"
++#line 1448 "Zend/zend_language_scanner.l"
+               {
+       RESET_DOC_COMMENT();
+       if (!zend_stack_is_empty(&SCNG(state_stack))) {
+               yy_pop_state(TSRMLS_C);
+       }
+       return '}';
+ }
 -#line 2783 "Zend/zend_language_scanner.c"
++#line 2907 "Zend/zend_language_scanner.c"
+ yy171:
+               YYDEBUG(171, *YYCURSOR);
+               yyaccept = 2;
+               yych = *(YYMARKER = ++YYCURSOR);
+               if (yych <= 'E') {
 -                      if (yych <= '/') {
++                      if (yych <= '9') {
+                               if (yych == '.') goto yy187;
++                              if (yych >= '0') goto yy190;
+                       } else {
 -                              if (yych <= '9') goto yy190;
++                              if (yych == 'B') goto yy198;
+                               if (yych >= 'E') goto yy192;
+                       }
+               } else {
 -                      if (yych <= 'd') {
++                      if (yych <= 'b') {
+                               if (yych == 'X') goto yy197;
++                              if (yych >= 'b') goto yy198;
+                       } else {
 -                              if (yych <= 'e') goto yy192;
 -                              if (yych == 'x') goto yy197;
++                              if (yych <= 'e') {
++                                      if (yych >= 'e') goto yy192;
++                              } else {
++                                      if (yych == 'x') goto yy197;
++                              }
+                       }
+               }
+ yy172:
+               YYDEBUG(172, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1332 "Zend/zend_language_scanner.l"
++#line 1498 "Zend/zend_language_scanner.l"
+               {
+       if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
+               zendlval->value.lval = strtol(yytext, NULL, 0);
+       } else {
+               errno = 0;
+               zendlval->value.lval = strtol(yytext, NULL, 0);
+               if (errno == ERANGE) { /* Overflow */
+                       if (yytext[0] == '0') { /* octal overflow */
+                               zendlval->value.dval = zend_oct_strtod(yytext, NULL);
+                       } else {
+                               zendlval->value.dval = zend_strtod(yytext, NULL);
+                       }
+                       zendlval->type = IS_DOUBLE;
+                       return T_DNUMBER;
+               }
+       }
+       zendlval->type = IS_LONG;
+       return T_LNUMBER;
+ }
 -#line 2827 "Zend/zend_language_scanner.c"
++#line 2956 "Zend/zend_language_scanner.c"
+ yy173:
+               YYDEBUG(173, *YYCURSOR);
+               yyaccept = 2;
+               yych = *(YYMARKER = ++YYCURSOR);
+               if (yych <= '9') {
+                       if (yych == '.') goto yy187;
+                       if (yych <= '/') goto yy172;
+                       goto yy190;
+               } else {
+                       if (yych <= 'E') {
+                               if (yych <= 'D') goto yy172;
+                               goto yy192;
+                       } else {
+                               if (yych == 'e') goto yy192;
+                               goto yy172;
+                       }
+               }
+ yy174:
+               YYDEBUG(174, *YYCURSOR);
+               yych = *++YYCURSOR;
+               goto yy186;
+ yy175:
+               YYDEBUG(175, *YYCURSOR);
+               ++YYCURSOR;
+ yy176:
+               YYDEBUG(176, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1707 "Zend/zend_language_scanner.l"
++#line 1895 "Zend/zend_language_scanner.l"
+               {
+       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 2889 "Zend/zend_language_scanner.c"
++#line 3018 "Zend/zend_language_scanner.c"
+ yy177:
+               YYDEBUG(177, *YYCURSOR);
+               ++YYCURSOR;
+ yy178:
+               YYDEBUG(178, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1798 "Zend/zend_language_scanner.l"
++#line 1986 "Zend/zend_language_scanner.l"
+               {
+       register char *s, *t;
+       char *end;
+       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;
+               }
+       }
+       zendlval->value.str.val = estrndup(yytext+bprefix+1, yyleng-bprefix-2);
+       zendlval->value.str.len = yyleng-bprefix-2;
+       zendlval->type = IS_STRING;
+       /* convert escape sequences */
+       s = t = zendlval->value.str.val;
+       end = s+zendlval->value.str.len;
+       while (s<end) {
+               if (*s=='\\') {
+                       s++;
+                       switch(*s) {
+                               case '\\':
+                               case '\'':
+                                       *t++ = *s;
+                                       zendlval->value.str.len--;
+                                       break;
+                               default:
+                                       *t++ = '\\';
+                                       *t++ = *s;
+                                       break;
+                       }
+               } else {
+                       *t++ = *s;
+               }
+               if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
+                       CG(zend_lineno)++;
+               }
+               s++;
+       }
+       *t = 0;
 -#ifdef ZEND_MULTIBYTE
+       if (SCNG(output_filter)) {
+               size_t sz = 0;
+               s = zendlval->value.str.val;
+               SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)s, (size_t)zendlval->value.str.len TSRMLS_CC);
+               zendlval->value.str.len = sz;
+               efree(s);
+       }
 -#endif /* ZEND_MULTIBYTE */
+       return T_CONSTANT_ENCAPSED_STRING;
+ }
 -#line 2966 "Zend/zend_language_scanner.c"
++#line 3093 "Zend/zend_language_scanner.c"
+ yy179:
+               YYDEBUG(179, *YYCURSOR);
+               ++YYCURSOR;
+ yy180:
+               YYDEBUG(180, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1869 "Zend/zend_language_scanner.l"
++#line 2055 "Zend/zend_language_scanner.l"
+               {
+       int bprefix = (yytext[0] != '"') ? 1 : 0;
+       while (YYCURSOR < YYLIMIT) {
+               switch (*YYCURSOR++) {
+                       case '"':
+                               yyleng = YYCURSOR - SCNG(yy_text);
+                               zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"' TSRMLS_CC);
+                               return T_CONSTANT_ENCAPSED_STRING;
+                       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;
+       }
+       /* 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 '"';
+ }
 -#line 3014 "Zend/zend_language_scanner.c"
++#line 3141 "Zend/zend_language_scanner.c"
+ yy181:
+               YYDEBUG(181, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(182, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1960 "Zend/zend_language_scanner.l"
++#line 2146 "Zend/zend_language_scanner.l"
+               {
+       BEGIN(ST_BACKQUOTE);
+       return '`';
+ }
 -#line 3025 "Zend/zend_language_scanner.c"
++#line 3152 "Zend/zend_language_scanner.c"
+ yy183:
+               YYDEBUG(183, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(184, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 2218 "Zend/zend_language_scanner.l"
++#line 2404 "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 3040 "Zend/zend_language_scanner.c"
++#line 3167 "Zend/zend_language_scanner.c"
+ yy185:
+               YYDEBUG(185, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
+ yy186:
+               YYDEBUG(186, *YYCURSOR);
 -              if (yybm[0+yych] & 8) {
++              if (yybm[0+yych] & 4) {
+                       goto yy185;
+               }
+               goto yy124;
+ yy187:
+               YYDEBUG(187, *YYCURSOR);
+               yyaccept = 3;
+               YYMARKER = ++YYCURSOR;
+               YYFILL(3);
+               yych = *YYCURSOR;
+               YYDEBUG(188, *YYCURSOR);
 -              if (yybm[0+yych] & 16) {
++              if (yybm[0+yych] & 8) {
+                       goto yy187;
+               }
+               if (yych == 'E') goto yy192;
+               if (yych == 'e') goto yy192;
+ yy189:
+               YYDEBUG(189, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1397 "Zend/zend_language_scanner.l"
++#line 1563 "Zend/zend_language_scanner.l"
+               {
+       zendlval->value.dval = zend_strtod(yytext, NULL);
+       zendlval->type = IS_DOUBLE;
+       return T_DNUMBER;
+ }
 -#line 3073 "Zend/zend_language_scanner.c"
++#line 3200 "Zend/zend_language_scanner.c"
+ yy190:
+               YYDEBUG(190, *YYCURSOR);
+               yyaccept = 2;
+               YYMARKER = ++YYCURSOR;
+               YYFILL(3);
+               yych = *YYCURSOR;
+               YYDEBUG(191, *YYCURSOR);
+               if (yych <= '9') {
+                       if (yych == '.') goto yy187;
+                       if (yych <= '/') goto yy172;
+                       goto yy190;
+               } else {
+                       if (yych <= 'E') {
+                               if (yych <= 'D') goto yy172;
+                       } else {
+                               if (yych != 'e') goto yy172;
+                       }
+               }
+ yy192:
+               YYDEBUG(192, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= ',') {
+                       if (yych == '+') goto yy194;
+               } else {
+                       if (yych <= '-') goto yy194;
+                       if (yych <= '/') goto yy193;
+                       if (yych <= '9') goto yy195;
+               }
+ 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;
++                                      goto yy238;
+                               }
+                       } else {
 -                              goto yy250;
++                              goto yy254;
+                       }
+               }
+ yy194:
+               YYDEBUG(194, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= '/') goto yy193;
+               if (yych >= ':') goto yy193;
+ yy195:
+               YYDEBUG(195, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *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 yy198;
++                      goto yy202;
+               }
+               goto yy193;
+ yy198:
+               YYDEBUG(198, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yybm[0+yych] & 16) {
++                      goto yy199;
++              }
++              goto yy193;
++yy199:
++              YYDEBUG(199, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
 -              YYDEBUG(199, *YYCURSOR);
++              YYDEBUG(200, *YYCURSOR);
++              if (yybm[0+yych] & 16) {
++                      goto yy199;
++              }
++              YYDEBUG(201, *YYCURSOR);
++              yyleng = YYCURSOR - SCNG(yy_text);
++#line 1473 "Zend/zend_language_scanner.l"
++              {
++      char *bin = yytext + 2; /* Skip "0b" */
++      int len = yyleng - 2;
++
++      /* Skip any leading 0s */
++      while (*bin == '0') {
++              ++bin;
++              --len;
++      }
++
++      if (len < SIZEOF_LONG * 8) {
++              if (len == 0) {
++                      zendlval->value.lval = 0;
++              } else {
++                      zendlval->value.lval = strtol(bin, NULL, 2);
++              }
++              zendlval->type = IS_LONG;
++              return T_LNUMBER;
++      } else {
++              zendlval->value.dval = zend_bin_strtod(bin, NULL);
++              zendlval->type = IS_DOUBLE;
++              return T_DNUMBER;
++      }
++}
++#line 3317 "Zend/zend_language_scanner.c"
++yy202:
++              YYDEBUG(202, *YYCURSOR);
++              ++YYCURSOR;
++              YYFILL(1);
++              yych = *YYCURSOR;
++              YYDEBUG(203, *YYCURSOR);
+               if (yybm[0+yych] & 32) {
 -                      goto yy198;
++                      goto yy202;
+               }
 -              YYDEBUG(200, *YYCURSOR);
++              YYDEBUG(204, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1353 "Zend/zend_language_scanner.l"
++#line 1519 "Zend/zend_language_scanner.l"
+               {
+       char *hex = yytext + 2; /* Skip "0x" */
+       int len = yyleng - 2;
+       /* Skip any leading 0s */
+       while (*hex == '0') {
+               hex++;
+               len--;
+       }
+       if (len < SIZEOF_LONG * 2 || (len == SIZEOF_LONG * 2 && *hex <= '7')) {
+               if (len == 0) {
+                       zendlval->value.lval = 0;
+               } else {
+                       zendlval->value.lval = strtol(hex, NULL, 16);
+               }
+               zendlval->type = IS_LONG;
+               return T_LNUMBER;
+       } else {
+               zendlval->value.dval = zend_hex_strtod(hex, NULL);
+               zendlval->type = IS_DOUBLE;
+               return T_DNUMBER;
+       }
+ }
 -#line 3183 "Zend/zend_language_scanner.c"
 -yy201:
 -              YYDEBUG(201, *YYCURSOR);
++#line 3354 "Zend/zend_language_scanner.c"
++yy205:
++              YYDEBUG(205, *YYCURSOR);
+               ++YYCURSOR;
 -              if ((yych = *YYCURSOR) == '\n') goto yy203;
 -              if (yych == '\r') goto yy204;
 -yy202:
 -              YYDEBUG(202, *YYCURSOR);
++              if ((yych = *YYCURSOR) == '\n') goto yy207;
++              if (yych == '\r') goto yy208;
++yy206:
++              YYDEBUG(206, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1775 "Zend/zend_language_scanner.l"
++#line 1963 "Zend/zend_language_scanner.l"
+               {
+       zendlval->value.str.val = yytext; /* no copying - intentional */
+       zendlval->value.str.len = yyleng;
+       zendlval->type = IS_STRING;
+       BEGIN(INITIAL);
+       return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
+ }
 -#line 3200 "Zend/zend_language_scanner.c"
 -yy203:
 -              YYDEBUG(203, *YYCURSOR);
++#line 3371 "Zend/zend_language_scanner.c"
++yy207:
++              YYDEBUG(207, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              goto yy202;
 -yy204:
 -              YYDEBUG(204, *YYCURSOR);
++              goto yy206;
++yy208:
++              YYDEBUG(208, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == '\n') goto yy203;
 -              goto yy202;
 -yy205:
 -              YYDEBUG(205, *YYCURSOR);
++              if (yych == '\n') goto yy207;
++              goto yy206;
++yy209:
++              YYDEBUG(209, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
 -              YYDEBUG(206, *YYCURSOR);
++              YYDEBUG(210, *YYCURSOR);
+               if (yych <= '^') {
+                       if (yych <= '9') {
 -                              if (yych >= '0') goto yy205;
++                              if (yych >= '0') goto yy209;
+                       } else {
 -                              if (yych <= '@') goto yy207;
 -                              if (yych <= 'Z') goto yy205;
++                              if (yych <= '@') goto yy211;
++                              if (yych <= 'Z') goto yy209;
+                       }
+               } else {
+                       if (yych <= '`') {
 -                              if (yych <= '_') goto yy205;
++                              if (yych <= '_') goto yy209;
+                       } else {
 -                              if (yych <= 'z') goto yy205;
 -                              if (yych >= 0x7F) goto yy205;
++                              if (yych <= 'z') goto yy209;
++                              if (yych >= 0x7F) goto yy209;
+                       }
+               }
 -yy207:
 -              YYDEBUG(207, *YYCURSOR);
++yy211:
++              YYDEBUG(211, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1677 "Zend/zend_language_scanner.l"
++#line 1865 "Zend/zend_language_scanner.l"
+               {
+       zend_copy_value(zendlval, (yytext+1), (yyleng-1));
+       zendlval->type = IS_STRING;
+       return T_VARIABLE;
+ }
 -#line 3240 "Zend/zend_language_scanner.c"
 -yy208:
 -              YYDEBUG(208, *YYCURSOR);
++#line 3411 "Zend/zend_language_scanner.c"
++yy212:
++              YYDEBUG(212, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy209;
++              if (yych == 'R') goto yy213;
+               if (yych != 'r') goto yy186;
 -yy209:
 -              YYDEBUG(209, *YYCURSOR);
++yy213:
++              YYDEBUG(213, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(210, *YYCURSOR);
++              YYDEBUG(214, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1277 "Zend/zend_language_scanner.l"
++#line 1419 "Zend/zend_language_scanner.l"
+               {
+       return T_LOGICAL_XOR;
+ }
 -#line 3258 "Zend/zend_language_scanner.c"
 -yy211:
 -              YYDEBUG(211, *YYCURSOR);
++#line 3429 "Zend/zend_language_scanner.c"
++yy215:
++              YYDEBUG(215, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(212, *YYCURSOR);
++              YYDEBUG(216, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1269 "Zend/zend_language_scanner.l"
++#line 1411 "Zend/zend_language_scanner.l"
+               {
+       return T_LOGICAL_OR;
+ }
 -#line 3271 "Zend/zend_language_scanner.c"
 -yy213:
 -              YYDEBUG(213, *YYCURSOR);
++#line 3442 "Zend/zend_language_scanner.c"
++yy217:
++              YYDEBUG(217, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(214, *YYCURSOR);
++              YYDEBUG(218, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1257 "Zend/zend_language_scanner.l"
++#line 1399 "Zend/zend_language_scanner.l"
+               {
+       return T_XOR_EQUAL;
+ }
 -#line 3281 "Zend/zend_language_scanner.c"
 -yy215:
 -              YYDEBUG(215, *YYCURSOR);
++#line 3452 "Zend/zend_language_scanner.c"
++yy219:
++              YYDEBUG(219, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(216, *YYCURSOR);
++              YYDEBUG(220, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1261 "Zend/zend_language_scanner.l"
++#line 1403 "Zend/zend_language_scanner.l"
+               {
+       return T_BOOLEAN_OR;
+ }
 -#line 3291 "Zend/zend_language_scanner.c"
 -yy217:
 -              YYDEBUG(217, *YYCURSOR);
++#line 3462 "Zend/zend_language_scanner.c"
++yy221:
++              YYDEBUG(221, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(218, *YYCURSOR);
++              YYDEBUG(222, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1253 "Zend/zend_language_scanner.l"
++#line 1395 "Zend/zend_language_scanner.l"
+               {
+       return T_OR_EQUAL;
+ }
 -#line 3301 "Zend/zend_language_scanner.c"
 -yy219:
 -              YYDEBUG(219, *YYCURSOR);
++#line 3472 "Zend/zend_language_scanner.c"
++yy223:
++              YYDEBUG(223, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(220, *YYCURSOR);
++              YYDEBUG(224, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1265 "Zend/zend_language_scanner.l"
++#line 1407 "Zend/zend_language_scanner.l"
+               {
+       return T_BOOLEAN_AND;
+ }
 -#line 3311 "Zend/zend_language_scanner.c"
 -yy221:
 -              YYDEBUG(221, *YYCURSOR);
++#line 3482 "Zend/zend_language_scanner.c"
++yy225:
++              YYDEBUG(225, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(222, *YYCURSOR);
++              YYDEBUG(226, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1249 "Zend/zend_language_scanner.l"
++#line 1391 "Zend/zend_language_scanner.l"
+               {
+       return T_AND_EQUAL;
+ }
 -#line 3321 "Zend/zend_language_scanner.c"
 -yy223:
 -              YYDEBUG(223, *YYCURSOR);
++#line 3492 "Zend/zend_language_scanner.c"
++yy227:
++              YYDEBUG(227, *YYCURSOR);
+               ++YYCURSOR;
 -              if ((yych = *YYCURSOR) == '\n') goto yy227;
 -              if (yych == '\r') goto yy228;
 -yy224:
 -              YYDEBUG(224, *YYCURSOR);
++              if ((yych = *YYCURSOR) == '\n') goto yy231;
++              if (yych == '\r') goto yy232;
++yy228:
++              YYDEBUG(228, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1784 "Zend/zend_language_scanner.l"
++#line 1972 "Zend/zend_language_scanner.l"
+               {
+       if (CG(asp_tags)) {
+               BEGIN(INITIAL);
+               zendlval->value.str.len = yyleng;
+               zendlval->type = IS_STRING;
+               zendlval->value.str.val = yytext; /* no copying - intentional */
+               return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
+       } else {
+               yyless(1);
+               return yytext[0];
+       }
+ }
 -#line 3343 "Zend/zend_language_scanner.c"
 -yy225:
 -              YYDEBUG(225, *YYCURSOR);
++#line 3514 "Zend/zend_language_scanner.c"
++yy229:
++              YYDEBUG(229, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(226, *YYCURSOR);
++              YYDEBUG(230, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1237 "Zend/zend_language_scanner.l"
++#line 1379 "Zend/zend_language_scanner.l"
+               {
+       return T_MOD_EQUAL;
+ }
 -#line 3353 "Zend/zend_language_scanner.c"
 -yy227:
 -              YYDEBUG(227, *YYCURSOR);
++#line 3524 "Zend/zend_language_scanner.c"
++yy231:
++              YYDEBUG(231, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              goto yy224;
 -yy228:
 -              YYDEBUG(228, *YYCURSOR);
++              goto yy228;
++yy232:
++              YYDEBUG(232, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == '\n') goto yy227;
 -              goto yy224;
 -yy229:
 -              YYDEBUG(229, *YYCURSOR);
++              if (yych == '\n') goto yy231;
++              goto yy228;
++yy233:
++              YYDEBUG(233, *YYCURSOR);
+               yyaccept = 3;
+               YYMARKER = ++YYCURSOR;
+               YYFILL(3);
+               yych = *YYCURSOR;
 -              YYDEBUG(230, *YYCURSOR);
++              YYDEBUG(234, *YYCURSOR);
+               if (yych <= 'D') {
+                       if (yych <= '/') goto yy189;
 -                      if (yych <= '9') goto yy229;
++                      if (yych <= '9') goto yy233;
+                       goto yy189;
+               } else {
+                       if (yych <= 'E') goto yy192;
+                       if (yych == 'e') goto yy192;
+                       goto yy189;
+               }
 -yy231:
 -              YYDEBUG(231, *YYCURSOR);
++yy235:
++              YYDEBUG(235, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(232, *YYCURSOR);
++              YYDEBUG(236, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1233 "Zend/zend_language_scanner.l"
++#line 1375 "Zend/zend_language_scanner.l"
+               {
+       return T_CONCAT_EQUAL;
+ }
 -#line 3388 "Zend/zend_language_scanner.c"
 -yy233:
 -              YYDEBUG(233, *YYCURSOR);
++#line 3559 "Zend/zend_language_scanner.c"
++yy237:
++              YYDEBUG(237, *YYCURSOR);
+               yyaccept = 4;
+               yych = *(YYMARKER = ++YYCURSOR);
 -              if (yych == '*') goto yy238;
 -yy234:
 -              YYDEBUG(234, *YYCURSOR);
++              if (yych == '*') goto yy242;
++yy238:
++              YYDEBUG(238, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1741 "Zend/zend_language_scanner.l"
++#line 1929 "Zend/zend_language_scanner.l"
+               {
+       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) {
+               CG(doc_comment) = estrndup(yytext, yyleng);
+               CG(doc_comment_len) = yyleng;
+               return T_DOC_COMMENT;
+       }
+       return T_COMMENT;
+ }
 -#line 3431 "Zend/zend_language_scanner.c"
 -yy235:
 -              YYDEBUG(235, *YYCURSOR);
++#line 3602 "Zend/zend_language_scanner.c"
++yy239:
++              YYDEBUG(239, *YYCURSOR);
+               yych = *++YYCURSOR;
+               goto yy176;
 -yy236:
 -              YYDEBUG(236, *YYCURSOR);
++yy240:
++              YYDEBUG(240, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(237, *YYCURSOR);
++              YYDEBUG(241, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1229 "Zend/zend_language_scanner.l"
++#line 1371 "Zend/zend_language_scanner.l"
+               {
+       return T_DIV_EQUAL;
+ }
 -#line 3445 "Zend/zend_language_scanner.c"
 -yy238:
 -              YYDEBUG(238, *YYCURSOR);
++#line 3616 "Zend/zend_language_scanner.c"
++yy242:
++              YYDEBUG(242, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yybm[0+yych] & 64) {
 -                      goto yy239;
++                      goto yy243;
+               }
+               goto yy193;
 -yy239:
 -              YYDEBUG(239, *YYCURSOR);
++yy243:
++              YYDEBUG(243, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
 -              YYDEBUG(240, *YYCURSOR);
++              YYDEBUG(244, *YYCURSOR);
+               if (yybm[0+yych] & 64) {
 -                      goto yy239;
++                      goto yy243;
+               }
 -              goto yy234;
 -yy241:
 -              YYDEBUG(241, *YYCURSOR);
++              goto yy238;
++yy245:
++              YYDEBUG(245, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(242, *YYCURSOR);
++              YYDEBUG(246, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1225 "Zend/zend_language_scanner.l"
++#line 1367 "Zend/zend_language_scanner.l"
+               {
+       return T_MUL_EQUAL;
+ }
 -#line 3472 "Zend/zend_language_scanner.c"
 -yy243:
 -              YYDEBUG(243, *YYCURSOR);
++#line 3643 "Zend/zend_language_scanner.c"
++yy247:
++              YYDEBUG(247, *YYCURSOR);
+               ++YYCURSOR;
 -              if ((yych = *YYCURSOR) == '=') goto yy247;
 -              YYDEBUG(244, *YYCURSOR);
++              if ((yych = *YYCURSOR) == '=') goto yy251;
++              YYDEBUG(248, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1285 "Zend/zend_language_scanner.l"
++#line 1427 "Zend/zend_language_scanner.l"
+               {
+       return T_SR;
+ }
 -#line 3483 "Zend/zend_language_scanner.c"
 -yy245:
 -              YYDEBUG(245, *YYCURSOR);
++#line 3654 "Zend/zend_language_scanner.c"
++yy249:
++              YYDEBUG(249, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(246, *YYCURSOR);
++              YYDEBUG(250, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1213 "Zend/zend_language_scanner.l"
++#line 1355 "Zend/zend_language_scanner.l"
+               {
+       return T_IS_GREATER_OR_EQUAL;
+ }
 -#line 3493 "Zend/zend_language_scanner.c"
 -yy247:
 -              YYDEBUG(247, *YYCURSOR);
++#line 3664 "Zend/zend_language_scanner.c"
++yy251:
++              YYDEBUG(251, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(248, *YYCURSOR);
++              YYDEBUG(252, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1245 "Zend/zend_language_scanner.l"
++#line 1387 "Zend/zend_language_scanner.l"
+               {
+       return T_SR_EQUAL;
+ }
 -#line 3503 "Zend/zend_language_scanner.c"
 -yy249:
 -              YYDEBUG(249, *YYCURSOR);
++#line 3674 "Zend/zend_language_scanner.c"
++yy253:
++              YYDEBUG(253, *YYCURSOR);
+               yyaccept = 5;
+               yych = *(YYMARKER = ++YYCURSOR);
 -              if (yych <= ';') goto yy250;
 -              if (yych <= '<') goto yy265;
 -              if (yych <= '=') goto yy263;
 -yy250:
 -              YYDEBUG(250, *YYCURSOR);
++              if (yych <= ';') goto yy254;
++              if (yych <= '<') goto yy269;
++              if (yych <= '=') goto yy267;
++yy254:
++              YYDEBUG(254, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1281 "Zend/zend_language_scanner.l"
++#line 1423 "Zend/zend_language_scanner.l"
+               {
+       return T_SL;
+ }
 -#line 3518 "Zend/zend_language_scanner.c"
 -yy251:
 -              YYDEBUG(251, *YYCURSOR);
++#line 3689 "Zend/zend_language_scanner.c"
++yy255:
++              YYDEBUG(255, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy256;
 -              if (yych == 's') goto yy256;
++              if (yych == 'S') goto yy260;
++              if (yych == 's') goto yy260;
+               goto yy193;
 -yy252:
 -              YYDEBUG(252, *YYCURSOR);
++yy256:
++              YYDEBUG(256, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(253, *YYCURSOR);
++              YYDEBUG(257, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1209 "Zend/zend_language_scanner.l"
++#line 1351 "Zend/zend_language_scanner.l"
+               {
+       return T_IS_SMALLER_OR_EQUAL;
+ }
 -#line 3534 "Zend/zend_language_scanner.c"
 -yy254:
 -              YYDEBUG(254, *YYCURSOR);
++#line 3705 "Zend/zend_language_scanner.c"
++yy258:
++              YYDEBUG(258, *YYCURSOR);
+               ++YYCURSOR;
 -yy255:
 -              YYDEBUG(255, *YYCURSOR);
++yy259:
++              YYDEBUG(259, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1205 "Zend/zend_language_scanner.l"
++#line 1347 "Zend/zend_language_scanner.l"
+               {
+       return T_IS_NOT_EQUAL;
+ }
 -#line 3545 "Zend/zend_language_scanner.c"
 -yy256:
 -              YYDEBUG(256, *YYCURSOR);
++#line 3716 "Zend/zend_language_scanner.c"
++yy260:
++              YYDEBUG(260, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy257;
++              if (yych == 'C') goto yy261;
+               if (yych != 'c') goto yy193;
 -yy257:
 -              YYDEBUG(257, *YYCURSOR);
++yy261:
++              YYDEBUG(261, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy258;
++              if (yych == 'R') goto yy262;
+               if (yych != 'r') goto yy193;
 -yy258:
 -              YYDEBUG(258, *YYCURSOR);
++yy262:
++              YYDEBUG(262, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy259;
++              if (yych == 'I') goto yy263;
+               if (yych != 'i') goto yy193;
 -yy259:
 -              YYDEBUG(259, *YYCURSOR);
++yy263:
++              YYDEBUG(263, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'P') goto yy260;
++              if (yych == 'P') goto yy264;
+               if (yych != 'p') goto yy193;
 -yy260:
 -              YYDEBUG(260, *YYCURSOR);
++yy264:
++              YYDEBUG(264, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy261;
++              if (yych == 'T') goto yy265;
+               if (yych != 't') goto yy193;
 -yy261:
 -              YYDEBUG(261, *YYCURSOR);
++yy265:
++              YYDEBUG(265, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(3);
+               yych = *YYCURSOR;
 -              YYDEBUG(262, *YYCURSOR);
++              YYDEBUG(266, *YYCURSOR);
+               if (yych <= '\r') {
+                       if (yych <= 0x08) goto yy193;
 -                      if (yych <= '\n') goto yy261;
++                      if (yych <= '\n') goto yy265;
+                       if (yych <= '\f') goto yy193;
 -                      goto yy261;
++                      goto yy265;
+               } else {
+                       if (yych <= ' ') {
+                               if (yych <= 0x1F) goto yy193;
 -                              goto yy261;
++                              goto yy265;
+                       } else {
 -                              if (yych == '>') goto yy201;
++                              if (yych == '>') goto yy205;
+                               goto yy193;
+                       }
+               }
 -yy263:
 -              YYDEBUG(263, *YYCURSOR);
++yy267:
++              YYDEBUG(267, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(264, *YYCURSOR);
++              YYDEBUG(268, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1241 "Zend/zend_language_scanner.l"
++#line 1383 "Zend/zend_language_scanner.l"
+               {
+       return T_SL_EQUAL;
+ }
 -#line 3600 "Zend/zend_language_scanner.c"
 -yy265:
 -              YYDEBUG(265, *YYCURSOR);
++#line 3771 "Zend/zend_language_scanner.c"
++yy269:
++              YYDEBUG(269, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(2);
+               yych = *YYCURSOR;
 -              YYDEBUG(266, *YYCURSOR);
++              YYDEBUG(270, *YYCURSOR);
+               if (yybm[0+yych] & 128) {
 -                      goto yy265;
++                      goto yy269;
+               }
+               if (yych <= 'Z') {
+                       if (yych <= '&') {
 -                              if (yych == '"') goto yy270;
++                              if (yych == '"') goto yy274;
+                               goto yy193;
+                       } else {
 -                              if (yych <= '\'') goto yy269;
++                              if (yych <= '\'') goto yy273;
+                               if (yych <= '@') goto yy193;
+                       }
+               } else {
+                       if (yych <= '`') {
+                               if (yych != '_') goto yy193;
+                       } else {
 -                              if (yych <= 'z') goto yy267;
++                              if (yych <= 'z') goto yy271;
+                               if (yych <= '~') goto yy193;
+                       }
+               }
 -yy267:
 -              YYDEBUG(267, *YYCURSOR);
++yy271:
++              YYDEBUG(271, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(2);
+               yych = *YYCURSOR;
 -              YYDEBUG(268, *YYCURSOR);
++              YYDEBUG(272, *YYCURSOR);
+               if (yych <= '@') {
+                       if (yych <= '\f') {
 -                              if (yych == '\n') goto yy274;
++                              if (yych == '\n') goto yy278;
+                               goto yy193;
+                       } else {
 -                              if (yych <= '\r') goto yy276;
++                              if (yych <= '\r') goto yy280;
+                               if (yych <= '/') goto yy193;
 -                              if (yych <= '9') goto yy267;
++                              if (yych <= '9') goto yy271;
+                               goto yy193;
+                       }
+               } else {
+                       if (yych <= '_') {
 -                              if (yych <= 'Z') goto yy267;
++                              if (yych <= 'Z') goto yy271;
+                               if (yych <= '^') goto yy193;
 -                              goto yy267;
++                              goto yy271;
+                       } else {
+                               if (yych <= '`') goto yy193;
 -                              if (yych <= 'z') goto yy267;
++                              if (yych <= 'z') goto yy271;
+                               if (yych <= '~') goto yy193;
 -                              goto yy267;
++                              goto yy271;
+                       }
+               }
 -yy269:
 -              YYDEBUG(269, *YYCURSOR);
++yy273:
++              YYDEBUG(273, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == '\'') goto yy193;
 -              if (yych <= '/') goto yy278;
++              if (yych <= '/') goto yy282;
+               if (yych <= '9') goto yy193;
 -              goto yy278;
 -yy270:
 -              YYDEBUG(270, *YYCURSOR);
++              goto yy282;
++yy274:
++              YYDEBUG(274, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == '"') goto yy193;
 -              if (yych <= '/') goto yy272;
++              if (yych <= '/') goto yy276;
+               if (yych <= '9') goto yy193;
 -              goto yy272;
 -yy271:
 -              YYDEBUG(271, *YYCURSOR);
++              goto yy276;
++yy275:
++              YYDEBUG(275, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(3);
+               yych = *YYCURSOR;
 -yy272:
 -              YYDEBUG(272, *YYCURSOR);
++yy276:
++              YYDEBUG(276, *YYCURSOR);
+               if (yych <= 'Z') {
+                       if (yych <= '/') {
+                               if (yych != '"') goto yy193;
+                       } else {
 -                              if (yych <= '9') goto yy271;
++                              if (yych <= '9') goto yy275;
+                               if (yych <= '@') goto yy193;
 -                              goto yy271;
++                              goto yy275;
+                       }
+               } else {
+                       if (yych <= '`') {
 -                              if (yych == '_') goto yy271;
++                              if (yych == '_') goto yy275;
+                               goto yy193;
+                       } else {
 -                              if (yych <= 'z') goto yy271;
++                              if (yych <= 'z') goto yy275;
+                               if (yych <= '~') goto yy193;
 -                              goto yy271;
++                              goto yy275;
+                       }
+               }
 -yy273:
 -              YYDEBUG(273, *YYCURSOR);
++yy277:
++              YYDEBUG(277, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == '\n') goto yy274;
 -              if (yych == '\r') goto yy276;
++              if (yych == '\n') goto yy278;
++              if (yych == '\r') goto yy280;
+               goto yy193;
 -yy274:
 -              YYDEBUG(274, *YYCURSOR);
++yy278:
++              YYDEBUG(278, *YYCURSOR);
+               ++YYCURSOR;
 -yy275:
 -              YYDEBUG(275, *YYCURSOR);
++yy279:
++              YYDEBUG(279, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1911 "Zend/zend_language_scanner.l"
++#line 2097 "Zend/zend_language_scanner.l"
+               {
+       char *s;
+       int bprefix = (yytext[0] != '<') ? 1 : 0;
+       /* save old heredoc label */
+       Z_STRVAL_P(zendlval) = CG(heredoc);
+       Z_STRLEN_P(zendlval) = CG(heredoc_len);
+       CG(zend_lineno)++;
+       CG(heredoc_len) = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
+       s = yytext+bprefix+3;
+       while ((*s == ' ') || (*s == '\t')) {
+               s++;
+               CG(heredoc_len)--;
+       }
+       if (*s == '\'') {
+               s++;
+               CG(heredoc_len) -= 2;
+               BEGIN(ST_NOWDOC);
+       } else {
+               if (*s == '"') {
+                       s++;
+                       CG(heredoc_len) -= 2;
+               }
+               BEGIN(ST_HEREDOC);
+       }
+       CG(heredoc) = estrndup(s, CG(heredoc_len));
+       /* Check for ending label on the next line */
+       if (CG(heredoc_len) < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, CG(heredoc_len))) {
+               YYCTYPE *end = YYCURSOR + CG(heredoc_len);
+               if (*end == ';') {
+                       end++;
+               }
+               if (*end == '\n' || *end == '\r') {
+                       BEGIN(ST_END_HEREDOC);
+               }
+       }
+       return T_START_HEREDOC;
+ }
 -#line 3753 "Zend/zend_language_scanner.c"
 -yy276:
 -              YYDEBUG(276, *YYCURSOR);
++#line 3924 "Zend/zend_language_scanner.c"
++yy280:
++              YYDEBUG(280, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == '\n') goto yy274;
 -              goto yy275;
 -yy277:
 -              YYDEBUG(277, *YYCURSOR);
++              if (yych == '\n') goto yy278;
++              goto yy279;
++yy281:
++              YYDEBUG(281, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(3);
+               yych = *YYCURSOR;
 -yy278:
 -              YYDEBUG(278, *YYCURSOR);
++yy282:
++              YYDEBUG(282, *YYCURSOR);
+               if (yych <= 'Z') {
+                       if (yych <= '/') {
 -                              if (yych == '\'') goto yy273;
++                              if (yych == '\'') goto yy277;
+                               goto yy193;
+                       } else {
 -                              if (yych <= '9') goto yy277;
++                              if (yych <= '9') goto yy281;
+                               if (yych <= '@') goto yy193;
 -                              goto yy277;
++                              goto yy281;
+                       }
+               } else {
+                       if (yych <= '`') {
 -                              if (yych == '_') goto yy277;
++                              if (yych == '_') goto yy281;
+                               goto yy193;
+                       } else {
 -                              if (yych <= 'z') goto yy277;
++                              if (yych <= 'z') goto yy281;
+                               if (yych <= '~') goto yy193;
 -                              goto yy277;
++                              goto yy281;
+                       }
+               }
 -yy279:
 -              YYDEBUG(279, *YYCURSOR);
++yy283:
++              YYDEBUG(283, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych != '=') goto yy255;
 -              YYDEBUG(280, *YYCURSOR);
++              if (yych != '=') goto yy259;
++              YYDEBUG(284, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(281, *YYCURSOR);
++              YYDEBUG(285, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1197 "Zend/zend_language_scanner.l"
++#line 1339 "Zend/zend_language_scanner.l"
+               {
+       return T_IS_NOT_IDENTICAL;
+ }
 -#line 3797 "Zend/zend_language_scanner.c"
 -yy282:
 -              YYDEBUG(282, *YYCURSOR);
++#line 3968 "Zend/zend_language_scanner.c"
++yy286:
++              YYDEBUG(286, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(283, *YYCURSOR);
++              YYDEBUG(287, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1217 "Zend/zend_language_scanner.l"
++#line 1359 "Zend/zend_language_scanner.l"
+               {
+       return T_PLUS_EQUAL;
+ }
 -#line 3807 "Zend/zend_language_scanner.c"
 -yy284:
 -              YYDEBUG(284, *YYCURSOR);
++#line 3978 "Zend/zend_language_scanner.c"
++yy288:
++              YYDEBUG(288, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(285, *YYCURSOR);
++              YYDEBUG(289, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1185 "Zend/zend_language_scanner.l"
++#line 1327 "Zend/zend_language_scanner.l"
+               {
+       return T_INC;
+ }
 -#line 3817 "Zend/zend_language_scanner.c"
 -yy286:
 -              YYDEBUG(286, *YYCURSOR);
++#line 3988 "Zend/zend_language_scanner.c"
++yy290:
++              YYDEBUG(290, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy287;
++              if (yych == 'S') goto yy291;
+               if (yych != 's') goto yy186;
 -yy287:
 -              YYDEBUG(287, *YYCURSOR);
++yy291:
++              YYDEBUG(291, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy288;
++              if (yych == 'T') goto yy292;
+               if (yych != 't') goto yy186;
 -yy288:
 -              YYDEBUG(288, *YYCURSOR);
++yy292:
++              YYDEBUG(292, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(289, *YYCURSOR);
++              YYDEBUG(293, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1177 "Zend/zend_language_scanner.l"
++#line 1315 "Zend/zend_language_scanner.l"
+               {
+       return T_LIST;
+ }
 -#line 3840 "Zend/zend_language_scanner.c"
 -yy290:
 -              YYDEBUG(290, *YYCURSOR);
++#line 4011 "Zend/zend_language_scanner.c"
++yy294:
++              YYDEBUG(294, *YYCURSOR);
+               ++YYCURSOR;
 -              if ((yych = *YYCURSOR) == '=') goto yy294;
 -              YYDEBUG(291, *YYCURSOR);
++              if ((yych = *YYCURSOR) == '=') goto yy298;
++              YYDEBUG(295, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1201 "Zend/zend_language_scanner.l"
++#line 1343 "Zend/zend_language_scanner.l"
+               {
+       return T_IS_EQUAL;
+ }
 -#line 3851 "Zend/zend_language_scanner.c"
 -yy292:
 -              YYDEBUG(292, *YYCURSOR);
++#line 4022 "Zend/zend_language_scanner.c"
++yy296:
++              YYDEBUG(296, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(293, *YYCURSOR);
++              YYDEBUG(297, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1173 "Zend/zend_language_scanner.l"
++#line 1311 "Zend/zend_language_scanner.l"
+               {
+       return T_DOUBLE_ARROW;
+ }
 -#line 3861 "Zend/zend_language_scanner.c"
 -yy294:
 -              YYDEBUG(294, *YYCURSOR);
++#line 4032 "Zend/zend_language_scanner.c"
++yy298:
++              YYDEBUG(298, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(295, *YYCURSOR);
++              YYDEBUG(299, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1193 "Zend/zend_language_scanner.l"
++#line 1335 "Zend/zend_language_scanner.l"
+               {
+       return T_IS_IDENTICAL;
+ }
 -#line 3871 "Zend/zend_language_scanner.c"
 -yy296:
 -              YYDEBUG(296, *YYCURSOR);
++#line 4042 "Zend/zend_language_scanner.c"
++yy300:
++              YYDEBUG(300, *YYCURSOR);
+               yych = *++YYCURSOR;
+               YYDEBUG(-1, yych);
+               switch (yych) {
+               case 'C':
 -              case 'c':       goto yy298;
++              case 'c':       goto yy302;
+               case 'D':
 -              case 'd':       goto yy302;
++              case 'd':       goto yy307;
+               case 'F':
 -              case 'f':       goto yy299;
++              case 'f':       goto yy304;
+               case 'H':
 -              case 'h':       goto yy297;
++              case 'h':       goto yy301;
+               case 'L':
 -              case 'l':       goto yy301;
++              case 'l':       goto yy306;
+               case 'M':
 -              case 'm':       goto yy300;
++              case 'm':       goto yy305;
+               case 'N':
 -              case 'n':       goto yy303;
++              case 'n':       goto yy308;
++              case 'T':
++              case 't':       goto yy303;
+               default:        goto yy186;
+               }
 -yy297:
 -              YYDEBUG(297, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy357;
 -              if (yych == 'a') goto yy357;
 -              goto yy186;
 -yy298:
 -              YYDEBUG(298, *YYCURSOR);
 -              yych = *++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 yy334;
 -                      if (yych <= 'T') goto yy186;
 -                      goto yy335;
 -              } else {
 -                      if (yych <= 'i') {
 -                              if (yych <= 'h') goto yy186;
 -                              goto yy334;
 -                      } else {
 -                              if (yych == 'u') goto yy335;
 -                              goto yy186;
 -                      }
 -              }
 -yy300:
 -              YYDEBUG(300, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy326;
 -              if (yych == 'e') goto yy326;
 -              goto yy186;
+ yy301:
+               YYDEBUG(301, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy320;
 -              if (yych == 'i') goto yy320;
++              if (yych == 'A') goto yy369;
++              if (yych == 'a') goto yy369;
+               goto yy186;
+ yy302:
+               YYDEBUG(302, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy315;
 -              if (yych == 'i') goto yy315;
++              if (yych == 'L') goto yy362;
++              if (yych == 'l') goto yy362;
+               goto yy186;
+ yy303:
+               YYDEBUG(303, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy304;
 -              if (yych != 'a') goto yy186;
++              if (yych == 'R') goto yy355;
++              if (yych == 'r') goto yy355;
++              goto yy186;
+ yy304:
+               YYDEBUG(304, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'M') goto yy305;
 -              if (yych != 'm') goto yy186;
++              if (yych <= 'U') {
++                      if (yych == 'I') goto yy339;
++                      if (yych <= 'T') goto yy186;
++                      goto yy340;
++              } else {
++                      if (yych <= 'i') {
++                              if (yych <= 'h') goto yy186;
++                              goto yy339;
++                      } else {
++                              if (yych == 'u') goto yy340;
++                              goto yy186;
++                      }
++              }
+ yy305:
+               YYDEBUG(305, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy306;
 -              if (yych != 'e') goto yy186;
++              if (yych == 'E') goto yy331;
++              if (yych == 'e') goto yy331;
++              goto yy186;
+ yy306:
+               YYDEBUG(306, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy307;
 -              if (yych != 's') goto yy186;
++              if (yych == 'I') goto yy325;
++              if (yych == 'i') goto yy325;
++              goto yy186;
+ yy307:
+               YYDEBUG(307, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'P') goto yy308;
 -              if (yych != 'p') goto yy186;
++              if (yych == 'I') goto yy320;
++              if (yych == 'i') goto yy320;
++              goto yy186;
+ yy308:
+               YYDEBUG(308, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy309;
+               if (yych != 'a') goto yy186;
+ yy309:
+               YYDEBUG(309, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy310;
 -              if (yych != 'c') goto yy186;
++              if (yych == 'M') goto yy310;
++              if (yych != 'm') goto yy186;
+ yy310:
+               YYDEBUG(310, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy311;
+               if (yych != 'e') goto yy186;
+ yy311:
+               YYDEBUG(311, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych != '_') goto yy186;
++              if (yych == 'S') goto yy312;
++              if (yych != 's') goto yy186;
++yy312:
+               YYDEBUG(312, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych != '_') goto yy186;
++              if (yych == 'P') goto yy313;
++              if (yych != 'p') goto yy186;
++yy313:
+               YYDEBUG(313, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'A') goto yy314;
++              if (yych != 'a') goto yy186;
++yy314:
++              YYDEBUG(314, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'C') goto yy315;
++              if (yych != 'c') goto yy186;
++yy315:
++              YYDEBUG(315, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'E') goto yy316;
++              if (yych != 'e') goto yy186;
++yy316:
++              YYDEBUG(316, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych != '_') goto yy186;
++              YYDEBUG(317, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych != '_') goto yy186;
++              YYDEBUG(318, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(314, *YYCURSOR);
++              YYDEBUG(319, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1501 "Zend/zend_language_scanner.l"
++#line 1698 "Zend/zend_language_scanner.l"
+               {
+       if (CG(current_namespace)) {
+               *zendlval = *CG(current_namespace);
+               zval_copy_ctor(zendlval);
+       } else {
+               ZVAL_EMPTY_STRING(zendlval);
+       }
+       return T_NS_C;
+ }
 -#line 4003 "Zend/zend_language_scanner.c"
 -yy315:
 -              YYDEBUG(315, *YYCURSOR);
++#line 4182 "Zend/zend_language_scanner.c"
++yy320:
++              YYDEBUG(320, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy316;
++              if (yych == 'R') goto yy321;
+               if (yych != 'r') goto yy186;
 -yy316:
 -              YYDEBUG(316, *YYCURSOR);
++yy321:
++              YYDEBUG(321, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy186;
 -              YYDEBUG(317, *YYCURSOR);
++              YYDEBUG(322, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy186;
 -              YYDEBUG(318, *YYCURSOR);
++              YYDEBUG(323, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(319, *YYCURSOR);
++              YYDEBUG(324, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1474 "Zend/zend_language_scanner.l"
++#line 1671 "Zend/zend_language_scanner.l"
+               {
+       char *filename = zend_get_compiled_filename(TSRMLS_C);
+       const size_t filename_len = strlen(filename);
+       char *dirname;
+       if (!filename) {
+               filename = "";
+       }
+       dirname = estrndup(filename, filename_len);
+       zend_dirname(dirname, filename_len);
+       if (strcmp(dirname, ".") == 0) {
+               dirname = erealloc(dirname, MAXPATHLEN);
+ #if HAVE_GETCWD
+               VCWD_GETCWD(dirname, MAXPATHLEN);
+ #elif HAVE_GETWD
+               VCWD_GETWD(dirname);
+ #endif
+       }
+       zendlval->value.str.len = strlen(dirname);
+       zendlval->value.str.val = dirname;
+       zendlval->type = IS_STRING;
+       return T_DIR;
+ }
 -#line 4050 "Zend/zend_language_scanner.c"
 -yy320:
 -              YYDEBUG(320, *YYCURSOR);
++#line 4229 "Zend/zend_language_scanner.c"
++yy325:
++              YYDEBUG(325, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy321;
++              if (yych == 'N') goto yy326;
+               if (yych != 'n') goto yy186;
 -yy321:
 -              YYDEBUG(321, *YYCURSOR);
++yy326:
++              YYDEBUG(326, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy322;
++              if (yych == 'E') goto yy327;
+               if (yych != 'e') goto yy186;
 -yy322:
 -              YYDEBUG(322, *YYCURSOR);
++yy327:
++              YYDEBUG(327, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy186;
 -              YYDEBUG(323, *YYCURSOR);
++              YYDEBUG(328, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy186;
 -              YYDEBUG(324, *YYCURSOR);
++              YYDEBUG(329, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(325, *YYCURSOR);
++              YYDEBUG(330, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1456 "Zend/zend_language_scanner.l"
++#line 1653 "Zend/zend_language_scanner.l"
+               {
+       zendlval->value.lval = CG(zend_lineno);
+       zendlval->type = IS_LONG;
+       return T_LINE;
+ }
 -#line 4081 "Zend/zend_language_scanner.c"
 -yy326:
 -              YYDEBUG(326, *YYCURSOR);
++#line 4260 "Zend/zend_language_scanner.c"
++yy331:
++              YYDEBUG(331, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy327;
++              if (yych == 'T') goto yy332;
+               if (yych != 't') goto yy186;
 -yy327:
 -              YYDEBUG(327, *YYCURSOR);
++yy332:
++              YYDEBUG(332, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'H') goto yy328;
++              if (yych == 'H') goto yy333;
+               if (yych != 'h') goto yy186;
 -yy328:
 -              YYDEBUG(328, *YYCURSOR);
++yy333:
++              YYDEBUG(333, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy329;
++              if (yych == 'O') goto yy334;
+               if (yych != 'o') goto yy186;
 -yy329:
 -              YYDEBUG(329, *YYCURSOR);
++yy334:
++              YYDEBUG(334, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'D') goto yy330;
++              if (yych == 'D') goto yy335;
+               if (yych != 'd') goto yy186;
 -yy330:
 -              YYDEBUG(330, *YYCURSOR);
++yy335:
++              YYDEBUG(335, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy186;
 -              YYDEBUG(331, *YYCURSOR);
++              YYDEBUG(336, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy186;
 -              YYDEBUG(332, *YYCURSOR);
++              YYDEBUG(337, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(333, *YYCURSOR);
++              YYDEBUG(338, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1435 "Zend/zend_language_scanner.l"
++#line 1632 "Zend/zend_language_scanner.l"
+               {
 -      char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL;
 -      char *func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL;
++      const char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL;
++      const char *func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL;
+       size_t len = 0;
+       if (class_name) {
+               len += strlen(class_name) + 2;
+       }
+       if (func_name) {
+               len += strlen(func_name);
+       }
 -      zendlval->value.str.len = zend_spprintf(&zendlval->value.str.val, 0, "%s%s%s", 
++      zendlval->value.str.len = zend_spprintf(&zendlval->value.str.val, 0, "%s%s%s",
+               class_name ? class_name : "",
+               class_name && func_name ? "::" : "",
+               func_name ? func_name : ""
+               );
+       zendlval->type = IS_STRING;
+       return T_METHOD_C;
+ }
 -#line 4137 "Zend/zend_language_scanner.c"
 -yy334:
 -              YYDEBUG(334, *YYCURSOR);
++#line 4316 "Zend/zend_language_scanner.c"
++yy339:
++              YYDEBUG(339, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy345;
 -              if (yych == 'l') goto yy345;
++              if (yych == 'L') goto yy350;
++              if (yych == 'l') goto yy350;
+               goto yy186;
 -yy335:
 -              YYDEBUG(335, *YYCURSOR);
++yy340:
++              YYDEBUG(340, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy336;
++              if (yych == 'N') goto yy341;
+               if (yych != 'n') goto yy186;
 -yy336:
 -              YYDEBUG(336, *YYCURSOR);
++yy341:
++              YYDEBUG(341, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy337;
++              if (yych == 'C') goto yy342;
+               if (yych != 'c') goto yy186;
 -yy337:
 -              YYDEBUG(337, *YYCURSOR);
++yy342:
++              YYDEBUG(342, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy338;
++              if (yych == 'T') goto yy343;
+               if (yych != 't') goto yy186;
 -yy338:
 -              YYDEBUG(338, *YYCURSOR);
++yy343:
++              YYDEBUG(343, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy339;
++              if (yych == 'I') goto yy344;
+               if (yych != 'i') goto yy186;
 -yy339:
 -              YYDEBUG(339, *YYCURSOR);
++yy344:
++              YYDEBUG(344, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy340;
++              if (yych == 'O') goto yy345;
+               if (yych != 'o') goto yy186;
 -yy340:
 -              YYDEBUG(340, *YYCURSOR);
++yy345:
++              YYDEBUG(345, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy341;
++              if (yych == 'N') goto yy346;
+               if (yych != 'n') goto yy186;
 -yy341:
 -              YYDEBUG(341, *YYCURSOR);
++yy346:
++              YYDEBUG(346, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy186;
 -              YYDEBUG(342, *YYCURSOR);
++              YYDEBUG(347, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy186;
 -              YYDEBUG(343, *YYCURSOR);
++              YYDEBUG(348, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(344, *YYCURSOR);
++              YYDEBUG(349, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1419 "Zend/zend_language_scanner.l"
++#line 1616 "Zend/zend_language_scanner.l"
+               {
 -      char *func_name = NULL;
++      const char *func_name = NULL;
+       if (CG(active_op_array)) {
+               func_name = CG(active_op_array)->function_name;
+       }
+       if (!func_name) {
+               func_name = "";
+       }
+       zendlval->value.str.len = strlen(func_name);
+       zendlval->value.str.val = estrndup(func_name, zendlval->value.str.len);
+       zendlval->type = IS_STRING;
+       return T_FUNC_C;
+ }
 -#line 4204 "Zend/zend_language_scanner.c"
 -yy345:
 -              YYDEBUG(345, *YYCURSOR);
++#line 4383 "Zend/zend_language_scanner.c"
++yy350:
++              YYDEBUG(350, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy346;
++              if (yych == 'E') goto yy351;
+               if (yych != 'e') goto yy186;
 -yy346:
 -              YYDEBUG(346, *YYCURSOR);
++yy351:
++              YYDEBUG(351, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy186;
 -              YYDEBUG(347, *YYCURSOR);
++              YYDEBUG(352, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy186;
 -              YYDEBUG(348, *YYCURSOR);
++              YYDEBUG(353, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(349, *YYCURSOR);
++              YYDEBUG(354, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1462 "Zend/zend_language_scanner.l"
++#line 1659 "Zend/zend_language_scanner.l"
+               {
+       char *filename = zend_get_compiled_filename(TSRMLS_C);
+       if (!filename) {
+               filename = "";
+       }
+       zendlval->value.str.len = strlen(filename);
+       zendlval->value.str.val = estrndup(filename, zendlval->value.str.len);
+       zendlval->type = IS_STRING;
+       return T_FILE;
+ }
 -#line 4236 "Zend/zend_language_scanner.c"
 -yy350:
 -              YYDEBUG(350, *YYCURSOR);
++#line 4415 "Zend/zend_language_scanner.c"
++yy355:
++              YYDEBUG(355, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy351;
++              if (yych == 'A') goto yy356;
+               if (yych != 'a') goto yy186;
 -yy351:
 -              YYDEBUG(351, *YYCURSOR);
++yy356:
++              YYDEBUG(356, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy352;
 -              if (yych != 's') goto yy186;
 -yy352:
 -              YYDEBUG(352, *YYCURSOR);
++              if (yych == 'I') goto yy357;
++              if (yych != 'i') goto yy186;
++yy357:
++              YYDEBUG(357, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy353;
 -              if (yych != 's') goto yy186;
 -yy353:
 -              YYDEBUG(353, *YYCURSOR);
++              if (yych == 'T') goto yy358;
++              if (yych != 't') goto yy186;
++yy358:
++              YYDEBUG(358, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy186;
 -              YYDEBUG(354, *YYCURSOR);
++              YYDEBUG(359, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych != '_') goto yy186;
 -              YYDEBUG(355, *YYCURSOR);
++              YYDEBUG(360, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(356, *YYCURSOR);
++              YYDEBUG(361, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1403 "Zend/zend_language_scanner.l"
++#line 1596 "Zend/zend_language_scanner.l"
+               {
 -      char *class_name = NULL;
 -
 -      if (CG(active_class_entry)) {
 -              class_name = CG(active_class_entry)->name;
++      const char *trait_name = NULL;
++      
++      if (CG(active_class_entry)
++              && (ZEND_ACC_TRAIT == 
++                      (CG(active_class_entry)->ce_flags & ZEND_ACC_TRAIT))) {
++              trait_name = CG(active_class_entry)->name;
+       }
 -
 -      if (!class_name) {
 -              class_name = "";
++      
++      if (!trait_name) {
++              trait_name = "";
+       }
 -      zendlval->value.str.len = strlen(class_name);
 -      zendlval->value.str.val = estrndup(class_name, zendlval->value.str.len);
++      
++      zendlval->value.str.len = strlen(trait_name);
++      zendlval->value.str.val = estrndup(trait_name, zendlval->value.str.len);
+       zendlval->type = IS_STRING;
 -      return T_CLASS_C;
++      
++      return T_TRAIT_C;
+ }
 -#line 4282 "Zend/zend_language_scanner.c"
 -yy357:
 -              YYDEBUG(357, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy358;
 -              if (yych != 'l') goto yy186;
 -yy358:
 -              YYDEBUG(358, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy359;
 -              if (yych != 't') goto yy186;
 -yy359:
 -              YYDEBUG(359, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych != '_') goto yy186;
 -              YYDEBUG(360, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy361;
 -              if (yych != 'c') goto yy186;
 -yy361:
 -              YYDEBUG(361, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy362;
 -              if (yych != 'o') goto yy186;
++#line 4465 "Zend/zend_language_scanner.c"
+ yy362:
+               YYDEBUG(362, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'M') goto yy363;
 -              if (yych != 'm') goto yy186;
++              if (yych == 'A') goto yy363;
++              if (yych != 'a') goto yy186;
+ yy363:
+               YYDEBUG(363, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'P') goto yy364;
 -              if (yych != 'p') goto yy186;
++              if (yych == 'S') goto yy364;
++              if (yych != 's') goto yy186;
+ yy364:
+               YYDEBUG(364, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy365;
 -              if (yych != 'i') goto yy186;
++              if (yych == 'S') goto yy365;
++              if (yych != 's') goto yy186;
+ yy365:
+               YYDEBUG(365, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy366;
 -              if (yych != 'l') goto yy186;
 -yy366:
++              if (yych != '_') goto yy186;
+               YYDEBUG(366, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy367;
 -              if (yych != 'e') goto yy186;
 -yy367:
++              if (yych != '_') goto yy186;
+               YYDEBUG(367, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy368;
 -              if (yych != 'r') goto yy186;
 -yy368:
 -              YYDEBUG(368, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(369, *YYCURSOR);
++              YYDEBUG(368, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1141 "Zend/zend_language_scanner.l"
++#line 1569 "Zend/zend_language_scanner.l"
+               {
 -      return T_HALT_COMPILER;
++      const char *class_name = NULL;
++      
++      if (CG(active_class_entry)
++              && (ZEND_ACC_TRAIT ==
++                      (CG(active_class_entry)->ce_flags & ZEND_ACC_TRAIT))) {
++              /* We create a special __CLASS__ constant that is going to be resolved
++                 at run-time */
++              zendlval->value.str.len = sizeof("__CLASS__")-1;
++              zendlval->value.str.val = estrndup("__CLASS__", zendlval->value.str.len);
++              zendlval->type = IS_CONSTANT;
++      } else {
++              if (CG(active_class_entry)) {
++                      class_name = CG(active_class_entry)->name;
++              }
++              
++              if (!class_name) {
++                      class_name = "";
++              }
++              
++              zendlval->value.str.len = strlen(class_name);
++              zendlval->value.str.val = estrndup(class_name, zendlval->value.str.len);
++              zendlval->type = IS_STRING;
++      }
++      return T_CLASS_C;
+ }
 -#line 4348 "Zend/zend_language_scanner.c"
++#line 4522 "Zend/zend_language_scanner.c"
++yy369:
++              YYDEBUG(369, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'L') goto yy370;
++              if (yych != 'l') goto yy186;
+ yy370:
+               YYDEBUG(370, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy374;
 -              if (yych == 's') goto yy374;
 -              goto yy186;
++              if (yych == 'T') goto yy371;
++              if (yych != 't') goto yy186;
+ yy371:
+               YYDEBUG(371, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy372;
 -              if (yych != 'e') goto yy186;
 -yy372:
++              if (yych != '_') goto yy186;
+               YYDEBUG(372, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'C') goto yy373;
++              if (yych != 'c') goto yy186;
++yy373:
++              YYDEBUG(373, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'O') goto yy374;
++              if (yych != 'o') goto yy186;
++yy374:
++              YYDEBUG(374, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'M') goto yy375;
++              if (yych != 'm') goto yy186;
++yy375:
++              YYDEBUG(375, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'P') goto yy376;
++              if (yych != 'p') goto yy186;
++yy376:
++              YYDEBUG(376, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'I') goto yy377;
++              if (yych != 'i') goto yy186;
++yy377:
++              YYDEBUG(377, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'L') goto yy378;
++              if (yych != 'l') goto yy186;
++yy378:
++              YYDEBUG(378, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'E') goto yy379;
++              if (yych != 'e') goto yy186;
++yy379:
++              YYDEBUG(379, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'R') goto yy380;
++              if (yych != 'r') goto yy186;
++yy380:
++              YYDEBUG(380, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(373, *YYCURSOR);
++              YYDEBUG(381, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1125 "Zend/zend_language_scanner.l"
++#line 1279 "Zend/zend_language_scanner.l"
++              {
++      return T_HALT_COMPILER;
++}
++#line 4588 "Zend/zend_language_scanner.c"
++yy382:
++              YYDEBUG(382, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'S') goto yy386;
++              if (yych == 's') goto yy386;
++              goto yy186;
++yy383:
++              YYDEBUG(383, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'E') goto yy384;
++              if (yych != 'e') goto yy186;
++yy384:
++              YYDEBUG(384, *YYCURSOR);
++              ++YYCURSOR;
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
++                      goto yy185;
++              }
++              YYDEBUG(385, *YYCURSOR);
++              yyleng = YYCURSOR - SCNG(yy_text);
++#line 1259 "Zend/zend_language_scanner.l"
+               {
+       return T_USE;
+ }
 -#line 4372 "Zend/zend_language_scanner.c"
 -yy374:
 -              YYDEBUG(374, *YYCURSOR);
++#line 4612 "Zend/zend_language_scanner.c"
++yy386:
++              YYDEBUG(386, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy375;
++              if (yych == 'E') goto yy387;
+               if (yych != 'e') goto yy186;
 -yy375:
 -              YYDEBUG(375, *YYCURSOR);
++yy387:
++              YYDEBUG(387, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy376;
++              if (yych == 'T') goto yy388;
+               if (yych != 't') goto yy186;
 -yy376:
 -              YYDEBUG(376, *YYCURSOR);
++yy388:
++              YYDEBUG(388, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(377, *YYCURSOR);
++              YYDEBUG(389, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1169 "Zend/zend_language_scanner.l"
++#line 1307 "Zend/zend_language_scanner.l"
+               {
+       return T_UNSET;
+ }
 -#line 4395 "Zend/zend_language_scanner.c"
 -yy378:
 -              YYDEBUG(378, *YYCURSOR);
++#line 4635 "Zend/zend_language_scanner.c"
++yy390:
++              YYDEBUG(390, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(7);
+               yych = *YYCURSOR;
 -yy379:
 -              YYDEBUG(379, *YYCURSOR);
++yy391:
++              YYDEBUG(391, *YYCURSOR);
+               if (yych <= 'S') {
+                       if (yych <= 'D') {
+                               if (yych <= ' ') {
 -                                      if (yych == '\t') goto yy378;
++                                      if (yych == '\t') goto yy390;
+                                       if (yych <= 0x1F) goto yy193;
 -                                      goto yy378;
++                                      goto yy390;
+                               } else {
+                                       if (yych <= 'A') {
+                                               if (yych <= '@') goto yy193;
 -                                              goto yy383;
++                                              goto yy395;
+                                       } else {
 -                                              if (yych <= 'B') goto yy381;
++                                              if (yych <= 'B') goto yy393;
+                                               if (yych <= 'C') goto yy193;
 -                                              goto yy386;
++                                              goto yy398;
+                                       }
+                               }
+                       } else {
+                               if (yych <= 'I') {
 -                                      if (yych == 'F') goto yy387;
++                                      if (yych == 'F') goto yy399;
+                                       if (yych <= 'H') goto yy193;
 -                                      goto yy388;
++                                      goto yy400;
+                               } else {
+                                       if (yych <= 'O') {
+                                               if (yych <= 'N') goto yy193;
 -                                              goto yy382;
++                                              goto yy394;
+                                       } else {
+                                               if (yych <= 'Q') goto yy193;
 -                                              if (yych <= 'R') goto yy385;
 -                                              goto yy384;
++                                              if (yych <= 'R') goto yy397;
++                                              goto yy396;
+                                       }
+                               }
+                       }
+               } else {
+                       if (yych <= 'f') {
+                               if (yych <= 'a') {
 -                                      if (yych == 'U') goto yy380;
++                                      if (yych == 'U') goto yy392;
+                                       if (yych <= '`') goto yy193;
 -                                      goto yy383;
++                                      goto yy395;
+                               } else {
+                                       if (yych <= 'c') {
 -                                              if (yych <= 'b') goto yy381;
++                                              if (yych <= 'b') goto yy393;
+                                               goto yy193;
+                                       } else {
 -                                              if (yych <= 'd') goto yy386;
++                                              if (yych <= 'd') goto yy398;
+                                               if (yych <= 'e') goto yy193;
 -                                              goto yy387;
++                                              goto yy399;
+                                       }
+                               }
+                       } else {
+                               if (yych <= 'q') {
+                                       if (yych <= 'i') {
+                                               if (yych <= 'h') goto yy193;
 -                                              goto yy388;
++                                              goto yy400;
+                                       } else {
 -                                              if (yych == 'o') goto yy382;
++                                              if (yych == 'o') goto yy394;
+                                               goto yy193;
+                                       }
+                               } else {
+                                       if (yych <= 's') {
 -                                              if (yych <= 'r') goto yy385;
 -                                              goto yy384;
++                                              if (yych <= 'r') goto yy397;
++                                              goto yy396;
+                                       } else {
+                                               if (yych != 'u') goto yy193;
+                                       }
+                               }
+                       }
+               }
 -yy380:
 -              YYDEBUG(380, *YYCURSOR);
++yy392:
++              YYDEBUG(392, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy451;
 -              if (yych == 'n') goto yy451;
++              if (yych == 'N') goto yy459;
++              if (yych == 'n') goto yy459;
+               goto yy193;
 -yy381:
 -              YYDEBUG(381, *YYCURSOR);
++yy393:
++              YYDEBUG(393, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'O') {
 -                      if (yych == 'I') goto yy434;
++                      if (yych == 'I') goto yy446;
+                       if (yych <= 'N') goto yy193;
 -                      goto yy435;
++                      goto yy447;
+               } else {
+                       if (yych <= 'i') {
+                               if (yych <= 'h') goto yy193;
 -                              goto yy434;
++                              goto yy446;
+                       } else {
 -                              if (yych == 'o') goto yy435;
++                              if (yych == 'o') goto yy447;
+                               goto yy193;
+                       }
+               }
 -yy382:
 -              YYDEBUG(382, *YYCURSOR);
++yy394:
++              YYDEBUG(394, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'B') goto yy426;
 -              if (yych == 'b') goto yy426;
++              if (yych == 'B') goto yy438;
++              if (yych == 'b') goto yy438;
+               goto yy193;
 -yy383:
 -              YYDEBUG(383, *YYCURSOR);
++yy395:
++              YYDEBUG(395, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy419;
 -              if (yych == 'r') goto yy419;
++              if (yych == 'R') goto yy431;
++              if (yych == 'r') goto yy431;
+               goto yy193;
 -yy384:
 -              YYDEBUG(384, *YYCURSOR);
++yy396:
++              YYDEBUG(396, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy411;
 -              if (yych == 't') goto yy411;
++              if (yych == 'T') goto yy423;
++              if (yych == 't') goto yy423;
+               goto yy193;
 -yy385:
 -              YYDEBUG(385, *YYCURSOR);
++yy397:
++              YYDEBUG(397, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy409;
 -              if (yych == 'e') goto yy409;
++              if (yych == 'E') goto yy421;
++              if (yych == 'e') goto yy421;
+               goto yy193;
 -yy386:
 -              YYDEBUG(386, *YYCURSOR);
++yy398:
++              YYDEBUG(398, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy405;
 -              if (yych == 'o') goto yy405;
++              if (yych == 'O') goto yy417;
++              if (yych == 'o') goto yy417;
+               goto yy193;
 -yy387:
 -              YYDEBUG(387, *YYCURSOR);
++yy399:
++              YYDEBUG(399, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy398;
 -              if (yych == 'l') goto yy398;
++              if (yych == 'L') goto yy410;
++              if (yych == 'l') goto yy410;
+               goto yy193;
 -yy388:
 -              YYDEBUG(388, *YYCURSOR);
++yy400:
++              YYDEBUG(400, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy389;
++              if (yych == 'N') goto yy401;
+               if (yych != 'n') goto yy193;
 -yy389:
 -              YYDEBUG(389, *YYCURSOR);
++yy401:
++              YYDEBUG(401, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy390;
++              if (yych == 'T') goto yy402;
+               if (yych != 't') goto yy193;
 -yy390:
 -              YYDEBUG(390, *YYCURSOR);
++yy402:
++              YYDEBUG(402, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy391;
 -              if (yych != 'e') goto yy393;
 -yy391:
 -              YYDEBUG(391, *YYCURSOR);
++              if (yych == 'E') goto yy403;
++              if (yych != 'e') goto yy405;
++yy403:
++              YYDEBUG(403, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'G') goto yy396;
 -              if (yych == 'g') goto yy396;
++              if (yych == 'G') goto yy408;
++              if (yych == 'g') goto yy408;
+               goto yy193;
 -yy392:
 -              YYDEBUG(392, *YYCURSOR);
++yy404:
++              YYDEBUG(404, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
 -yy393:
 -              YYDEBUG(393, *YYCURSOR);
++yy405:
++              YYDEBUG(405, *YYCURSOR);
+               if (yych <= 0x1F) {
 -                      if (yych == '\t') goto yy392;
++                      if (yych == '\t') goto yy404;
+                       goto yy193;
+               } else {
 -                      if (yych <= ' ') goto yy392;
++                      if (yych <= ' ') goto yy404;
+                       if (yych != ')') goto yy193;
+               }
 -              YYDEBUG(394, *YYCURSOR);
++              YYDEBUG(406, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(395, *YYCURSOR);
++              YYDEBUG(407, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1069 "Zend/zend_language_scanner.l"
++#line 1207 "Zend/zend_language_scanner.l"
+               {
+       return T_INT_CAST;
+ }
 -#line 4571 "Zend/zend_language_scanner.c"
 -yy396:
 -              YYDEBUG(396, *YYCURSOR);
++#line 4811 "Zend/zend_language_scanner.c"
++yy408:
++              YYDEBUG(408, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy397;
++              if (yych == 'E') goto yy409;
+               if (yych != 'e') goto yy193;
 -yy397:
 -              YYDEBUG(397, *YYCURSOR);
++yy409:
++              YYDEBUG(409, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy392;
 -              if (yych == 'r') goto yy392;
++              if (yych == 'R') goto yy404;
++              if (yych == 'r') goto yy404;
+               goto yy193;
 -yy398:
 -              YYDEBUG(398, *YYCURSOR);
++yy410:
++              YYDEBUG(410, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy399;
++              if (yych == 'O') goto yy411;
+               if (yych != 'o') goto yy193;
 -yy399:
 -              YYDEBUG(399, *YYCURSOR);
++yy411:
++              YYDEBUG(411, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy400;
++              if (yych == 'A') goto yy412;
+               if (yych != 'a') goto yy193;
 -yy400:
 -              YYDEBUG(400, *YYCURSOR);
++yy412:
++              YYDEBUG(412, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy401;
++              if (yych == 'T') goto yy413;
+               if (yych != 't') goto yy193;
 -yy401:
 -              YYDEBUG(401, *YYCURSOR);
++yy413:
++              YYDEBUG(413, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
 -              YYDEBUG(402, *YYCURSOR);
++              YYDEBUG(414, *YYCURSOR);
+               if (yych <= 0x1F) {
 -                      if (yych == '\t') goto yy401;
++                      if (yych == '\t') goto yy413;
+                       goto yy193;
+               } else {
 -                      if (yych <= ' ') goto yy401;
++                      if (yych <= ' ') goto yy413;
+                       if (yych != ')') goto yy193;
+               }
 -              YYDEBUG(403, *YYCURSOR);
++              YYDEBUG(415, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(404, *YYCURSOR);
++              YYDEBUG(416, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1073 "Zend/zend_language_scanner.l"
++#line 1211 "Zend/zend_language_scanner.l"
+               {
+       return T_DOUBLE_CAST;
+ }
 -#line 4619 "Zend/zend_language_scanner.c"
 -yy405:
 -              YYDEBUG(405, *YYCURSOR);
++#line 4859 "Zend/zend_language_scanner.c"
++yy417:
++              YYDEBUG(417, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'U') goto yy406;
++              if (yych == 'U') goto yy418;
+               if (yych != 'u') goto yy193;
 -yy406:
 -              YYDEBUG(406, *YYCURSOR);
++yy418:
++              YYDEBUG(418, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'B') goto yy407;
++              if (yych == 'B') goto yy419;
+               if (yych != 'b') goto yy193;
 -yy407:
 -              YYDEBUG(407, *YYCURSOR);
++yy419:
++              YYDEBUG(419, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy408;
++              if (yych == 'L') goto yy420;
+               if (yych != 'l') goto yy193;
 -yy408:
 -              YYDEBUG(408, *YYCURSOR);
++yy420:
++              YYDEBUG(420, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy401;
 -              if (yych == 'e') goto yy401;
++              if (yych == 'E') goto yy413;
++              if (yych == 'e') goto yy413;
+               goto yy193;
 -yy409:
 -              YYDEBUG(409, *YYCURSOR);
++yy421:
++              YYDEBUG(421, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy410;
++              if (yych == 'A') goto yy422;
+               if (yych != 'a') goto yy193;
 -yy410:
 -              YYDEBUG(410, *YYCURSOR);
++yy422:
++              YYDEBUG(422, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy401;
 -              if (yych == 'l') goto yy401;
++              if (yych == 'L') goto yy413;
++              if (yych == 'l') goto yy413;
+               goto yy193;
 -yy411:
 -              YYDEBUG(411, *YYCURSOR);
++yy423:
++              YYDEBUG(423, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy412;
++              if (yych == 'R') goto yy424;
+               if (yych != 'r') goto yy193;
 -yy412:
 -              YYDEBUG(412, *YYCURSOR);
++yy424:
++              YYDEBUG(424, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy413;
++              if (yych == 'I') goto yy425;
+               if (yych != 'i') goto yy193;
 -yy413:
 -              YYDEBUG(413, *YYCURSOR);
++yy425:
++              YYDEBUG(425, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy414;
++              if (yych == 'N') goto yy426;
+               if (yych != 'n') goto yy193;
 -yy414:
 -              YYDEBUG(414, *YYCURSOR);
++yy426:
++              YYDEBUG(426, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'G') goto yy415;
++              if (yych == 'G') goto yy427;
+               if (yych != 'g') goto yy193;
 -yy415:
 -              YYDEBUG(415, *YYCURSOR);
++yy427:
++              YYDEBUG(427, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
 -              YYDEBUG(416, *YYCURSOR);
++              YYDEBUG(428, *YYCURSOR);
+               if (yych <= 0x1F) {
 -                      if (yych == '\t') goto yy415;
++                      if (yych == '\t') goto yy427;
+                       goto yy193;
+               } else {
 -                      if (yych <= ' ') goto yy415;
++                      if (yych <= ' ') goto yy427;
+                       if (yych != ')') goto yy193;
+               }
 -              YYDEBUG(417, *YYCURSOR);
++              YYDEBUG(429, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(418, *YYCURSOR);
++              YYDEBUG(430, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1077 "Zend/zend_language_scanner.l"
++#line 1215 "Zend/zend_language_scanner.l"
+               {
+       return T_STRING_CAST;
+ }
 -#line 4693 "Zend/zend_language_scanner.c"
 -yy419:
 -              YYDEBUG(419, *YYCURSOR);
++#line 4933 "Zend/zend_language_scanner.c"
++yy431:
++              YYDEBUG(431, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy420;
++              if (yych == 'R') goto yy432;
+               if (yych != 'r') goto yy193;
 -yy420:
 -              YYDEBUG(420, *YYCURSOR);
++yy432:
++              YYDEBUG(432, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy421;
++              if (yych == 'A') goto yy433;
+               if (yych != 'a') goto yy193;
 -yy421:
 -              YYDEBUG(421, *YYCURSOR);
++yy433:
++              YYDEBUG(433, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'Y') goto yy422;
++              if (yych == 'Y') goto yy434;
+               if (yych != 'y') goto yy193;
 -yy422:
 -              YYDEBUG(422, *YYCURSOR);
++yy434:
++              YYDEBUG(434, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
 -              YYDEBUG(423, *YYCURSOR);
++              YYDEBUG(435, *YYCURSOR);
+               if (yych <= 0x1F) {
 -                      if (yych == '\t') goto yy422;
++                      if (yych == '\t') goto yy434;
+                       goto yy193;
+               } else {
 -                      if (yych <= ' ') goto yy422;
++                      if (yych <= ' ') goto yy434;
+                       if (yych != ')') goto yy193;
+               }
 -              YYDEBUG(424, *YYCURSOR);
++              YYDEBUG(436, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(425, *YYCURSOR);
++              YYDEBUG(437, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1085 "Zend/zend_language_scanner.l"
++#line 1219 "Zend/zend_language_scanner.l"
+               {
+       return T_ARRAY_CAST;
+ }
 -#line 4730 "Zend/zend_language_scanner.c"
 -yy426:
 -              YYDEBUG(426, *YYCURSOR);
++#line 4970 "Zend/zend_language_scanner.c"
++yy438:
++              YYDEBUG(438, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'J') goto yy427;
++              if (yych == 'J') goto yy439;
+               if (yych != 'j') goto yy193;
 -yy427:
 -              YYDEBUG(427, *YYCURSOR);
++yy439:
++              YYDEBUG(439, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy428;
++              if (yych == 'E') goto yy440;
+               if (yych != 'e') goto yy193;
 -yy428:
 -              YYDEBUG(428, *YYCURSOR);
++yy440:
++              YYDEBUG(440, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy429;
++              if (yych == 'C') goto yy441;
+               if (yych != 'c') goto yy193;
 -yy429:
 -              YYDEBUG(429, *YYCURSOR);
++yy441:
++              YYDEBUG(441, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy430;
++              if (yych == 'T') goto yy442;
+               if (yych != 't') goto yy193;
 -yy430:
 -              YYDEBUG(430, *YYCURSOR);
++yy442:
++              YYDEBUG(442, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
 -              YYDEBUG(431, *YYCURSOR);
++              YYDEBUG(443, *YYCURSOR);
+               if (yych <= 0x1F) {
 -                      if (yych == '\t') goto yy430;
++                      if (yych == '\t') goto yy442;
+                       goto yy193;
+               } else {
 -                      if (yych <= ' ') goto yy430;
++                      if (yych <= ' ') goto yy442;
+                       if (yych != ')') goto yy193;
+               }
 -              YYDEBUG(432, *YYCURSOR);
++              YYDEBUG(444, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(433, *YYCURSOR);
++              YYDEBUG(445, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1089 "Zend/zend_language_scanner.l"
++#line 1223 "Zend/zend_language_scanner.l"
+               {
+       return T_OBJECT_CAST;
+ }
 -#line 4772 "Zend/zend_language_scanner.c"
 -yy434:
 -              YYDEBUG(434, *YYCURSOR);
++#line 5012 "Zend/zend_language_scanner.c"
++yy446:
++              YYDEBUG(446, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy444;
 -              if (yych == 'n') goto yy444;
++              if (yych == 'N') goto yy456;
++              if (yych == 'n') goto yy456;
+               goto yy193;
 -yy435:
 -              YYDEBUG(435, *YYCURSOR);
++yy447:
++              YYDEBUG(447, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy436;
++              if (yych == 'O') goto yy448;
+               if (yych != 'o') goto yy193;
 -yy436:
 -              YYDEBUG(436, *YYCURSOR);
++yy448:
++              YYDEBUG(448, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy437;
++              if (yych == 'L') goto yy449;
+               if (yych != 'l') goto yy193;
 -yy437:
 -              YYDEBUG(437, *YYCURSOR);
++yy449:
++              YYDEBUG(449, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy442;
 -              if (yych == 'e') goto yy442;
 -              goto yy439;
 -yy438:
 -              YYDEBUG(438, *YYCURSOR);
++              if (yych == 'E') goto yy454;
++              if (yych == 'e') goto yy454;
++              goto yy451;
++yy450:
++              YYDEBUG(450, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
 -yy439:
 -              YYDEBUG(439, *YYCURSOR);
++yy451:
++              YYDEBUG(451, *YYCURSOR);
+               if (yych <= 0x1F) {
 -                      if (yych == '\t') goto yy438;
++                      if (yych == '\t') goto yy450;
+                       goto yy193;
+               } else {
 -                      if (yych <= ' ') goto yy438;
++                      if (yych <= ' ') goto yy450;
+                       if (yych != ')') goto yy193;
+               }
 -              YYDEBUG(440, *YYCURSOR);
++              YYDEBUG(452, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(441, *YYCURSOR);
++              YYDEBUG(453, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1093 "Zend/zend_language_scanner.l"
++#line 1227 "Zend/zend_language_scanner.l"
+               {
+       return T_BOOL_CAST;
+ }
 -#line 4817 "Zend/zend_language_scanner.c"
 -yy442:
 -              YYDEBUG(442, *YYCURSOR);
++#line 5057 "Zend/zend_language_scanner.c"
++yy454:
++              YYDEBUG(454, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy443;
++              if (yych == 'A') goto yy455;
+               if (yych != 'a') goto yy193;
 -yy443:
 -              YYDEBUG(443, *YYCURSOR);
++yy455:
++              YYDEBUG(455, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy438;
 -              if (yych == 'n') goto yy438;
++              if (yych == 'N') goto yy450;
++              if (yych == 'n') goto yy450;
+               goto yy193;
 -yy444:
 -              YYDEBUG(444, *YYCURSOR);
++yy456:
++              YYDEBUG(456, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy445;
++              if (yych == 'A') goto yy457;
+               if (yych != 'a') goto yy193;
 -yy445:
 -              YYDEBUG(445, *YYCURSOR);
++yy457:
++              YYDEBUG(457, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy446;
++              if (yych == 'R') goto yy458;
+               if (yych != 'r') goto yy193;
 -yy446:
 -              YYDEBUG(446, *YYCURSOR);
++yy458:
++              YYDEBUG(458, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'Y') goto yy447;
 -              if (yych != 'y') goto yy193;
 -yy447:
 -              YYDEBUG(447, *YYCURSOR);
 -              ++YYCURSOR;
 -              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(449, *YYCURSOR);
 -              ++YYCURSOR;
 -              YYDEBUG(450, *YYCURSOR);
 -              yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1081 "Zend/zend_language_scanner.l"
 -              {
 -      return T_STRING_CAST;
 -}
 -#line 4865 "Zend/zend_language_scanner.c"
 -yy451:
 -              YYDEBUG(451, *YYCURSOR);
++              if (yych == 'Y') goto yy427;
++              if (yych == 'y') goto yy427;
++              goto yy193;
++yy459:
++              YYDEBUG(459, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy452;
++              if (yych == 'S') goto yy460;
+               if (yych != 's') goto yy193;
 -yy452:
 -              YYDEBUG(452, *YYCURSOR);
++yy460:
++              YYDEBUG(460, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy453;
++              if (yych == 'E') goto yy461;
+               if (yych != 'e') goto yy193;
 -yy453:
 -              YYDEBUG(453, *YYCURSOR);
++yy461:
++              YYDEBUG(461, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy454;
++              if (yych == 'T') goto yy462;
+               if (yych != 't') goto yy193;
 -yy454:
 -              YYDEBUG(454, *YYCURSOR);
++yy462:
++              YYDEBUG(462, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
 -              YYDEBUG(455, *YYCURSOR);
++              YYDEBUG(463, *YYCURSOR);
+               if (yych <= 0x1F) {
 -                      if (yych == '\t') goto yy454;
++                      if (yych == '\t') goto yy462;
+                       goto yy193;
+               } else {
 -                      if (yych <= ' ') goto yy454;
++                      if (yych <= ' ') goto yy462;
+                       if (yych != ')') goto yy193;
+               }
 -              YYDEBUG(456, *YYCURSOR);
++              YYDEBUG(464, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(457, *YYCURSOR);
++              YYDEBUG(465, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1097 "Zend/zend_language_scanner.l"
++#line 1231 "Zend/zend_language_scanner.l"
+               {
+       return T_UNSET_CAST;
+ }
 -#line 4902 "Zend/zend_language_scanner.c"
 -yy458:
 -              YYDEBUG(458, *YYCURSOR);
++#line 5121 "Zend/zend_language_scanner.c"
++yy466:
++              YYDEBUG(466, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy459;
++              if (yych == 'R') goto yy467;
+               if (yych != 'r') goto yy186;
 -yy459:
 -              YYDEBUG(459, *YYCURSOR);
++yy467:
++              YYDEBUG(467, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(460, *YYCURSOR);
++              YYDEBUG(468, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1065 "Zend/zend_language_scanner.l"
++#line 1203 "Zend/zend_language_scanner.l"
+               {
+       return T_VAR;
+ }
 -#line 4920 "Zend/zend_language_scanner.c"
 -yy461:
 -              YYDEBUG(461, *YYCURSOR);
++#line 5139 "Zend/zend_language_scanner.c"
++yy469:
++              YYDEBUG(469, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'M') goto yy465;
 -              if (yych == 'm') goto yy465;
++              if (yych == 'M') goto yy473;
++              if (yych == 'm') goto yy473;
+               goto yy186;
 -yy462:
 -              YYDEBUG(462, *YYCURSOR);
++yy470:
++              YYDEBUG(470, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'W') goto yy463;
++              if (yych == 'W') goto yy471;
+               if (yych != 'w') goto yy186;
 -yy463:
 -              YYDEBUG(463, *YYCURSOR);
++yy471:
++              YYDEBUG(471, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(464, *YYCURSOR);
++              YYDEBUG(472, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1057 "Zend/zend_language_scanner.l"
++#line 1195 "Zend/zend_language_scanner.l"
+               {
+       return T_NEW;
+ }
 -#line 4944 "Zend/zend_language_scanner.c"
 -yy465:
 -              YYDEBUG(465, *YYCURSOR);
++#line 5163 "Zend/zend_language_scanner.c"
++yy473:
++              YYDEBUG(473, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy466;
++              if (yych == 'E') goto yy474;
+               if (yych != 'e') goto yy186;
 -yy466:
 -              YYDEBUG(466, *YYCURSOR);
++yy474:
++              YYDEBUG(474, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy467;
++              if (yych == 'S') goto yy475;
+               if (yych != 's') goto yy186;
 -yy467:
 -              YYDEBUG(467, *YYCURSOR);
++yy475:
++              YYDEBUG(475, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'P') goto yy468;
++              if (yych == 'P') goto yy476;
+               if (yych != 'p') goto yy186;
 -yy468:
 -              YYDEBUG(468, *YYCURSOR);
++yy476:
++              YYDEBUG(476, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy469;
++              if (yych == 'A') goto yy477;
+               if (yych != 'a') goto yy186;
 -yy469:
 -              YYDEBUG(469, *YYCURSOR);
++yy477:
++              YYDEBUG(477, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy470;
++              if (yych == 'C') goto yy478;
+               if (yych != 'c') goto yy186;
 -yy470:
 -              YYDEBUG(470, *YYCURSOR);
++yy478:
++              YYDEBUG(478, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy471;
++              if (yych == 'E') goto yy479;
+               if (yych != 'e') goto yy186;
 -yy471:
 -              YYDEBUG(471, *YYCURSOR);
++yy479:
++              YYDEBUG(479, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(472, *YYCURSOR);
++              YYDEBUG(480, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1121 "Zend/zend_language_scanner.l"
++#line 1255 "Zend/zend_language_scanner.l"
+               {
+       return T_NAMESPACE;
+ }
 -#line 4987 "Zend/zend_language_scanner.c"
 -yy473:
 -              YYDEBUG(473, *YYCURSOR);
++#line 5206 "Zend/zend_language_scanner.c"
++yy481:
++              YYDEBUG(481, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(474, *YYCURSOR);
++              YYDEBUG(482, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1049 "Zend/zend_language_scanner.l"
++#line 1187 "Zend/zend_language_scanner.l"
+               {
+       return T_PAAMAYIM_NEKUDOTAYIM;
+ }
 -#line 4997 "Zend/zend_language_scanner.c"
 -yy475:
 -              YYDEBUG(475, *YYCURSOR);
++#line 5216 "Zend/zend_language_scanner.c"
++yy483:
++              YYDEBUG(483, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
 -yy476:
 -              YYDEBUG(476, *YYCURSOR);
++yy484:
++              YYDEBUG(484, *YYCURSOR);
+               if (yych <= '\f') {
+                       if (yych <= 0x08) goto yy140;
 -                      if (yych <= '\n') goto yy475;
++                      if (yych <= '\n') goto yy483;
+                       goto yy140;
+               } else {
 -                      if (yych <= '\r') goto yy475;
 -                      if (yych == ' ') goto yy475;
++                      if (yych <= '\r') goto yy483;
++                      if (yych == ' ') goto yy483;
+                       goto yy140;
+               }
 -yy477:
 -              YYDEBUG(477, *YYCURSOR);
++yy485:
++              YYDEBUG(485, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(478, *YYCURSOR);
++              YYDEBUG(486, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1221 "Zend/zend_language_scanner.l"
++#line 1363 "Zend/zend_language_scanner.l"
+               {
+       return T_MINUS_EQUAL;
+ }
 -#line 5023 "Zend/zend_language_scanner.c"
 -yy479:
 -              YYDEBUG(479, *YYCURSOR);
++#line 5242 "Zend/zend_language_scanner.c"
++yy487:
++              YYDEBUG(487, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(480, *YYCURSOR);
++              YYDEBUG(488, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1189 "Zend/zend_language_scanner.l"
++#line 1331 "Zend/zend_language_scanner.l"
+               {
+       return T_DEC;
+ }
 -#line 5033 "Zend/zend_language_scanner.c"
 -yy481:
 -              YYDEBUG(481, *YYCURSOR);
++#line 5252 "Zend/zend_language_scanner.c"
++yy489:
++              YYDEBUG(489, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(482, *YYCURSOR);
++              YYDEBUG(490, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1019 "Zend/zend_language_scanner.l"
++#line 1157 "Zend/zend_language_scanner.l"
+               {
+       yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
+       return T_OBJECT_OPERATOR;
+ }
 -#line 5044 "Zend/zend_language_scanner.c"
 -yy483:
 -              YYDEBUG(483, *YYCURSOR);
++#line 5263 "Zend/zend_language_scanner.c"
++yy491:
++              YYDEBUG(491, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'O') {
 -                      if (yych == 'I') goto yy490;
++                      if (yych == 'I') goto yy498;
+                       if (yych <= 'N') goto yy186;
 -                      goto yy491;
++                      goto yy499;
+               } else {
+                       if (yych <= 'i') {
+                               if (yych <= 'h') goto yy186;
 -                              goto yy490;
++                              goto yy498;
+                       } else {
 -                              if (yych == 'o') goto yy491;
++                              if (yych == 'o') goto yy499;
+                               goto yy186;
+                       }
+               }
 -yy484:
 -              YYDEBUG(484, *YYCURSOR);
++yy492:
++              YYDEBUG(492, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'B') goto yy485;
++              if (yych == 'B') goto yy493;
+               if (yych != 'b') goto yy186;
 -yy485:
 -              YYDEBUG(485, *YYCURSOR);
++yy493:
++              YYDEBUG(493, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy486;
++              if (yych == 'L') goto yy494;
+               if (yych != 'l') goto yy186;
 -yy486:
 -              YYDEBUG(486, *YYCURSOR);
++yy494:
++              YYDEBUG(494, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy487;
++              if (yych == 'I') goto yy495;
+               if (yych != 'i') goto yy186;
 -yy487:
 -              YYDEBUG(487, *YYCURSOR);
++yy495:
++              YYDEBUG(495, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy488;
++              if (yych == 'C') goto yy496;
+               if (yych != 'c') goto yy186;
 -yy488:
 -              YYDEBUG(488, *YYCURSOR);
++yy496:
++              YYDEBUG(496, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(489, *YYCURSOR);
++              YYDEBUG(497, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1165 "Zend/zend_language_scanner.l"
++#line 1303 "Zend/zend_language_scanner.l"
+               {
+       return T_PUBLIC;
+ }
 -#line 5093 "Zend/zend_language_scanner.c"
 -yy490:
 -              YYDEBUG(490, *YYCURSOR);
++#line 5312 "Zend/zend_language_scanner.c"
++yy498:
++              YYDEBUG(498, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'V') {
 -                      if (yych == 'N') goto yy499;
++                      if (yych == 'N') goto yy507;
+                       if (yych <= 'U') goto yy186;
 -                      goto yy500;
++                      goto yy508;
+               } else {
+                       if (yych <= 'n') {
+                               if (yych <= 'm') goto yy186;
 -                              goto yy499;
++                              goto yy507;
+                       } else {
 -                              if (yych == 'v') goto yy500;
++                              if (yych == 'v') goto yy508;
+                               goto yy186;
+                       }
+               }
 -yy491:
 -              YYDEBUG(491, *YYCURSOR);
++yy499:
++              YYDEBUG(499, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy492;
++              if (yych == 'T') goto yy500;
+               if (yych != 't') goto yy186;
 -yy492:
 -              YYDEBUG(492, *YYCURSOR);
++yy500:
++              YYDEBUG(500, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy493;
++              if (yych == 'E') goto yy501;
+               if (yych != 'e') goto yy186;
 -yy493:
 -              YYDEBUG(493, *YYCURSOR);
++yy501:
++              YYDEBUG(501, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy494;
++              if (yych == 'C') goto yy502;
+               if (yych != 'c') goto yy186;
 -yy494:
 -              YYDEBUG(494, *YYCURSOR);
++yy502:
++              YYDEBUG(502, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy495;
++              if (yych == 'T') goto yy503;
+               if (yych != 't') goto yy186;
 -yy495:
 -              YYDEBUG(495, *YYCURSOR);
++yy503:
++              YYDEBUG(503, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy496;
++              if (yych == 'E') goto yy504;
+               if (yych != 'e') goto yy186;
 -yy496:
 -              YYDEBUG(496, *YYCURSOR);
++yy504:
++              YYDEBUG(504, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'D') goto yy497;
++              if (yych == 'D') goto yy505;
+               if (yych != 'd') goto yy186;
 -yy497:
 -              YYDEBUG(497, *YYCURSOR);
++yy505:
++              YYDEBUG(505, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(498, *YYCURSOR);
++              YYDEBUG(506, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1161 "Zend/zend_language_scanner.l"
++#line 1299 "Zend/zend_language_scanner.l"
+               {
+       return T_PROTECTED;
+ }
 -#line 5152 "Zend/zend_language_scanner.c"
 -yy499:
 -              YYDEBUG(499, *YYCURSOR);
++#line 5371 "Zend/zend_language_scanner.c"
++yy507:
++              YYDEBUG(507, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy505;
 -              if (yych == 't') goto yy505;
++              if (yych == 'T') goto yy513;
++              if (yych == 't') goto yy513;
+               goto yy186;
 -yy500:
 -              YYDEBUG(500, *YYCURSOR);
++yy508:
++              YYDEBUG(508, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy501;
++              if (yych == 'A') goto yy509;
+               if (yych != 'a') goto yy186;
 -yy501:
 -              YYDEBUG(501, *YYCURSOR);
++yy509:
++              YYDEBUG(509, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy502;
++              if (yych == 'T') goto yy510;
+               if (yych != 't') goto yy186;
 -yy502:
 -              YYDEBUG(502, *YYCURSOR);
++yy510:
++              YYDEBUG(510, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy503;
++              if (yych == 'E') goto yy511;
+               if (yych != 'e') goto yy186;
 -yy503:
 -              YYDEBUG(503, *YYCURSOR);
++yy511:
++              YYDEBUG(511, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(504, *YYCURSOR);
++              YYDEBUG(512, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1157 "Zend/zend_language_scanner.l"
++#line 1295 "Zend/zend_language_scanner.l"
+               {
+       return T_PRIVATE;
+ }
 -#line 5186 "Zend/zend_language_scanner.c"
 -yy505:
 -              YYDEBUG(505, *YYCURSOR);
++#line 5405 "Zend/zend_language_scanner.c"
++yy513:
++              YYDEBUG(513, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(506, *YYCURSOR);
++              YYDEBUG(514, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 999 "Zend/zend_language_scanner.l"
++#line 1133 "Zend/zend_language_scanner.l"
+               {
+       return T_PRINT;
+ }
 -#line 5199 "Zend/zend_language_scanner.c"
 -yy507:
 -              YYDEBUG(507, *YYCURSOR);
++#line 5418 "Zend/zend_language_scanner.c"
++yy515:
++              YYDEBUG(515, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy512;
 -              if (yych == 'o') goto yy512;
++              if (yych == 'O') goto yy520;
++              if (yych == 'o') goto yy520;
+               goto yy186;
 -yy508:
 -              YYDEBUG(508, *YYCURSOR);
++yy516:
++              YYDEBUG(516, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy509;
++              if (yych == 'T') goto yy517;
+               if (yych != 't') goto yy186;
 -yy509:
 -              YYDEBUG(509, *YYCURSOR);
++yy517:
++              YYDEBUG(517, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy510;
++              if (yych == 'O') goto yy518;
+               if (yych != 'o') goto yy186;
 -yy510:
 -              YYDEBUG(510, *YYCURSOR);
++yy518:
++              YYDEBUG(518, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(511, *YYCURSOR);
++              YYDEBUG(519, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 991 "Zend/zend_language_scanner.l"
++#line 1125 "Zend/zend_language_scanner.l"
+               {
+       return T_GOTO;
+ }
 -#line 5228 "Zend/zend_language_scanner.c"
 -yy512:
 -              YYDEBUG(512, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'B') goto yy513;
 -              if (yych != 'b') goto yy186;
 -yy513:
 -              YYDEBUG(513, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy514;
 -              if (yych != 'a') goto yy186;
 -yy514:
 -              YYDEBUG(514, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy515;
 -              if (yych != 'l') goto yy186;
 -yy515:
 -              YYDEBUG(515, *YYCURSOR);
 -              ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
 -                      goto yy185;
 -              }
 -              YYDEBUG(516, *YYCURSOR);
 -              yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1129 "Zend/zend_language_scanner.l"
 -              {
 -      return T_GLOBAL;
 -}
 -#line 5256 "Zend/zend_language_scanner.c"
 -yy517:
 -              YYDEBUG(517, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == '<') goto yy525;
 -              goto yy193;
 -yy518:
 -              YYDEBUG(518, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              goto yy180;
 -yy519:
 -              YYDEBUG(519, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              goto yy178;
++#line 5447 "Zend/zend_language_scanner.c"
+ yy520:
+               YYDEBUG(520, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy521;
 -              if (yych != 'e') goto yy186;
++              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 == 'K') goto yy523;
 -              if (yych != 'k') goto yy186;
++              if (yych == 'L') goto yy523;
++              if (yych != 'l') goto yy186;
+ yy523:
+               YYDEBUG(523, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
+               YYDEBUG(524, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 983 "Zend/zend_language_scanner.l"
++#line 1267 "Zend/zend_language_scanner.l"
+               {
 -      return T_BREAK;
++      return T_GLOBAL;
+ }
 -#line 5297 "Zend/zend_language_scanner.c"
++#line 5475 "Zend/zend_language_scanner.c"
+ yy525:
+               YYDEBUG(525, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == '<') goto yy265;
++              if (yych == '<') goto yy533;
+               goto yy193;
+ yy526:
+               YYDEBUG(526, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy533;
 -              if (yych == 'a') goto yy533;
 -              goto yy186;
++              goto yy180;
+ yy527:
+               YYDEBUG(527, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy528;
 -              if (yych != 'i') goto yy186;
++              goto yy178;
+ yy528:
+               YYDEBUG(528, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy529;
 -              if (yych != 't') goto yy186;
++              if (yych == 'E') goto yy529;
++              if (yych != 'e') goto yy186;
+ yy529:
+               YYDEBUG(529, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy530;
 -              if (yych != 'c') goto yy186;
++              if (yych == 'A') goto yy530;
++              if (yych != 'a') goto yy186;
+ yy530:
+               YYDEBUG(530, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'H') goto yy531;
 -              if (yych != 'h') goto yy186;
++              if (yych == 'K') goto yy531;
++              if (yych != 'k') goto yy186;
+ yy531:
+               YYDEBUG(531, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
+               YYDEBUG(532, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 967 "Zend/zend_language_scanner.l"
++#line 1117 "Zend/zend_language_scanner.l"
+               {
 -      return T_SWITCH;
++      return T_BREAK;
+ }
 -#line 5341 "Zend/zend_language_scanner.c"
++#line 5516 "Zend/zend_language_scanner.c"
+ yy533:
+               YYDEBUG(533, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy534;
 -              if (yych != 't') goto yy186;
++              if (yych == '<') goto yy269;
++              goto yy193;
+ yy534:
+               YYDEBUG(534, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy535;
 -              if (yych != 'i') goto yy186;
++              if (yych == 'A') goto yy541;
++              if (yych == 'a') goto yy541;
++              goto yy186;
+ yy535:
+               YYDEBUG(535, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy536;
 -              if (yych != 'c') goto yy186;
++              if (yych == 'I') goto yy536;
++              if (yych != 'i') goto yy186;
+ yy536:
+               YYDEBUG(536, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'T') goto yy537;
++              if (yych != 't') goto yy186;
++yy537:
++              YYDEBUG(537, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'C') goto yy538;
++              if (yych != 'c') goto yy186;
++yy538:
++              YYDEBUG(538, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'H') goto yy539;
++              if (yych != 'h') goto yy186;
++yy539:
++              YYDEBUG(539, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(537, *YYCURSOR);
++              YYDEBUG(540, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1145 "Zend/zend_language_scanner.l"
++#line 1101 "Zend/zend_language_scanner.l"
++              {
++      return T_SWITCH;
++}
++#line 5560 "Zend/zend_language_scanner.c"
++yy541:
++              YYDEBUG(541, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'T') goto yy542;
++              if (yych != 't') goto yy186;
++yy542:
++              YYDEBUG(542, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'I') goto yy543;
++              if (yych != 'i') goto yy186;
++yy543:
++              YYDEBUG(543, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'C') goto yy544;
++              if (yych != 'c') goto yy186;
++yy544:
++              YYDEBUG(544, *YYCURSOR);
++              ++YYCURSOR;
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
++                      goto yy185;
++              }
++              YYDEBUG(545, *YYCURSOR);
++              yyleng = YYCURSOR - SCNG(yy_text);
++#line 1283 "Zend/zend_language_scanner.l"
+               {
+       return T_STATIC;
+ }
 -#line 5369 "Zend/zend_language_scanner.c"
 -yy538:
 -              YYDEBUG(538, *YYCURSOR);
++#line 5588 "Zend/zend_language_scanner.c"
++yy546:
++              YYDEBUG(546, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy549;
 -              if (yych == 's') goto yy549;
++              if (yych == 'S') goto yy557;
++              if (yych == 's') goto yy557;
+               goto yy186;
 -yy539:
 -              YYDEBUG(539, *YYCURSOR);
++yy547:
++              YYDEBUG(547, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'D') goto yy547;
 -              if (yych == 'd') goto yy547;
++              if (yych == 'D') goto yy555;
++              if (yych == 'd') goto yy555;
+               goto yy186;
 -yy540:
 -              YYDEBUG(540, *YYCURSOR);
++yy548:
++              YYDEBUG(548, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy543;
 -              if (yych == 'r') goto yy543;
++              if (yych == 'R') goto yy551;
++              if (yych == 'r') goto yy551;
+               goto yy186;
 -yy541:
 -              YYDEBUG(541, *YYCURSOR);
++yy549:
++              YYDEBUG(549, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(542, *YYCURSOR);
++              YYDEBUG(550, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 963 "Zend/zend_language_scanner.l"
++#line 1097 "Zend/zend_language_scanner.l"
+               {
+       return T_AS;
+ }
 -#line 5400 "Zend/zend_language_scanner.c"
 -yy543:
 -              YYDEBUG(543, *YYCURSOR);
++#line 5619 "Zend/zend_language_scanner.c"
++yy551:
++              YYDEBUG(551, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy544;
++              if (yych == 'A') goto yy552;
+               if (yych != 'a') goto yy186;
 -yy544:
 -              YYDEBUG(544, *YYCURSOR);
++yy552:
++              YYDEBUG(552, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'Y') goto yy545;
++              if (yych == 'Y') goto yy553;
+               if (yych != 'y') goto yy186;
 -yy545:
 -              YYDEBUG(545, *YYCURSOR);
++yy553:
++              YYDEBUG(553, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(546, *YYCURSOR);
++              YYDEBUG(554, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1181 "Zend/zend_language_scanner.l"
++#line 1319 "Zend/zend_language_scanner.l"
+               {
+       return T_ARRAY;
+ }
 -#line 5423 "Zend/zend_language_scanner.c"
 -yy547:
 -              YYDEBUG(547, *YYCURSOR);
++#line 5642 "Zend/zend_language_scanner.c"
++yy555:
++              YYDEBUG(555, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(548, *YYCURSOR);
++              YYDEBUG(556, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1273 "Zend/zend_language_scanner.l"
++#line 1415 "Zend/zend_language_scanner.l"
+               {
+       return T_LOGICAL_AND;
+ }
 -#line 5436 "Zend/zend_language_scanner.c"
 -yy549:
 -              YYDEBUG(549, *YYCURSOR);
++#line 5655 "Zend/zend_language_scanner.c"
++yy557:
++              YYDEBUG(557, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy550;
++              if (yych == 'T') goto yy558;
+               if (yych != 't') goto yy186;
 -yy550:
 -              YYDEBUG(550, *YYCURSOR);
++yy558:
++              YYDEBUG(558, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy551;
++              if (yych == 'R') goto yy559;
+               if (yych != 'r') goto yy186;
 -yy551:
 -              YYDEBUG(551, *YYCURSOR);
++yy559:
++              YYDEBUG(559, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy552;
++              if (yych == 'A') goto yy560;
+               if (yych != 'a') goto yy186;
 -yy552:
 -              YYDEBUG(552, *YYCURSOR);
++yy560:
++              YYDEBUG(560, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy553;
++              if (yych == 'C') goto yy561;
+               if (yych != 'c') goto yy186;
 -yy553:
 -              YYDEBUG(553, *YYCURSOR);
++yy561:
++              YYDEBUG(561, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy554;
++              if (yych == 'T') goto yy562;
+               if (yych != 't') goto yy186;
 -yy554:
 -              YYDEBUG(554, *YYCURSOR);
++yy562:
++              YYDEBUG(562, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(555, *YYCURSOR);
++              YYDEBUG(563, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1149 "Zend/zend_language_scanner.l"
++#line 1287 "Zend/zend_language_scanner.l"
+               {
+       return T_ABSTRACT;
+ }
 -#line 5474 "Zend/zend_language_scanner.c"
 -yy556:
 -              YYDEBUG(556, *YYCURSOR);
++#line 5693 "Zend/zend_language_scanner.c"
++yy564:
++              YYDEBUG(564, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy557;
++              if (yych == 'I') goto yy565;
+               if (yych != 'i') goto yy186;
 -yy557:
 -              YYDEBUG(557, *YYCURSOR);
++yy565:
++              YYDEBUG(565, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy558;
++              if (yych == 'L') goto yy566;
+               if (yych != 'l') goto yy186;
 -yy558:
 -              YYDEBUG(558, *YYCURSOR);
++yy566:
++              YYDEBUG(566, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy559;
++              if (yych == 'E') goto yy567;
+               if (yych != 'e') goto yy186;
 -yy559:
 -              YYDEBUG(559, *YYCURSOR);
++yy567:
++              YYDEBUG(567, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(560, *YYCURSOR);
++              YYDEBUG(568, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 923 "Zend/zend_language_scanner.l"
++#line 1057 "Zend/zend_language_scanner.l"
+               {
+       return T_WHILE;
+ }
 -#line 5502 "Zend/zend_language_scanner.c"
 -yy561:
 -              YYDEBUG(561, *YYCURSOR);
++#line 5721 "Zend/zend_language_scanner.c"
++yy569:
++              YYDEBUG(569, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(562, *YYCURSOR);
++              YYDEBUG(570, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 907 "Zend/zend_language_scanner.l"
++#line 1041 "Zend/zend_language_scanner.l"
+               {
+       return T_IF;
+ }
 -#line 5515 "Zend/zend_language_scanner.c"
 -yy563:
 -              YYDEBUG(563, *YYCURSOR);
++#line 5734 "Zend/zend_language_scanner.c"
++yy571:
++              YYDEBUG(571, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'P') goto yy599;
 -              if (yych == 'p') goto yy599;
++              if (yych == 'P') goto yy613;
++              if (yych == 'p') goto yy613;
+               goto yy186;
 -yy564:
 -              YYDEBUG(564, *YYCURSOR);
++yy572:
++              YYDEBUG(572, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'T') {
+                       if (yych <= 'C') {
+                               if (yych <= 'B') goto yy186;
 -                              goto yy572;
++                              goto yy580;
+                       } else {
+                               if (yych <= 'R') goto yy186;
 -                              if (yych <= 'S') goto yy570;
 -                              goto yy571;
++                              if (yych <= 'S') goto yy578;
++                              goto yy579;
+                       }
+               } else {
+                       if (yych <= 'r') {
 -                              if (yych == 'c') goto yy572;
++                              if (yych == 'c') goto yy580;
+                               goto yy186;
+                       } else {
 -                              if (yych <= 's') goto yy570;
 -                              if (yych <= 't') goto yy571;
++                              if (yych <= 's') goto yy578;
++                              if (yych <= 't') goto yy579;
+                               goto yy186;
+                       }
+               }
 -yy565:
 -              YYDEBUG(565, *YYCURSOR);
++yy573:
++              YYDEBUG(573, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy566;
++              if (yych == 'S') goto yy574;
+               if (yych != 's') goto yy186;
 -yy566:
 -              YYDEBUG(566, *YYCURSOR);
++yy574:
++              YYDEBUG(574, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy567;
++              if (yych == 'E') goto yy575;
+               if (yych != 'e') goto yy186;
 -yy567:
 -              YYDEBUG(567, *YYCURSOR);
++yy575:
++              YYDEBUG(575, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy568;
++              if (yych == 'T') goto yy576;
+               if (yych != 't') goto yy186;
 -yy568:
 -              YYDEBUG(568, *YYCURSOR);
++yy576:
++              YYDEBUG(576, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(569, *YYCURSOR);
++              YYDEBUG(577, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1133 "Zend/zend_language_scanner.l"
++#line 1271 "Zend/zend_language_scanner.l"
+               {
+       return T_ISSET;
+ }
 -#line 5571 "Zend/zend_language_scanner.c"
 -yy570:
 -              YYDEBUG(570, *YYCURSOR);
++#line 5790 "Zend/zend_language_scanner.c"
++yy578:
++              YYDEBUG(578, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy591;
 -              if (yych == 't') goto yy591;
++              if (yych == 'T') goto yy599;
++              if (yych == 't') goto yy599;
+               goto yy186;
 -yy571:
 -              YYDEBUG(571, *YYCURSOR);
++yy579:
++              YYDEBUG(579, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy584;
 -              if (yych == 'e') goto yy584;
++              if (yych == 'E') goto yy592;
++              if (yych == 'e') goto yy592;
+               goto yy186;
 -yy572:
 -              YYDEBUG(572, *YYCURSOR);
++yy580:
++              YYDEBUG(580, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy573;
++              if (yych == 'L') goto yy581;
+               if (yych != 'l') goto yy186;
 -yy573:
 -              YYDEBUG(573, *YYCURSOR);
++yy581:
++              YYDEBUG(581, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'U') goto yy574;
++              if (yych == 'U') goto yy582;
+               if (yych != 'u') goto yy186;
 -yy574:
 -              YYDEBUG(574, *YYCURSOR);
++yy582:
++              YYDEBUG(582, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'D') goto yy575;
++              if (yych == 'D') goto yy583;
+               if (yych != 'd') goto yy186;
 -yy575:
 -              YYDEBUG(575, *YYCURSOR);
++yy583:
++              YYDEBUG(583, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy576;
++              if (yych == 'E') goto yy584;
+               if (yych != 'e') goto yy186;
 -yy576:
 -              YYDEBUG(576, *YYCURSOR);
++yy584:
++              YYDEBUG(584, *YYCURSOR);
+               ++YYCURSOR;
+               if ((yych = *YYCURSOR) <= '^') {
+                       if (yych <= '9') {
+                               if (yych >= '0') goto yy185;
+                       } else {
 -                              if (yych <= '@') goto yy577;
++                              if (yych <= '@') goto yy585;
+                               if (yych <= 'Z') goto yy185;
+                       }
+               } else {
+                       if (yych <= '`') {
 -                              if (yych <= '_') goto yy578;
++                              if (yych <= '_') goto yy586;
+                       } else {
+                               if (yych <= 'z') goto yy185;
+                               if (yych >= 0x7F) goto yy185;
+                       }
+               }
 -yy577:
 -              YYDEBUG(577, *YYCURSOR);
++yy585:
++              YYDEBUG(585, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1105 "Zend/zend_language_scanner.l"
++#line 1239 "Zend/zend_language_scanner.l"
+               {
+       return T_INCLUDE;
+ }
 -#line 5629 "Zend/zend_language_scanner.c"
 -yy578:
 -              YYDEBUG(578, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy579;
 -              if (yych != 'o') goto yy186;
 -yy579:
 -              YYDEBUG(579, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy580;
 -              if (yych != 'n') goto yy186;
 -yy580:
 -              YYDEBUG(580, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy581;
 -              if (yych != 'c') goto yy186;
 -yy581:
 -              YYDEBUG(581, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy582;
 -              if (yych != 'e') goto yy186;
 -yy582:
 -              YYDEBUG(582, *YYCURSOR);
 -              ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
 -                      goto yy185;
 -              }
 -              YYDEBUG(583, *YYCURSOR);
 -              yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1109 "Zend/zend_language_scanner.l"
 -              {
 -      return T_INCLUDE_ONCE;
 -}
 -#line 5662 "Zend/zend_language_scanner.c"
 -yy584:
 -              YYDEBUG(584, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy585;
 -              if (yych != 'r') goto yy186;
 -yy585:
 -              YYDEBUG(585, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'F') goto yy586;
 -              if (yych != 'f') goto yy186;
++#line 5848 "Zend/zend_language_scanner.c"
+ yy586:
+               YYDEBUG(586, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy587;
 -              if (yych != 'a') goto yy186;
++              if (yych == 'O') goto yy587;
++              if (yych != 'o') goto yy186;
+ yy587:
+               YYDEBUG(587, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy588;
 -              if (yych != 'c') goto yy186;
++              if (yych == 'N') goto yy588;
++              if (yych != 'n') goto yy186;
+ yy588:
+               YYDEBUG(588, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy589;
 -              if (yych != 'e') goto yy186;
++              if (yych == 'C') goto yy589;
++              if (yych != 'c') goto yy186;
+ yy589:
+               YYDEBUG(589, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'E') goto yy590;
++              if (yych != 'e') goto yy186;
++yy590:
++              YYDEBUG(590, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(590, *YYCURSOR);
++              YYDEBUG(591, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1007 "Zend/zend_language_scanner.l"
++#line 1243 "Zend/zend_language_scanner.l"
+               {
 -      return T_INTERFACE;
++      return T_INCLUDE_ONCE;
+ }
 -#line 5700 "Zend/zend_language_scanner.c"
 -yy591:
 -              YYDEBUG(591, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy592;
 -              if (yych != 'a') goto yy186;
++#line 5881 "Zend/zend_language_scanner.c"
+ yy592:
+               YYDEBUG(592, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy593;
 -              if (yych != 'n') goto yy186;
++              if (yych == 'R') goto yy593;
++              if (yych != 'r') goto yy186;
+ yy593:
+               YYDEBUG(593, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy594;
 -              if (yych != 'c') goto yy186;
++              if (yych == 'F') goto yy594;
++              if (yych != 'f') goto yy186;
+ yy594:
+               YYDEBUG(594, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy595;
 -              if (yych != 'e') goto yy186;
++              if (yych == 'A') goto yy595;
++              if (yych != 'a') goto yy186;
+ yy595:
+               YYDEBUG(595, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy596;
 -              if (yych != 'o') goto yy186;
++              if (yych == 'C') goto yy596;
++              if (yych != 'c') goto yy186;
+ yy596:
+               YYDEBUG(596, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'F') goto yy597;
 -              if (yych != 'f') goto yy186;
++              if (yych == 'E') goto yy597;
++              if (yych != 'e') goto yy186;
+ yy597:
+               YYDEBUG(597, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
+               YYDEBUG(598, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 959 "Zend/zend_language_scanner.l"
++#line 1141 "Zend/zend_language_scanner.l"
+               {
 -      return T_INSTANCEOF;
++      return T_INTERFACE;
+ }
 -#line 5743 "Zend/zend_language_scanner.c"
++#line 5919 "Zend/zend_language_scanner.c"
+ yy599:
+               YYDEBUG(599, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy600;
 -              if (yych != 'l') goto yy186;
++              if (yych <= 'E') {
++                      if (yych == 'A') goto yy600;
++                      if (yych <= 'D') goto yy186;
++                      goto yy601;
++              } else {
++                      if (yych <= 'a') {
++                              if (yych <= '`') goto yy186;
++                      } else {
++                              if (yych == 'e') goto yy601;
++                              goto yy186;
++                      }
++              }
+ yy600:
+               YYDEBUG(600, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy601;
 -              if (yych != 'e') goto yy186;
++              if (yych == 'N') goto yy607;
++              if (yych == 'n') goto yy607;
++              goto yy186;
+ yy601:
+               YYDEBUG(601, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'M') goto yy602;
 -              if (yych != 'm') goto yy186;
++              if (yych == 'A') goto yy602;
++              if (yych != 'a') goto yy186;
+ yy602:
+               YYDEBUG(602, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy603;
 -              if (yych != 'e') goto yy186;
++              if (yych == 'D') goto yy603;
++              if (yych != 'd') goto yy186;
+ yy603:
+               YYDEBUG(603, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy604;
 -              if (yych != 'n') goto yy186;
++              if (yych == 'O') goto yy604;
++              if (yych != 'o') goto yy186;
+ yy604:
+               YYDEBUG(604, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy605;
 -              if (yych != 't') goto yy186;
++              if (yych == 'F') goto yy605;
++              if (yych != 'f') goto yy186;
+ yy605:
+               YYDEBUG(605, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy606;
 -              if (yych != 's') goto yy186;
 -yy606:
 -              YYDEBUG(606, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(607, *YYCURSOR);
++              YYDEBUG(606, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1015 "Zend/zend_language_scanner.l"
++#line 1263 "Zend/zend_language_scanner.l"
+               {
 -      return T_IMPLEMENTS;
++        return T_INSTEADOF;
+ }
 -#line 5791 "Zend/zend_language_scanner.c"
++#line 5973 "Zend/zend_language_scanner.c"
++yy607:
++              YYDEBUG(607, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'C') goto yy608;
++              if (yych != 'c') goto yy186;
+ yy608:
+               YYDEBUG(608, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy612;
 -              if (yych == 'r') goto yy612;
 -              goto yy186;
++              if (yych == 'E') goto yy609;
++              if (yych != 'e') goto yy186;
+ yy609:
+               YYDEBUG(609, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'Y') goto yy610;
 -              if (yych != 'y') goto yy186;
++              if (yych == 'O') goto yy610;
++              if (yych != 'o') goto yy186;
+ yy610:
+               YYDEBUG(610, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'F') goto yy611;
++              if (yych != 'f') goto yy186;
++yy611:
++              YYDEBUG(611, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(611, *YYCURSOR);
++              YYDEBUG(612, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 895 "Zend/zend_language_scanner.l"
++#line 1093 "Zend/zend_language_scanner.l"
+               {
 -      return T_TRY;
++      return T_INSTANCEOF;
+ }
 -#line 5815 "Zend/zend_language_scanner.c"
 -yy612:
 -              YYDEBUG(612, *YYCURSOR);
 -              yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy613;
 -              if (yych != 'o') goto yy186;
++#line 6006 "Zend/zend_language_scanner.c"
+ yy613:
+               YYDEBUG(613, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'W') goto yy614;
 -              if (yych != 'w') goto yy186;
++              if (yych == 'L') goto yy614;
++              if (yych != 'l') goto yy186;
+ yy614:
+               YYDEBUG(614, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'E') goto yy615;
++              if (yych != 'e') goto yy186;
++yy615:
++              YYDEBUG(615, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'M') goto yy616;
++              if (yych != 'm') goto yy186;
++yy616:
++              YYDEBUG(616, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'E') goto yy617;
++              if (yych != 'e') goto yy186;
++yy617:
++              YYDEBUG(617, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'N') goto yy618;
++              if (yych != 'n') goto yy186;
++yy618:
++              YYDEBUG(618, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'T') goto yy619;
++              if (yych != 't') goto yy186;
++yy619:
++              YYDEBUG(619, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'S') goto yy620;
++              if (yych != 's') goto yy186;
++yy620:
++              YYDEBUG(620, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(615, *YYCURSOR);
++              YYDEBUG(621, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 903 "Zend/zend_language_scanner.l"
++#line 1153 "Zend/zend_language_scanner.l"
++              {
++      return T_IMPLEMENTS;
++}
++#line 6054 "Zend/zend_language_scanner.c"
++yy622:
++              YYDEBUG(622, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'R') goto yy630;
++              if (yych == 'r') goto yy630;
++              goto yy186;
++yy623:
++              YYDEBUG(623, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych <= 'Y') {
++                      if (yych == 'A') goto yy626;
++                      if (yych <= 'X') goto yy186;
++              } else {
++                      if (yych <= 'a') {
++                              if (yych <= '`') goto yy186;
++                              goto yy626;
++                      } else {
++                              if (yych != 'y') goto yy186;
++                      }
++              }
++              YYDEBUG(624, *YYCURSOR);
++              ++YYCURSOR;
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
++                      goto yy185;
++              }
++              YYDEBUG(625, *YYCURSOR);
++              yyleng = YYCURSOR - SCNG(yy_text);
++#line 1029 "Zend/zend_language_scanner.l"
++              {
++      return T_TRY;
++}
++#line 6086 "Zend/zend_language_scanner.c"
++yy626:
++              YYDEBUG(626, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'I') goto yy627;
++              if (yych != 'i') goto yy186;
++yy627:
++              YYDEBUG(627, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'T') goto yy628;
++              if (yych != 't') goto yy186;
++yy628:
++              YYDEBUG(628, *YYCURSOR);
++              ++YYCURSOR;
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
++                      goto yy185;
++              }
++              YYDEBUG(629, *YYCURSOR);
++              yyleng = YYCURSOR - SCNG(yy_text);
++#line 1145 "Zend/zend_language_scanner.l"
++              {
++      return T_TRAIT;
++}
++#line 6109 "Zend/zend_language_scanner.c"
++yy630:
++              YYDEBUG(630, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'O') goto yy631;
++              if (yych != 'o') goto yy186;
++yy631:
++              YYDEBUG(631, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'W') goto yy632;
++              if (yych != 'w') goto yy186;
++yy632:
++              YYDEBUG(632, *YYCURSOR);
++              ++YYCURSOR;
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
++                      goto yy185;
++              }
++              YYDEBUG(633, *YYCURSOR);
++              yyleng = YYCURSOR - SCNG(yy_text);
++#line 1037 "Zend/zend_language_scanner.l"
+               {
+       return T_THROW;
+ }
 -#line 5838 "Zend/zend_language_scanner.c"
 -yy616:
 -              YYDEBUG(616, *YYCURSOR);
++#line 6132 "Zend/zend_language_scanner.c"
++yy634:
++              YYDEBUG(634, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'T') {
 -                      if (yych == 'Q') goto yy618;
++                      if (yych == 'Q') goto yy636;
+                       if (yych <= 'S') goto yy186;
+               } else {
+                       if (yych <= 'q') {
+                               if (yych <= 'p') goto yy186;
 -                              goto yy618;
++                              goto yy636;
+                       } else {
+                               if (yych != 't') goto yy186;
+                       }
+               }
 -              YYDEBUG(617, *YYCURSOR);
++              YYDEBUG(635, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'U') goto yy630;
 -              if (yych == 'u') goto yy630;
++              if (yych == 'U') goto yy648;
++              if (yych == 'u') goto yy648;
+               goto yy186;
 -yy618:
 -              YYDEBUG(618, *YYCURSOR);
++yy636:
++              YYDEBUG(636, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'U') goto yy619;
++              if (yych == 'U') goto yy637;
+               if (yych != 'u') goto yy186;
 -yy619:
 -              YYDEBUG(619, *YYCURSOR);
++yy637:
++              YYDEBUG(637, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy620;
++              if (yych == 'I') goto yy638;
+               if (yych != 'i') goto yy186;
 -yy620:
 -              YYDEBUG(620, *YYCURSOR);
++yy638:
++              YYDEBUG(638, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy621;
++              if (yych == 'R') goto yy639;
+               if (yych != 'r') goto yy186;
 -yy621:
 -              YYDEBUG(621, *YYCURSOR);
++yy639:
++              YYDEBUG(639, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy622;
++              if (yych == 'E') goto yy640;
+               if (yych != 'e') goto yy186;
 -yy622:
 -              YYDEBUG(622, *YYCURSOR);
++yy640:
++              YYDEBUG(640, *YYCURSOR);
+               ++YYCURSOR;
+               if ((yych = *YYCURSOR) <= '^') {
+                       if (yych <= '9') {
+                               if (yych >= '0') goto yy185;
+                       } else {
 -                              if (yych <= '@') goto yy623;
++                              if (yych <= '@') goto yy641;
+                               if (yych <= 'Z') goto yy185;
+                       }
+               } else {
+                       if (yych <= '`') {
 -                              if (yych <= '_') goto yy624;
++                              if (yych <= '_') goto yy642;
+                       } else {
+                               if (yych <= 'z') goto yy185;
+                               if (yych >= 0x7F) goto yy185;
+                       }
+               }
 -yy623:
 -              YYDEBUG(623, *YYCURSOR);
++yy641:
++              YYDEBUG(641, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1113 "Zend/zend_language_scanner.l"
++#line 1247 "Zend/zend_language_scanner.l"
+               {
+       return T_REQUIRE;
+ }
 -#line 5903 "Zend/zend_language_scanner.c"
 -yy624:
 -              YYDEBUG(624, *YYCURSOR);
++#line 6197 "Zend/zend_language_scanner.c"
++yy642:
++              YYDEBUG(642, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy625;
++              if (yych == 'O') goto yy643;
+               if (yych != 'o') goto yy186;
 -yy625:
 -              YYDEBUG(625, *YYCURSOR);
++yy643:
++              YYDEBUG(643, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy626;
++              if (yych == 'N') goto yy644;
+               if (yych != 'n') goto yy186;
 -yy626:
 -              YYDEBUG(626, *YYCURSOR);
++yy644:
++              YYDEBUG(644, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy627;
++              if (yych == 'C') goto yy645;
+               if (yych != 'c') goto yy186;
 -yy627:
 -              YYDEBUG(627, *YYCURSOR);
++yy645:
++              YYDEBUG(645, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy628;
++              if (yych == 'E') goto yy646;
+               if (yych != 'e') goto yy186;
 -yy628:
 -              YYDEBUG(628, *YYCURSOR);
++yy646:
++              YYDEBUG(646, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(629, *YYCURSOR);
++              YYDEBUG(647, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1117 "Zend/zend_language_scanner.l"
++#line 1251 "Zend/zend_language_scanner.l"
+               {
+       return T_REQUIRE_ONCE;
+ }
 -#line 5936 "Zend/zend_language_scanner.c"
 -yy630:
 -              YYDEBUG(630, *YYCURSOR);
++#line 6230 "Zend/zend_language_scanner.c"
++yy648:
++              YYDEBUG(648, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy631;
++              if (yych == 'R') goto yy649;
+               if (yych != 'r') goto yy186;
 -yy631:
 -              YYDEBUG(631, *YYCURSOR);
++yy649:
++              YYDEBUG(649, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy632;
++              if (yych == 'N') goto yy650;
+               if (yych != 'n') goto yy186;
 -yy632:
 -              YYDEBUG(632, *YYCURSOR);
++yy650:
++              YYDEBUG(650, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(633, *YYCURSOR);
++              YYDEBUG(651, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 891 "Zend/zend_language_scanner.l"
++#line 1025 "Zend/zend_language_scanner.l"
+               {
+       return T_RETURN;
+ }
 -#line 5959 "Zend/zend_language_scanner.c"
 -yy634:
 -              YYDEBUG(634, *YYCURSOR);
++#line 6253 "Zend/zend_language_scanner.c"
++yy652:
++              YYDEBUG(652, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'T') {
 -                      if (yych <= 'R') goto yy186;
 -                      if (yych <= 'S') goto yy656;
 -                      goto yy655;
++                      if (yych <= 'L') {
++                              if (yych <= 'K') goto yy186;
++                              goto yy675;
++                      } else {
++                              if (yych <= 'R') goto yy186;
++                              if (yych <= 'S') goto yy674;
++                              goto yy673;
++                      }
+               } else {
 -                      if (yych <= 'r') goto yy186;
 -                      if (yych <= 's') goto yy656;
 -                      if (yych <= 't') goto yy655;
 -                      goto yy186;
++                      if (yych <= 'r') {
++                              if (yych == 'l') goto yy675;
++                              goto yy186;
++                      } else {
++                              if (yych <= 's') goto yy674;
++                              if (yych <= 't') goto yy673;
++                              goto yy186;
++                      }
+               }
 -yy635:
 -              YYDEBUG(635, *YYCURSOR);
++yy653:
++              YYDEBUG(653, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'O') {
 -                      if (yych == 'A') goto yy647;
++                      if (yych == 'A') goto yy665;
+                       if (yych <= 'N') goto yy186;
 -                      goto yy648;
++                      goto yy666;
+               } else {
+                       if (yych <= 'a') {
+                               if (yych <= '`') goto yy186;
 -                              goto yy647;
++                              goto yy665;
+                       } else {
 -                              if (yych == 'o') goto yy648;
++                              if (yych == 'o') goto yy666;
+                               goto yy186;
+                       }
+               }
 -yy636:
 -              YYDEBUG(636, *YYCURSOR);
++yy654:
++              YYDEBUG(654, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy637;
++              if (yych == 'N') goto yy655;
+               if (yych != 'n') goto yy186;
 -yy637:
 -              YYDEBUG(637, *YYCURSOR);
++yy655:
++              YYDEBUG(655, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'T') {
+                       if (yych <= 'R') goto yy186;
 -                      if (yych >= 'T') goto yy639;
++                      if (yych >= 'T') goto yy657;
+               } else {
+                       if (yych <= 'r') goto yy186;
 -                      if (yych <= 's') goto yy638;
 -                      if (yych <= 't') goto yy639;
++                      if (yych <= 's') goto yy656;
++                      if (yych <= 't') goto yy657;
+                       goto yy186;
+               }
 -yy638:
 -              YYDEBUG(638, *YYCURSOR);
++yy656:
++              YYDEBUG(656, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy645;
 -              if (yych == 't') goto yy645;
++              if (yych == 'T') goto yy663;
++              if (yych == 't') goto yy663;
+               goto yy186;
 -yy639:
 -              YYDEBUG(639, *YYCURSOR);
++yy657:
++              YYDEBUG(657, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy640;
++              if (yych == 'I') goto yy658;
+               if (yych != 'i') goto yy186;
 -yy640:
 -              YYDEBUG(640, *YYCURSOR);
++yy658:
++              YYDEBUG(658, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy641;
++              if (yych == 'N') goto yy659;
+               if (yych != 'n') goto yy186;
 -yy641:
 -              YYDEBUG(641, *YYCURSOR);
++yy659:
++              YYDEBUG(659, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'U') goto yy642;
++              if (yych == 'U') goto yy660;
+               if (yych != 'u') goto yy186;
 -yy642:
 -              YYDEBUG(642, *YYCURSOR);
++yy660:
++              YYDEBUG(660, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy643;
++              if (yych == 'E') goto yy661;
+               if (yych != 'e') goto yy186;
 -yy643:
 -              YYDEBUG(643, *YYCURSOR);
++yy661:
++              YYDEBUG(661, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(644, *YYCURSOR);
++              YYDEBUG(662, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 987 "Zend/zend_language_scanner.l"
++#line 1121 "Zend/zend_language_scanner.l"
+               {
+       return T_CONTINUE;
+ }
 -#line 6044 "Zend/zend_language_scanner.c"
 -yy645:
 -              YYDEBUG(645, *YYCURSOR);
++#line 6347 "Zend/zend_language_scanner.c"
++yy663:
++              YYDEBUG(663, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(646, *YYCURSOR);
++              YYDEBUG(664, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 887 "Zend/zend_language_scanner.l"
++#line 1021 "Zend/zend_language_scanner.l"
+               {
+       return T_CONST;
+ }
 -#line 6057 "Zend/zend_language_scanner.c"
 -yy647:
 -              YYDEBUG(647, *YYCURSOR);
++#line 6360 "Zend/zend_language_scanner.c"
++yy665:
++              YYDEBUG(665, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy652;
 -              if (yych == 's') goto yy652;
++              if (yych == 'S') goto yy670;
++              if (yych == 's') goto yy670;
+               goto yy186;
 -yy648:
 -              YYDEBUG(648, *YYCURSOR);
++yy666:
++              YYDEBUG(666, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy649;
++              if (yych == 'N') goto yy667;
+               if (yych != 'n') goto yy186;
 -yy649:
 -              YYDEBUG(649, *YYCURSOR);
++yy667:
++              YYDEBUG(667, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy650;
++              if (yych == 'E') goto yy668;
+               if (yych != 'e') goto yy186;
 -yy650:
 -              YYDEBUG(650, *YYCURSOR);
++yy668:
++              YYDEBUG(668, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(651, *YYCURSOR);
++              YYDEBUG(669, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1061 "Zend/zend_language_scanner.l"
++#line 1199 "Zend/zend_language_scanner.l"
+               {
+       return T_CLONE;
+ }
 -#line 6086 "Zend/zend_language_scanner.c"
 -yy652:
 -              YYDEBUG(652, *YYCURSOR);
++#line 6389 "Zend/zend_language_scanner.c"
++yy670:
++              YYDEBUG(670, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy653;
++              if (yych == 'S') goto yy671;
+               if (yych != 's') goto yy186;
 -yy653:
 -              YYDEBUG(653, *YYCURSOR);
++yy671:
++              YYDEBUG(671, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(654, *YYCURSOR);
++              YYDEBUG(672, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1003 "Zend/zend_language_scanner.l"
++#line 1137 "Zend/zend_language_scanner.l"
+               {
+       return T_CLASS;
+ }
 -#line 6104 "Zend/zend_language_scanner.c"
 -yy655:
 -              YYDEBUG(655, *YYCURSOR);
++#line 6407 "Zend/zend_language_scanner.c"
++yy673:
++              YYDEBUG(673, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy659;
 -              if (yych == 'c') goto yy659;
++              if (yych == 'C') goto yy684;
++              if (yych == 'c') goto yy684;
+               goto yy186;
 -yy656:
 -              YYDEBUG(656, *YYCURSOR);
++yy674:
++              YYDEBUG(674, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy657;
++              if (yych == 'E') goto yy682;
++              if (yych == 'e') goto yy682;
++              goto yy186;
++yy675:
++              YYDEBUG(675, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'L') goto yy676;
++              if (yych != 'l') goto yy186;
++yy676:
++              YYDEBUG(676, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'A') goto yy677;
++              if (yych != 'a') goto yy186;
++yy677:
++              YYDEBUG(677, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'B') goto yy678;
++              if (yych != 'b') goto yy186;
++yy678:
++              YYDEBUG(678, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'L') goto yy679;
++              if (yych != 'l') goto yy186;
++yy679:
++              YYDEBUG(679, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yych == 'E') goto yy680;
+               if (yych != 'e') goto yy186;
 -yy657:
 -              YYDEBUG(657, *YYCURSOR);
++yy680:
++              YYDEBUG(680, *YYCURSOR);
++              ++YYCURSOR;
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
++                      goto yy185;
++              }
++              YYDEBUG(681, *YYCURSOR);
++              yyleng = YYCURSOR - SCNG(yy_text);
++#line 1323 "Zend/zend_language_scanner.l"
++              {
++ return T_CALLABLE;
++}
++#line 6457 "Zend/zend_language_scanner.c"
++yy682:
++              YYDEBUG(682, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(658, *YYCURSOR);
++              YYDEBUG(683, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 975 "Zend/zend_language_scanner.l"
++#line 1109 "Zend/zend_language_scanner.l"
+               {
+       return T_CASE;
+ }
 -#line 6128 "Zend/zend_language_scanner.c"
 -yy659:
 -              YYDEBUG(659, *YYCURSOR);
++#line 6470 "Zend/zend_language_scanner.c"
++yy684:
++              YYDEBUG(684, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'H') goto yy660;
++              if (yych == 'H') goto yy685;
+               if (yych != 'h') goto yy186;
 -yy660:
 -              YYDEBUG(660, *YYCURSOR);
++yy685:
++              YYDEBUG(685, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(661, *YYCURSOR);
++              YYDEBUG(686, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 899 "Zend/zend_language_scanner.l"
++#line 1033 "Zend/zend_language_scanner.l"
+               {
+       return T_CATCH;
+ }
 -#line 6146 "Zend/zend_language_scanner.c"
 -yy662:
 -              YYDEBUG(662, *YYCURSOR);
++#line 6488 "Zend/zend_language_scanner.c"
++yy687:
++              YYDEBUG(687, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy679;
 -              if (yych == 'n') goto yy679;
++              if (yych == 'N') goto yy704;
++              if (yych == 'n') goto yy704;
+               goto yy186;
 -yy663:
 -              YYDEBUG(663, *YYCURSOR);
++yy688:
++              YYDEBUG(688, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy672;
 -              if (yych == 'r') goto yy672;
++              if (yych == 'R') goto yy697;
++              if (yych == 'r') goto yy697;
+               goto yy186;
 -yy664:
 -              YYDEBUG(664, *YYCURSOR);
++yy689:
++              YYDEBUG(689, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy665;
++              if (yych == 'N') goto yy690;
+               if (yych != 'n') goto yy186;
 -yy665:
 -              YYDEBUG(665, *YYCURSOR);
++yy690:
++              YYDEBUG(690, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy666;
++              if (yych == 'C') goto yy691;
+               if (yych != 'c') goto yy186;
 -yy666:
 -              YYDEBUG(666, *YYCURSOR);
++yy691:
++              YYDEBUG(691, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy667;
++              if (yych == 'T') goto yy692;
+               if (yych != 't') goto yy186;
 -yy667:
 -              YYDEBUG(667, *YYCURSOR);
++yy692:
++              YYDEBUG(692, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy668;
++              if (yych == 'I') goto yy693;
+               if (yych != 'i') goto yy186;
 -yy668:
 -              YYDEBUG(668, *YYCURSOR);
++yy693:
++              YYDEBUG(693, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy669;
++              if (yych == 'O') goto yy694;
+               if (yych != 'o') goto yy186;
 -yy669:
 -              YYDEBUG(669, *YYCURSOR);
++yy694:
++              YYDEBUG(694, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy670;
++              if (yych == 'N') goto yy695;
+               if (yych != 'n') goto yy186;
 -yy670:
 -              YYDEBUG(670, *YYCURSOR);
++yy695:
++              YYDEBUG(695, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(671, *YYCURSOR);
++              YYDEBUG(696, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 883 "Zend/zend_language_scanner.l"
++#line 1017 "Zend/zend_language_scanner.l"
+               {
+       return T_FUNCTION;
+ }
 -#line 6201 "Zend/zend_language_scanner.c"
 -yy672:
 -              YYDEBUG(672, *YYCURSOR);
++#line 6543 "Zend/zend_language_scanner.c"
++yy697:
++              YYDEBUG(697, *YYCURSOR);
+               ++YYCURSOR;
+               if ((yych = *YYCURSOR) <= '^') {
+                       if (yych <= '@') {
 -                              if (yych <= '/') goto yy673;
++                              if (yych <= '/') goto yy698;
+                               if (yych <= '9') goto yy185;
+                       } else {
 -                              if (yych == 'E') goto yy674;
++                              if (yych == 'E') goto yy699;
+                               if (yych <= 'Z') goto yy185;
+                       }
+               } else {
+                       if (yych <= 'd') {
+                               if (yych != '`') goto yy185;
+                       } else {
 -                              if (yych <= 'e') goto yy674;
++                              if (yych <= 'e') goto yy699;
+                               if (yych <= 'z') goto yy185;
+                               if (yych >= 0x7F) goto yy185;
+                       }
+               }
 -yy673:
 -              YYDEBUG(673, *YYCURSOR);
++yy698:
++              YYDEBUG(698, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 935 "Zend/zend_language_scanner.l"
++#line 1069 "Zend/zend_language_scanner.l"
+               {
+       return T_FOR;
+ }
 -#line 6229 "Zend/zend_language_scanner.c"
 -yy674:
 -              YYDEBUG(674, *YYCURSOR);
++#line 6571 "Zend/zend_language_scanner.c"
++yy699:
++              YYDEBUG(699, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy675;
++              if (yych == 'A') goto yy700;
+               if (yych != 'a') goto yy186;
 -yy675:
 -              YYDEBUG(675, *YYCURSOR);
++yy700:
++              YYDEBUG(700, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy676;
++              if (yych == 'C') goto yy701;
+               if (yych != 'c') goto yy186;
 -yy676:
 -              YYDEBUG(676, *YYCURSOR);
++yy701:
++              YYDEBUG(701, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'H') goto yy677;
++              if (yych == 'H') goto yy702;
+               if (yych != 'h') goto yy186;
 -yy677:
 -              YYDEBUG(677, *YYCURSOR);
++yy702:
++              YYDEBUG(702, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(678, *YYCURSOR);
++              YYDEBUG(703, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 943 "Zend/zend_language_scanner.l"
++#line 1077 "Zend/zend_language_scanner.l"
+               {
+       return T_FOREACH;
+ }
 -#line 6257 "Zend/zend_language_scanner.c"
 -yy679:
 -              YYDEBUG(679, *YYCURSOR);
++#line 6599 "Zend/zend_language_scanner.c"
++yy704:
++              YYDEBUG(704, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy680;
++              if (yych == 'A') goto yy705;
+               if (yych != 'a') goto yy186;
 -yy680:
 -              YYDEBUG(680, *YYCURSOR);
++yy705:
++              YYDEBUG(705, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy681;
++              if (yych == 'L') goto yy706;
+               if (yych != 'l') goto yy186;
 -yy681:
 -              YYDEBUG(681, *YYCURSOR);
++yy706:
++              YYDEBUG(706, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(682, *YYCURSOR);
++              YYDEBUG(707, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1153 "Zend/zend_language_scanner.l"
++#line 1291 "Zend/zend_language_scanner.l"
+               {
+       return T_FINAL;
+ }
 -#line 6280 "Zend/zend_language_scanner.c"
 -yy683:
 -              YYDEBUG(683, *YYCURSOR);
++#line 6622 "Zend/zend_language_scanner.c"
++yy708:
++              YYDEBUG(708, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'F') {
 -                      if (yych == 'C') goto yy689;
++                      if (yych == 'C') goto yy714;
+                       if (yych <= 'E') goto yy186;
 -                      goto yy690;
++                      goto yy715;
+               } else {
+                       if (yych <= 'c') {
+                               if (yych <= 'b') goto yy186;
 -                              goto yy689;
++                              goto yy714;
+                       } else {
 -                              if (yych == 'f') goto yy690;
++                              if (yych == 'f') goto yy715;
+                               goto yy186;
+                       }
+               }
 -yy684:
 -              YYDEBUG(684, *YYCURSOR);
++yy709:
++              YYDEBUG(709, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy687;
 -              if (yych == 'e') goto yy687;
++              if (yych == 'E') goto yy712;
++              if (yych == 'e') goto yy712;
+               goto yy186;
 -yy685:
 -              YYDEBUG(685, *YYCURSOR);
++yy710:
++              YYDEBUG(710, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(686, *YYCURSOR);
++              YYDEBUG(711, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 931 "Zend/zend_language_scanner.l"
++#line 1065 "Zend/zend_language_scanner.l"
+               {
+       return T_DO;
+ }
 -#line 6315 "Zend/zend_language_scanner.c"
 -yy687:
 -              YYDEBUG(687, *YYCURSOR);
++#line 6657 "Zend/zend_language_scanner.c"
++yy712:
++              YYDEBUG(712, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(688, *YYCURSOR);
++              YYDEBUG(713, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 879 "Zend/zend_language_scanner.l"
++#line 1013 "Zend/zend_language_scanner.l"
+               {
+       return T_EXIT;
+ }
 -#line 6328 "Zend/zend_language_scanner.c"
 -yy689:
 -              YYDEBUG(689, *YYCURSOR);
++#line 6670 "Zend/zend_language_scanner.c"
++yy714:
++              YYDEBUG(714, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy696;
 -              if (yych == 'l') goto yy696;
++              if (yych == 'L') goto yy721;
++              if (yych == 'l') goto yy721;
+               goto yy186;
 -yy690:
 -              YYDEBUG(690, *YYCURSOR);
++yy715:
++              YYDEBUG(715, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy691;
++              if (yych == 'A') goto yy716;
+               if (yych != 'a') goto yy186;
 -yy691:
 -              YYDEBUG(691, *YYCURSOR);
++yy716:
++              YYDEBUG(716, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'U') goto yy692;
++              if (yych == 'U') goto yy717;
+               if (yych != 'u') goto yy186;
 -yy692:
 -              YYDEBUG(692, *YYCURSOR);
++yy717:
++              YYDEBUG(717, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy693;
++              if (yych == 'L') goto yy718;
+               if (yych != 'l') goto yy186;
 -yy693:
 -              YYDEBUG(693, *YYCURSOR);
++yy718:
++              YYDEBUG(718, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy694;
++              if (yych == 'T') goto yy719;
+               if (yych != 't') goto yy186;
 -yy694:
 -              YYDEBUG(694, *YYCURSOR);
++yy719:
++              YYDEBUG(719, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(695, *YYCURSOR);
++              YYDEBUG(720, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 979 "Zend/zend_language_scanner.l"
++#line 1113 "Zend/zend_language_scanner.l"
+               {
+       return T_DEFAULT;
+ }
 -#line 6367 "Zend/zend_language_scanner.c"
 -yy696:
 -              YYDEBUG(696, *YYCURSOR);
++#line 6709 "Zend/zend_language_scanner.c"
++yy721:
++              YYDEBUG(721, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy697;
++              if (yych == 'A') goto yy722;
+               if (yych != 'a') goto yy186;
 -yy697:
 -              YYDEBUG(697, *YYCURSOR);
++yy722:
++              YYDEBUG(722, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy698;
++              if (yych == 'R') goto yy723;
+               if (yych != 'r') goto yy186;
 -yy698:
 -              YYDEBUG(698, *YYCURSOR);
++yy723:
++              YYDEBUG(723, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy699;
++              if (yych == 'E') goto yy724;
+               if (yych != 'e') goto yy186;
 -yy699:
 -              YYDEBUG(699, *YYCURSOR);
++yy724:
++              YYDEBUG(724, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(700, *YYCURSOR);
++              YYDEBUG(725, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 951 "Zend/zend_language_scanner.l"
++#line 1085 "Zend/zend_language_scanner.l"
+               {
+       return T_DECLARE;
+ }
 -#line 6395 "Zend/zend_language_scanner.c"
 -yy701:
 -              YYDEBUG(701, *YYCURSOR);
++#line 6737 "Zend/zend_language_scanner.c"
++yy726:
++              YYDEBUG(726, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'H') goto yy763;
 -              if (yych == 'h') goto yy763;
++              if (yych == 'H') goto yy788;
++              if (yych == 'h') goto yy788;
+               goto yy186;
 -yy702:
 -              YYDEBUG(702, *YYCURSOR);
++yy727:
++              YYDEBUG(727, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy757;
 -              if (yych == 's') goto yy757;
++              if (yych == 'S') goto yy782;
++              if (yych == 's') goto yy782;
+               goto yy186;
 -yy703:
 -              YYDEBUG(703, *YYCURSOR);
++yy728:
++              YYDEBUG(728, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'P') goto yy753;
 -              if (yych == 'p') goto yy753;
++              if (yych == 'P') goto yy778;
++              if (yych == 'p') goto yy778;
+               goto yy186;
 -yy704:
 -              YYDEBUG(704, *YYCURSOR);
++yy729:
++              YYDEBUG(729, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'D') goto yy719;
 -              if (yych == 'd') goto yy719;
++              if (yych == 'D') goto yy744;
++              if (yych == 'd') goto yy744;
+               goto yy186;
 -yy705:
 -              YYDEBUG(705, *YYCURSOR);
++yy730:
++              YYDEBUG(730, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy716;
 -              if (yych == 'a') goto yy716;
++              if (yych == 'A') goto yy741;
++              if (yych == 'a') goto yy741;
+               goto yy186;
 -yy706:
 -              YYDEBUG(706, *YYCURSOR);
++yy731:
++              YYDEBUG(731, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych <= 'T') {
 -                      if (yych == 'I') goto yy707;
++                      if (yych == 'I') goto yy732;
+                       if (yych <= 'S') goto yy186;
 -                      goto yy708;
++                      goto yy733;
+               } else {
+                       if (yych <= 'i') {
+                               if (yych <= 'h') goto yy186;
+                       } else {
 -                              if (yych == 't') goto yy708;
++                              if (yych == 't') goto yy733;
+                               goto yy186;
+                       }
+               }
 -yy707:
 -              YYDEBUG(707, *YYCURSOR);
++yy732:
++              YYDEBUG(732, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy714;
 -              if (yych == 't') goto yy714;
++              if (yych == 'T') goto yy739;
++              if (yych == 't') goto yy739;
+               goto yy186;
 -yy708:
 -              YYDEBUG(708, *YYCURSOR);
++yy733:
++              YYDEBUG(733, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy709;
++              if (yych == 'E') goto yy734;
+               if (yych != 'e') goto yy186;
 -yy709:
 -              YYDEBUG(709, *YYCURSOR);
++yy734:
++              YYDEBUG(734, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'N') goto yy710;
++              if (yych == 'N') goto yy735;
+               if (yych != 'n') goto yy186;
 -yy710:
 -              YYDEBUG(710, *YYCURSOR);
++yy735:
++              YYDEBUG(735, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'D') goto yy711;
++              if (yych == 'D') goto yy736;
+               if (yych != 'd') goto yy186;
 -yy711:
 -              YYDEBUG(711, *YYCURSOR);
++yy736:
++              YYDEBUG(736, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'S') goto yy712;
++              if (yych == 'S') goto yy737;
+               if (yych != 's') goto yy186;
 -yy712:
 -              YYDEBUG(712, *YYCURSOR);
++yy737:
++              YYDEBUG(737, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(713, *YYCURSOR);
++              YYDEBUG(738, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1011 "Zend/zend_language_scanner.l"
++#line 1149 "Zend/zend_language_scanner.l"
+               {
+       return T_EXTENDS;
+ }
 -#line 6479 "Zend/zend_language_scanner.c"
 -yy714:
 -              YYDEBUG(714, *YYCURSOR);
++#line 6821 "Zend/zend_language_scanner.c"
++yy739:
++              YYDEBUG(739, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(715, *YYCURSOR);
++              YYDEBUG(740, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 875 "Zend/zend_language_scanner.l"
++#line 1009 "Zend/zend_language_scanner.l"
+               {
+       return T_EXIT;
+ }
 -#line 6492 "Zend/zend_language_scanner.c"
 -yy716:
 -              YYDEBUG(716, *YYCURSOR);
++#line 6834 "Zend/zend_language_scanner.c"
++yy741:
++              YYDEBUG(741, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy717;
++              if (yych == 'L') goto yy742;
+               if (yych != 'l') goto yy186;
 -yy717:
 -              YYDEBUG(717, *YYCURSOR);
++yy742:
++              YYDEBUG(742, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(718, *YYCURSOR);
++              YYDEBUG(743, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1101 "Zend/zend_language_scanner.l"
++#line 1235 "Zend/zend_language_scanner.l"
+               {
+       return T_EVAL;
+ }
 -#line 6510 "Zend/zend_language_scanner.c"
 -yy719:
 -              YYDEBUG(719, *YYCURSOR);
++#line 6852 "Zend/zend_language_scanner.c"
++yy744:
++              YYDEBUG(744, *YYCURSOR);
+               yych = *++YYCURSOR;
+               YYDEBUG(-1, yych);
+               switch (yych) {
+               case 'D':
 -              case 'd':       goto yy720;
++              case 'd':       goto yy745;
+               case 'F':
 -              case 'f':       goto yy721;
++              case 'f':       goto yy746;
+               case 'I':
 -              case 'i':       goto yy722;
++              case 'i':       goto yy747;
+               case 'S':
 -              case 's':       goto yy723;
++              case 's':       goto yy748;
+               case 'W':
 -              case 'w':       goto yy724;
++              case 'w':       goto yy749;
+               default:        goto yy186;
+               }
 -yy720:
 -              YYDEBUG(720, *YYCURSOR);
++yy745:
++              YYDEBUG(745, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy746;
 -              if (yych == 'e') goto yy746;
++              if (yych == 'E') goto yy771;
++              if (yych == 'e') goto yy771;
+               goto yy186;
 -yy721:
 -              YYDEBUG(721, *YYCURSOR);
++yy746:
++              YYDEBUG(746, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy738;
 -              if (yych == 'o') goto yy738;
++              if (yych == 'O') goto yy763;
++              if (yych == 'o') goto yy763;
+               goto yy186;
 -yy722:
 -              YYDEBUG(722, *YYCURSOR);
++yy747:
++              YYDEBUG(747, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'F') goto yy736;
 -              if (yych == 'f') goto yy736;
++              if (yych == 'F') goto yy761;
++              if (yych == 'f') goto yy761;
+               goto yy186;
 -yy723:
 -              YYDEBUG(723, *YYCURSOR);
++yy748:
++              YYDEBUG(748, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'W') goto yy730;
 -              if (yych == 'w') goto yy730;
++              if (yych == 'W') goto yy755;
++              if (yych == 'w') goto yy755;
+               goto yy186;
 -yy724:
 -              YYDEBUG(724, *YYCURSOR);
++yy749:
++              YYDEBUG(749, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'H') goto yy725;
++              if (yych == 'H') goto yy750;
+               if (yych != 'h') goto yy186;
 -yy725:
 -              YYDEBUG(725, *YYCURSOR);
++yy750:
++              YYDEBUG(750, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy726;
++              if (yych == 'I') goto yy751;
+               if (yych != 'i') goto yy186;
 -yy726:
 -              YYDEBUG(726, *YYCURSOR);
++yy751:
++              YYDEBUG(751, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy727;
++              if (yych == 'L') goto yy752;
+               if (yych != 'l') goto yy186;
 -yy727:
 -              YYDEBUG(727, *YYCURSOR);
++yy752:
++              YYDEBUG(752, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy728;
++              if (yych == 'E') goto yy753;
+               if (yych != 'e') goto yy186;
 -yy728:
 -              YYDEBUG(728, *YYCURSOR);
++yy753:
++              YYDEBUG(753, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(729, *YYCURSOR);
++              YYDEBUG(754, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 927 "Zend/zend_language_scanner.l"
++#line 1061 "Zend/zend_language_scanner.l"
+               {
+       return T_ENDWHILE;
+ }
 -#line 6584 "Zend/zend_language_scanner.c"
 -yy730:
 -              YYDEBUG(730, *YYCURSOR);
++#line 6926 "Zend/zend_language_scanner.c"
++yy755:
++              YYDEBUG(755, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'I') goto yy731;
++              if (yych == 'I') goto yy756;
+               if (yych != 'i') goto yy186;
 -yy731:
 -              YYDEBUG(731, *YYCURSOR);
++yy756:
++              YYDEBUG(756, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy732;
++              if (yych == 'T') goto yy757;
+               if (yych != 't') goto yy186;
 -yy732:
 -              YYDEBUG(732, *YYCURSOR);
++yy757:
++              YYDEBUG(757, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy733;
++              if (yych == 'C') goto yy758;
+               if (yych != 'c') goto yy186;
 -yy733:
 -              YYDEBUG(733, *YYCURSOR);
++yy758:
++              YYDEBUG(758, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'H') goto yy734;
++              if (yych == 'H') goto yy759;
+               if (yych != 'h') goto yy186;
 -yy734:
 -              YYDEBUG(734, *YYCURSOR);
++yy759:
++              YYDEBUG(759, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(735, *YYCURSOR);
++              YYDEBUG(760, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 971 "Zend/zend_language_scanner.l"
++#line 1105 "Zend/zend_language_scanner.l"
+               {
+       return T_ENDSWITCH;
+ }
 -#line 6617 "Zend/zend_language_scanner.c"
 -yy736:
 -              YYDEBUG(736, *YYCURSOR);
++#line 6959 "Zend/zend_language_scanner.c"
++yy761:
++              YYDEBUG(761, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(737, *YYCURSOR);
++              YYDEBUG(762, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 915 "Zend/zend_language_scanner.l"
++#line 1049 "Zend/zend_language_scanner.l"
+               {
+       return T_ENDIF;
+ }
 -#line 6630 "Zend/zend_language_scanner.c"
 -yy738:
 -              YYDEBUG(738, *YYCURSOR);
++#line 6972 "Zend/zend_language_scanner.c"
++yy763:
++              YYDEBUG(763, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy739;
++              if (yych == 'R') goto yy764;
+               if (yych != 'r') goto yy186;
 -yy739:
 -              YYDEBUG(739, *YYCURSOR);
++yy764:
++              YYDEBUG(764, *YYCURSOR);
+               ++YYCURSOR;
+               if ((yych = *YYCURSOR) <= '^') {
+                       if (yych <= '@') {
 -                              if (yych <= '/') goto yy740;
++                              if (yych <= '/') goto yy765;
+                               if (yych <= '9') goto yy185;
+                       } else {
 -                              if (yych == 'E') goto yy741;
++                              if (yych == 'E') goto yy766;
+                               if (yych <= 'Z') goto yy185;
+                       }
+               } else {
+                       if (yych <= 'd') {
+                               if (yych != '`') goto yy185;
+                       } else {
 -                              if (yych <= 'e') goto yy741;
++                              if (yych <= 'e') goto yy766;
+                               if (yych <= 'z') goto yy185;
+                               if (yych >= 0x7F) goto yy185;
+                       }
+               }
 -yy740:
 -              YYDEBUG(740, *YYCURSOR);
++yy765:
++              YYDEBUG(765, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 939 "Zend/zend_language_scanner.l"
++#line 1073 "Zend/zend_language_scanner.l"
+               {
+       return T_ENDFOR;
+ }
 -#line 6663 "Zend/zend_language_scanner.c"
 -yy741:
 -              YYDEBUG(741, *YYCURSOR);
++#line 7005 "Zend/zend_language_scanner.c"
++yy766:
++              YYDEBUG(766, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy742;
++              if (yych == 'A') goto yy767;
+               if (yych != 'a') goto yy186;
 -yy742:
 -              YYDEBUG(742, *YYCURSOR);
++yy767:
++              YYDEBUG(767, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy743;
++              if (yych == 'C') goto yy768;
+               if (yych != 'c') goto yy186;
 -yy743:
 -              YYDEBUG(743, *YYCURSOR);
++yy768:
++              YYDEBUG(768, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'H') goto yy744;
++              if (yych == 'H') goto yy769;
+               if (yych != 'h') goto yy186;
 -yy744:
 -              YYDEBUG(744, *YYCURSOR);
++yy769:
++              YYDEBUG(769, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(745, *YYCURSOR);
++              YYDEBUG(770, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 947 "Zend/zend_language_scanner.l"
++#line 1081 "Zend/zend_language_scanner.l"
+               {
+       return T_ENDFOREACH;
+ }
 -#line 6691 "Zend/zend_language_scanner.c"
 -yy746:
 -              YYDEBUG(746, *YYCURSOR);
++#line 7033 "Zend/zend_language_scanner.c"
++yy771:
++              YYDEBUG(771, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'C') goto yy747;
++              if (yych == 'C') goto yy772;
+               if (yych != 'c') goto yy186;
 -yy747:
 -              YYDEBUG(747, *YYCURSOR);
++yy772:
++              YYDEBUG(772, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'L') goto yy748;
++              if (yych == 'L') goto yy773;
+               if (yych != 'l') goto yy186;
 -yy748:
 -              YYDEBUG(748, *YYCURSOR);
++yy773:
++              YYDEBUG(773, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'A') goto yy749;
++              if (yych == 'A') goto yy774;
+               if (yych != 'a') goto yy186;
 -yy749:
 -              YYDEBUG(749, *YYCURSOR);
++yy774:
++              YYDEBUG(774, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'R') goto yy750;
++              if (yych == 'R') goto yy775;
+               if (yych != 'r') goto yy186;
 -yy750:
 -              YYDEBUG(750, *YYCURSOR);
++yy775:
++              YYDEBUG(775, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy751;
++              if (yych == 'E') goto yy776;
+               if (yych != 'e') goto yy186;
 -yy751:
 -              YYDEBUG(751, *YYCURSOR);
++yy776:
++              YYDEBUG(776, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(752, *YYCURSOR);
++              YYDEBUG(777, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 955 "Zend/zend_language_scanner.l"
++#line 1089 "Zend/zend_language_scanner.l"
+               {
+       return T_ENDDECLARE;
+ }
 -#line 6729 "Zend/zend_language_scanner.c"
 -yy753:
 -              YYDEBUG(753, *YYCURSOR);
++#line 7071 "Zend/zend_language_scanner.c"
++yy778:
++              YYDEBUG(778, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'T') goto yy754;
++              if (yych == 'T') goto yy779;
+               if (yych != 't') goto yy186;
 -yy754:
 -              YYDEBUG(754, *YYCURSOR);
++yy779:
++              YYDEBUG(779, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'Y') goto yy755;
++              if (yych == 'Y') goto yy780;
+               if (yych != 'y') goto yy186;
 -yy755:
 -              YYDEBUG(755, *YYCURSOR);
++yy780:
++              YYDEBUG(780, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(756, *YYCURSOR);
++              YYDEBUG(781, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1137 "Zend/zend_language_scanner.l"
++#line 1275 "Zend/zend_language_scanner.l"
+               {
+       return T_EMPTY;
+ }
 -#line 6752 "Zend/zend_language_scanner.c"
 -yy757:
 -              YYDEBUG(757, *YYCURSOR);
++#line 7094 "Zend/zend_language_scanner.c"
++yy782:
++              YYDEBUG(782, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'E') goto yy758;
++              if (yych == 'E') goto yy783;
+               if (yych != 'e') goto yy186;
 -yy758:
 -              YYDEBUG(758, *YYCURSOR);
++yy783:
++              YYDEBUG(783, *YYCURSOR);
+               ++YYCURSOR;
+               if ((yych = *YYCURSOR) <= '^') {
+                       if (yych <= '@') {
 -                              if (yych <= '/') goto yy759;
++                              if (yych <= '/') goto yy784;
+                               if (yych <= '9') goto yy185;
+                       } else {
 -                              if (yych == 'I') goto yy760;
++                              if (yych == 'I') goto yy785;
+                               if (yych <= 'Z') goto yy185;
+                       }
+               } else {
+                       if (yych <= 'h') {
+                               if (yych != '`') goto yy185;
+                       } else {
 -                              if (yych <= 'i') goto yy760;
++                              if (yych <= 'i') goto yy785;
+                               if (yych <= 'z') goto yy185;
+                               if (yych >= 0x7F) goto yy185;
+                       }
+               }
 -yy759:
 -              YYDEBUG(759, *YYCURSOR);
++yy784:
++              YYDEBUG(784, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 919 "Zend/zend_language_scanner.l"
++#line 1053 "Zend/zend_language_scanner.l"
+               {
+       return T_ELSE;
+ }
 -#line 6785 "Zend/zend_language_scanner.c"
 -yy760:
 -              YYDEBUG(760, *YYCURSOR);
++#line 7127 "Zend/zend_language_scanner.c"
++yy785:
++              YYDEBUG(785, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'F') goto yy761;
++              if (yych == 'F') goto yy786;
+               if (yych != 'f') goto yy186;
 -yy761:
 -              YYDEBUG(761, *YYCURSOR);
++yy786:
++              YYDEBUG(786, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(762, *YYCURSOR);
++              YYDEBUG(787, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 911 "Zend/zend_language_scanner.l"
++#line 1045 "Zend/zend_language_scanner.l"
+               {
+       return T_ELSEIF;
+ }
 -#line 6803 "Zend/zend_language_scanner.c"
 -yy763:
 -              YYDEBUG(763, *YYCURSOR);
++#line 7145 "Zend/zend_language_scanner.c"
++yy788:
++              YYDEBUG(788, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              if (yych == 'O') goto yy764;
++              if (yych == 'O') goto yy789;
+               if (yych != 'o') goto yy186;
 -yy764:
 -              YYDEBUG(764, *YYCURSOR);
++yy789:
++              YYDEBUG(789, *YYCURSOR);
+               ++YYCURSOR;
 -              if (yybm[0+(yych = *YYCURSOR)] & 8) {
++              if (yybm[0+(yych = *YYCURSOR)] & 4) {
+                       goto yy185;
+               }
 -              YYDEBUG(765, *YYCURSOR);
++              YYDEBUG(790, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 995 "Zend/zend_language_scanner.l"
++#line 1129 "Zend/zend_language_scanner.l"
+               {
+       return T_ECHO;
+ }
 -#line 6821 "Zend/zend_language_scanner.c"
++#line 7163 "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(766, *YYCURSOR);
++              YYDEBUG(791, *YYCURSOR);
+               YYFILL(2);
+               yych = *YYCURSOR;
+               if (yych <= '-') {
+                       if (yych <= '\r') {
 -                              if (yych <= 0x08) goto yy774;
 -                              if (yych <= '\n') goto yy768;
 -                              if (yych <= '\f') goto yy774;
++                              if (yych <= 0x08) goto yy799;
++                              if (yych <= '\n') goto yy793;
++                              if (yych <= '\f') goto yy799;
+                       } else {
 -                              if (yych == ' ') goto yy768;
 -                              if (yych <= ',') goto yy774;
 -                              goto yy770;
++                              if (yych == ' ') goto yy793;
++                              if (yych <= ',') goto yy799;
++                              goto yy795;
+                       }
+               } else {
+                       if (yych <= '_') {
 -                              if (yych <= '@') goto yy774;
 -                              if (yych <= 'Z') goto yy772;
 -                              if (yych <= '^') goto yy774;
 -                              goto yy772;
++                              if (yych <= '@') goto yy799;
++                              if (yych <= 'Z') goto yy797;
++                              if (yych <= '^') goto yy799;
++                              goto yy797;
+                       } else {
 -                              if (yych <= '`') goto yy774;
 -                              if (yych <= 'z') goto yy772;
 -                              if (yych <= '~') goto yy774;
 -                              goto yy772;
++                              if (yych <= '`') goto yy799;
++                              if (yych <= 'z') goto yy797;
++                              if (yych <= '~') goto yy799;
++                              goto yy797;
+                       }
+               }
 -yy768:
 -              YYDEBUG(768, *YYCURSOR);
++yy793:
++              YYDEBUG(793, *YYCURSOR);
+               ++YYCURSOR;
+               yych = *YYCURSOR;
 -              goto yy780;
 -yy769:
 -              YYDEBUG(769, *YYCURSOR);
++              goto yy805;
++yy794:
++              YYDEBUG(794, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1024 "Zend/zend_language_scanner.l"
++#line 1162 "Zend/zend_language_scanner.l"
+               {
+       zendlval->value.str.val = yytext; /* no copying - intentional */
+       zendlval->value.str.len = yyleng;
+       zendlval->type = IS_STRING;
+       HANDLE_NEWLINES(yytext, yyleng);
+       return T_WHITESPACE;
+ }
 -#line 6902 "Zend/zend_language_scanner.c"
 -yy770:
 -              YYDEBUG(770, *YYCURSOR);
++#line 7244 "Zend/zend_language_scanner.c"
++yy795:
++              YYDEBUG(795, *YYCURSOR);
+               ++YYCURSOR;
 -              if ((yych = *YYCURSOR) == '>') goto yy777;
 -yy771:
 -              YYDEBUG(771, *YYCURSOR);
++              if ((yych = *YYCURSOR) == '>') goto yy802;
++yy796:
++              YYDEBUG(796, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1043 "Zend/zend_language_scanner.l"
++#line 1181 "Zend/zend_language_scanner.l"
+               {
+       yyless(0);
+       yy_pop_state(TSRMLS_C);
+       goto restart;
+ }
 -#line 6916 "Zend/zend_language_scanner.c"
 -yy772:
 -              YYDEBUG(772, *YYCURSOR);
++#line 7258 "Zend/zend_language_scanner.c"
++yy797:
++              YYDEBUG(797, *YYCURSOR);
+               ++YYCURSOR;
+               yych = *YYCURSOR;
 -              goto yy776;
 -yy773:
 -              YYDEBUG(773, *YYCURSOR);
++              goto yy801;
++yy798:
++              YYDEBUG(798, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1036 "Zend/zend_language_scanner.l"
++#line 1174 "Zend/zend_language_scanner.l"
+               {
+       yy_pop_state(TSRMLS_C);
+       zend_copy_value(zendlval, yytext, yyleng);
+       zendlval->type = IS_STRING;
+       return T_STRING;
+ }
 -#line 6932 "Zend/zend_language_scanner.c"
 -yy774:
 -              YYDEBUG(774, *YYCURSOR);
++#line 7274 "Zend/zend_language_scanner.c"
++yy799:
++              YYDEBUG(799, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              goto yy771;
 -yy775:
 -              YYDEBUG(775, *YYCURSOR);
++              goto yy796;
++yy800:
++              YYDEBUG(800, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
 -yy776:
 -              YYDEBUG(776, *YYCURSOR);
++yy801:
++              YYDEBUG(801, *YYCURSOR);
+               if (yybm[0+yych] & 64) {
 -                      goto yy775;
++                      goto yy800;
+               }
 -              goto yy773;
 -yy777:
 -              YYDEBUG(777, *YYCURSOR);
++              goto yy798;
++yy802:
++              YYDEBUG(802, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(778, *YYCURSOR);
++              YYDEBUG(803, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1032 "Zend/zend_language_scanner.l"
++#line 1170 "Zend/zend_language_scanner.l"
+               {
+       return T_OBJECT_OPERATOR;
+ }
 -#line 6957 "Zend/zend_language_scanner.c"
 -yy779:
 -              YYDEBUG(779, *YYCURSOR);
++#line 7299 "Zend/zend_language_scanner.c"
++yy804:
++              YYDEBUG(804, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
 -yy780:
 -              YYDEBUG(780, *YYCURSOR);
++yy805:
++              YYDEBUG(805, *YYCURSOR);
+               if (yybm[0+yych] & 128) {
 -                      goto yy779;
++                      goto yy804;
+               }
 -              goto yy769;
++              goto yy794;
+       }
+ /* *********************************** */
+ 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(781, *YYCURSOR);
++              YYDEBUG(806, *YYCURSOR);
+               YYFILL(2);
+               yych = *YYCURSOR;
+               if (yych <= '_') {
 -                      if (yych <= '@') goto yy785;
 -                      if (yych <= 'Z') goto yy783;
 -                      if (yych <= '^') goto yy785;
++                      if (yych <= '@') goto yy810;
++                      if (yych <= 'Z') goto yy808;
++                      if (yych <= '^') goto yy810;
+               } else {
 -                      if (yych <= '`') goto yy785;
 -                      if (yych <= 'z') goto yy783;
 -                      if (yych <= '~') goto yy785;
++                      if (yych <= '`') goto yy810;
++                      if (yych <= 'z') goto yy808;
++                      if (yych <= '~') goto yy810;
+               }
 -yy783:
 -              YYDEBUG(783, *YYCURSOR);
++yy808:
++              YYDEBUG(808, *YYCURSOR);
+               ++YYCURSOR;
+               yych = *YYCURSOR;
 -              goto yy788;
 -yy784:
 -              YYDEBUG(784, *YYCURSOR);
++              goto yy813;
++yy809:
++              YYDEBUG(809, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1315 "Zend/zend_language_scanner.l"
++#line 1457 "Zend/zend_language_scanner.l"
+               {
+       zend_copy_value(zendlval, yytext, yyleng);
+       zendlval->type = IS_STRING;
+       yy_pop_state(TSRMLS_C);
+       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
+       return T_STRING_VARNAME;
+ }
 -#line 7035 "Zend/zend_language_scanner.c"
 -yy785:
 -              YYDEBUG(785, *YYCURSOR);
++#line 7377 "Zend/zend_language_scanner.c"
++yy810:
++              YYDEBUG(810, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(786, *YYCURSOR);
++              YYDEBUG(811, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1324 "Zend/zend_language_scanner.l"
++#line 1466 "Zend/zend_language_scanner.l"
+               {
+       yyless(0);
+       yy_pop_state(TSRMLS_C);
+       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
+       goto restart;
+ }
 -#line 7048 "Zend/zend_language_scanner.c"
 -yy787:
 -              YYDEBUG(787, *YYCURSOR);
++#line 7390 "Zend/zend_language_scanner.c"
++yy812:
++              YYDEBUG(812, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
 -yy788:
 -              YYDEBUG(788, *YYCURSOR);
++yy813:
++              YYDEBUG(813, *YYCURSOR);
+               if (yybm[0+yych] & 128) {
 -                      goto yy787;
++                      goto yy812;
+               }
 -              goto yy784;
++              goto yy809;
+       }
+ /* *********************************** */
+ yyc_ST_NOWDOC:
 -      YYDEBUG(789, *YYCURSOR);
++      YYDEBUG(814, *YYCURSOR);
+       YYFILL(1);
+       yych = *YYCURSOR;
 -      YYDEBUG(791, *YYCURSOR);
++      YYDEBUG(816, *YYCURSOR);
+       ++YYCURSOR;
 -      YYDEBUG(792, *YYCURSOR);
++      YYDEBUG(817, *YYCURSOR);
+       yyleng = YYCURSOR - SCNG(yy_text);
 -#line 2162 "Zend/zend_language_scanner.l"
++#line 2348 "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);
+       zend_copy_value(zendlval, yytext, yyleng - newline);
+       zendlval->type = IS_STRING;
+       HANDLE_NEWLINES(yytext, yyleng - newline);
+       return T_ENCAPSED_AND_WHITESPACE;
+ }
 -#line 7125 "Zend/zend_language_scanner.c"
++#line 7467 "Zend/zend_language_scanner.c"
+ /* *********************************** */
+ yyc_ST_VAR_OFFSET:
+       {
+               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, 
 -                      224, 224, 224, 224, 224, 224, 224, 224, 
 -                      224, 224,   0,   0,   0,   0,   0,   0, 
 -                        0, 160, 160, 160, 160, 160, 160,  32, 
 -                       32,  32,  32,  32,  32,  32,  32,  32, 
 -                       32,  32,  32,  32,  32,  32,  32,  32, 
 -                       32,  32,  32,   0,   0,   0,   0,  32, 
 -                        0, 160, 160, 160, 160, 160, 160,  32, 
 -                       32,  32,  32,  32,  32,  32,  32,  32, 
 -                       32,  32,  32,  32,  32,  32,  32,  32, 
 -                       32,  32,  32,   0,   0,   0,   0,  32, 
 -                       32,  32,  32,  32,  32,  32,  32,  32, 
 -                       32,  32,  32,  32,  32,  32,  32,  32, 
 -                       32,  32,  32,  32,  32,  32,  32,  32, 
 -                       32,  32,  32,  32,  32,  32,  32,  32, 
 -                       32,  32,  32,  32,  32,  32,  32,  32, 
 -                       32,  32,  32,  32,  32,  32,  32,  32, 
 -                       32,  32,  32,  32,  32,  32,  32,  32, 
 -                       32,  32,  32,  32,  32,  32,  32,  32, 
 -                       32,  32,  32,  32,  32,  32,  32,  32, 
 -                       32,  32,  32,  32,  32,  32,  32,  32, 
 -                       32,  32,  32,  32,  32,  32,  32,  32, 
 -                       32,  32,  32,  32,  32,  32,  32,  32, 
 -                       32,  32,  32,  32,  32,  32,  32,  32, 
 -                       32,  32,  32,  32,  32,  32,  32,  32, 
 -                       32,  32,  32,  32,  32,  32,  32,  32, 
 -                       32,  32,  32,  32,  32,  32,  32,  32, 
++                      240, 240, 112, 112, 112, 112, 112, 112, 
++                      112, 112,   0,   0,   0,   0,   0,   0, 
++                        0,  80,  80,  80,  80,  80,  80,  16, 
++                       16,  16,  16,  16,  16,  16,  16,  16, 
++                       16,  16,  16,  16,  16,  16,  16,  16, 
++                       16,  16,  16,   0,   0,   0,   0,  16, 
++                        0,  80,  80,  80,  80,  80,  80,  16, 
++                       16,  16,  16,  16,  16,  16,  16,  16, 
++                       16,  16,  16,  16,  16,  16,  16,  16, 
++                       16,  16,  16,   0,   0,   0,   0,  16, 
++                       16,  16,  16,  16,  16,  16,  16,  16, 
++                       16,  16,  16,  16,  16,  16,  16,  16, 
++                       16,  16,  16,  16,  16,  16,  16,  16, 
++                       16,  16,  16,  16,  16,  16,  16,  16, 
++                       16,  16,  16,  16,  16,  16,  16,  16, 
++                       16,  16,  16,  16,  16,  16,  16,  16, 
++                       16,  16,  16,  16,  16,  16,  16,  16, 
++                       16,  16,  16,  16,  16,  16,  16,  16, 
++                       16,  16,  16,  16,  16,  16,  16,  16, 
++                       16,  16,  16,  16,  16,  16,  16,  16, 
++                       16,  16,  16,  16,  16,  16,  16,  16, 
++                       16,  16,  16,  16,  16,  16,  16,  16, 
++                       16,  16,  16,  16,  16,  16,  16,  16, 
++                       16,  16,  16,  16,  16,  16,  16,  16, 
++                       16,  16,  16,  16,  16,  16,  16,  16, 
++                       16,  16,  16,  16,  16,  16,  16,  16, 
+               };
 -              YYDEBUG(793, *YYCURSOR);
++              YYDEBUG(818, *YYCURSOR);
+               YYFILL(3);
+               yych = *YYCURSOR;
+               if (yych <= '/') {
+                       if (yych <= ' ') {
+                               if (yych <= '\f') {
 -                                      if (yych <= 0x08) goto yy807;
 -                                      if (yych <= '\n') goto yy803;
 -                                      goto yy807;
++                                      if (yych <= 0x08) goto yy832;
++                                      if (yych <= '\n') goto yy828;
++                                      goto yy832;
+                               } else {
 -                                      if (yych <= '\r') goto yy803;
 -                                      if (yych <= 0x1F) goto yy807;
 -                                      goto yy803;
++                                      if (yych <= '\r') goto yy828;
++                                      if (yych <= 0x1F) goto yy832;
++                                      goto yy828;
+                               }
+                       } else {
+                               if (yych <= '$') {
 -                                      if (yych <= '"') goto yy802;
 -                                      if (yych <= '#') goto yy803;
 -                                      goto yy798;
++                                      if (yych <= '"') goto yy827;
++                                      if (yych <= '#') goto yy828;
++                                      goto yy823;
+                               } else {
 -                                      if (yych == '\'') goto yy803;
 -                                      goto yy802;
++                                      if (yych == '\'') goto yy828;
++                                      goto yy827;
+                               }
+                       }
+               } else {
+                       if (yych <= '\\') {
+                               if (yych <= '@') {
 -                                      if (yych <= '0') goto yy795;
 -                                      if (yych <= '9') goto yy797;
 -                                      goto yy802;
++                                      if (yych <= '0') goto yy820;
++                                      if (yych <= '9') goto yy822;
++                                      goto yy827;
+                               } else {
 -                                      if (yych <= 'Z') goto yy805;
 -                                      if (yych <= '[') goto yy802;
 -                                      goto yy803;
++                                      if (yych <= 'Z') goto yy830;
++                                      if (yych <= '[') goto yy827;
++                                      goto yy828;
+                               }
+                       } else {
+                               if (yych <= '_') {
 -                                      if (yych <= ']') goto yy800;
 -                                      if (yych <= '^') goto yy802;
 -                                      goto yy805;
++                                      if (yych <= ']') goto yy825;
++                                      if (yych <= '^') goto yy827;
++                                      goto yy830;
+                               } else {
 -                                      if (yych <= '`') goto yy802;
 -                                      if (yych <= 'z') goto yy805;
 -                                      if (yych <= '~') goto yy802;
 -                                      goto yy805;
++                                      if (yych <= '`') goto yy827;
++                                      if (yych <= 'z') goto yy830;
++                                      if (yych <= '~') goto yy827;
++                                      goto yy830;
+                               }
+                       }
+               }
 -yy795:
 -              YYDEBUG(795, *YYCURSOR);
++yy820:
++              YYDEBUG(820, *YYCURSOR);
+               yyaccept = 0;
+               yych = *(YYMARKER = ++YYCURSOR);
+               if (yych <= 'W') {
 -                      if (yych <= '/') goto yy796;
 -                      if (yych <= '9') goto yy818;
++                      if (yych <= '9') {
++                              if (yych >= '0') goto yy844;
++                      } else {
++                              if (yych == 'B') goto yy841;
++                      }
+               } else {
 -                      if (yych <= 'X') goto yy816;
 -                      if (yych == 'x') goto yy816;
++                      if (yych <= 'b') {
++                              if (yych <= 'X') goto yy843;
++                              if (yych >= 'b') goto yy841;
++                      } else {
++                              if (yych == 'x') goto yy843;
++                      }
+               }
 -yy796:
 -              YYDEBUG(796, *YYCURSOR);
++yy821:
++              YYDEBUG(821, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1378 "Zend/zend_language_scanner.l"
++#line 1544 "Zend/zend_language_scanner.l"
+               { /* Offset could be treated as a long */
+       if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {
+               zendlval->value.lval = strtol(yytext, NULL, 10);
+               zendlval->type = IS_LONG;
+       } else {
+               zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
+               zendlval->value.str.len = yyleng;
+               zendlval->type = IS_STRING;
+       }
+       return T_NUM_STRING;
+ }
 -#line 7237 "Zend/zend_language_scanner.c"
 -yy797:
 -              YYDEBUG(797, *YYCURSOR);
++#line 7586 "Zend/zend_language_scanner.c"
++yy822:
++              YYDEBUG(822, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              goto yy815;
 -yy798:
 -              YYDEBUG(798, *YYCURSOR);
++              goto yy840;
++yy823:
++              YYDEBUG(823, *YYCURSOR);
+               ++YYCURSOR;
+               if ((yych = *YYCURSOR) <= '_') {
 -                      if (yych <= '@') goto yy799;
 -                      if (yych <= 'Z') goto yy811;
 -                      if (yych >= '_') goto yy811;
++                      if (yych <= '@') goto yy824;
++                      if (yych <= 'Z') goto yy836;
++                      if (yych >= '_') goto yy836;
+               } else {
 -                      if (yych <= '`') goto yy799;
 -                      if (yych <= 'z') goto yy811;
 -                      if (yych >= 0x7F) goto yy811;
++                      if (yych <= '`') goto yy824;
++                      if (yych <= 'z') goto yy836;
++                      if (yych >= 0x7F) goto yy836;
+               }
 -yy799:
 -              YYDEBUG(799, *YYCURSOR);
++yy824:
++              YYDEBUG(824, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1688 "Zend/zend_language_scanner.l"
++#line 1876 "Zend/zend_language_scanner.l"
+               {
+       /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
+       return yytext[0];
+ }
 -#line 7262 "Zend/zend_language_scanner.c"
 -yy800:
 -              YYDEBUG(800, *YYCURSOR);
++#line 7611 "Zend/zend_language_scanner.c"
++yy825:
++              YYDEBUG(825, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(801, *YYCURSOR);
++              YYDEBUG(826, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1683 "Zend/zend_language_scanner.l"
++#line 1871 "Zend/zend_language_scanner.l"
+               {
+       yy_pop_state(TSRMLS_C);
+       return ']';
+ }
 -#line 7273 "Zend/zend_language_scanner.c"
 -yy802:
 -              YYDEBUG(802, *YYCURSOR);
++#line 7622 "Zend/zend_language_scanner.c"
++yy827:
++              YYDEBUG(827, *YYCURSOR);
+               yych = *++YYCURSOR;
 -              goto yy799;
 -yy803:
 -              YYDEBUG(803, *YYCURSOR);
++              goto yy824;
++yy828:
++              YYDEBUG(828, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(804, *YYCURSOR);
++              YYDEBUG(829, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1693 "Zend/zend_language_scanner.l"
++#line 1881 "Zend/zend_language_scanner.l"
+               {
+       /* Invalid rule to return a more explicit parse error with proper line number */
+       yyless(0);
+       yy_pop_state(TSRMLS_C);
+       return T_ENCAPSED_AND_WHITESPACE;
+ }
 -#line 7290 "Zend/zend_language_scanner.c"
 -yy805:
 -              YYDEBUG(805, *YYCURSOR);
++#line 7639 "Zend/zend_language_scanner.c"
++yy830:
++              YYDEBUG(830, *YYCURSOR);
+               ++YYCURSOR;
+               yych = *YYCURSOR;
 -              goto yy810;
 -yy806:
 -              YYDEBUG(806, *YYCURSOR);
++              goto yy835;
++yy831:
++              YYDEBUG(831, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1700 "Zend/zend_language_scanner.l"
++#line 1888 "Zend/zend_language_scanner.l"
+               {
+       zend_copy_value(zendlval, yytext, yyleng);
+       zendlval->type = IS_STRING;
+       return T_STRING;
+ }
 -#line 7305 "Zend/zend_language_scanner.c"
 -yy807:
 -              YYDEBUG(807, *YYCURSOR);
++#line 7654 "Zend/zend_language_scanner.c"
++yy832:
++              YYDEBUG(832, *YYCURSOR);
+               ++YYCURSOR;
 -              YYDEBUG(808, *YYCURSOR);
++              YYDEBUG(833, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 2218 "Zend/zend_language_scanner.l"
++#line 2404 "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 7320 "Zend/zend_language_scanner.c"
 -yy809:
 -              YYDEBUG(809, *YYCURSOR);
++#line 7669 "Zend/zend_language_scanner.c"
++yy834:
++              YYDEBUG(834, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
 -yy810:
 -              YYDEBUG(810, *YYCURSOR);
 -              if (yybm[0+yych] & 32) {
 -                      goto yy809;
++yy835:
++              YYDEBUG(835, *YYCURSOR);
++              if (yybm[0+yych] & 16) {
++                      goto yy834;
+               }
 -              goto yy806;
 -yy811:
 -              YYDEBUG(811, *YYCURSOR);
++              goto yy831;
++yy836:
++              YYDEBUG(836, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
 -              YYDEBUG(812, *YYCURSOR);
++              YYDEBUG(837, *YYCURSOR);
+               if (yych <= '^') {
+                       if (yych <= '9') {
 -                              if (yych >= '0') goto yy811;
++                              if (yych >= '0') goto yy836;
+                       } else {
 -                              if (yych <= '@') goto yy813;
 -                              if (yych <= 'Z') goto yy811;
++                              if (yych <= '@') goto yy838;
++                              if (yych <= 'Z') goto yy836;
+                       }
+               } else {
+                       if (yych <= '`') {
 -                              if (yych <= '_') goto yy811;
++                              if (yych <= '_') goto yy836;
+                       } else {
 -                              if (yych <= 'z') goto yy811;
 -                              if (yych >= 0x7F) goto yy811;
++                              if (yych <= 'z') goto yy836;
++                              if (yych >= 0x7F) goto yy836;
+                       }
+               }
 -yy813:
 -              YYDEBUG(813, *YYCURSOR);
++yy838:
++              YYDEBUG(838, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1677 "Zend/zend_language_scanner.l"
++#line 1865 "Zend/zend_language_scanner.l"
+               {
+       zend_copy_value(zendlval, (yytext+1), (yyleng-1));
+       zendlval->type = IS_STRING;
+       return T_VARIABLE;
+ }
 -#line 7362 "Zend/zend_language_scanner.c"
 -yy814:
 -              YYDEBUG(814, *YYCURSOR);
++#line 7711 "Zend/zend_language_scanner.c"
++yy839:
++              YYDEBUG(839, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
 -yy815:
 -              YYDEBUG(815, *YYCURSOR);
 -              if (yybm[0+yych] & 64) {
 -                      goto yy814;
++yy840:
++              YYDEBUG(840, *YYCURSOR);
++              if (yybm[0+yych] & 32) {
++                      goto yy839;
+               }
 -              goto yy796;
 -yy816:
 -              YYDEBUG(816, *YYCURSOR);
++              goto yy821;
++yy841:
++              YYDEBUG(841, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yybm[0+yych] & 128) {
 -                      goto yy821;
++                      goto yy849;
+               }
 -              YYDEBUG(817, *YYCURSOR);
++yy842:
++              YYDEBUG(842, *YYCURSOR);
+               YYCURSOR = YYMARKER;
 -              goto yy796;
 -yy818:
 -              YYDEBUG(818, *YYCURSOR);
++              goto yy821;
++yy843:
++              YYDEBUG(843, *YYCURSOR);
++              yych = *++YYCURSOR;
++              if (yybm[0+yych] & 64) {
++                      goto yy847;
++              }
++              goto yy842;
++yy844:
++              YYDEBUG(844, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
 -              YYDEBUG(819, *YYCURSOR);
 -              if (yych <= '/') goto yy820;
 -              if (yych <= '9') goto yy818;
 -yy820:
 -              YYDEBUG(820, *YYCURSOR);
++              YYDEBUG(845, *YYCURSOR);
++              if (yych <= '/') goto yy846;
++              if (yych <= '9') goto yy844;
++yy846:
++              YYDEBUG(846, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
 -#line 1390 "Zend/zend_language_scanner.l"
++#line 1556 "Zend/zend_language_scanner.l"
+               { /* Offset must be treated as a string */
+       zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
+       zendlval->value.str.len = yyleng;
+       zendlval->type = IS_STRING;
+       return T_NUM_STRING;
+ }
 -#line 7401 "Zend/zend_language_scanner.c"
 -yy821:
 -              YYDEBUG(821, *YYCURSOR);
++#line 7758 "Zend/zend_language_scanner.c"
++yy847:
++              YYDEBUG(847, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
 -              YYDEBUG(822, *YYCURSOR);
++              YYDEBUG(848, *YYCURSOR);
++              if (yybm[0+yych] & 64) {
++                      goto yy847;
++              }
++              goto yy846;
++yy849:
++              YYDEBUG(849, *YYCURSOR);
++              ++YYCURSOR;
++              YYFILL(1);
++              yych = *YYCURSOR;
++              YYDEBUG(850, *YYCURSOR);
+               if (yybm[0+yych] & 128) {
 -                      goto yy821;
++                      goto yy849;
+               }
 -              goto yy820;
++              goto yy846;
+       }
+ }
 -#line 2227 "Zend/zend_language_scanner.l"
++#line 2413 "Zend/zend_language_scanner.l"
+ }
index 06841c2be70d9bfb5f9bb737fb389d3ad691a4ff,adaedcf1aace837bd2b8f0f6b71ee2da8562d8dc..015a903ded2d18040c34d2d9efa4bfd17ad0487a
@@@ -1,15 -1,15 +1,15 @@@
- /* Generated by re2c 0.13.5 on Wed Mar 28 01:54:21 2012 */\r
- #line 3 "Zend/zend_language_scanner_defs.h"\r
\r
- enum YYCONDTYPE {\r
-       yycST_IN_SCRIPTING,\r
-       yycST_LOOKING_FOR_PROPERTY,\r
-       yycST_BACKQUOTE,\r
-       yycST_DOUBLE_QUOTES,\r
-       yycST_HEREDOC,\r
-       yycST_LOOKING_FOR_VARNAME,\r
-       yycST_VAR_OFFSET,\r
-       yycINITIAL,\r
-       yycST_END_HEREDOC,\r
-       yycST_NOWDOC,\r
- };\r
 -/* Generated by re2c 0.13.5 on Wed Feb 15 17:38:31 2012 */
++/* Generated by re2c 0.13.5 on Thu Mar  1 21:27:30 2012 */
+ #line 3 "Zend/zend_language_scanner_defs.h"
+ enum YYCONDTYPE {
+       yycST_IN_SCRIPTING,
+       yycST_LOOKING_FOR_PROPERTY,
+       yycST_BACKQUOTE,
+       yycST_DOUBLE_QUOTES,
+       yycST_HEREDOC,
+       yycST_LOOKING_FOR_VARNAME,
+       yycST_VAR_OFFSET,
+       yycINITIAL,
+       yycST_END_HEREDOC,
+       yycST_NOWDOC,
+ };