]> granicus.if.org Git - php/commitdiff
- add new interpolation method
authorPierre Joye <pierre.php@gmail.com>
Wed, 20 Mar 2013 06:46:59 +0000 (07:46 +0100)
committerPierre Joye <pierre.php@gmail.com>
Wed, 20 Mar 2013 06:46:59 +0000 (07:46 +0100)
  . imagescale
  . imageaffine
  . replace imagerotate with new generic and optimized new implementations
  . imagesetinterpolationmethod, to set the default interpolation to be
    used with the new functions
  . add imagepalettetotruecolor

Zend/zend_language_scanner.c
Zend/zend_language_scanner_defs.h
ext/gd/config.w32
ext/gd/gd.c
ext/gd/libgd/gd.c
ext/gd/libgd/gd.h
ext/gd/php_gd.h

index f2ba6bf9d4d5146272044293de796c08a9c89428..afaa89071f5a42aeebb5a1f54339101a553719c0 100644 (file)
-/* Generated by re2c 0.13.5 */
-#line 1 "Zend/zend_language_scanner.l"
-/*
-   +----------------------------------------------------------------------+
-   | Zend Engine                                                          |
-   +----------------------------------------------------------------------+
-   | Copyright (c) 1998-2013 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"
-#ifdef PHP_WIN32
-# include <Winuser.h>
-#endif
-#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(doc_comment) = NULL;
-       CG(doc_comment_len) = 0;
-       zend_stack_init(&SCNG(state_stack));
-       zend_ptr_stack_init(&SCNG(heredoc_label_stack));
-}
-
-static void heredoc_label_dtor(zend_heredoc_label *heredoc_label) {
-    efree(heredoc_label->label);
-}
-
-void shutdown_scanner(TSRMLS_D)
-{
-       CG(parse_error) = 0;
-       RESET_DOC_COMMENT();
-       zend_stack_destroy(&SCNG(state_stack));
-       zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
-       zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
-}
-
-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->heredoc_label_stack = SCNG(heredoc_label_stack);
-       zend_ptr_stack_init(&SCNG(heredoc_label_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);
-
-       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);
-}
-
-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;
-
-       zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
-       zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
-       SCNG(heredoc_label_stack) = lex_state->heredoc_label_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);
-
-       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;
-}
-
-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)
-{
-       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) {
-               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);
-
-                       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) = (unsigned char *)buf - offset;
-               yy_scan_buffer(buf, size TSRMLS_CC);
-       } 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_stack_push(&CG(context_stack), (void *) &CG(context), sizeof(CG(context)));
-               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... */
-       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_start) = NULL;
-
-       buf = str->value.str.val;
-       size = str->value.str.len;
-
-       if (CG(multibyte)) {
-               SCNG(script_org) = (unsigned char*)buf;
-               SCNG(script_org_size) = size;
-               SCNG(script_filtered) = NULL;
-
-               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(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);
-       if (SCNG(input_filter)) {
-               size_t original_offset = offset, length = 0;
-               do {
-                       unsigned char *p = NULL;
-                       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);
-       }
-       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_stack_push(&CG(context_stack), (void *) &CG(context), sizeof(CG(context)));
-               zend_init_compiler_context(TSRMLS_C);
-               BEGIN(ST_IN_SCRIPTING);
-               compiler_result = zendparse(TSRMLS_C);
-
-               if (SCNG(script_filtered)) {
-                       efree(SCNG(script_filtered));
-                       SCNG(script_filtered) = NULL;
-               }
-
-               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);
-       if (SCNG(script_filtered)) {
-               efree(SCNG(script_filtered));
-               SCNG(script_filtered) = NULL;
-       }
-       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);
-       if (SCNG(script_filtered)) {
-               efree(SCNG(script_filtered));
-               SCNG(script_filtered) = NULL;
-       }
-       zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
-       zval_dtor(str);
-       return SUCCESS;
-}
-
-ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter, const zend_encoding *old_encoding TSRMLS_DC)
-{
-       size_t length;
-       unsigned char *new_yy_start;
-
-       /* convert and set */
-       if (!SCNG(input_filter)) {
-               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 {
-               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)));
-               }
-               SCNG(script_filtered) = new_yy_start;
-               SCNG(script_filtered_size) = length;
-       }
-
-       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));
-
-       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; \
-       }
-
-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':
-#ifdef PHP_WIN32
-                                       *t++ = VK_ESCAPE;
-#else
-                                       *t++ = '\e';
-#endif
-                                       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;
-       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);
-       }
-}
-
-
-int lex_scan(zval *zendlval TSRMLS_DC)
-{
-restart:
-       SCNG(yy_text) = YYCURSOR;
-
-yymore_restart:
-
-
-#line 1006 "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 1803 "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((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);
-
-       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;
-       }
-       zendlval->type = IS_STRING;
-       HANDLE_NEWLINES(yytext, yyleng);
-       return T_INLINE_HTML;
-}
-#line 1165 "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 1791 "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 1195 "Zend/zend_language_scanner.c"
-yy7:
-               YYDEBUG(7, *YYCURSOR);
-               ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '=') goto yy43;
-               YYDEBUG(8, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1768 "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 1214 "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 1728 "Zend/zend_language_scanner.l"
-               {
-       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 1417 "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 1746 "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 1456 "Zend/zend_language_scanner.c"
-yy45:
-               YYDEBUG(45, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(46, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1759 "Zend/zend_language_scanner.l"
-               {
-       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 1470 "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 1781 "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 1506 "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 2254 "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 1618 "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 2198 "Zend/zend_language_scanner.l"
-               {
-       BEGIN(ST_IN_SCRIPTING);
-       return '`';
-}
-#line 1634 "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 2185 "Zend/zend_language_scanner.l"
-               {
-       zendlval->value.lval = (long) '{';
-       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
-       yyless(1);
-       return T_CURLY_OPEN;
-}
-#line 1651 "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 1885 "Zend/zend_language_scanner.l"
-               {
-       zend_copy_value(zendlval, (yytext+1), (yyleng-1));
-       zendlval->type = IS_STRING;
-       return T_VARIABLE;
-}
-#line 1673 "Zend/zend_language_scanner.c"
-yy66:
-               YYDEBUG(66, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(67, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1461 "Zend/zend_language_scanner.l"
-               {
-       yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
-       return T_DOLLAR_OPEN_CURLY_BRACES;
-}
-#line 1684 "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 1877 "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 1706 "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 1867 "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 1732 "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 2204 "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 1849 "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 2193 "Zend/zend_language_scanner.l"
-               {
-       BEGIN(ST_IN_SCRIPTING);
-       return '"';
-}
-#line 1865 "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 2185 "Zend/zend_language_scanner.l"
-               {
-       zendlval->value.lval = (long) '{';
-       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
-       yyless(1);
-       return T_CURLY_OPEN;
-}
-#line 1882 "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 1885 "Zend/zend_language_scanner.l"
-               {
-       zend_copy_value(zendlval, (yytext+1), (yyleng-1));
-       zendlval->type = IS_STRING;
-       return T_VARIABLE;
-}
-#line 1904 "Zend/zend_language_scanner.c"
-yy88:
-               YYDEBUG(88, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(89, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1461 "Zend/zend_language_scanner.l"
-               {
-       yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
-       return T_DOLLAR_OPEN_CURLY_BRACES;
-}
-#line 1915 "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 1877 "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 1937 "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 1867 "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 1963 "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 2171 "Zend/zend_language_scanner.l"
-       {
-       zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack));
-
-       YYCURSOR += heredoc_label->length - 1;
-       yyleng = heredoc_label->length;
-
-       heredoc_label_dtor(heredoc_label);
-       efree(heredoc_label);
-
-       BEGIN(ST_IN_SCRIPTING);
-       return T_END_HEREDOC;
-}
-#line 1987 "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 2296 "Zend/zend_language_scanner.l"
-               {
-       int newline = 0;
-
-       zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
-
-       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) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
-                                       YYCTYPE *end = YYCURSOR + heredoc_label->length;
-
-                                       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 2122 "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 2185 "Zend/zend_language_scanner.l"
-               {
-       zendlval->value.lval = (long) '{';
-       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
-       yyless(1);
-       return T_CURLY_OPEN;
-}
-#line 2144 "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 1885 "Zend/zend_language_scanner.l"
-               {
-       zend_copy_value(zendlval, (yytext+1), (yyleng-1));
-       zendlval->type = IS_STRING;
-       return T_VARIABLE;
-}
-#line 2166 "Zend/zend_language_scanner.c"
-yy112:
-               YYDEBUG(112, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(113, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1461 "Zend/zend_language_scanner.l"
-               {
-       yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
-       return T_DOLLAR_OPEN_CURLY_BRACES;
-}
-#line 2177 "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 1877 "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 2199 "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 1867 "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 2225 "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, 
-                        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 yy184;
-               case '\t':
-               case '\n':
-               case '\r':
-               case ' ':       goto yy140;
-               case '!':       goto yy153;
-               case '"':       goto yy180;
-               case '#':       goto yy176;
-               case '$':       goto yy165;
-               case '%':       goto yy159;
-               case '&':       goto yy160;
-               case '\'':      goto yy178;
-               case '(':       goto yy147;
-               case ')':
-               case ',':
-               case ';':
-               case '@':
-               case '[':
-               case ']':
-               case '~':       goto yy166;
-               case '*':       goto yy156;
-               case '+':       goto yy152;
-               case '-':       goto yy138;
-               case '.':       goto yy158;
-               case '/':       goto yy157;
-               case '0':       goto yy172;
-               case '1':
-               case '2':
-               case '3':
-               case '4':
-               case '5':
-               case '6':
-               case '7':
-               case '8':
-               case '9':       goto yy174;
-               case ':':       goto yy142;
-               case '<':       goto yy154;
-               case '=':       goto yy150;
-               case '>':       goto yy155;
-               case '?':       goto yy167;
-               case 'A':
-               case 'a':       goto yy133;
-               case 'B':
-               case 'b':       goto yy135;
-               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 yy136;
-               case 'I':
-               case 'i':       goto yy131;
-               case 'L':
-               case 'l':       goto yy151;
-               case 'N':
-               case 'n':       goto yy145;
-               case 'O':
-               case 'o':       goto yy163;
-               case 'P':
-               case 'p':       goto yy137;
-               case 'R':
-               case 'r':       goto yy128;
-               case 'S':
-               case 's':       goto yy134;
-               case 'T':
-               case 't':       goto yy130;
-               case 'U':
-               case 'u':       goto yy148;
-               case 'V':
-               case 'v':       goto yy146;
-               case 'W':
-               case 'w':       goto yy132;
-               case 'X':
-               case 'x':       goto yy164;
-               case 'Y':
-               case 'y':       goto yy129;
-               case '\\':      goto yy143;
-               case '^':       goto yy162;
-               case '_':       goto yy149;
-               case '`':       goto yy182;
-               case '{':       goto yy168;
-               case '|':       goto yy161;
-               case '}':       goto yy170;
-               default:        goto yy175;
-               }
-yy123:
-               YYDEBUG(123, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(-1, yych);
-               switch ((yych = *YYCURSOR)) {
-               case 'C':
-               case 'c':       goto yy735;
-               case 'L':
-               case 'l':       goto yy736;
-               case 'M':
-               case 'm':       goto yy737;
-               case 'N':
-               case 'n':       goto yy738;
-               case 'V':
-               case 'v':       goto yy739;
-               case 'X':
-               case 'x':       goto yy740;
-               default:        goto yy187;
-               }
-yy124:
-               YYDEBUG(124, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1908 "Zend/zend_language_scanner.l"
-               {
-       zend_copy_value(zendlval, yytext, yyleng);
-       zendlval->type = IS_STRING;
-       return T_STRING;
-}
-#line 2414 "Zend/zend_language_scanner.c"
-yy125:
-               YYDEBUG(125, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'O') {
-                       if (yych <= 'H') {
-                               if (yych == 'E') goto yy717;
-                               goto yy187;
-                       } else {
-                               if (yych <= 'I') goto yy718;
-                               if (yych <= 'N') goto yy187;
-                               goto yy719;
-                       }
-               } else {
-                       if (yych <= 'h') {
-                               if (yych == 'e') goto yy717;
-                               goto yy187;
-                       } else {
-                               if (yych <= 'i') goto yy718;
-                               if (yych == 'o') goto yy719;
-                               goto yy187;
-                       }
-               }
-yy126:
-               YYDEBUG(126, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'U') {
-                       if (yych <= 'N') {
-                               if (yych == 'I') goto yy693;
-                               goto yy187;
-                       } else {
-                               if (yych <= 'O') goto yy694;
-                               if (yych <= 'T') goto yy187;
-                               goto yy695;
-                       }
-               } else {
-                       if (yych <= 'n') {
-                               if (yych == 'i') goto yy693;
-                               goto yy187;
-                       } else {
-                               if (yych <= 'o') goto yy694;
-                               if (yych == 'u') goto yy695;
-                               goto yy187;
-                       }
-               }
-yy127:
-               YYDEBUG(127, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'O') {
-                       if (yych <= 'K') {
-                               if (yych == 'A') goto yy658;
-                               goto yy187;
-                       } else {
-                               if (yych <= 'L') goto yy659;
-                               if (yych <= 'N') goto yy187;
-                               goto yy660;
-                       }
-               } else {
-                       if (yych <= 'k') {
-                               if (yych == 'a') goto yy658;
-                               goto yy187;
-                       } else {
-                               if (yych <= 'l') goto yy659;
-                               if (yych == 'o') goto yy660;
-                               goto yy187;
-                       }
-               }
-yy128:
-               YYDEBUG(128, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy640;
-               if (yych == 'e') goto yy640;
-               goto yy187;
-yy129:
-               YYDEBUG(129, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy635;
-               if (yych == 'i') goto yy635;
-               goto yy187;
-yy130:
-               YYDEBUG(130, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'R') {
-                       if (yych == 'H') goto yy623;
-                       if (yych <= 'Q') goto yy187;
-                       goto yy624;
-               } else {
-                       if (yych <= 'h') {
-                               if (yych <= 'g') goto yy187;
-                               goto yy623;
-                       } else {
-                               if (yych == 'r') goto yy624;
-                               goto yy187;
-                       }
-               }
-yy131:
-               YYDEBUG(131, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'S') {
-                       if (yych <= 'L') {
-                               if (yych == 'F') goto yy570;
-                               goto yy187;
-                       } else {
-                               if (yych <= 'M') goto yy572;
-                               if (yych <= 'N') goto yy573;
-                               if (yych <= 'R') goto yy187;
-                               goto yy574;
-                       }
-               } else {
-                       if (yych <= 'm') {
-                               if (yych == 'f') goto yy570;
-                               if (yych <= 'l') goto yy187;
-                               goto yy572;
-                       } else {
-                               if (yych <= 'n') goto yy573;
-                               if (yych == 's') goto yy574;
-                               goto yy187;
-                       }
-               }
-yy132:
-               YYDEBUG(132, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy565;
-               if (yych == 'h') goto yy565;
-               goto yy187;
-yy133:
-               YYDEBUG(133, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'S') {
-                       if (yych <= 'M') {
-                               if (yych == 'B') goto yy547;
-                               goto yy187;
-                       } else {
-                               if (yych <= 'N') goto yy548;
-                               if (yych <= 'Q') goto yy187;
-                               if (yych <= 'R') goto yy549;
-                               goto yy550;
-                       }
-               } else {
-                       if (yych <= 'n') {
-                               if (yych == 'b') goto yy547;
-                               if (yych <= 'm') goto yy187;
-                               goto yy548;
-                       } else {
-                               if (yych <= 'q') goto yy187;
-                               if (yych <= 'r') goto yy549;
-                               if (yych <= 's') goto yy550;
-                               goto yy187;
-                       }
-               }
-yy134:
-               YYDEBUG(134, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'W') {
-                       if (yych == 'T') goto yy535;
-                       if (yych <= 'V') goto yy187;
-                       goto yy536;
-               } else {
-                       if (yych <= 't') {
-                               if (yych <= 's') goto yy187;
-                               goto yy535;
-                       } else {
-                               if (yych == 'w') goto yy536;
-                               goto yy187;
-                       }
-               }
-yy135:
-               YYDEBUG(135, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= ';') {
-                       if (yych <= '"') {
-                               if (yych <= '!') goto yy187;
-                               goto yy527;
-                       } else {
-                               if (yych == '\'') goto yy528;
-                               goto yy187;
-                       }
-               } else {
-                       if (yych <= 'R') {
-                               if (yych <= '<') goto yy526;
-                               if (yych <= 'Q') goto yy187;
-                               goto yy529;
-                       } else {
-                               if (yych == 'r') goto yy529;
-                               goto yy187;
-                       }
-               }
-yy136:
-               YYDEBUG(136, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'O') {
-                       if (yych == 'L') goto yy516;
-                       if (yych <= 'N') goto yy187;
-                       goto yy517;
-               } else {
-                       if (yych <= 'l') {
-                               if (yych <= 'k') goto yy187;
-                               goto yy516;
-                       } else {
-                               if (yych == 'o') goto yy517;
-                               goto yy187;
-                       }
-               }
-yy137:
-               YYDEBUG(137, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'U') {
-                       if (yych == 'R') goto yy492;
-                       if (yych <= 'T') goto yy187;
-                       goto yy493;
-               } else {
-                       if (yych <= 'r') {
-                               if (yych <= 'q') goto yy187;
-                               goto yy492;
-                       } else {
-                               if (yych == 'u') goto yy493;
-                               goto yy187;
-                       }
-               }
-yy138:
-               YYDEBUG(138, *YYCURSOR);
-               ++YYCURSOR;
-               if ((yych = *YYCURSOR) <= '<') {
-                       if (yych == '-') goto yy488;
-               } else {
-                       if (yych <= '=') goto yy486;
-                       if (yych <= '>') goto yy490;
-               }
-yy139:
-               YYDEBUG(139, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1450 "Zend/zend_language_scanner.l"
-               {
-       return yytext[0];
-}
-#line 2650 "Zend/zend_language_scanner.c"
-yy140:
-               YYDEBUG(140, *YYCURSOR);
-               ++YYCURSOR;
-               yych = *YYCURSOR;
-               goto yy485;
-yy141:
-               YYDEBUG(141, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1181 "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 2667 "Zend/zend_language_scanner.c"
-yy142:
-               YYDEBUG(142, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == ':') goto yy482;
-               goto yy139;
-yy143:
-               YYDEBUG(143, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(144, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1210 "Zend/zend_language_scanner.l"
-               {
-       return T_NS_SEPARATOR;
-}
-#line 2682 "Zend/zend_language_scanner.c"
-yy145:
-               YYDEBUG(145, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'E') {
-                       if (yych == 'A') goto yy470;
-                       if (yych <= 'D') goto yy187;
-                       goto yy471;
-               } else {
-                       if (yych <= 'a') {
-                               if (yych <= '`') goto yy187;
-                               goto yy470;
-                       } else {
-                               if (yych == 'e') goto yy471;
-                               goto yy187;
-                       }
-               }
-yy146:
-               YYDEBUG(146, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy467;
-               if (yych == 'a') goto yy467;
-               goto yy187;
-yy147:
-               YYDEBUG(147, *YYCURSOR);
-               yyaccept = 1;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 'S') {
-                       if (yych <= 'D') {
-                               if (yych <= ' ') {
-                                       if (yych == '\t') goto yy392;
-                                       if (yych <= 0x1F) goto yy139;
-                                       goto yy392;
-                               } else {
-                                       if (yych <= '@') goto yy139;
-                                       if (yych == 'C') goto yy139;
-                                       goto yy392;
-                               }
-                       } else {
-                               if (yych <= 'I') {
-                                       if (yych == 'F') goto yy392;
-                                       if (yych <= 'H') goto yy139;
-                                       goto yy392;
-                               } else {
-                                       if (yych == 'O') goto yy392;
-                                       if (yych <= 'Q') goto yy139;
-                                       goto yy392;
-                               }
-                       }
-               } else {
-                       if (yych <= 'f') {
-                               if (yych <= 'b') {
-                                       if (yych == 'U') goto yy392;
-                                       if (yych <= '`') goto yy139;
-                                       goto yy392;
-                               } else {
-                                       if (yych == 'd') goto yy392;
-                                       if (yych <= 'e') goto yy139;
-                                       goto yy392;
-                               }
-                       } else {
-                               if (yych <= 'o') {
-                                       if (yych == 'i') goto yy392;
-                                       if (yych <= 'n') goto yy139;
-                                       goto yy392;
-                               } else {
-                                       if (yych <= 's') {
-                                               if (yych <= 'q') goto yy139;
-                                               goto yy392;
-                                       } else {
-                                               if (yych == 'u') goto yy392;
-                                               goto yy139;
-                                       }
-                               }
-                       }
-               }
-yy148:
-               YYDEBUG(148, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'S') {
-                       if (yych == 'N') goto yy383;
-                       if (yych <= 'R') goto yy187;
-                       goto yy384;
-               } else {
-                       if (yych <= 'n') {
-                               if (yych <= 'm') goto yy187;
-                               goto yy383;
-                       } else {
-                               if (yych == 's') goto yy384;
-                               goto yy187;
-                       }
-               }
-yy149:
-               YYDEBUG(149, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '_') goto yy301;
-               goto yy187;
-yy150:
-               YYDEBUG(150, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '<') goto yy139;
-               if (yych <= '=') goto yy295;
-               if (yych <= '>') goto yy297;
-               goto yy139;
-yy151:
-               YYDEBUG(151, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy291;
-               if (yych == 'i') goto yy291;
-               goto yy187;
-yy152:
-               YYDEBUG(152, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '+') goto yy289;
-               if (yych == '=') goto yy287;
-               goto yy139;
-yy153:
-               YYDEBUG(153, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '=') goto yy284;
-               goto yy139;
-yy154:
-               YYDEBUG(154, *YYCURSOR);
-               yyaccept = 1;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= ';') {
-                       if (yych == '/') goto yy256;
-                       goto yy139;
-               } else {
-                       if (yych <= '<') goto yy254;
-                       if (yych <= '=') goto yy257;
-                       if (yych <= '>') goto yy259;
-                       goto yy139;
-               }
-yy155:
-               YYDEBUG(155, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '<') goto yy139;
-               if (yych <= '=') goto yy250;
-               if (yych <= '>') goto yy248;
-               goto yy139;
-yy156:
-               YYDEBUG(156, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '=') goto yy246;
-               goto yy139;
-yy157:
-               YYDEBUG(157, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '.') {
-                       if (yych == '*') goto yy238;
-                       goto yy139;
-               } else {
-                       if (yych <= '/') goto yy240;
-                       if (yych == '=') goto yy241;
-                       goto yy139;
-               }
-yy158:
-               YYDEBUG(158, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '/') goto yy139;
-               if (yych <= '9') goto yy234;
-               if (yych == '=') goto yy236;
-               goto yy139;
-yy159:
-               YYDEBUG(159, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '<') goto yy139;
-               if (yych <= '=') goto yy230;
-               if (yych <= '>') goto yy228;
-               goto yy139;
-yy160:
-               YYDEBUG(160, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '&') goto yy224;
-               if (yych == '=') goto yy226;
-               goto yy139;
-yy161:
-               YYDEBUG(161, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '=') goto yy222;
-               if (yych == '|') goto yy220;
-               goto yy139;
-yy162:
-               YYDEBUG(162, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '=') goto yy218;
-               goto yy139;
-yy163:
-               YYDEBUG(163, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy216;
-               if (yych == 'r') goto yy216;
-               goto yy187;
-yy164:
-               YYDEBUG(164, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy213;
-               if (yych == 'o') goto yy213;
-               goto yy187;
-yy165:
-               YYDEBUG(165, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '_') {
-                       if (yych <= '@') goto yy139;
-                       if (yych <= 'Z') goto yy210;
-                       if (yych <= '^') goto yy139;
-                       goto yy210;
-               } else {
-                       if (yych <= '`') goto yy139;
-                       if (yych <= 'z') goto yy210;
-                       if (yych <= '~') goto yy139;
-                       goto yy210;
-               }
-yy166:
-               YYDEBUG(166, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy139;
-yy167:
-               YYDEBUG(167, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '>') goto yy206;
-               goto yy139;
-yy168:
-               YYDEBUG(168, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(169, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1455 "Zend/zend_language_scanner.l"
-               {
-       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
-       return '{';
-}
-#line 2915 "Zend/zend_language_scanner.c"
-yy170:
-               YYDEBUG(170, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(171, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1467 "Zend/zend_language_scanner.l"
-               {
-       RESET_DOC_COMMENT();
-       if (!zend_stack_is_empty(&SCNG(state_stack))) {
-               yy_pop_state(TSRMLS_C);
-       }
-       return '}';
-}
-#line 2929 "Zend/zend_language_scanner.c"
-yy172:
-               YYDEBUG(172, *YYCURSOR);
-               yyaccept = 2;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 'E') {
-                       if (yych <= '9') {
-                               if (yych == '.') goto yy188;
-                               if (yych >= '0') goto yy191;
-                       } else {
-                               if (yych == 'B') goto yy199;
-                               if (yych >= 'E') goto yy193;
-                       }
-               } else {
-                       if (yych <= 'b') {
-                               if (yych == 'X') goto yy198;
-                               if (yych >= 'b') goto yy199;
-                       } else {
-                               if (yych <= 'e') {
-                                       if (yych >= 'e') goto yy193;
-                               } else {
-                                       if (yych == 'x') goto yy198;
-                               }
-                       }
-               }
-yy173:
-               YYDEBUG(173, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1518 "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 2978 "Zend/zend_language_scanner.c"
-yy174:
-               YYDEBUG(174, *YYCURSOR);
-               yyaccept = 2;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '9') {
-                       if (yych == '.') goto yy188;
-                       if (yych <= '/') goto yy173;
-                       goto yy191;
-               } else {
-                       if (yych <= 'E') {
-                               if (yych <= 'D') goto yy173;
-                               goto yy193;
-                       } else {
-                               if (yych == 'e') goto yy193;
-                               goto yy173;
-                       }
-               }
-yy175:
-               YYDEBUG(175, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy187;
-yy176:
-               YYDEBUG(176, *YYCURSOR);
-               ++YYCURSOR;
-yy177:
-               YYDEBUG(177, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1915 "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 3040 "Zend/zend_language_scanner.c"
-yy178:
-               YYDEBUG(178, *YYCURSOR);
-               ++YYCURSOR;
-yy179:
-               YYDEBUG(179, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2006 "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;
-
-       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);
-       }
-       return T_CONSTANT_ENCAPSED_STRING;
-}
-#line 3115 "Zend/zend_language_scanner.c"
-yy180:
-               YYDEBUG(180, *YYCURSOR);
-               ++YYCURSOR;
-yy181:
-               YYDEBUG(181, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2075 "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 3163 "Zend/zend_language_scanner.c"
-yy182:
-               YYDEBUG(182, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(183, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2165 "Zend/zend_language_scanner.l"
-               {
-       BEGIN(ST_BACKQUOTE);
-       return '`';
-}
-#line 3174 "Zend/zend_language_scanner.c"
-yy184:
-               YYDEBUG(184, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(185, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2428 "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 3189 "Zend/zend_language_scanner.c"
-yy186:
-               YYDEBUG(186, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy187:
-               YYDEBUG(187, *YYCURSOR);
-               if (yybm[0+yych] & 4) {
-                       goto yy186;
-               }
-               goto yy124;
-yy188:
-               YYDEBUG(188, *YYCURSOR);
-               yyaccept = 3;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(3);
-               yych = *YYCURSOR;
-               YYDEBUG(189, *YYCURSOR);
-               if (yybm[0+yych] & 8) {
-                       goto yy188;
-               }
-               if (yych == 'E') goto yy193;
-               if (yych == 'e') goto yy193;
-yy190:
-               YYDEBUG(190, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1583 "Zend/zend_language_scanner.l"
-               {
-       zendlval->value.dval = zend_strtod(yytext, NULL);
-       zendlval->type = IS_DOUBLE;
-       return T_DNUMBER;
-}
-#line 3222 "Zend/zend_language_scanner.c"
-yy191:
-               YYDEBUG(191, *YYCURSOR);
-               yyaccept = 2;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(3);
-               yych = *YYCURSOR;
-               YYDEBUG(192, *YYCURSOR);
-               if (yych <= '9') {
-                       if (yych == '.') goto yy188;
-                       if (yych <= '/') goto yy173;
-                       goto yy191;
-               } else {
-                       if (yych <= 'E') {
-                               if (yych <= 'D') goto yy173;
-                       } else {
-                               if (yych != 'e') goto yy173;
-                       }
-               }
-yy193:
-               YYDEBUG(193, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= ',') {
-                       if (yych == '+') goto yy195;
-               } else {
-                       if (yych <= '-') goto yy195;
-                       if (yych <= '/') goto yy194;
-                       if (yych <= '9') goto yy196;
-               }
-yy194:
-               YYDEBUG(194, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               if (yyaccept <= 2) {
-                       if (yyaccept <= 1) {
-                               if (yyaccept <= 0) {
-                                       goto yy124;
-                               } else {
-                                       goto yy139;
-                               }
-                       } else {
-                               goto yy173;
-                       }
-               } else {
-                       if (yyaccept <= 4) {
-                               if (yyaccept <= 3) {
-                                       goto yy190;
-                               } else {
-                                       goto yy239;
-                               }
-                       } else {
-                               goto yy255;
-                       }
-               }
-yy195:
-               YYDEBUG(195, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= '/') goto yy194;
-               if (yych >= ':') goto yy194;
-yy196:
-               YYDEBUG(196, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(197, *YYCURSOR);
-               if (yych <= '/') goto yy190;
-               if (yych <= '9') goto yy196;
-               goto yy190;
-yy198:
-               YYDEBUG(198, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 32) {
-                       goto yy203;
-               }
-               goto yy194;
-yy199:
-               YYDEBUG(199, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 16) {
-                       goto yy200;
-               }
-               goto yy194;
-yy200:
-               YYDEBUG(200, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(201, *YYCURSOR);
-               if (yybm[0+yych] & 16) {
-                       goto yy200;
-               }
-               YYDEBUG(202, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1493 "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 3339 "Zend/zend_language_scanner.c"
-yy203:
-               YYDEBUG(203, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(204, *YYCURSOR);
-               if (yybm[0+yych] & 32) {
-                       goto yy203;
-               }
-               YYDEBUG(205, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1539 "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 3376 "Zend/zend_language_scanner.c"
-yy206:
-               YYDEBUG(206, *YYCURSOR);
-               ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '\n') goto yy208;
-               if (yych == '\r') goto yy209;
-yy207:
-               YYDEBUG(207, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1983 "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 3393 "Zend/zend_language_scanner.c"
-yy208:
-               YYDEBUG(208, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy207;
-yy209:
-               YYDEBUG(209, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '\n') goto yy208;
-               goto yy207;
-yy210:
-               YYDEBUG(210, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(211, *YYCURSOR);
-               if (yych <= '^') {
-                       if (yych <= '9') {
-                               if (yych >= '0') goto yy210;
-                       } else {
-                               if (yych <= '@') goto yy212;
-                               if (yych <= 'Z') goto yy210;
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych <= '_') goto yy210;
-                       } else {
-                               if (yych <= 'z') goto yy210;
-                               if (yych >= 0x7F) goto yy210;
-                       }
-               }
-yy212:
-               YYDEBUG(212, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1885 "Zend/zend_language_scanner.l"
-               {
-       zend_copy_value(zendlval, (yytext+1), (yyleng-1));
-       zendlval->type = IS_STRING;
-       return T_VARIABLE;
-}
-#line 3433 "Zend/zend_language_scanner.c"
-yy213:
-               YYDEBUG(213, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy214;
-               if (yych != 'r') goto yy187;
-yy214:
-               YYDEBUG(214, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(215, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1438 "Zend/zend_language_scanner.l"
-               {
-       return T_LOGICAL_XOR;
-}
-#line 3451 "Zend/zend_language_scanner.c"
-yy216:
-               YYDEBUG(216, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(217, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1430 "Zend/zend_language_scanner.l"
-               {
-       return T_LOGICAL_OR;
-}
-#line 3464 "Zend/zend_language_scanner.c"
-yy218:
-               YYDEBUG(218, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(219, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1418 "Zend/zend_language_scanner.l"
-               {
-       return T_XOR_EQUAL;
-}
-#line 3474 "Zend/zend_language_scanner.c"
-yy220:
-               YYDEBUG(220, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(221, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1422 "Zend/zend_language_scanner.l"
-               {
-       return T_BOOLEAN_OR;
-}
-#line 3484 "Zend/zend_language_scanner.c"
-yy222:
-               YYDEBUG(222, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(223, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1414 "Zend/zend_language_scanner.l"
-               {
-       return T_OR_EQUAL;
-}
-#line 3494 "Zend/zend_language_scanner.c"
-yy224:
-               YYDEBUG(224, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(225, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1426 "Zend/zend_language_scanner.l"
-               {
-       return T_BOOLEAN_AND;
-}
-#line 3504 "Zend/zend_language_scanner.c"
-yy226:
-               YYDEBUG(226, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(227, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1410 "Zend/zend_language_scanner.l"
-               {
-       return T_AND_EQUAL;
-}
-#line 3514 "Zend/zend_language_scanner.c"
-yy228:
-               YYDEBUG(228, *YYCURSOR);
-               ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '\n') goto yy232;
-               if (yych == '\r') goto yy233;
-yy229:
-               YYDEBUG(229, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1992 "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 3536 "Zend/zend_language_scanner.c"
-yy230:
-               YYDEBUG(230, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(231, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1398 "Zend/zend_language_scanner.l"
-               {
-       return T_MOD_EQUAL;
-}
-#line 3546 "Zend/zend_language_scanner.c"
-yy232:
-               YYDEBUG(232, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy229;
-yy233:
-               YYDEBUG(233, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '\n') goto yy232;
-               goto yy229;
-yy234:
-               YYDEBUG(234, *YYCURSOR);
-               yyaccept = 3;
-               YYMARKER = ++YYCURSOR;
-               YYFILL(3);
-               yych = *YYCURSOR;
-               YYDEBUG(235, *YYCURSOR);
-               if (yych <= 'D') {
-                       if (yych <= '/') goto yy190;
-                       if (yych <= '9') goto yy234;
-                       goto yy190;
-               } else {
-                       if (yych <= 'E') goto yy193;
-                       if (yych == 'e') goto yy193;
-                       goto yy190;
-               }
-yy236:
-               YYDEBUG(236, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(237, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1394 "Zend/zend_language_scanner.l"
-               {
-       return T_CONCAT_EQUAL;
-}
-#line 3581 "Zend/zend_language_scanner.c"
-yy238:
-               YYDEBUG(238, *YYCURSOR);
-               yyaccept = 4;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych == '*') goto yy243;
-yy239:
-               YYDEBUG(239, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1949 "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 3624 "Zend/zend_language_scanner.c"
-yy240:
-               YYDEBUG(240, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy177;
-yy241:
-               YYDEBUG(241, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(242, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1390 "Zend/zend_language_scanner.l"
-               {
-       return T_DIV_EQUAL;
-}
-#line 3638 "Zend/zend_language_scanner.c"
-yy243:
-               YYDEBUG(243, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 64) {
-                       goto yy244;
-               }
-               goto yy194;
-yy244:
-               YYDEBUG(244, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(245, *YYCURSOR);
-               if (yybm[0+yych] & 64) {
-                       goto yy244;
-               }
-               goto yy239;
-yy246:
-               YYDEBUG(246, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(247, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1386 "Zend/zend_language_scanner.l"
-               {
-       return T_MUL_EQUAL;
-}
-#line 3665 "Zend/zend_language_scanner.c"
-yy248:
-               YYDEBUG(248, *YYCURSOR);
-               ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '=') goto yy252;
-               YYDEBUG(249, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1446 "Zend/zend_language_scanner.l"
-               {
-       return T_SR;
-}
-#line 3676 "Zend/zend_language_scanner.c"
-yy250:
-               YYDEBUG(250, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(251, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1374 "Zend/zend_language_scanner.l"
-               {
-       return T_IS_GREATER_OR_EQUAL;
-}
-#line 3686 "Zend/zend_language_scanner.c"
-yy252:
-               YYDEBUG(252, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(253, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1406 "Zend/zend_language_scanner.l"
-               {
-       return T_SR_EQUAL;
-}
-#line 3696 "Zend/zend_language_scanner.c"
-yy254:
-               YYDEBUG(254, *YYCURSOR);
-               yyaccept = 5;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= ';') goto yy255;
-               if (yych <= '<') goto yy270;
-               if (yych <= '=') goto yy268;
-yy255:
-               YYDEBUG(255, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1442 "Zend/zend_language_scanner.l"
-               {
-       return T_SL;
-}
-#line 3711 "Zend/zend_language_scanner.c"
-yy256:
-               YYDEBUG(256, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy261;
-               if (yych == 's') goto yy261;
-               goto yy194;
-yy257:
-               YYDEBUG(257, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(258, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1370 "Zend/zend_language_scanner.l"
-               {
-       return T_IS_SMALLER_OR_EQUAL;
-}
-#line 3727 "Zend/zend_language_scanner.c"
-yy259:
-               YYDEBUG(259, *YYCURSOR);
-               ++YYCURSOR;
-yy260:
-               YYDEBUG(260, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1366 "Zend/zend_language_scanner.l"
-               {
-       return T_IS_NOT_EQUAL;
-}
-#line 3738 "Zend/zend_language_scanner.c"
-yy261:
-               YYDEBUG(261, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy262;
-               if (yych != 'c') goto yy194;
-yy262:
-               YYDEBUG(262, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy263;
-               if (yych != 'r') goto yy194;
-yy263:
-               YYDEBUG(263, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy264;
-               if (yych != 'i') goto yy194;
-yy264:
-               YYDEBUG(264, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'P') goto yy265;
-               if (yych != 'p') goto yy194;
-yy265:
-               YYDEBUG(265, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy266;
-               if (yych != 't') goto yy194;
-yy266:
-               YYDEBUG(266, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(3);
-               yych = *YYCURSOR;
-               YYDEBUG(267, *YYCURSOR);
-               if (yych <= '\r') {
-                       if (yych <= 0x08) goto yy194;
-                       if (yych <= '\n') goto yy266;
-                       if (yych <= '\f') goto yy194;
-                       goto yy266;
-               } else {
-                       if (yych <= ' ') {
-                               if (yych <= 0x1F) goto yy194;
-                               goto yy266;
-                       } else {
-                               if (yych == '>') goto yy206;
-                               goto yy194;
-                       }
-               }
-yy268:
-               YYDEBUG(268, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(269, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1402 "Zend/zend_language_scanner.l"
-               {
-       return T_SL_EQUAL;
-}
-#line 3793 "Zend/zend_language_scanner.c"
-yy270:
-               YYDEBUG(270, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(2);
-               yych = *YYCURSOR;
-               YYDEBUG(271, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy270;
-               }
-               if (yych <= 'Z') {
-                       if (yych <= '&') {
-                               if (yych == '"') goto yy275;
-                               goto yy194;
-                       } else {
-                               if (yych <= '\'') goto yy274;
-                               if (yych <= '@') goto yy194;
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych != '_') goto yy194;
-                       } else {
-                               if (yych <= 'z') goto yy272;
-                               if (yych <= '~') goto yy194;
-                       }
-               }
-yy272:
-               YYDEBUG(272, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(2);
-               yych = *YYCURSOR;
-               YYDEBUG(273, *YYCURSOR);
-               if (yych <= '@') {
-                       if (yych <= '\f') {
-                               if (yych == '\n') goto yy279;
-                               goto yy194;
-                       } else {
-                               if (yych <= '\r') goto yy281;
-                               if (yych <= '/') goto yy194;
-                               if (yych <= '9') goto yy272;
-                               goto yy194;
-                       }
-               } else {
-                       if (yych <= '_') {
-                               if (yych <= 'Z') goto yy272;
-                               if (yych <= '^') goto yy194;
-                               goto yy272;
-                       } else {
-                               if (yych <= '`') goto yy194;
-                               if (yych <= 'z') goto yy272;
-                               if (yych <= '~') goto yy194;
-                               goto yy272;
-                       }
-               }
-yy274:
-               YYDEBUG(274, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '\'') goto yy194;
-               if (yych <= '/') goto yy283;
-               if (yych <= '9') goto yy194;
-               goto yy283;
-yy275:
-               YYDEBUG(275, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '"') goto yy194;
-               if (yych <= '/') goto yy277;
-               if (yych <= '9') goto yy194;
-               goto yy277;
-yy276:
-               YYDEBUG(276, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(3);
-               yych = *YYCURSOR;
-yy277:
-               YYDEBUG(277, *YYCURSOR);
-               if (yych <= 'Z') {
-                       if (yych <= '/') {
-                               if (yych != '"') goto yy194;
-                       } else {
-                               if (yych <= '9') goto yy276;
-                               if (yych <= '@') goto yy194;
-                               goto yy276;
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych == '_') goto yy276;
-                               goto yy194;
-                       } else {
-                               if (yych <= 'z') goto yy276;
-                               if (yych <= '~') goto yy194;
-                               goto yy276;
-                       }
-               }
-yy278:
-               YYDEBUG(278, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '\n') goto yy279;
-               if (yych == '\r') goto yy281;
-               goto yy194;
-yy279:
-               YYDEBUG(279, *YYCURSOR);
-               ++YYCURSOR;
-yy280:
-               YYDEBUG(280, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2117 "Zend/zend_language_scanner.l"
-               {
-       char *s;
-       int bprefix = (yytext[0] != '<') ? 1 : 0;
-       zend_heredoc_label *heredoc_label = emalloc(sizeof(zend_heredoc_label));
-
-       CG(zend_lineno)++;
-       heredoc_label->length = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
-       s = yytext+bprefix+3;
-       while ((*s == ' ') || (*s == '\t')) {
-               s++;
-               heredoc_label->length--;
-       }
-
-       if (*s == '\'') {
-               s++;
-               heredoc_label->length -= 2;
-
-               BEGIN(ST_NOWDOC);
-       } else {
-               if (*s == '"') {
-                       s++;
-                       heredoc_label->length -= 2;
-               }
-
-               BEGIN(ST_HEREDOC);
-       }
-
-       heredoc_label->label = estrndup(s, heredoc_label->length);
-
-       /* Check for ending label on the next line */
-       if (heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, heredoc_label->length)) {
-               YYCTYPE *end = YYCURSOR + heredoc_label->length;
-
-               if (*end == ';') {
-                       end++;
-               }
-
-               if (*end == '\n' || *end == '\r') {
-                       BEGIN(ST_END_HEREDOC);
-               }
-       }
-
-       zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) heredoc_label);
-
-       return T_START_HEREDOC;
-}
-#line 3945 "Zend/zend_language_scanner.c"
-yy281:
-               YYDEBUG(281, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '\n') goto yy279;
-               goto yy280;
-yy282:
-               YYDEBUG(282, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(3);
-               yych = *YYCURSOR;
-yy283:
-               YYDEBUG(283, *YYCURSOR);
-               if (yych <= 'Z') {
-                       if (yych <= '/') {
-                               if (yych == '\'') goto yy278;
-                               goto yy194;
-                       } else {
-                               if (yych <= '9') goto yy282;
-                               if (yych <= '@') goto yy194;
-                               goto yy282;
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych == '_') goto yy282;
-                               goto yy194;
-                       } else {
-                               if (yych <= 'z') goto yy282;
-                               if (yych <= '~') goto yy194;
-                               goto yy282;
-                       }
-               }
-yy284:
-               YYDEBUG(284, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '=') goto yy260;
-               YYDEBUG(285, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(286, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1358 "Zend/zend_language_scanner.l"
-               {
-       return T_IS_NOT_IDENTICAL;
-}
-#line 3989 "Zend/zend_language_scanner.c"
-yy287:
-               YYDEBUG(287, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(288, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1378 "Zend/zend_language_scanner.l"
-               {
-       return T_PLUS_EQUAL;
-}
-#line 3999 "Zend/zend_language_scanner.c"
-yy289:
-               YYDEBUG(289, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(290, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1346 "Zend/zend_language_scanner.l"
-               {
-       return T_INC;
-}
-#line 4009 "Zend/zend_language_scanner.c"
-yy291:
-               YYDEBUG(291, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy292;
-               if (yych != 's') goto yy187;
-yy292:
-               YYDEBUG(292, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy293;
-               if (yych != 't') goto yy187;
-yy293:
-               YYDEBUG(293, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(294, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1334 "Zend/zend_language_scanner.l"
-               {
-       return T_LIST;
-}
-#line 4032 "Zend/zend_language_scanner.c"
-yy295:
-               YYDEBUG(295, *YYCURSOR);
-               ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '=') goto yy299;
-               YYDEBUG(296, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1362 "Zend/zend_language_scanner.l"
-               {
-       return T_IS_EQUAL;
-}
-#line 4043 "Zend/zend_language_scanner.c"
-yy297:
-               YYDEBUG(297, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(298, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1330 "Zend/zend_language_scanner.l"
-               {
-       return T_DOUBLE_ARROW;
-}
-#line 4053 "Zend/zend_language_scanner.c"
-yy299:
-               YYDEBUG(299, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(300, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1354 "Zend/zend_language_scanner.l"
-               {
-       return T_IS_IDENTICAL;
-}
-#line 4063 "Zend/zend_language_scanner.c"
-yy301:
-               YYDEBUG(301, *YYCURSOR);
-               yych = *++YYCURSOR;
-               YYDEBUG(-1, yych);
-               switch (yych) {
-               case 'C':
-               case 'c':       goto yy303;
-               case 'D':
-               case 'd':       goto yy308;
-               case 'F':
-               case 'f':       goto yy305;
-               case 'H':
-               case 'h':       goto yy302;
-               case 'L':
-               case 'l':       goto yy307;
-               case 'M':
-               case 'm':       goto yy306;
-               case 'N':
-               case 'n':       goto yy309;
-               case 'T':
-               case 't':       goto yy304;
-               default:        goto yy187;
-               }
-yy302:
-               YYDEBUG(302, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy370;
-               if (yych == 'a') goto yy370;
-               goto yy187;
-yy303:
-               YYDEBUG(303, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy363;
-               if (yych == 'l') goto yy363;
-               goto yy187;
-yy304:
-               YYDEBUG(304, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy356;
-               if (yych == 'r') goto yy356;
-               goto yy187;
-yy305:
-               YYDEBUG(305, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'U') {
-                       if (yych == 'I') goto yy340;
-                       if (yych <= 'T') goto yy187;
-                       goto yy341;
-               } else {
-                       if (yych <= 'i') {
-                               if (yych <= 'h') goto yy187;
-                               goto yy340;
-                       } else {
-                               if (yych == 'u') goto yy341;
-                               goto yy187;
-                       }
-               }
-yy306:
-               YYDEBUG(306, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy332;
-               if (yych == 'e') goto yy332;
-               goto yy187;
-yy307:
-               YYDEBUG(307, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy326;
-               if (yych == 'i') goto yy326;
-               goto yy187;
-yy308:
-               YYDEBUG(308, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy321;
-               if (yych == 'i') goto yy321;
-               goto yy187;
-yy309:
-               YYDEBUG(309, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy310;
-               if (yych != 'a') goto yy187;
-yy310:
-               YYDEBUG(310, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'M') goto yy311;
-               if (yych != 'm') goto yy187;
-yy311:
-               YYDEBUG(311, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy312;
-               if (yych != 'e') goto yy187;
-yy312:
-               YYDEBUG(312, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy313;
-               if (yych != 's') goto yy187;
-yy313:
-               YYDEBUG(313, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'P') goto yy314;
-               if (yych != 'p') goto yy187;
-yy314:
-               YYDEBUG(314, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy315;
-               if (yych != 'a') goto yy187;
-yy315:
-               YYDEBUG(315, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy316;
-               if (yych != 'c') goto yy187;
-yy316:
-               YYDEBUG(316, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy317;
-               if (yych != 'e') goto yy187;
-yy317:
-               YYDEBUG(317, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '_') goto yy187;
-               YYDEBUG(318, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '_') goto yy187;
-               YYDEBUG(319, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(320, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1718 "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 4203 "Zend/zend_language_scanner.c"
-yy321:
-               YYDEBUG(321, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy322;
-               if (yych != 'r') goto yy187;
-yy322:
-               YYDEBUG(322, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '_') goto yy187;
-               YYDEBUG(323, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '_') goto yy187;
-               YYDEBUG(324, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(325, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1691 "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 4250 "Zend/zend_language_scanner.c"
-yy326:
-               YYDEBUG(326, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy327;
-               if (yych != 'n') goto yy187;
-yy327:
-               YYDEBUG(327, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy328;
-               if (yych != 'e') goto yy187;
-yy328:
-               YYDEBUG(328, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '_') goto yy187;
-               YYDEBUG(329, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '_') goto yy187;
-               YYDEBUG(330, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(331, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1673 "Zend/zend_language_scanner.l"
-               {
-       zendlval->value.lval = CG(zend_lineno);
-       zendlval->type = IS_LONG;
-       return T_LINE;
-}
-#line 4281 "Zend/zend_language_scanner.c"
-yy332:
-               YYDEBUG(332, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy333;
-               if (yych != 't') goto yy187;
-yy333:
-               YYDEBUG(333, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy334;
-               if (yych != 'h') goto yy187;
-yy334:
-               YYDEBUG(334, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy335;
-               if (yych != 'o') goto yy187;
-yy335:
-               YYDEBUG(335, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'D') goto yy336;
-               if (yych != 'd') goto yy187;
-yy336:
-               YYDEBUG(336, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '_') goto yy187;
-               YYDEBUG(337, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '_') goto yy187;
-               YYDEBUG(338, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(339, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1652 "Zend/zend_language_scanner.l"
-               {
-       const char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL;
-       const char *func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL;
-       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",
-               class_name ? class_name : "",
-               class_name && func_name ? "::" : "",
-               func_name ? func_name : ""
-               );
-       zendlval->type = IS_STRING;
-       return T_METHOD_C;
-}
-#line 4337 "Zend/zend_language_scanner.c"
-yy340:
-               YYDEBUG(340, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy351;
-               if (yych == 'l') goto yy351;
-               goto yy187;
-yy341:
-               YYDEBUG(341, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy342;
-               if (yych != 'n') goto yy187;
-yy342:
-               YYDEBUG(342, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy343;
-               if (yych != 'c') goto yy187;
-yy343:
-               YYDEBUG(343, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy344;
-               if (yych != 't') goto yy187;
-yy344:
-               YYDEBUG(344, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy345;
-               if (yych != 'i') goto yy187;
-yy345:
-               YYDEBUG(345, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy346;
-               if (yych != 'o') goto yy187;
-yy346:
-               YYDEBUG(346, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy347;
-               if (yych != 'n') goto yy187;
-yy347:
-               YYDEBUG(347, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '_') goto yy187;
-               YYDEBUG(348, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '_') goto yy187;
-               YYDEBUG(349, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(350, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1636 "Zend/zend_language_scanner.l"
-               {
-       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 4404 "Zend/zend_language_scanner.c"
-yy351:
-               YYDEBUG(351, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy352;
-               if (yych != 'e') goto yy187;
-yy352:
-               YYDEBUG(352, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '_') goto yy187;
-               YYDEBUG(353, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '_') goto yy187;
-               YYDEBUG(354, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(355, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1679 "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 4436 "Zend/zend_language_scanner.c"
-yy356:
-               YYDEBUG(356, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy357;
-               if (yych != 'a') goto yy187;
-yy357:
-               YYDEBUG(357, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy358;
-               if (yych != 'i') goto yy187;
-yy358:
-               YYDEBUG(358, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy359;
-               if (yych != 't') goto yy187;
-yy359:
-               YYDEBUG(359, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '_') goto yy187;
-               YYDEBUG(360, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '_') goto yy187;
-               YYDEBUG(361, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(362, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1616 "Zend/zend_language_scanner.l"
-               {
-       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 (!trait_name) {
-               trait_name = "";
-       }
-       
-       zendlval->value.str.len = strlen(trait_name);
-       zendlval->value.str.val = estrndup(trait_name, zendlval->value.str.len);
-       zendlval->type = IS_STRING;
-       
-       return T_TRAIT_C;
-}
-#line 4486 "Zend/zend_language_scanner.c"
-yy363:
-               YYDEBUG(363, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy364;
-               if (yych != 'a') goto yy187;
-yy364:
-               YYDEBUG(364, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy365;
-               if (yych != 's') goto yy187;
-yy365:
-               YYDEBUG(365, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy366;
-               if (yych != 's') goto yy187;
-yy366:
-               YYDEBUG(366, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '_') goto yy187;
-               YYDEBUG(367, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '_') goto yy187;
-               YYDEBUG(368, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(369, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1589 "Zend/zend_language_scanner.l"
-               {
-       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 4543 "Zend/zend_language_scanner.c"
-yy370:
-               YYDEBUG(370, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy371;
-               if (yych != 'l') goto yy187;
-yy371:
-               YYDEBUG(371, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy372;
-               if (yych != 't') goto yy187;
-yy372:
-               YYDEBUG(372, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych != '_') goto yy187;
-               YYDEBUG(373, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy374;
-               if (yych != 'c') goto yy187;
-yy374:
-               YYDEBUG(374, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy375;
-               if (yych != 'o') goto yy187;
-yy375:
-               YYDEBUG(375, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'M') goto yy376;
-               if (yych != 'm') goto yy187;
-yy376:
-               YYDEBUG(376, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'P') goto yy377;
-               if (yych != 'p') goto yy187;
-yy377:
-               YYDEBUG(377, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy378;
-               if (yych != 'i') goto yy187;
-yy378:
-               YYDEBUG(378, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy379;
-               if (yych != 'l') goto yy187;
-yy379:
-               YYDEBUG(379, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy380;
-               if (yych != 'e') goto yy187;
-yy380:
-               YYDEBUG(380, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy381;
-               if (yych != 'r') goto yy187;
-yy381:
-               YYDEBUG(381, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(382, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1298 "Zend/zend_language_scanner.l"
-               {
-       return T_HALT_COMPILER;
-}
-#line 4609 "Zend/zend_language_scanner.c"
-yy383:
-               YYDEBUG(383, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy387;
-               if (yych == 's') goto yy387;
-               goto yy187;
-yy384:
-               YYDEBUG(384, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy385;
-               if (yych != 'e') goto yy187;
-yy385:
-               YYDEBUG(385, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(386, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1278 "Zend/zend_language_scanner.l"
-               {
-       return T_USE;
-}
-#line 4633 "Zend/zend_language_scanner.c"
-yy387:
-               YYDEBUG(387, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy388;
-               if (yych != 'e') goto yy187;
-yy388:
-               YYDEBUG(388, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy389;
-               if (yych != 't') goto yy187;
-yy389:
-               YYDEBUG(389, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(390, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1326 "Zend/zend_language_scanner.l"
-               {
-       return T_UNSET;
-}
-#line 4656 "Zend/zend_language_scanner.c"
-yy391:
-               YYDEBUG(391, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(7);
-               yych = *YYCURSOR;
-yy392:
-               YYDEBUG(392, *YYCURSOR);
-               if (yych <= 'S') {
-                       if (yych <= 'D') {
-                               if (yych <= ' ') {
-                                       if (yych == '\t') goto yy391;
-                                       if (yych <= 0x1F) goto yy194;
-                                       goto yy391;
-                               } else {
-                                       if (yych <= 'A') {
-                                               if (yych <= '@') goto yy194;
-                                               goto yy396;
-                                       } else {
-                                               if (yych <= 'B') goto yy394;
-                                               if (yych <= 'C') goto yy194;
-                                               goto yy399;
-                                       }
-                               }
-                       } else {
-                               if (yych <= 'I') {
-                                       if (yych == 'F') goto yy400;
-                                       if (yych <= 'H') goto yy194;
-                                       goto yy401;
-                               } else {
-                                       if (yych <= 'O') {
-                                               if (yych <= 'N') goto yy194;
-                                               goto yy395;
-                                       } else {
-                                               if (yych <= 'Q') goto yy194;
-                                               if (yych <= 'R') goto yy398;
-                                               goto yy397;
-                                       }
-                               }
-                       }
-               } else {
-                       if (yych <= 'f') {
-                               if (yych <= 'a') {
-                                       if (yych == 'U') goto yy393;
-                                       if (yych <= '`') goto yy194;
-                                       goto yy396;
-                               } else {
-                                       if (yych <= 'c') {
-                                               if (yych <= 'b') goto yy394;
-                                               goto yy194;
-                                       } else {
-                                               if (yych <= 'd') goto yy399;
-                                               if (yych <= 'e') goto yy194;
-                                               goto yy400;
-                                       }
-                               }
-                       } else {
-                               if (yych <= 'q') {
-                                       if (yych <= 'i') {
-                                               if (yych <= 'h') goto yy194;
-                                               goto yy401;
-                                       } else {
-                                               if (yych == 'o') goto yy395;
-                                               goto yy194;
-                                       }
-                               } else {
-                                       if (yych <= 's') {
-                                               if (yych <= 'r') goto yy398;
-                                               goto yy397;
-                                       } else {
-                                               if (yych != 'u') goto yy194;
-                                       }
-                               }
-                       }
-               }
-yy393:
-               YYDEBUG(393, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy460;
-               if (yych == 'n') goto yy460;
-               goto yy194;
-yy394:
-               YYDEBUG(394, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'O') {
-                       if (yych == 'I') goto yy447;
-                       if (yych <= 'N') goto yy194;
-                       goto yy448;
-               } else {
-                       if (yych <= 'i') {
-                               if (yych <= 'h') goto yy194;
-                               goto yy447;
-                       } else {
-                               if (yych == 'o') goto yy448;
-                               goto yy194;
-                       }
-               }
-yy395:
-               YYDEBUG(395, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'B') goto yy439;
-               if (yych == 'b') goto yy439;
-               goto yy194;
-yy396:
-               YYDEBUG(396, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy432;
-               if (yych == 'r') goto yy432;
-               goto yy194;
-yy397:
-               YYDEBUG(397, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy424;
-               if (yych == 't') goto yy424;
-               goto yy194;
-yy398:
-               YYDEBUG(398, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy422;
-               if (yych == 'e') goto yy422;
-               goto yy194;
-yy399:
-               YYDEBUG(399, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy418;
-               if (yych == 'o') goto yy418;
-               goto yy194;
-yy400:
-               YYDEBUG(400, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy411;
-               if (yych == 'l') goto yy411;
-               goto yy194;
-yy401:
-               YYDEBUG(401, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy402;
-               if (yych != 'n') goto yy194;
-yy402:
-               YYDEBUG(402, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy403;
-               if (yych != 't') goto yy194;
-yy403:
-               YYDEBUG(403, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy404;
-               if (yych != 'e') goto yy406;
-yy404:
-               YYDEBUG(404, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'G') goto yy409;
-               if (yych == 'g') goto yy409;
-               goto yy194;
-yy405:
-               YYDEBUG(405, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy406:
-               YYDEBUG(406, *YYCURSOR);
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy405;
-                       goto yy194;
-               } else {
-                       if (yych <= ' ') goto yy405;
-                       if (yych != ')') goto yy194;
-               }
-               YYDEBUG(407, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(408, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1226 "Zend/zend_language_scanner.l"
-               {
-       return T_INT_CAST;
-}
-#line 4832 "Zend/zend_language_scanner.c"
-yy409:
-               YYDEBUG(409, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy410;
-               if (yych != 'e') goto yy194;
-yy410:
-               YYDEBUG(410, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy405;
-               if (yych == 'r') goto yy405;
-               goto yy194;
-yy411:
-               YYDEBUG(411, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy412;
-               if (yych != 'o') goto yy194;
-yy412:
-               YYDEBUG(412, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy413;
-               if (yych != 'a') goto yy194;
-yy413:
-               YYDEBUG(413, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy414;
-               if (yych != 't') goto yy194;
-yy414:
-               YYDEBUG(414, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(415, *YYCURSOR);
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy414;
-                       goto yy194;
-               } else {
-                       if (yych <= ' ') goto yy414;
-                       if (yych != ')') goto yy194;
-               }
-               YYDEBUG(416, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(417, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1230 "Zend/zend_language_scanner.l"
-               {
-       return T_DOUBLE_CAST;
-}
-#line 4880 "Zend/zend_language_scanner.c"
-yy418:
-               YYDEBUG(418, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'U') goto yy419;
-               if (yych != 'u') goto yy194;
-yy419:
-               YYDEBUG(419, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'B') goto yy420;
-               if (yych != 'b') goto yy194;
-yy420:
-               YYDEBUG(420, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy421;
-               if (yych != 'l') goto yy194;
-yy421:
-               YYDEBUG(421, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy414;
-               if (yych == 'e') goto yy414;
-               goto yy194;
-yy422:
-               YYDEBUG(422, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy423;
-               if (yych != 'a') goto yy194;
-yy423:
-               YYDEBUG(423, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy414;
-               if (yych == 'l') goto yy414;
-               goto yy194;
-yy424:
-               YYDEBUG(424, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy425;
-               if (yych != 'r') goto yy194;
-yy425:
-               YYDEBUG(425, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy426;
-               if (yych != 'i') goto yy194;
-yy426:
-               YYDEBUG(426, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy427;
-               if (yych != 'n') goto yy194;
-yy427:
-               YYDEBUG(427, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'G') goto yy428;
-               if (yych != 'g') goto yy194;
-yy428:
-               YYDEBUG(428, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(429, *YYCURSOR);
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy428;
-                       goto yy194;
-               } else {
-                       if (yych <= ' ') goto yy428;
-                       if (yych != ')') goto yy194;
-               }
-               YYDEBUG(430, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(431, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1234 "Zend/zend_language_scanner.l"
-               {
-       return T_STRING_CAST;
-}
-#line 4954 "Zend/zend_language_scanner.c"
-yy432:
-               YYDEBUG(432, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy433;
-               if (yych != 'r') goto yy194;
-yy433:
-               YYDEBUG(433, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy434;
-               if (yych != 'a') goto yy194;
-yy434:
-               YYDEBUG(434, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy435;
-               if (yych != 'y') goto yy194;
-yy435:
-               YYDEBUG(435, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(436, *YYCURSOR);
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy435;
-                       goto yy194;
-               } else {
-                       if (yych <= ' ') goto yy435;
-                       if (yych != ')') goto yy194;
-               }
-               YYDEBUG(437, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(438, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1238 "Zend/zend_language_scanner.l"
-               {
-       return T_ARRAY_CAST;
-}
-#line 4991 "Zend/zend_language_scanner.c"
-yy439:
-               YYDEBUG(439, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'J') goto yy440;
-               if (yych != 'j') goto yy194;
-yy440:
-               YYDEBUG(440, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy441;
-               if (yych != 'e') goto yy194;
-yy441:
-               YYDEBUG(441, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy442;
-               if (yych != 'c') goto yy194;
-yy442:
-               YYDEBUG(442, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy443;
-               if (yych != 't') goto yy194;
-yy443:
-               YYDEBUG(443, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(444, *YYCURSOR);
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy443;
-                       goto yy194;
-               } else {
-                       if (yych <= ' ') goto yy443;
-                       if (yych != ')') goto yy194;
-               }
-               YYDEBUG(445, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(446, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1242 "Zend/zend_language_scanner.l"
-               {
-       return T_OBJECT_CAST;
-}
-#line 5033 "Zend/zend_language_scanner.c"
-yy447:
-               YYDEBUG(447, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy457;
-               if (yych == 'n') goto yy457;
-               goto yy194;
-yy448:
-               YYDEBUG(448, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy449;
-               if (yych != 'o') goto yy194;
-yy449:
-               YYDEBUG(449, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy450;
-               if (yych != 'l') goto yy194;
-yy450:
-               YYDEBUG(450, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy455;
-               if (yych == 'e') goto yy455;
-               goto yy452;
-yy451:
-               YYDEBUG(451, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy452:
-               YYDEBUG(452, *YYCURSOR);
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy451;
-                       goto yy194;
-               } else {
-                       if (yych <= ' ') goto yy451;
-                       if (yych != ')') goto yy194;
-               }
-               YYDEBUG(453, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(454, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1246 "Zend/zend_language_scanner.l"
-               {
-       return T_BOOL_CAST;
-}
-#line 5078 "Zend/zend_language_scanner.c"
-yy455:
-               YYDEBUG(455, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy456;
-               if (yych != 'a') goto yy194;
-yy456:
-               YYDEBUG(456, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy451;
-               if (yych == 'n') goto yy451;
-               goto yy194;
-yy457:
-               YYDEBUG(457, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy458;
-               if (yych != 'a') goto yy194;
-yy458:
-               YYDEBUG(458, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy459;
-               if (yych != 'r') goto yy194;
-yy459:
-               YYDEBUG(459, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy428;
-               if (yych == 'y') goto yy428;
-               goto yy194;
-yy460:
-               YYDEBUG(460, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy461;
-               if (yych != 's') goto yy194;
-yy461:
-               YYDEBUG(461, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy462;
-               if (yych != 'e') goto yy194;
-yy462:
-               YYDEBUG(462, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy463;
-               if (yych != 't') goto yy194;
-yy463:
-               YYDEBUG(463, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(464, *YYCURSOR);
-               if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy463;
-                       goto yy194;
-               } else {
-                       if (yych <= ' ') goto yy463;
-                       if (yych != ')') goto yy194;
-               }
-               YYDEBUG(465, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(466, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1250 "Zend/zend_language_scanner.l"
-               {
-       return T_UNSET_CAST;
-}
-#line 5142 "Zend/zend_language_scanner.c"
-yy467:
-               YYDEBUG(467, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy468;
-               if (yych != 'r') goto yy187;
-yy468:
-               YYDEBUG(468, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(469, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1222 "Zend/zend_language_scanner.l"
-               {
-       return T_VAR;
-}
-#line 5160 "Zend/zend_language_scanner.c"
-yy470:
-               YYDEBUG(470, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'M') goto yy474;
-               if (yych == 'm') goto yy474;
-               goto yy187;
-yy471:
-               YYDEBUG(471, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'W') goto yy472;
-               if (yych != 'w') goto yy187;
-yy472:
-               YYDEBUG(472, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(473, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1214 "Zend/zend_language_scanner.l"
-               {
-       return T_NEW;
-}
-#line 5184 "Zend/zend_language_scanner.c"
-yy474:
-               YYDEBUG(474, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy475;
-               if (yych != 'e') goto yy187;
-yy475:
-               YYDEBUG(475, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy476;
-               if (yych != 's') goto yy187;
-yy476:
-               YYDEBUG(476, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'P') goto yy477;
-               if (yych != 'p') goto yy187;
-yy477:
-               YYDEBUG(477, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy478;
-               if (yych != 'a') goto yy187;
-yy478:
-               YYDEBUG(478, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy479;
-               if (yych != 'c') goto yy187;
-yy479:
-               YYDEBUG(479, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy480;
-               if (yych != 'e') goto yy187;
-yy480:
-               YYDEBUG(480, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(481, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1274 "Zend/zend_language_scanner.l"
-               {
-       return T_NAMESPACE;
-}
-#line 5227 "Zend/zend_language_scanner.c"
-yy482:
-               YYDEBUG(482, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(483, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1206 "Zend/zend_language_scanner.l"
-               {
-       return T_PAAMAYIM_NEKUDOTAYIM;
-}
-#line 5237 "Zend/zend_language_scanner.c"
-yy484:
-               YYDEBUG(484, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy485:
-               YYDEBUG(485, *YYCURSOR);
-               if (yych <= '\f') {
-                       if (yych <= 0x08) goto yy141;
-                       if (yych <= '\n') goto yy484;
-                       goto yy141;
-               } else {
-                       if (yych <= '\r') goto yy484;
-                       if (yych == ' ') goto yy484;
-                       goto yy141;
-               }
-yy486:
-               YYDEBUG(486, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(487, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1382 "Zend/zend_language_scanner.l"
-               {
-       return T_MINUS_EQUAL;
-}
-#line 5263 "Zend/zend_language_scanner.c"
-yy488:
-               YYDEBUG(488, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(489, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1350 "Zend/zend_language_scanner.l"
-               {
-       return T_DEC;
-}
-#line 5273 "Zend/zend_language_scanner.c"
-yy490:
-               YYDEBUG(490, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(491, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1176 "Zend/zend_language_scanner.l"
-               {
-       yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
-       return T_OBJECT_OPERATOR;
-}
-#line 5284 "Zend/zend_language_scanner.c"
-yy492:
-               YYDEBUG(492, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'O') {
-                       if (yych == 'I') goto yy499;
-                       if (yych <= 'N') goto yy187;
-                       goto yy500;
-               } else {
-                       if (yych <= 'i') {
-                               if (yych <= 'h') goto yy187;
-                               goto yy499;
-                       } else {
-                               if (yych == 'o') goto yy500;
-                               goto yy187;
-                       }
-               }
-yy493:
-               YYDEBUG(493, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'B') goto yy494;
-               if (yych != 'b') goto yy187;
-yy494:
-               YYDEBUG(494, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy495;
-               if (yych != 'l') goto yy187;
-yy495:
-               YYDEBUG(495, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy496;
-               if (yych != 'i') goto yy187;
-yy496:
-               YYDEBUG(496, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy497;
-               if (yych != 'c') goto yy187;
-yy497:
-               YYDEBUG(497, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(498, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1322 "Zend/zend_language_scanner.l"
-               {
-       return T_PUBLIC;
-}
-#line 5333 "Zend/zend_language_scanner.c"
-yy499:
-               YYDEBUG(499, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'V') {
-                       if (yych == 'N') goto yy508;
-                       if (yych <= 'U') goto yy187;
-                       goto yy509;
-               } else {
-                       if (yych <= 'n') {
-                               if (yych <= 'm') goto yy187;
-                               goto yy508;
-                       } else {
-                               if (yych == 'v') goto yy509;
-                               goto yy187;
-                       }
-               }
-yy500:
-               YYDEBUG(500, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy501;
-               if (yych != 't') goto yy187;
-yy501:
-               YYDEBUG(501, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy502;
-               if (yych != 'e') goto yy187;
-yy502:
-               YYDEBUG(502, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy503;
-               if (yych != 'c') goto yy187;
-yy503:
-               YYDEBUG(503, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy504;
-               if (yych != 't') goto yy187;
-yy504:
-               YYDEBUG(504, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy505;
-               if (yych != 'e') goto yy187;
-yy505:
-               YYDEBUG(505, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'D') goto yy506;
-               if (yych != 'd') goto yy187;
-yy506:
-               YYDEBUG(506, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(507, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1318 "Zend/zend_language_scanner.l"
-               {
-       return T_PROTECTED;
-}
-#line 5392 "Zend/zend_language_scanner.c"
-yy508:
-               YYDEBUG(508, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy514;
-               if (yych == 't') goto yy514;
-               goto yy187;
-yy509:
-               YYDEBUG(509, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy510;
-               if (yych != 'a') goto yy187;
-yy510:
-               YYDEBUG(510, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy511;
-               if (yych != 't') goto yy187;
-yy511:
-               YYDEBUG(511, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy512;
-               if (yych != 'e') goto yy187;
-yy512:
-               YYDEBUG(512, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(513, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1314 "Zend/zend_language_scanner.l"
-               {
-       return T_PRIVATE;
-}
-#line 5426 "Zend/zend_language_scanner.c"
-yy514:
-               YYDEBUG(514, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(515, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1152 "Zend/zend_language_scanner.l"
-               {
-       return T_PRINT;
-}
-#line 5439 "Zend/zend_language_scanner.c"
-yy516:
-               YYDEBUG(516, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy521;
-               if (yych == 'o') goto yy521;
-               goto yy187;
-yy517:
-               YYDEBUG(517, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy518;
-               if (yych != 't') goto yy187;
-yy518:
-               YYDEBUG(518, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy519;
-               if (yych != 'o') goto yy187;
-yy519:
-               YYDEBUG(519, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(520, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1144 "Zend/zend_language_scanner.l"
-               {
-       return T_GOTO;
-}
-#line 5468 "Zend/zend_language_scanner.c"
-yy521:
-               YYDEBUG(521, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'B') goto yy522;
-               if (yych != 'b') goto yy187;
-yy522:
-               YYDEBUG(522, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy523;
-               if (yych != 'a') goto yy187;
-yy523:
-               YYDEBUG(523, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy524;
-               if (yych != 'l') goto yy187;
-yy524:
-               YYDEBUG(524, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(525, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1286 "Zend/zend_language_scanner.l"
-               {
-       return T_GLOBAL;
-}
-#line 5496 "Zend/zend_language_scanner.c"
-yy526:
-               YYDEBUG(526, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '<') goto yy534;
-               goto yy194;
-yy527:
-               YYDEBUG(527, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy181;
-yy528:
-               YYDEBUG(528, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy179;
-yy529:
-               YYDEBUG(529, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy530;
-               if (yych != 'e') goto yy187;
-yy530:
-               YYDEBUG(530, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy531;
-               if (yych != 'a') goto yy187;
-yy531:
-               YYDEBUG(531, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'K') goto yy532;
-               if (yych != 'k') goto yy187;
-yy532:
-               YYDEBUG(532, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(533, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1136 "Zend/zend_language_scanner.l"
-               {
-       return T_BREAK;
-}
-#line 5537 "Zend/zend_language_scanner.c"
-yy534:
-               YYDEBUG(534, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '<') goto yy270;
-               goto yy194;
-yy535:
-               YYDEBUG(535, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy542;
-               if (yych == 'a') goto yy542;
-               goto yy187;
-yy536:
-               YYDEBUG(536, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy537;
-               if (yych != 'i') goto yy187;
-yy537:
-               YYDEBUG(537, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy538;
-               if (yych != 't') goto yy187;
-yy538:
-               YYDEBUG(538, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy539;
-               if (yych != 'c') goto yy187;
-yy539:
-               YYDEBUG(539, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy540;
-               if (yych != 'h') goto yy187;
-yy540:
-               YYDEBUG(540, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(541, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1120 "Zend/zend_language_scanner.l"
-               {
-       return T_SWITCH;
-}
-#line 5581 "Zend/zend_language_scanner.c"
-yy542:
-               YYDEBUG(542, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy543;
-               if (yych != 't') goto yy187;
-yy543:
-               YYDEBUG(543, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy544;
-               if (yych != 'i') goto yy187;
-yy544:
-               YYDEBUG(544, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy545;
-               if (yych != 'c') goto yy187;
-yy545:
-               YYDEBUG(545, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(546, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1302 "Zend/zend_language_scanner.l"
-               {
-       return T_STATIC;
-}
-#line 5609 "Zend/zend_language_scanner.c"
-yy547:
-               YYDEBUG(547, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy558;
-               if (yych == 's') goto yy558;
-               goto yy187;
-yy548:
-               YYDEBUG(548, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'D') goto yy556;
-               if (yych == 'd') goto yy556;
-               goto yy187;
-yy549:
-               YYDEBUG(549, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy552;
-               if (yych == 'r') goto yy552;
-               goto yy187;
-yy550:
-               YYDEBUG(550, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(551, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1116 "Zend/zend_language_scanner.l"
-               {
-       return T_AS;
-}
-#line 5640 "Zend/zend_language_scanner.c"
-yy552:
-               YYDEBUG(552, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy553;
-               if (yych != 'a') goto yy187;
-yy553:
-               YYDEBUG(553, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy554;
-               if (yych != 'y') goto yy187;
-yy554:
-               YYDEBUG(554, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(555, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1338 "Zend/zend_language_scanner.l"
-               {
-       return T_ARRAY;
-}
-#line 5663 "Zend/zend_language_scanner.c"
-yy556:
-               YYDEBUG(556, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(557, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1434 "Zend/zend_language_scanner.l"
-               {
-       return T_LOGICAL_AND;
-}
-#line 5676 "Zend/zend_language_scanner.c"
-yy558:
-               YYDEBUG(558, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy559;
-               if (yych != 't') goto yy187;
-yy559:
-               YYDEBUG(559, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy560;
-               if (yych != 'r') goto yy187;
-yy560:
-               YYDEBUG(560, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy561;
-               if (yych != 'a') goto yy187;
-yy561:
-               YYDEBUG(561, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy562;
-               if (yych != 'c') goto yy187;
-yy562:
-               YYDEBUG(562, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy563;
-               if (yych != 't') goto yy187;
-yy563:
-               YYDEBUG(563, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(564, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1306 "Zend/zend_language_scanner.l"
-               {
-       return T_ABSTRACT;
-}
-#line 5714 "Zend/zend_language_scanner.c"
-yy565:
-               YYDEBUG(565, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy566;
-               if (yych != 'i') goto yy187;
-yy566:
-               YYDEBUG(566, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy567;
-               if (yych != 'l') goto yy187;
-yy567:
-               YYDEBUG(567, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy568;
-               if (yych != 'e') goto yy187;
-yy568:
-               YYDEBUG(568, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(569, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1076 "Zend/zend_language_scanner.l"
-               {
-       return T_WHILE;
-}
-#line 5742 "Zend/zend_language_scanner.c"
-yy570:
-               YYDEBUG(570, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(571, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1060 "Zend/zend_language_scanner.l"
-               {
-       return T_IF;
-}
-#line 5755 "Zend/zend_language_scanner.c"
-yy572:
-               YYDEBUG(572, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'P') goto yy614;
-               if (yych == 'p') goto yy614;
-               goto yy187;
-yy573:
-               YYDEBUG(573, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'T') {
-                       if (yych <= 'C') {
-                               if (yych <= 'B') goto yy187;
-                               goto yy581;
-                       } else {
-                               if (yych <= 'R') goto yy187;
-                               if (yych <= 'S') goto yy579;
-                               goto yy580;
-                       }
-               } else {
-                       if (yych <= 'r') {
-                               if (yych == 'c') goto yy581;
-                               goto yy187;
-                       } else {
-                               if (yych <= 's') goto yy579;
-                               if (yych <= 't') goto yy580;
-                               goto yy187;
-                       }
-               }
-yy574:
-               YYDEBUG(574, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy575;
-               if (yych != 's') goto yy187;
-yy575:
-               YYDEBUG(575, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy576;
-               if (yych != 'e') goto yy187;
-yy576:
-               YYDEBUG(576, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy577;
-               if (yych != 't') goto yy187;
-yy577:
-               YYDEBUG(577, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(578, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1290 "Zend/zend_language_scanner.l"
-               {
-       return T_ISSET;
-}
-#line 5811 "Zend/zend_language_scanner.c"
-yy579:
-               YYDEBUG(579, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy600;
-               if (yych == 't') goto yy600;
-               goto yy187;
-yy580:
-               YYDEBUG(580, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy593;
-               if (yych == 'e') goto yy593;
-               goto yy187;
-yy581:
-               YYDEBUG(581, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy582;
-               if (yych != 'l') goto yy187;
-yy582:
-               YYDEBUG(582, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'U') goto yy583;
-               if (yych != 'u') goto yy187;
-yy583:
-               YYDEBUG(583, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'D') goto yy584;
-               if (yych != 'd') goto yy187;
-yy584:
-               YYDEBUG(584, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy585;
-               if (yych != 'e') goto yy187;
-yy585:
-               YYDEBUG(585, *YYCURSOR);
-               ++YYCURSOR;
-               if ((yych = *YYCURSOR) <= '^') {
-                       if (yych <= '9') {
-                               if (yych >= '0') goto yy186;
-                       } else {
-                               if (yych <= '@') goto yy586;
-                               if (yych <= 'Z') goto yy186;
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych <= '_') goto yy587;
-                       } else {
-                               if (yych <= 'z') goto yy186;
-                               if (yych >= 0x7F) goto yy186;
-                       }
-               }
-yy586:
-               YYDEBUG(586, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1258 "Zend/zend_language_scanner.l"
-               {
-       return T_INCLUDE;
-}
-#line 5869 "Zend/zend_language_scanner.c"
-yy587:
-               YYDEBUG(587, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy588;
-               if (yych != 'o') goto yy187;
-yy588:
-               YYDEBUG(588, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy589;
-               if (yych != 'n') goto yy187;
-yy589:
-               YYDEBUG(589, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy590;
-               if (yych != 'c') goto yy187;
-yy590:
-               YYDEBUG(590, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy591;
-               if (yych != 'e') goto yy187;
-yy591:
-               YYDEBUG(591, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(592, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1262 "Zend/zend_language_scanner.l"
-               {
-       return T_INCLUDE_ONCE;
-}
-#line 5902 "Zend/zend_language_scanner.c"
-yy593:
-               YYDEBUG(593, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy594;
-               if (yych != 'r') goto yy187;
-yy594:
-               YYDEBUG(594, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'F') goto yy595;
-               if (yych != 'f') goto yy187;
-yy595:
-               YYDEBUG(595, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy596;
-               if (yych != 'a') goto yy187;
-yy596:
-               YYDEBUG(596, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy597;
-               if (yych != 'c') goto yy187;
-yy597:
-               YYDEBUG(597, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy598;
-               if (yych != 'e') goto yy187;
-yy598:
-               YYDEBUG(598, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(599, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1160 "Zend/zend_language_scanner.l"
-               {
-       return T_INTERFACE;
-}
-#line 5940 "Zend/zend_language_scanner.c"
-yy600:
-               YYDEBUG(600, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'E') {
-                       if (yych == 'A') goto yy601;
-                       if (yych <= 'D') goto yy187;
-                       goto yy602;
-               } else {
-                       if (yych <= 'a') {
-                               if (yych <= '`') goto yy187;
-                       } else {
-                               if (yych == 'e') goto yy602;
-                               goto yy187;
-                       }
-               }
-yy601:
-               YYDEBUG(601, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy608;
-               if (yych == 'n') goto yy608;
-               goto yy187;
-yy602:
-               YYDEBUG(602, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy603;
-               if (yych != 'a') goto yy187;
-yy603:
-               YYDEBUG(603, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'D') goto yy604;
-               if (yych != 'd') goto yy187;
-yy604:
-               YYDEBUG(604, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy605;
-               if (yych != 'o') goto yy187;
-yy605:
-               YYDEBUG(605, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'F') goto yy606;
-               if (yych != 'f') goto yy187;
-yy606:
-               YYDEBUG(606, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(607, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1282 "Zend/zend_language_scanner.l"
-               {
-        return T_INSTEADOF;
-}
-#line 5994 "Zend/zend_language_scanner.c"
-yy608:
-               YYDEBUG(608, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy609;
-               if (yych != 'c') goto yy187;
-yy609:
-               YYDEBUG(609, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy610;
-               if (yych != 'e') goto yy187;
-yy610:
-               YYDEBUG(610, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy611;
-               if (yych != 'o') goto yy187;
-yy611:
-               YYDEBUG(611, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'F') goto yy612;
-               if (yych != 'f') goto yy187;
-yy612:
-               YYDEBUG(612, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(613, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1112 "Zend/zend_language_scanner.l"
-               {
-       return T_INSTANCEOF;
-}
-#line 6027 "Zend/zend_language_scanner.c"
-yy614:
-               YYDEBUG(614, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy615;
-               if (yych != 'l') goto yy187;
-yy615:
-               YYDEBUG(615, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy616;
-               if (yych != 'e') goto yy187;
-yy616:
-               YYDEBUG(616, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'M') goto yy617;
-               if (yych != 'm') goto yy187;
-yy617:
-               YYDEBUG(617, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy618;
-               if (yych != 'e') goto yy187;
-yy618:
-               YYDEBUG(618, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy619;
-               if (yych != 'n') goto yy187;
-yy619:
-               YYDEBUG(619, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy620;
-               if (yych != 't') goto yy187;
-yy620:
-               YYDEBUG(620, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy621;
-               if (yych != 's') goto yy187;
-yy621:
-               YYDEBUG(621, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(622, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1172 "Zend/zend_language_scanner.l"
-               {
-       return T_IMPLEMENTS;
-}
-#line 6075 "Zend/zend_language_scanner.c"
-yy623:
-               YYDEBUG(623, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy631;
-               if (yych == 'r') goto yy631;
-               goto yy187;
-yy624:
-               YYDEBUG(624, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'Y') {
-                       if (yych == 'A') goto yy627;
-                       if (yych <= 'X') goto yy187;
-               } else {
-                       if (yych <= 'a') {
-                               if (yych <= '`') goto yy187;
-                               goto yy627;
-                       } else {
-                               if (yych != 'y') goto yy187;
-                       }
-               }
-               YYDEBUG(625, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(626, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1044 "Zend/zend_language_scanner.l"
-               {
-       return T_TRY;
-}
-#line 6107 "Zend/zend_language_scanner.c"
-yy627:
-               YYDEBUG(627, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy628;
-               if (yych != 'i') goto yy187;
-yy628:
-               YYDEBUG(628, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy629;
-               if (yych != 't') goto yy187;
-yy629:
-               YYDEBUG(629, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(630, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1164 "Zend/zend_language_scanner.l"
-               {
-       return T_TRAIT;
-}
-#line 6130 "Zend/zend_language_scanner.c"
-yy631:
-               YYDEBUG(631, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy632;
-               if (yych != 'o') goto yy187;
-yy632:
-               YYDEBUG(632, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'W') goto yy633;
-               if (yych != 'w') goto yy187;
-yy633:
-               YYDEBUG(633, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(634, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1056 "Zend/zend_language_scanner.l"
-               {
-       return T_THROW;
-}
-#line 6153 "Zend/zend_language_scanner.c"
-yy635:
-               YYDEBUG(635, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy636;
-               if (yych != 'e') goto yy187;
-yy636:
-               YYDEBUG(636, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy637;
-               if (yych != 'l') goto yy187;
-yy637:
-               YYDEBUG(637, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'D') goto yy638;
-               if (yych != 'd') goto yy187;
-yy638:
-               YYDEBUG(638, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(639, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1040 "Zend/zend_language_scanner.l"
-               {
-       return T_YIELD;
-}
-#line 6181 "Zend/zend_language_scanner.c"
-yy640:
-               YYDEBUG(640, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'T') {
-                       if (yych == 'Q') goto yy642;
-                       if (yych <= 'S') goto yy187;
-               } else {
-                       if (yych <= 'q') {
-                               if (yych <= 'p') goto yy187;
-                               goto yy642;
-                       } else {
-                               if (yych != 't') goto yy187;
-                       }
-               }
-               YYDEBUG(641, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'U') goto yy654;
-               if (yych == 'u') goto yy654;
-               goto yy187;
-yy642:
-               YYDEBUG(642, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'U') goto yy643;
-               if (yych != 'u') goto yy187;
-yy643:
-               YYDEBUG(643, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy644;
-               if (yych != 'i') goto yy187;
-yy644:
-               YYDEBUG(644, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy645;
-               if (yych != 'r') goto yy187;
-yy645:
-               YYDEBUG(645, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy646;
-               if (yych != 'e') goto yy187;
-yy646:
-               YYDEBUG(646, *YYCURSOR);
-               ++YYCURSOR;
-               if ((yych = *YYCURSOR) <= '^') {
-                       if (yych <= '9') {
-                               if (yych >= '0') goto yy186;
-                       } else {
-                               if (yych <= '@') goto yy647;
-                               if (yych <= 'Z') goto yy186;
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych <= '_') goto yy648;
-                       } else {
-                               if (yych <= 'z') goto yy186;
-                               if (yych >= 0x7F) goto yy186;
-                       }
-               }
-yy647:
-               YYDEBUG(647, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1266 "Zend/zend_language_scanner.l"
-               {
-       return T_REQUIRE;
-}
-#line 6246 "Zend/zend_language_scanner.c"
-yy648:
-               YYDEBUG(648, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy649;
-               if (yych != 'o') goto yy187;
-yy649:
-               YYDEBUG(649, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy650;
-               if (yych != 'n') goto yy187;
-yy650:
-               YYDEBUG(650, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy651;
-               if (yych != 'c') goto yy187;
-yy651:
-               YYDEBUG(651, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy652;
-               if (yych != 'e') goto yy187;
-yy652:
-               YYDEBUG(652, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(653, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1270 "Zend/zend_language_scanner.l"
-               {
-       return T_REQUIRE_ONCE;
-}
-#line 6279 "Zend/zend_language_scanner.c"
-yy654:
-               YYDEBUG(654, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy655;
-               if (yych != 'r') goto yy187;
-yy655:
-               YYDEBUG(655, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy656;
-               if (yych != 'n') goto yy187;
-yy656:
-               YYDEBUG(656, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(657, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1036 "Zend/zend_language_scanner.l"
-               {
-       return T_RETURN;
-}
-#line 6302 "Zend/zend_language_scanner.c"
-yy658:
-               YYDEBUG(658, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'T') {
-                       if (yych <= 'L') {
-                               if (yych <= 'K') goto yy187;
-                               goto yy681;
-                       } else {
-                               if (yych <= 'R') goto yy187;
-                               if (yych <= 'S') goto yy680;
-                               goto yy679;
-                       }
-               } else {
-                       if (yych <= 'r') {
-                               if (yych == 'l') goto yy681;
-                               goto yy187;
-                       } else {
-                               if (yych <= 's') goto yy680;
-                               if (yych <= 't') goto yy679;
-                               goto yy187;
-                       }
-               }
-yy659:
-               YYDEBUG(659, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'O') {
-                       if (yych == 'A') goto yy671;
-                       if (yych <= 'N') goto yy187;
-                       goto yy672;
-               } else {
-                       if (yych <= 'a') {
-                               if (yych <= '`') goto yy187;
-                               goto yy671;
-                       } else {
-                               if (yych == 'o') goto yy672;
-                               goto yy187;
-                       }
-               }
-yy660:
-               YYDEBUG(660, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy661;
-               if (yych != 'n') goto yy187;
-yy661:
-               YYDEBUG(661, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'T') {
-                       if (yych <= 'R') goto yy187;
-                       if (yych >= 'T') goto yy663;
-               } else {
-                       if (yych <= 'r') goto yy187;
-                       if (yych <= 's') goto yy662;
-                       if (yych <= 't') goto yy663;
-                       goto yy187;
-               }
-yy662:
-               YYDEBUG(662, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy669;
-               if (yych == 't') goto yy669;
-               goto yy187;
-yy663:
-               YYDEBUG(663, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy664;
-               if (yych != 'i') goto yy187;
-yy664:
-               YYDEBUG(664, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy665;
-               if (yych != 'n') goto yy187;
-yy665:
-               YYDEBUG(665, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'U') goto yy666;
-               if (yych != 'u') goto yy187;
-yy666:
-               YYDEBUG(666, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy667;
-               if (yych != 'e') goto yy187;
-yy667:
-               YYDEBUG(667, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(668, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1140 "Zend/zend_language_scanner.l"
-               {
-       return T_CONTINUE;
-}
-#line 6396 "Zend/zend_language_scanner.c"
-yy669:
-               YYDEBUG(669, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(670, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1032 "Zend/zend_language_scanner.l"
-               {
-       return T_CONST;
-}
-#line 6409 "Zend/zend_language_scanner.c"
-yy671:
-               YYDEBUG(671, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy676;
-               if (yych == 's') goto yy676;
-               goto yy187;
-yy672:
-               YYDEBUG(672, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy673;
-               if (yych != 'n') goto yy187;
-yy673:
-               YYDEBUG(673, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy674;
-               if (yych != 'e') goto yy187;
-yy674:
-               YYDEBUG(674, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(675, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1218 "Zend/zend_language_scanner.l"
-               {
-       return T_CLONE;
-}
-#line 6438 "Zend/zend_language_scanner.c"
-yy676:
-               YYDEBUG(676, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy677;
-               if (yych != 's') goto yy187;
-yy677:
-               YYDEBUG(677, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(678, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1156 "Zend/zend_language_scanner.l"
-               {
-       return T_CLASS;
-}
-#line 6456 "Zend/zend_language_scanner.c"
-yy679:
-               YYDEBUG(679, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy690;
-               if (yych == 'c') goto yy690;
-               goto yy187;
-yy680:
-               YYDEBUG(680, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy688;
-               if (yych == 'e') goto yy688;
-               goto yy187;
-yy681:
-               YYDEBUG(681, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy682;
-               if (yych != 'l') goto yy187;
-yy682:
-               YYDEBUG(682, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy683;
-               if (yych != 'a') goto yy187;
-yy683:
-               YYDEBUG(683, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'B') goto yy684;
-               if (yych != 'b') goto yy187;
-yy684:
-               YYDEBUG(684, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy685;
-               if (yych != 'l') goto yy187;
-yy685:
-               YYDEBUG(685, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy686;
-               if (yych != 'e') goto yy187;
-yy686:
-               YYDEBUG(686, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(687, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1342 "Zend/zend_language_scanner.l"
-               {
- return T_CALLABLE;
-}
-#line 6506 "Zend/zend_language_scanner.c"
-yy688:
-               YYDEBUG(688, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(689, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1128 "Zend/zend_language_scanner.l"
-               {
-       return T_CASE;
-}
-#line 6519 "Zend/zend_language_scanner.c"
-yy690:
-               YYDEBUG(690, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy691;
-               if (yych != 'h') goto yy187;
-yy691:
-               YYDEBUG(691, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(692, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1048 "Zend/zend_language_scanner.l"
-               {
-       return T_CATCH;
-}
-#line 6537 "Zend/zend_language_scanner.c"
-yy693:
-               YYDEBUG(693, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy710;
-               if (yych == 'n') goto yy710;
-               goto yy187;
-yy694:
-               YYDEBUG(694, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy703;
-               if (yych == 'r') goto yy703;
-               goto yy187;
-yy695:
-               YYDEBUG(695, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy696;
-               if (yych != 'n') goto yy187;
-yy696:
-               YYDEBUG(696, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy697;
-               if (yych != 'c') goto yy187;
-yy697:
-               YYDEBUG(697, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy698;
-               if (yych != 't') goto yy187;
-yy698:
-               YYDEBUG(698, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy699;
-               if (yych != 'i') goto yy187;
-yy699:
-               YYDEBUG(699, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy700;
-               if (yych != 'o') goto yy187;
-yy700:
-               YYDEBUG(700, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy701;
-               if (yych != 'n') goto yy187;
-yy701:
-               YYDEBUG(701, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(702, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1028 "Zend/zend_language_scanner.l"
-               {
-       return T_FUNCTION;
-}
-#line 6592 "Zend/zend_language_scanner.c"
-yy703:
-               YYDEBUG(703, *YYCURSOR);
-               ++YYCURSOR;
-               if ((yych = *YYCURSOR) <= '^') {
-                       if (yych <= '@') {
-                               if (yych <= '/') goto yy704;
-                               if (yych <= '9') goto yy186;
-                       } else {
-                               if (yych == 'E') goto yy705;
-                               if (yych <= 'Z') goto yy186;
-                       }
-               } else {
-                       if (yych <= 'd') {
-                               if (yych != '`') goto yy186;
-                       } else {
-                               if (yych <= 'e') goto yy705;
-                               if (yych <= 'z') goto yy186;
-                               if (yych >= 0x7F) goto yy186;
-                       }
-               }
-yy704:
-               YYDEBUG(704, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1088 "Zend/zend_language_scanner.l"
-               {
-       return T_FOR;
-}
-#line 6620 "Zend/zend_language_scanner.c"
-yy705:
-               YYDEBUG(705, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy706;
-               if (yych != 'a') goto yy187;
-yy706:
-               YYDEBUG(706, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy707;
-               if (yych != 'c') goto yy187;
-yy707:
-               YYDEBUG(707, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy708;
-               if (yych != 'h') goto yy187;
-yy708:
-               YYDEBUG(708, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(709, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1096 "Zend/zend_language_scanner.l"
-               {
-       return T_FOREACH;
-}
-#line 6648 "Zend/zend_language_scanner.c"
-yy710:
-               YYDEBUG(710, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy711;
-               if (yych != 'a') goto yy187;
-yy711:
-               YYDEBUG(711, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy712;
-               if (yych != 'l') goto yy187;
-yy712:
-               YYDEBUG(712, *YYCURSOR);
-               ++YYCURSOR;
-               if ((yych = *YYCURSOR) <= '^') {
-                       if (yych <= '@') {
-                               if (yych <= '/') goto yy713;
-                               if (yych <= '9') goto yy186;
-                       } else {
-                               if (yych == 'L') goto yy714;
-                               if (yych <= 'Z') goto yy186;
-                       }
-               } else {
-                       if (yych <= 'k') {
-                               if (yych != '`') goto yy186;
-                       } else {
-                               if (yych <= 'l') goto yy714;
-                               if (yych <= 'z') goto yy186;
-                               if (yych >= 0x7F) goto yy186;
-                       }
-               }
-yy713:
-               YYDEBUG(713, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1310 "Zend/zend_language_scanner.l"
-               {
-       return T_FINAL;
-}
-#line 6686 "Zend/zend_language_scanner.c"
-yy714:
-               YYDEBUG(714, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy715;
-               if (yych != 'y') goto yy187;
-yy715:
-               YYDEBUG(715, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(716, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1052 "Zend/zend_language_scanner.l"
-               {
-       return T_FINALLY;
-}
-#line 6704 "Zend/zend_language_scanner.c"
-yy717:
-               YYDEBUG(717, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'F') {
-                       if (yych == 'C') goto yy723;
-                       if (yych <= 'E') goto yy187;
-                       goto yy724;
-               } else {
-                       if (yych <= 'c') {
-                               if (yych <= 'b') goto yy187;
-                               goto yy723;
-                       } else {
-                               if (yych == 'f') goto yy724;
-                               goto yy187;
-                       }
-               }
-yy718:
-               YYDEBUG(718, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy721;
-               if (yych == 'e') goto yy721;
-               goto yy187;
-yy719:
-               YYDEBUG(719, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(720, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1084 "Zend/zend_language_scanner.l"
-               {
-       return T_DO;
-}
-#line 6739 "Zend/zend_language_scanner.c"
-yy721:
-               YYDEBUG(721, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(722, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1024 "Zend/zend_language_scanner.l"
-               {
-       return T_EXIT;
-}
-#line 6752 "Zend/zend_language_scanner.c"
-yy723:
-               YYDEBUG(723, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy730;
-               if (yych == 'l') goto yy730;
-               goto yy187;
-yy724:
-               YYDEBUG(724, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy725;
-               if (yych != 'a') goto yy187;
-yy725:
-               YYDEBUG(725, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'U') goto yy726;
-               if (yych != 'u') goto yy187;
-yy726:
-               YYDEBUG(726, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy727;
-               if (yych != 'l') goto yy187;
-yy727:
-               YYDEBUG(727, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy728;
-               if (yych != 't') goto yy187;
-yy728:
-               YYDEBUG(728, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(729, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1132 "Zend/zend_language_scanner.l"
-               {
-       return T_DEFAULT;
-}
-#line 6791 "Zend/zend_language_scanner.c"
-yy730:
-               YYDEBUG(730, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy731;
-               if (yych != 'a') goto yy187;
-yy731:
-               YYDEBUG(731, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy732;
-               if (yych != 'r') goto yy187;
-yy732:
-               YYDEBUG(732, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy733;
-               if (yych != 'e') goto yy187;
-yy733:
-               YYDEBUG(733, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(734, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1104 "Zend/zend_language_scanner.l"
-               {
-       return T_DECLARE;
-}
-#line 6819 "Zend/zend_language_scanner.c"
-yy735:
-               YYDEBUG(735, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy797;
-               if (yych == 'h') goto yy797;
-               goto yy187;
-yy736:
-               YYDEBUG(736, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy791;
-               if (yych == 's') goto yy791;
-               goto yy187;
-yy737:
-               YYDEBUG(737, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'P') goto yy787;
-               if (yych == 'p') goto yy787;
-               goto yy187;
-yy738:
-               YYDEBUG(738, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'D') goto yy753;
-               if (yych == 'd') goto yy753;
-               goto yy187;
-yy739:
-               YYDEBUG(739, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy750;
-               if (yych == 'a') goto yy750;
-               goto yy187;
-yy740:
-               YYDEBUG(740, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych <= 'T') {
-                       if (yych == 'I') goto yy741;
-                       if (yych <= 'S') goto yy187;
-                       goto yy742;
-               } else {
-                       if (yych <= 'i') {
-                               if (yych <= 'h') goto yy187;
-                       } else {
-                               if (yych == 't') goto yy742;
-                               goto yy187;
-                       }
-               }
-yy741:
-               YYDEBUG(741, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy748;
-               if (yych == 't') goto yy748;
-               goto yy187;
-yy742:
-               YYDEBUG(742, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy743;
-               if (yych != 'e') goto yy187;
-yy743:
-               YYDEBUG(743, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy744;
-               if (yych != 'n') goto yy187;
-yy744:
-               YYDEBUG(744, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'D') goto yy745;
-               if (yych != 'd') goto yy187;
-yy745:
-               YYDEBUG(745, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy746;
-               if (yych != 's') goto yy187;
-yy746:
-               YYDEBUG(746, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(747, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1168 "Zend/zend_language_scanner.l"
-               {
-       return T_EXTENDS;
-}
-#line 6903 "Zend/zend_language_scanner.c"
-yy748:
-               YYDEBUG(748, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(749, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1020 "Zend/zend_language_scanner.l"
-               {
-       return T_EXIT;
-}
-#line 6916 "Zend/zend_language_scanner.c"
-yy750:
-               YYDEBUG(750, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy751;
-               if (yych != 'l') goto yy187;
-yy751:
-               YYDEBUG(751, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(752, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1254 "Zend/zend_language_scanner.l"
-               {
-       return T_EVAL;
-}
-#line 6934 "Zend/zend_language_scanner.c"
-yy753:
-               YYDEBUG(753, *YYCURSOR);
-               yych = *++YYCURSOR;
-               YYDEBUG(-1, yych);
-               switch (yych) {
-               case 'D':
-               case 'd':       goto yy754;
-               case 'F':
-               case 'f':       goto yy755;
-               case 'I':
-               case 'i':       goto yy756;
-               case 'S':
-               case 's':       goto yy757;
-               case 'W':
-               case 'w':       goto yy758;
-               default:        goto yy187;
-               }
-yy754:
-               YYDEBUG(754, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy780;
-               if (yych == 'e') goto yy780;
-               goto yy187;
-yy755:
-               YYDEBUG(755, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy772;
-               if (yych == 'o') goto yy772;
-               goto yy187;
-yy756:
-               YYDEBUG(756, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'F') goto yy770;
-               if (yych == 'f') goto yy770;
-               goto yy187;
-yy757:
-               YYDEBUG(757, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'W') goto yy764;
-               if (yych == 'w') goto yy764;
-               goto yy187;
-yy758:
-               YYDEBUG(758, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy759;
-               if (yych != 'h') goto yy187;
-yy759:
-               YYDEBUG(759, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy760;
-               if (yych != 'i') goto yy187;
-yy760:
-               YYDEBUG(760, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy761;
-               if (yych != 'l') goto yy187;
-yy761:
-               YYDEBUG(761, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy762;
-               if (yych != 'e') goto yy187;
-yy762:
-               YYDEBUG(762, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(763, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1080 "Zend/zend_language_scanner.l"
-               {
-       return T_ENDWHILE;
-}
-#line 7008 "Zend/zend_language_scanner.c"
-yy764:
-               YYDEBUG(764, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'I') goto yy765;
-               if (yych != 'i') goto yy187;
-yy765:
-               YYDEBUG(765, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy766;
-               if (yych != 't') goto yy187;
-yy766:
-               YYDEBUG(766, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy767;
-               if (yych != 'c') goto yy187;
-yy767:
-               YYDEBUG(767, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy768;
-               if (yych != 'h') goto yy187;
-yy768:
-               YYDEBUG(768, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(769, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1124 "Zend/zend_language_scanner.l"
-               {
-       return T_ENDSWITCH;
-}
-#line 7041 "Zend/zend_language_scanner.c"
-yy770:
-               YYDEBUG(770, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(771, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1068 "Zend/zend_language_scanner.l"
-               {
-       return T_ENDIF;
-}
-#line 7054 "Zend/zend_language_scanner.c"
-yy772:
-               YYDEBUG(772, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy773;
-               if (yych != 'r') goto yy187;
-yy773:
-               YYDEBUG(773, *YYCURSOR);
-               ++YYCURSOR;
-               if ((yych = *YYCURSOR) <= '^') {
-                       if (yych <= '@') {
-                               if (yych <= '/') goto yy774;
-                               if (yych <= '9') goto yy186;
-                       } else {
-                               if (yych == 'E') goto yy775;
-                               if (yych <= 'Z') goto yy186;
-                       }
-               } else {
-                       if (yych <= 'd') {
-                               if (yych != '`') goto yy186;
-                       } else {
-                               if (yych <= 'e') goto yy775;
-                               if (yych <= 'z') goto yy186;
-                               if (yych >= 0x7F) goto yy186;
-                       }
-               }
-yy774:
-               YYDEBUG(774, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1092 "Zend/zend_language_scanner.l"
-               {
-       return T_ENDFOR;
-}
-#line 7087 "Zend/zend_language_scanner.c"
-yy775:
-               YYDEBUG(775, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy776;
-               if (yych != 'a') goto yy187;
-yy776:
-               YYDEBUG(776, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy777;
-               if (yych != 'c') goto yy187;
-yy777:
-               YYDEBUG(777, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'H') goto yy778;
-               if (yych != 'h') goto yy187;
-yy778:
-               YYDEBUG(778, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(779, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1100 "Zend/zend_language_scanner.l"
-               {
-       return T_ENDFOREACH;
-}
-#line 7115 "Zend/zend_language_scanner.c"
-yy780:
-               YYDEBUG(780, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy781;
-               if (yych != 'c') goto yy187;
-yy781:
-               YYDEBUG(781, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy782;
-               if (yych != 'l') goto yy187;
-yy782:
-               YYDEBUG(782, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy783;
-               if (yych != 'a') goto yy187;
-yy783:
-               YYDEBUG(783, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'R') goto yy784;
-               if (yych != 'r') goto yy187;
-yy784:
-               YYDEBUG(784, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy785;
-               if (yych != 'e') goto yy187;
-yy785:
-               YYDEBUG(785, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(786, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1108 "Zend/zend_language_scanner.l"
-               {
-       return T_ENDDECLARE;
-}
-#line 7153 "Zend/zend_language_scanner.c"
-yy787:
-               YYDEBUG(787, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'T') goto yy788;
-               if (yych != 't') goto yy187;
-yy788:
-               YYDEBUG(788, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy789;
-               if (yych != 'y') goto yy187;
-yy789:
-               YYDEBUG(789, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(790, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1294 "Zend/zend_language_scanner.l"
-               {
-       return T_EMPTY;
-}
-#line 7176 "Zend/zend_language_scanner.c"
-yy791:
-               YYDEBUG(791, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy792;
-               if (yych != 'e') goto yy187;
-yy792:
-               YYDEBUG(792, *YYCURSOR);
-               ++YYCURSOR;
-               if ((yych = *YYCURSOR) <= '^') {
-                       if (yych <= '@') {
-                               if (yych <= '/') goto yy793;
-                               if (yych <= '9') goto yy186;
-                       } else {
-                               if (yych == 'I') goto yy794;
-                               if (yych <= 'Z') goto yy186;
-                       }
-               } else {
-                       if (yych <= 'h') {
-                               if (yych != '`') goto yy186;
-                       } else {
-                               if (yych <= 'i') goto yy794;
-                               if (yych <= 'z') goto yy186;
-                               if (yych >= 0x7F) goto yy186;
-                       }
-               }
-yy793:
-               YYDEBUG(793, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1072 "Zend/zend_language_scanner.l"
-               {
-       return T_ELSE;
-}
-#line 7209 "Zend/zend_language_scanner.c"
-yy794:
-               YYDEBUG(794, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'F') goto yy795;
-               if (yych != 'f') goto yy187;
-yy795:
-               YYDEBUG(795, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(796, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1064 "Zend/zend_language_scanner.l"
-               {
-       return T_ELSEIF;
-}
-#line 7227 "Zend/zend_language_scanner.c"
-yy797:
-               YYDEBUG(797, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'O') goto yy798;
-               if (yych != 'o') goto yy187;
-yy798:
-               YYDEBUG(798, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 4) {
-                       goto yy186;
-               }
-               YYDEBUG(799, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1148 "Zend/zend_language_scanner.l"
-               {
-       return T_ECHO;
-}
-#line 7245 "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(800, *YYCURSOR);
-               YYFILL(2);
-               yych = *YYCURSOR;
-               if (yych <= '-') {
-                       if (yych <= '\r') {
-                               if (yych <= 0x08) goto yy808;
-                               if (yych <= '\n') goto yy802;
-                               if (yych <= '\f') goto yy808;
-                       } else {
-                               if (yych == ' ') goto yy802;
-                               if (yych <= ',') goto yy808;
-                               goto yy804;
-                       }
-               } else {
-                       if (yych <= '_') {
-                               if (yych <= '@') goto yy808;
-                               if (yych <= 'Z') goto yy806;
-                               if (yych <= '^') goto yy808;
-                               goto yy806;
-                       } else {
-                               if (yych <= '`') goto yy808;
-                               if (yych <= 'z') goto yy806;
-                               if (yych <= '~') goto yy808;
-                               goto yy806;
-                       }
-               }
-yy802:
-               YYDEBUG(802, *YYCURSOR);
-               ++YYCURSOR;
-               yych = *YYCURSOR;
-               goto yy814;
-yy803:
-               YYDEBUG(803, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1181 "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 7326 "Zend/zend_language_scanner.c"
-yy804:
-               YYDEBUG(804, *YYCURSOR);
-               ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '>') goto yy811;
-yy805:
-               YYDEBUG(805, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1200 "Zend/zend_language_scanner.l"
-               {
-       yyless(0);
-       yy_pop_state(TSRMLS_C);
-       goto restart;
-}
-#line 7340 "Zend/zend_language_scanner.c"
-yy806:
-               YYDEBUG(806, *YYCURSOR);
-               ++YYCURSOR;
-               yych = *YYCURSOR;
-               goto yy810;
-yy807:
-               YYDEBUG(807, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1193 "Zend/zend_language_scanner.l"
-               {
-       yy_pop_state(TSRMLS_C);
-       zend_copy_value(zendlval, yytext, yyleng);
-       zendlval->type = IS_STRING;
-       return T_STRING;
-}
-#line 7356 "Zend/zend_language_scanner.c"
-yy808:
-               YYDEBUG(808, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy805;
-yy809:
-               YYDEBUG(809, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy810:
-               YYDEBUG(810, *YYCURSOR);
-               if (yybm[0+yych] & 64) {
-                       goto yy809;
-               }
-               goto yy807;
-yy811:
-               YYDEBUG(811, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(812, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1189 "Zend/zend_language_scanner.l"
-               {
-       return T_OBJECT_OPERATOR;
-}
-#line 7381 "Zend/zend_language_scanner.c"
-yy813:
-               YYDEBUG(813, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy814:
-               YYDEBUG(814, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy813;
-               }
-               goto yy803;
-       }
-/* *********************************** */
-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(815, *YYCURSOR);
-               YYFILL(2);
-               yych = *YYCURSOR;
-               if (yych <= '_') {
-                       if (yych <= '@') goto yy819;
-                       if (yych <= 'Z') goto yy817;
-                       if (yych <= '^') goto yy819;
-               } else {
-                       if (yych <= '`') goto yy819;
-                       if (yych <= 'z') goto yy817;
-                       if (yych <= '~') goto yy819;
-               }
-yy817:
-               YYDEBUG(817, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= '_') {
-                       if (yych <= '@') {
-                               if (yych <= '/') goto yy818;
-                               if (yych <= '9') goto yy821;
-                       } else {
-                               if (yych <= '[') goto yy821;
-                               if (yych >= '_') goto yy821;
-                       }
-               } else {
-                       if (yych <= '|') {
-                               if (yych <= '`') goto yy818;
-                               if (yych <= 'z') goto yy821;
-                       } else {
-                               if (yych != '~') goto yy821;
-                       }
-               }
-yy818:
-               YYDEBUG(818, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1486 "Zend/zend_language_scanner.l"
-               {
-       yyless(0);
-       yy_pop_state(TSRMLS_C);
-       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
-       goto restart;
-}
-#line 7473 "Zend/zend_language_scanner.c"
-yy819:
-               YYDEBUG(819, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy818;
-yy820:
-               YYDEBUG(820, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy821:
-               YYDEBUG(821, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy820;
-               }
-               if (yych == '[') goto yy823;
-               if (yych == '}') goto yy823;
-               YYDEBUG(822, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               goto yy818;
-yy823:
-               YYDEBUG(823, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(824, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1476 "Zend/zend_language_scanner.l"
-               {
-       yyless(yyleng - 1);
-       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 7507 "Zend/zend_language_scanner.c"
-       }
-/* *********************************** */
-yyc_ST_NOWDOC:
-       YYDEBUG(825, *YYCURSOR);
-       YYFILL(1);
-       yych = *YYCURSOR;
-       YYDEBUG(827, *YYCURSOR);
-       ++YYCURSOR;
-       YYDEBUG(828, *YYCURSOR);
-       yyleng = YYCURSOR - SCNG(yy_text);
-#line 2370 "Zend/zend_language_scanner.l"
-       {
-       int newline = 0;
-
-       zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
-
-       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) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
-                                       YYCTYPE *end = YYCURSOR + heredoc_label->length;
-
-                                       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 7575 "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, 
-                       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(829, *YYCURSOR);
-               YYFILL(3);
-               yych = *YYCURSOR;
-               if (yych <= '/') {
-                       if (yych <= ' ') {
-                               if (yych <= '\f') {
-                                       if (yych <= 0x08) goto yy843;
-                                       if (yych <= '\n') goto yy839;
-                                       goto yy843;
-                               } else {
-                                       if (yych <= '\r') goto yy839;
-                                       if (yych <= 0x1F) goto yy843;
-                                       goto yy839;
-                               }
-                       } else {
-                               if (yych <= '$') {
-                                       if (yych <= '"') goto yy838;
-                                       if (yych <= '#') goto yy839;
-                                       goto yy834;
-                               } else {
-                                       if (yych == '\'') goto yy839;
-                                       goto yy838;
-                               }
-                       }
-               } else {
-                       if (yych <= '\\') {
-                               if (yych <= '@') {
-                                       if (yych <= '0') goto yy831;
-                                       if (yych <= '9') goto yy833;
-                                       goto yy838;
-                               } else {
-                                       if (yych <= 'Z') goto yy841;
-                                       if (yych <= '[') goto yy838;
-                                       goto yy839;
-                               }
-                       } else {
-                               if (yych <= '_') {
-                                       if (yych <= ']') goto yy836;
-                                       if (yych <= '^') goto yy838;
-                                       goto yy841;
-                               } else {
-                                       if (yych <= '`') goto yy838;
-                                       if (yych <= 'z') goto yy841;
-                                       if (yych <= '~') goto yy838;
-                                       goto yy841;
-                               }
-                       }
-               }
-yy831:
-               YYDEBUG(831, *YYCURSOR);
-               yyaccept = 0;
-               yych = *(YYMARKER = ++YYCURSOR);
-               if (yych <= 'W') {
-                       if (yych <= '9') {
-                               if (yych >= '0') goto yy855;
-                       } else {
-                               if (yych == 'B') goto yy852;
-                       }
-               } else {
-                       if (yych <= 'b') {
-                               if (yych <= 'X') goto yy854;
-                               if (yych >= 'b') goto yy852;
-                       } else {
-                               if (yych == 'x') goto yy854;
-                       }
-               }
-yy832:
-               YYDEBUG(832, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1564 "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 7694 "Zend/zend_language_scanner.c"
-yy833:
-               YYDEBUG(833, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy851;
-yy834:
-               YYDEBUG(834, *YYCURSOR);
-               ++YYCURSOR;
-               if ((yych = *YYCURSOR) <= '_') {
-                       if (yych <= '@') goto yy835;
-                       if (yych <= 'Z') goto yy847;
-                       if (yych >= '_') goto yy847;
-               } else {
-                       if (yych <= '`') goto yy835;
-                       if (yych <= 'z') goto yy847;
-                       if (yych >= 0x7F) goto yy847;
-               }
-yy835:
-               YYDEBUG(835, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1896 "Zend/zend_language_scanner.l"
-               {
-       /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
-       return yytext[0];
-}
-#line 7719 "Zend/zend_language_scanner.c"
-yy836:
-               YYDEBUG(836, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(837, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1891 "Zend/zend_language_scanner.l"
-               {
-       yy_pop_state(TSRMLS_C);
-       return ']';
-}
-#line 7730 "Zend/zend_language_scanner.c"
-yy838:
-               YYDEBUG(838, *YYCURSOR);
-               yych = *++YYCURSOR;
-               goto yy835;
-yy839:
-               YYDEBUG(839, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(840, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1901 "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 7747 "Zend/zend_language_scanner.c"
-yy841:
-               YYDEBUG(841, *YYCURSOR);
-               ++YYCURSOR;
-               yych = *YYCURSOR;
-               goto yy846;
-yy842:
-               YYDEBUG(842, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1908 "Zend/zend_language_scanner.l"
-               {
-       zend_copy_value(zendlval, yytext, yyleng);
-       zendlval->type = IS_STRING;
-       return T_STRING;
-}
-#line 7762 "Zend/zend_language_scanner.c"
-yy843:
-               YYDEBUG(843, *YYCURSOR);
-               ++YYCURSOR;
-               YYDEBUG(844, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 2428 "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 7777 "Zend/zend_language_scanner.c"
-yy845:
-               YYDEBUG(845, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy846:
-               YYDEBUG(846, *YYCURSOR);
-               if (yybm[0+yych] & 16) {
-                       goto yy845;
-               }
-               goto yy842;
-yy847:
-               YYDEBUG(847, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(848, *YYCURSOR);
-               if (yych <= '^') {
-                       if (yych <= '9') {
-                               if (yych >= '0') goto yy847;
-                       } else {
-                               if (yych <= '@') goto yy849;
-                               if (yych <= 'Z') goto yy847;
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych <= '_') goto yy847;
-                       } else {
-                               if (yych <= 'z') goto yy847;
-                               if (yych >= 0x7F) goto yy847;
-                       }
-               }
-yy849:
-               YYDEBUG(849, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1885 "Zend/zend_language_scanner.l"
-               {
-       zend_copy_value(zendlval, (yytext+1), (yyleng-1));
-       zendlval->type = IS_STRING;
-       return T_VARIABLE;
-}
-#line 7819 "Zend/zend_language_scanner.c"
-yy850:
-               YYDEBUG(850, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-yy851:
-               YYDEBUG(851, *YYCURSOR);
-               if (yybm[0+yych] & 32) {
-                       goto yy850;
-               }
-               goto yy832;
-yy852:
-               YYDEBUG(852, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 128) {
-                       goto yy860;
-               }
-yy853:
-               YYDEBUG(853, *YYCURSOR);
-               YYCURSOR = YYMARKER;
-               goto yy832;
-yy854:
-               YYDEBUG(854, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yybm[0+yych] & 64) {
-                       goto yy858;
-               }
-               goto yy853;
-yy855:
-               YYDEBUG(855, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(856, *YYCURSOR);
-               if (yych <= '/') goto yy857;
-               if (yych <= '9') goto yy855;
-yy857:
-               YYDEBUG(857, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 1576 "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 7866 "Zend/zend_language_scanner.c"
-yy858:
-               YYDEBUG(858, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(859, *YYCURSOR);
-               if (yybm[0+yych] & 64) {
-                       goto yy858;
-               }
-               goto yy857;
-yy860:
-               YYDEBUG(860, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(861, *YYCURSOR);
-               if (yybm[0+yych] & 128) {
-                       goto yy860;
-               }
-               goto yy857;
-       }
-}
-#line 2437 "Zend/zend_language_scanner.l"
-
-}
+/* Generated by re2c 0.13.5 */\r
+#line 1 "Zend/zend_language_scanner.l"\r
+/*\r
+   +----------------------------------------------------------------------+\r
+   | Zend Engine                                                          |\r
+   +----------------------------------------------------------------------+\r
+   | Copyright (c) 1998-2013 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
+#ifdef PHP_WIN32\r
+# include <Winuser.h>\r
+#endif\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 size_t encoding_filter_script_to_internal(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length TSRMLS_DC)\r
+{\r
+       const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding(TSRMLS_C);\r
+       assert(internal_encoding && zend_multibyte_check_lexer_compatibility(internal_encoding));\r
+       return zend_multibyte_encoding_converter(to, to_length, from, from_length, internal_encoding, LANG_SCNG(script_encoding) TSRMLS_CC);\r
+}\r
+\r
+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)\r
+{\r
+       return zend_multibyte_encoding_converter(to, to_length, from, from_length, zend_multibyte_encoding_utf8, LANG_SCNG(script_encoding) TSRMLS_CC);\r
+}\r
+\r
+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)\r
+{\r
+       return zend_multibyte_encoding_converter(to, to_length, from, from_length,\r
+LANG_SCNG(script_encoding), zend_multibyte_encoding_utf8 TSRMLS_CC);\r
+}\r
+\r
+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)\r
+{\r
+       const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding(TSRMLS_C);\r
+       assert(internal_encoding && zend_multibyte_check_lexer_compatibility(internal_encoding));\r
+       return zend_multibyte_encoding_converter(to, to_length, from, from_length,\r
+internal_encoding, zend_multibyte_encoding_utf8 TSRMLS_CC);\r
+}\r
+\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(parse_error) = 0;\r
+       CG(doc_comment) = NULL;\r
+       CG(doc_comment_len) = 0;\r
+       zend_stack_init(&SCNG(state_stack));\r
+       zend_ptr_stack_init(&SCNG(heredoc_label_stack));\r
+}\r
+\r
+static void heredoc_label_dtor(zend_heredoc_label *heredoc_label) {\r
+    efree(heredoc_label->label);\r
+}\r
+\r
+void shutdown_scanner(TSRMLS_D)\r
+{\r
+       CG(parse_error) = 0;\r
+       RESET_DOC_COMMENT();\r
+       zend_stack_destroy(&SCNG(state_stack));\r
+       zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);\r
+       zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));\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->heredoc_label_stack = SCNG(heredoc_label_stack);\r
+       zend_ptr_stack_init(&SCNG(heredoc_label_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
+       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
+}\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
+       zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);\r
+       zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));\r
+       SCNG(heredoc_label_stack) = lex_state->heredoc_label_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
+\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
+}\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
+#define BOM_UTF32_BE   "\x00\x00\xfe\xff"\r
+#define        BOM_UTF32_LE    "\xff\xfe\x00\x00"\r
+#define        BOM_UTF16_BE    "\xfe\xff"\r
+#define        BOM_UTF16_LE    "\xff\xfe"\r
+#define        BOM_UTF8                "\xef\xbb\xbf"\r
+\r
+static const zend_encoding *zend_multibyte_detect_utf_encoding(const unsigned char *script, size_t script_size TSRMLS_DC)\r
+{\r
+       const unsigned char *p;\r
+       int wchar_size = 2;\r
+       int le = 0;\r
+\r
+       /* utf-16 or utf-32? */\r
+       p = script;\r
+       while ((p-script) < script_size) {\r
+               p = memchr(p, 0, script_size-(p-script)-2);\r
+               if (!p) {\r
+                       break;\r
+               }\r
+               if (*(p+1) == '\0' && *(p+2) == '\0') {\r
+                       wchar_size = 4;\r
+                       break;\r
+               }\r
+\r
+               /* searching for UTF-32 specific byte orders, so this will do */\r
+               p += 4;\r
+       }\r
+\r
+       /* BE or LE? */\r
+       p = script;\r
+       while ((p-script) < script_size) {\r
+               if (*p == '\0' && *(p+wchar_size-1) != '\0') {\r
+                       /* BE */\r
+                       le = 0;\r
+                       break;\r
+               } else if (*p != '\0' && *(p+wchar_size-1) == '\0') {\r
+                       /* LE* */\r
+                       le = 1;\r
+                       break;\r
+               }\r
+               p += wchar_size;\r
+       }\r
+\r
+       if (wchar_size == 2) {\r
+               return le ? zend_multibyte_encoding_utf16le : zend_multibyte_encoding_utf16be;\r
+       } else {\r
+               return le ? zend_multibyte_encoding_utf32le : zend_multibyte_encoding_utf32be;\r
+       }\r
+\r
+       return NULL;\r
+}\r
+\r
+static const zend_encoding* zend_multibyte_detect_unicode(TSRMLS_D)\r
+{\r
+       const zend_encoding *script_encoding = NULL;\r
+       int bom_size;\r
+       unsigned char *pos1, *pos2;\r
+\r
+       if (LANG_SCNG(script_org_size) < sizeof(BOM_UTF32_LE)-1) {\r
+               return NULL;\r
+       }\r
+\r
+       /* check out BOM */\r
+       if (!memcmp(LANG_SCNG(script_org), BOM_UTF32_BE, sizeof(BOM_UTF32_BE)-1)) {\r
+               script_encoding = zend_multibyte_encoding_utf32be;\r
+               bom_size = sizeof(BOM_UTF32_BE)-1;\r
+       } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF32_LE, sizeof(BOM_UTF32_LE)-1)) {\r
+               script_encoding = zend_multibyte_encoding_utf32le;\r
+               bom_size = sizeof(BOM_UTF32_LE)-1;\r
+       } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF16_BE, sizeof(BOM_UTF16_BE)-1)) {\r
+               script_encoding = zend_multibyte_encoding_utf16be;\r
+               bom_size = sizeof(BOM_UTF16_BE)-1;\r
+       } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF16_LE, sizeof(BOM_UTF16_LE)-1)) {\r
+               script_encoding = zend_multibyte_encoding_utf16le;\r
+               bom_size = sizeof(BOM_UTF16_LE)-1;\r
+       } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF8, sizeof(BOM_UTF8)-1)) {\r
+               script_encoding = zend_multibyte_encoding_utf8;\r
+               bom_size = sizeof(BOM_UTF8)-1;\r
+       }\r
+\r
+       if (script_encoding) {\r
+               /* remove BOM */\r
+               LANG_SCNG(script_org) += bom_size;\r
+               LANG_SCNG(script_org_size) -= bom_size;\r
+\r
+               return script_encoding;\r
+       }\r
+\r
+       /* script contains NULL bytes -> auto-detection */\r
+       if ((pos1 = memchr(LANG_SCNG(script_org), 0, LANG_SCNG(script_org_size)))) {\r
+               /* check if the NULL byte is after the __HALT_COMPILER(); */\r
+               pos2 = LANG_SCNG(script_org);\r
+\r
+               while (pos1 - pos2 >= sizeof("__HALT_COMPILER();")-1) {\r
+                       pos2 = memchr(pos2, '_', pos1 - pos2);\r
+                       if (!pos2) break;\r
+                       pos2++;\r
+                       if (strncasecmp((char*)pos2, "_HALT_COMPILER", sizeof("_HALT_COMPILER")-1) == 0) {\r
+                               pos2 += sizeof("_HALT_COMPILER")-1;\r
+                               while (*pos2 == ' '  ||\r
+                                          *pos2 == '\t' ||\r
+                                          *pos2 == '\r' ||\r
+                                          *pos2 == '\n') {\r
+                                       pos2++;\r
+                               }\r
+                               if (*pos2 == '(') {\r
+                                       pos2++;\r
+                                       while (*pos2 == ' '  ||\r
+                                                  *pos2 == '\t' ||\r
+                                                  *pos2 == '\r' ||\r
+                                                  *pos2 == '\n') {\r
+                                               pos2++;\r
+                                       }\r
+                                       if (*pos2 == ')') {\r
+                                               pos2++;\r
+                                               while (*pos2 == ' '  ||\r
+                                                          *pos2 == '\t' ||\r
+                                                          *pos2 == '\r' ||\r
+                                                          *pos2 == '\n') {\r
+                                                       pos2++;\r
+                                               }\r
+                                               if (*pos2 == ';') {\r
+                                                       return NULL;\r
+                                               }\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+               /* make best effort if BOM is missing */\r
+               return zend_multibyte_detect_utf_encoding(LANG_SCNG(script_org), LANG_SCNG(script_org_size) TSRMLS_CC);\r
+       }\r
+\r
+       return NULL;\r
+}\r
+\r
+static const zend_encoding* zend_multibyte_find_script_encoding(TSRMLS_D)\r
+{\r
+       const zend_encoding *script_encoding;\r
+\r
+       if (CG(detect_unicode)) {\r
+               /* check out bom(byte order mark) and see if containing wchars */\r
+               script_encoding = zend_multibyte_detect_unicode(TSRMLS_C);\r
+               if (script_encoding != NULL) {\r
+                       /* bom or wchar detection is prior to 'script_encoding' option */\r
+                       return script_encoding;\r
+               }\r
+       }\r
+\r
+       /* if no script_encoding specified, just leave alone */\r
+       if (!CG(script_encoding_list) || !CG(script_encoding_list_size)) {\r
+               return NULL;\r
+       }\r
+\r
+       /* if multiple encodings specified, detect automagically */\r
+       if (CG(script_encoding_list_size) > 1) {\r
+               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);\r
+       }\r
+\r
+       return CG(script_encoding_list)[0];\r
+}\r
+\r
+ZEND_API int zend_multibyte_set_filter(const zend_encoding *onetime_encoding TSRMLS_DC)\r
+{\r
+       const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding(TSRMLS_C);\r
+       const zend_encoding *script_encoding = onetime_encoding ? onetime_encoding: zend_multibyte_find_script_encoding(TSRMLS_C);\r
+\r
+       if (!script_encoding) {\r
+               return FAILURE;\r
+       }\r
+\r
+       /* judge input/output filter */\r
+       LANG_SCNG(script_encoding) = script_encoding;\r
+       LANG_SCNG(input_filter) = NULL;\r
+       LANG_SCNG(output_filter) = NULL;\r
+\r
+       if (!internal_encoding || LANG_SCNG(script_encoding) == internal_encoding) {\r
+               if (!zend_multibyte_check_lexer_compatibility(LANG_SCNG(script_encoding))) {\r
+                       /* and if not, work around w/ script_encoding -> utf-8 -> script_encoding conversion */\r
+                       LANG_SCNG(input_filter) = encoding_filter_script_to_intermediate;\r
+                       LANG_SCNG(output_filter) = encoding_filter_intermediate_to_script;\r
+               } else {\r
+                       LANG_SCNG(input_filter) = NULL;\r
+                       LANG_SCNG(output_filter) = NULL;\r
+               }\r
+               return SUCCESS;\r
+       }\r
+\r
+       if (zend_multibyte_check_lexer_compatibility(internal_encoding)) {\r
+               LANG_SCNG(input_filter) = encoding_filter_script_to_internal;\r
+               LANG_SCNG(output_filter) = NULL;\r
+       } else if (zend_multibyte_check_lexer_compatibility(LANG_SCNG(script_encoding))) {\r
+               LANG_SCNG(input_filter) = NULL;\r
+               LANG_SCNG(output_filter) = encoding_filter_script_to_internal;\r
+       } else {\r
+               /* both script and internal encodings are incompatible w/ flex */\r
+               LANG_SCNG(input_filter) = encoding_filter_script_to_intermediate;\r
+               LANG_SCNG(output_filter) = encoding_filter_intermediate_to_internal;\r
+       }\r
+\r
+       return 0;\r
+}\r
+\r
+ZEND_API int open_file_for_scanning(zend_file_handle *file_handle TSRMLS_DC)\r
+{\r
+       const char *file_path = NULL;\r
+       char *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
+               if (CG(multibyte)) {\r
+                       SCNG(script_org) = (unsigned char*)buf;\r
+                       SCNG(script_org_size) = size;\r
+                       SCNG(script_filtered) = NULL;\r
+\r
+                       zend_multibyte_set_filter(NULL TSRMLS_CC);\r
+\r
+                       if (SCNG(input_filter)) {\r
+                               if ((size_t)-1 == SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size) TSRMLS_CC)) {\r
+                                       zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "\r
+                                                       "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));\r
+                               }\r
+                               buf = (char*)SCNG(script_filtered);\r
+                               size = SCNG(script_filtered_size);\r
+                       }\r
+               }\r
+               SCNG(yy_start) = (unsigned char *)buf - offset;\r
+               yy_scan_buffer(buf, size TSRMLS_CC);\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
+               zend_stack_push(&CG(context_stack), (void *) &CG(context), sizeof(CG(context)));\r
+               zend_init_compiler_context(TSRMLS_C);\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
+       char *buf;\r
+       size_t size;\r
+\r
+       /* enforce two trailing NULLs for flex... */\r
+       if (IS_INTERNED(str->value.str.val)) {\r
+               char *tmp = safe_emalloc(1, str->value.str.len, ZEND_MMAP_AHEAD);\r
+               memcpy(tmp, str->value.str.val, str->value.str.len + ZEND_MMAP_AHEAD);\r
+               str->value.str.val = tmp;\r
+       } else {\r
+               str->value.str.val = safe_erealloc(str->value.str.val, 1, str->value.str.len, ZEND_MMAP_AHEAD);\r
+       }\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
+       buf = str->value.str.val;\r
+       size = str->value.str.len;\r
+\r
+       if (CG(multibyte)) {\r
+               SCNG(script_org) = (unsigned char*)buf;\r
+               SCNG(script_org_size) = size;\r
+               SCNG(script_filtered) = NULL;\r
+\r
+               zend_multibyte_set_filter(zend_multibyte_get_internal_encoding(TSRMLS_C) TSRMLS_CC);\r
+\r
+               if (SCNG(input_filter)) {\r
+                       if ((size_t)-1 == SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size) TSRMLS_CC)) {\r
+                               zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "\r
+                                               "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));\r
+                       }\r
+                       buf = (char*)SCNG(script_filtered);\r
+                       size = SCNG(script_filtered_size);\r
+               }\r
+       }\r
+\r
+       yy_scan_buffer(buf, size TSRMLS_CC);\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
+       if (SCNG(input_filter)) {\r
+               size_t original_offset = offset, length = 0;\r
+               do {\r
+                       unsigned char *p = NULL;\r
+                       if ((size_t)-1 == SCNG(input_filter)(&p, &length, SCNG(script_org), offset TSRMLS_CC)) {\r
+                               return (size_t)-1;\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
+       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
+               zend_stack_push(&CG(context_stack), (void *) &CG(context), sizeof(CG(context)));\r
+               zend_init_compiler_context(TSRMLS_C);\r
+               BEGIN(ST_IN_SCRIPTING);\r
+               compiler_result = zendparse(TSRMLS_C);\r
+\r
+               if (SCNG(script_filtered)) {\r
+                       efree(SCNG(script_filtered));\r
+                       SCNG(script_filtered) = NULL;\r
+               }\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
+       if (SCNG(script_filtered)) {\r
+               efree(SCNG(script_filtered));\r
+               SCNG(script_filtered) = NULL;\r
+       }\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
+       if (SCNG(script_filtered)) {\r
+               efree(SCNG(script_filtered));\r
+               SCNG(script_filtered) = NULL;\r
+       }\r
+       zend_restore_lexical_state(&original_lex_state TSRMLS_CC);\r
+       zval_dtor(str);\r
+       return SUCCESS;\r
+}\r
+\r
+ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter, const zend_encoding *old_encoding TSRMLS_DC)\r
+{\r
+       size_t length;\r
+       unsigned char *new_yy_start;\r
+\r
+       /* convert and set */\r
+       if (!SCNG(input_filter)) {\r
+               if (SCNG(script_filtered)) {\r
+                       efree(SCNG(script_filtered));\r
+                       SCNG(script_filtered) = NULL;\r
+               }\r
+               SCNG(script_filtered_size) = 0;\r
+               length = SCNG(script_org_size);\r
+               new_yy_start = SCNG(script_org);\r
+       } else {\r
+               if ((size_t)-1 == SCNG(input_filter)(&new_yy_start, &length, SCNG(script_org), SCNG(script_org_size) TSRMLS_CC)) {\r
+                       zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "\r
+                                       "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));\r
+               }\r
+               SCNG(script_filtered) = new_yy_start;\r
+               SCNG(script_filtered_size) = length;\r
+       }\r
+\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_limit) = new_yy_start + (SCNG(yy_limit) - SCNG(yy_start));\r
+\r
+       SCNG(yy_start) = new_yy_start;\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
+\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 'e':\r
+#ifdef PHP_WIN32\r
+                                       *t++ = VK_ESCAPE;\r
+#else\r
+                                       *t++ = '\e';\r
+#endif\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
+       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
+}\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 1006 "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 1803 "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((char*)YYCURSOR + 1, "php", 3) || (*(YYCURSOR + 1) == '=')) { /* 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
+       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
+       zendlval->type = IS_STRING;\r
+       HANDLE_NEWLINES(yytext, yyleng);\r
+       return T_INLINE_HTML;\r
+}\r
+#line 1165 "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 1791 "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 1195 "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 1768 "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 1214 "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 1728 "Zend/zend_language_scanner.l"\r
+               {\r
+       YYCTYPE *bracket = (YYCTYPE*)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 1417 "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 1746 "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 1456 "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 1759 "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(ST_IN_SCRIPTING);\r
+       return T_OPEN_TAG_WITH_ECHO;\r
+}\r
+#line 1470 "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 1781 "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 1506 "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 2254 "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 1618 "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 2198 "Zend/zend_language_scanner.l"\r
+               {\r
+       BEGIN(ST_IN_SCRIPTING);\r
+       return '`';\r
+}\r
+#line 1634 "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 2185 "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 1651 "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 1885 "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 1673 "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 1461 "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 1684 "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 1877 "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 1706 "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 1867 "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 1732 "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 2204 "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 1849 "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 2193 "Zend/zend_language_scanner.l"\r
+               {\r
+       BEGIN(ST_IN_SCRIPTING);\r
+       return '"';\r
+}\r
+#line 1865 "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 2185 "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 1882 "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 1885 "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 1904 "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 1461 "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 1915 "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 1877 "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 1937 "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 1867 "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 1963 "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 2171 "Zend/zend_language_scanner.l"\r
+       {\r
+       zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack));\r
+\r
+       YYCURSOR += heredoc_label->length - 1;\r
+       yyleng = heredoc_label->length;\r
+\r
+       heredoc_label_dtor(heredoc_label);\r
+       efree(heredoc_label);\r
+\r
+       BEGIN(ST_IN_SCRIPTING);\r
+       return T_END_HEREDOC;\r
+}\r
+#line 1987 "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 2296 "Zend/zend_language_scanner.l"\r
+               {\r
+       int newline = 0;\r
+\r
+       zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));\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) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {\r
+                                       YYCTYPE *end = YYCURSOR + heredoc_label->length;\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 2122 "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 2185 "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 2144 "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 1885 "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 2166 "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 1461 "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 2177 "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 1877 "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 2199 "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 1867 "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 2225 "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
+                        60,  60,  44,  44,  44,  44,  44,  44, \r
+                        44,  44,   0,   0,   0,   0,   0,   0, \r
+                         0,  36,  36,  36,  36,  36,  36,   4, \r
+                         4,   4,   4,   4,   4,   4,   4,   4, \r
+                         4,   4,   4,   4,   4,   4,   4,   4, \r
+                         4,   4,   4,   0,   0,   0,   0,   4, \r
+                         0,  36,  36,  36,  36,  36,  36,   4, \r
+                         4,   4,   4,   4,   4,   4,   4,   4, \r
+                         4,   4,   4,   4,   4,   4,   4,   4, \r
+                         4,   4,   4,   0,   0,   0,   0,   4, \r
+                         4,   4,   4,   4,   4,   4,   4,   4, \r
+                         4,   4,   4,   4,   4,   4,   4,   4, \r
+                         4,   4,   4,   4,   4,   4,   4,   4, \r
+                         4,   4,   4,   4,   4,   4,   4,   4, \r
+                         4,   4,   4,   4,   4,   4,   4,   4, \r
+                         4,   4,   4,   4,   4,   4,   4,   4, \r
+                         4,   4,   4,   4,   4,   4,   4,   4, \r
+                         4,   4,   4,   4,   4,   4,   4,   4, \r
+                         4,   4,   4,   4,   4,   4,   4,   4, \r
+                         4,   4,   4,   4,   4,   4,   4,   4, \r
+                         4,   4,   4,   4,   4,   4,   4,   4, \r
+                         4,   4,   4,   4,   4,   4,   4,   4, \r
+                         4,   4,   4,   4,   4,   4,   4,   4, \r
+                         4,   4,   4,   4,   4,   4,   4,   4, \r
+                         4,   4,   4,   4,   4,   4,   4,   4, \r
+                         4,   4,   4,   4,   4,   4,   4,   4, \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 yy184;\r
+               case '\t':\r
+               case '\n':\r
+               case '\r':\r
+               case ' ':       goto yy140;\r
+               case '!':       goto yy153;\r
+               case '"':       goto yy180;\r
+               case '#':       goto yy176;\r
+               case '$':       goto yy165;\r
+               case '%':       goto yy159;\r
+               case '&':       goto yy160;\r
+               case '\'':      goto yy178;\r
+               case '(':       goto yy147;\r
+               case ')':\r
+               case ',':\r
+               case ';':\r
+               case '@':\r
+               case '[':\r
+               case ']':\r
+               case '~':       goto yy166;\r
+               case '*':       goto yy156;\r
+               case '+':       goto yy152;\r
+               case '-':       goto yy138;\r
+               case '.':       goto yy158;\r
+               case '/':       goto yy157;\r
+               case '0':       goto yy172;\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 yy174;\r
+               case ':':       goto yy142;\r
+               case '<':       goto yy154;\r
+               case '=':       goto yy150;\r
+               case '>':       goto yy155;\r
+               case '?':       goto yy167;\r
+               case 'A':\r
+               case 'a':       goto yy133;\r
+               case 'B':\r
+               case 'b':       goto yy135;\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 yy136;\r
+               case 'I':\r
+               case 'i':       goto yy131;\r
+               case 'L':\r
+               case 'l':       goto yy151;\r
+               case 'N':\r
+               case 'n':       goto yy145;\r
+               case 'O':\r
+               case 'o':       goto yy163;\r
+               case 'P':\r
+               case 'p':       goto yy137;\r
+               case 'R':\r
+               case 'r':       goto yy128;\r
+               case 'S':\r
+               case 's':       goto yy134;\r
+               case 'T':\r
+               case 't':       goto yy130;\r
+               case 'U':\r
+               case 'u':       goto yy148;\r
+               case 'V':\r
+               case 'v':       goto yy146;\r
+               case 'W':\r
+               case 'w':       goto yy132;\r
+               case 'X':\r
+               case 'x':       goto yy164;\r
+               case 'Y':\r
+               case 'y':       goto yy129;\r
+               case '\\':      goto yy143;\r
+               case '^':       goto yy162;\r
+               case '_':       goto yy149;\r
+               case '`':       goto yy182;\r
+               case '{':       goto yy168;\r
+               case '|':       goto yy161;\r
+               case '}':       goto yy170;\r
+               default:        goto yy175;\r
+               }\r
+yy123:\r
+               YYDEBUG(123, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(-1, yych);\r
+               switch ((yych = *YYCURSOR)) {\r
+               case 'C':\r
+               case 'c':       goto yy735;\r
+               case 'L':\r
+               case 'l':       goto yy736;\r
+               case 'M':\r
+               case 'm':       goto yy737;\r
+               case 'N':\r
+               case 'n':       goto yy738;\r
+               case 'V':\r
+               case 'v':       goto yy739;\r
+               case 'X':\r
+               case 'x':       goto yy740;\r
+               default:        goto yy187;\r
+               }\r
+yy124:\r
+               YYDEBUG(124, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1908 "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 2414 "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 yy717;\r
+                               goto yy187;\r
+                       } else {\r
+                               if (yych <= 'I') goto yy718;\r
+                               if (yych <= 'N') goto yy187;\r
+                               goto yy719;\r
+                       }\r
+               } else {\r
+                       if (yych <= 'h') {\r
+                               if (yych == 'e') goto yy717;\r
+                               goto yy187;\r
+                       } else {\r
+                               if (yych <= 'i') goto yy718;\r
+                               if (yych == 'o') goto yy719;\r
+                               goto yy187;\r
+                       }\r
+               }\r
+yy126:\r
+               YYDEBUG(126, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'U') {\r
+                       if (yych <= 'N') {\r
+                               if (yych == 'I') goto yy693;\r
+                               goto yy187;\r
+                       } else {\r
+                               if (yych <= 'O') goto yy694;\r
+                               if (yych <= 'T') goto yy187;\r
+                               goto yy695;\r
+                       }\r
+               } else {\r
+                       if (yych <= 'n') {\r
+                               if (yych == 'i') goto yy693;\r
+                               goto yy187;\r
+                       } else {\r
+                               if (yych <= 'o') goto yy694;\r
+                               if (yych == 'u') goto yy695;\r
+                               goto yy187;\r
+                       }\r
+               }\r
+yy127:\r
+               YYDEBUG(127, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'O') {\r
+                       if (yych <= 'K') {\r
+                               if (yych == 'A') goto yy658;\r
+                               goto yy187;\r
+                       } else {\r
+                               if (yych <= 'L') goto yy659;\r
+                               if (yych <= 'N') goto yy187;\r
+                               goto yy660;\r
+                       }\r
+               } else {\r
+                       if (yych <= 'k') {\r
+                               if (yych == 'a') goto yy658;\r
+                               goto yy187;\r
+                       } else {\r
+                               if (yych <= 'l') goto yy659;\r
+                               if (yych == 'o') goto yy660;\r
+                               goto yy187;\r
+                       }\r
+               }\r
+yy128:\r
+               YYDEBUG(128, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy640;\r
+               if (yych == 'e') goto yy640;\r
+               goto yy187;\r
+yy129:\r
+               YYDEBUG(129, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'I') goto yy635;\r
+               if (yych == 'i') goto yy635;\r
+               goto yy187;\r
+yy130:\r
+               YYDEBUG(130, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'R') {\r
+                       if (yych == 'H') goto yy623;\r
+                       if (yych <= 'Q') goto yy187;\r
+                       goto yy624;\r
+               } else {\r
+                       if (yych <= 'h') {\r
+                               if (yych <= 'g') goto yy187;\r
+                               goto yy623;\r
+                       } else {\r
+                               if (yych == 'r') goto yy624;\r
+                               goto yy187;\r
+                       }\r
+               }\r
+yy131:\r
+               YYDEBUG(131, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'S') {\r
+                       if (yych <= 'L') {\r
+                               if (yych == 'F') goto yy570;\r
+                               goto yy187;\r
+                       } else {\r
+                               if (yych <= 'M') goto yy572;\r
+                               if (yych <= 'N') goto yy573;\r
+                               if (yych <= 'R') goto yy187;\r
+                               goto yy574;\r
+                       }\r
+               } else {\r
+                       if (yych <= 'm') {\r
+                               if (yych == 'f') goto yy570;\r
+                               if (yych <= 'l') goto yy187;\r
+                               goto yy572;\r
+                       } else {\r
+                               if (yych <= 'n') goto yy573;\r
+                               if (yych == 's') goto yy574;\r
+                               goto yy187;\r
+                       }\r
+               }\r
+yy132:\r
+               YYDEBUG(132, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'H') goto yy565;\r
+               if (yych == 'h') goto yy565;\r
+               goto yy187;\r
+yy133:\r
+               YYDEBUG(133, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'S') {\r
+                       if (yych <= 'M') {\r
+                               if (yych == 'B') goto yy547;\r
+                               goto yy187;\r
+                       } else {\r
+                               if (yych <= 'N') goto yy548;\r
+                               if (yych <= 'Q') goto yy187;\r
+                               if (yych <= 'R') goto yy549;\r
+                               goto yy550;\r
+                       }\r
+               } else {\r
+                       if (yych <= 'n') {\r
+                               if (yych == 'b') goto yy547;\r
+                               if (yych <= 'm') goto yy187;\r
+                               goto yy548;\r
+                       } else {\r
+                               if (yych <= 'q') goto yy187;\r
+                               if (yych <= 'r') goto yy549;\r
+                               if (yych <= 's') goto yy550;\r
+                               goto yy187;\r
+                       }\r
+               }\r
+yy134:\r
+               YYDEBUG(134, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'W') {\r
+                       if (yych == 'T') goto yy535;\r
+                       if (yych <= 'V') goto yy187;\r
+                       goto yy536;\r
+               } else {\r
+                       if (yych <= 't') {\r
+                               if (yych <= 's') goto yy187;\r
+                               goto yy535;\r
+                       } else {\r
+                               if (yych == 'w') goto yy536;\r
+                               goto yy187;\r
+                       }\r
+               }\r
+yy135:\r
+               YYDEBUG(135, *YYCURSOR);\r
+               yyaccept = 0;\r
+               yych = *(YYMARKER = ++YYCURSOR);\r
+               if (yych <= ';') {\r
+                       if (yych <= '"') {\r
+                               if (yych <= '!') goto yy187;\r
+                               goto yy527;\r
+                       } else {\r
+                               if (yych == '\'') goto yy528;\r
+                               goto yy187;\r
+                       }\r
+               } else {\r
+                       if (yych <= 'R') {\r
+                               if (yych <= '<') goto yy526;\r
+                               if (yych <= 'Q') goto yy187;\r
+                               goto yy529;\r
+                       } else {\r
+                               if (yych == 'r') goto yy529;\r
+                               goto yy187;\r
+                       }\r
+               }\r
+yy136:\r
+               YYDEBUG(136, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'O') {\r
+                       if (yych == 'L') goto yy516;\r
+                       if (yych <= 'N') goto yy187;\r
+                       goto yy517;\r
+               } else {\r
+                       if (yych <= 'l') {\r
+                               if (yych <= 'k') goto yy187;\r
+                               goto yy516;\r
+                       } else {\r
+                               if (yych == 'o') goto yy517;\r
+                               goto yy187;\r
+                       }\r
+               }\r
+yy137:\r
+               YYDEBUG(137, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'U') {\r
+                       if (yych == 'R') goto yy492;\r
+                       if (yych <= 'T') goto yy187;\r
+                       goto yy493;\r
+               } else {\r
+                       if (yych <= 'r') {\r
+                               if (yych <= 'q') goto yy187;\r
+                               goto yy492;\r
+                       } else {\r
+                               if (yych == 'u') goto yy493;\r
+                               goto yy187;\r
+                       }\r
+               }\r
+yy138:\r
+               YYDEBUG(138, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if ((yych = *YYCURSOR) <= '<') {\r
+                       if (yych == '-') goto yy488;\r
+               } else {\r
+                       if (yych <= '=') goto yy486;\r
+                       if (yych <= '>') goto yy490;\r
+               }\r
+yy139:\r
+               YYDEBUG(139, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1450 "Zend/zend_language_scanner.l"\r
+               {\r
+       return yytext[0];\r
+}\r
+#line 2650 "Zend/zend_language_scanner.c"\r
+yy140:\r
+               YYDEBUG(140, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               yych = *YYCURSOR;\r
+               goto yy485;\r
+yy141:\r
+               YYDEBUG(141, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1181 "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 2667 "Zend/zend_language_scanner.c"\r
+yy142:\r
+               YYDEBUG(142, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == ':') goto yy482;\r
+               goto yy139;\r
+yy143:\r
+               YYDEBUG(143, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(144, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1210 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_NS_SEPARATOR;\r
+}\r
+#line 2682 "Zend/zend_language_scanner.c"\r
+yy145:\r
+               YYDEBUG(145, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'E') {\r
+                       if (yych == 'A') goto yy470;\r
+                       if (yych <= 'D') goto yy187;\r
+                       goto yy471;\r
+               } else {\r
+                       if (yych <= 'a') {\r
+                               if (yych <= '`') goto yy187;\r
+                               goto yy470;\r
+                       } else {\r
+                               if (yych == 'e') goto yy471;\r
+                               goto yy187;\r
+                       }\r
+               }\r
+yy146:\r
+               YYDEBUG(146, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy467;\r
+               if (yych == 'a') goto yy467;\r
+               goto yy187;\r
+yy147:\r
+               YYDEBUG(147, *YYCURSOR);\r
+               yyaccept = 1;\r
+               yych = *(YYMARKER = ++YYCURSOR);\r
+               if (yych <= 'S') {\r
+                       if (yych <= 'D') {\r
+                               if (yych <= ' ') {\r
+                                       if (yych == '\t') goto yy392;\r
+                                       if (yych <= 0x1F) goto yy139;\r
+                                       goto yy392;\r
+                               } else {\r
+                                       if (yych <= '@') goto yy139;\r
+                                       if (yych == 'C') goto yy139;\r
+                                       goto yy392;\r
+                               }\r
+                       } else {\r
+                               if (yych <= 'I') {\r
+                                       if (yych == 'F') goto yy392;\r
+                                       if (yych <= 'H') goto yy139;\r
+                                       goto yy392;\r
+                               } else {\r
+                                       if (yych == 'O') goto yy392;\r
+                                       if (yych <= 'Q') goto yy139;\r
+                                       goto yy392;\r
+                               }\r
+                       }\r
+               } else {\r
+                       if (yych <= 'f') {\r
+                               if (yych <= 'b') {\r
+                                       if (yych == 'U') goto yy392;\r
+                                       if (yych <= '`') goto yy139;\r
+                                       goto yy392;\r
+                               } else {\r
+                                       if (yych == 'd') goto yy392;\r
+                                       if (yych <= 'e') goto yy139;\r
+                                       goto yy392;\r
+                               }\r
+                       } else {\r
+                               if (yych <= 'o') {\r
+                                       if (yych == 'i') goto yy392;\r
+                                       if (yych <= 'n') goto yy139;\r
+                                       goto yy392;\r
+                               } else {\r
+                                       if (yych <= 's') {\r
+                                               if (yych <= 'q') goto yy139;\r
+                                               goto yy392;\r
+                                       } else {\r
+                                               if (yych == 'u') goto yy392;\r
+                                               goto yy139;\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+yy148:\r
+               YYDEBUG(148, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'S') {\r
+                       if (yych == 'N') goto yy383;\r
+                       if (yych <= 'R') goto yy187;\r
+                       goto yy384;\r
+               } else {\r
+                       if (yych <= 'n') {\r
+                               if (yych <= 'm') goto yy187;\r
+                               goto yy383;\r
+                       } else {\r
+                               if (yych == 's') goto yy384;\r
+                               goto yy187;\r
+                       }\r
+               }\r
+yy149:\r
+               YYDEBUG(149, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == '_') goto yy301;\r
+               goto yy187;\r
+yy150:\r
+               YYDEBUG(150, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= '<') goto yy139;\r
+               if (yych <= '=') goto yy295;\r
+               if (yych <= '>') goto yy297;\r
+               goto yy139;\r
+yy151:\r
+               YYDEBUG(151, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'I') goto yy291;\r
+               if (yych == 'i') goto yy291;\r
+               goto yy187;\r
+yy152:\r
+               YYDEBUG(152, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == '+') goto yy289;\r
+               if (yych == '=') goto yy287;\r
+               goto yy139;\r
+yy153:\r
+               YYDEBUG(153, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == '=') goto yy284;\r
+               goto yy139;\r
+yy154:\r
+               YYDEBUG(154, *YYCURSOR);\r
+               yyaccept = 1;\r
+               yych = *(YYMARKER = ++YYCURSOR);\r
+               if (yych <= ';') {\r
+                       if (yych == '/') goto yy256;\r
+                       goto yy139;\r
+               } else {\r
+                       if (yych <= '<') goto yy254;\r
+                       if (yych <= '=') goto yy257;\r
+                       if (yych <= '>') goto yy259;\r
+                       goto yy139;\r
+               }\r
+yy155:\r
+               YYDEBUG(155, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= '<') goto yy139;\r
+               if (yych <= '=') goto yy250;\r
+               if (yych <= '>') goto yy248;\r
+               goto yy139;\r
+yy156:\r
+               YYDEBUG(156, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == '=') goto yy246;\r
+               goto yy139;\r
+yy157:\r
+               YYDEBUG(157, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= '.') {\r
+                       if (yych == '*') goto yy238;\r
+                       goto yy139;\r
+               } else {\r
+                       if (yych <= '/') goto yy240;\r
+                       if (yych == '=') goto yy241;\r
+                       goto yy139;\r
+               }\r
+yy158:\r
+               YYDEBUG(158, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= '/') goto yy139;\r
+               if (yych <= '9') goto yy234;\r
+               if (yych == '=') goto yy236;\r
+               goto yy139;\r
+yy159:\r
+               YYDEBUG(159, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= '<') goto yy139;\r
+               if (yych <= '=') goto yy230;\r
+               if (yych <= '>') goto yy228;\r
+               goto yy139;\r
+yy160:\r
+               YYDEBUG(160, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == '&') goto yy224;\r
+               if (yych == '=') goto yy226;\r
+               goto yy139;\r
+yy161:\r
+               YYDEBUG(161, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == '=') goto yy222;\r
+               if (yych == '|') goto yy220;\r
+               goto yy139;\r
+yy162:\r
+               YYDEBUG(162, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == '=') goto yy218;\r
+               goto yy139;\r
+yy163:\r
+               YYDEBUG(163, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'R') goto yy216;\r
+               if (yych == 'r') goto yy216;\r
+               goto yy187;\r
+yy164:\r
+               YYDEBUG(164, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'O') goto yy213;\r
+               if (yych == 'o') goto yy213;\r
+               goto yy187;\r
+yy165:\r
+               YYDEBUG(165, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= '_') {\r
+                       if (yych <= '@') goto yy139;\r
+                       if (yych <= 'Z') goto yy210;\r
+                       if (yych <= '^') goto yy139;\r
+                       goto yy210;\r
+               } else {\r
+                       if (yych <= '`') goto yy139;\r
+                       if (yych <= 'z') goto yy210;\r
+                       if (yych <= '~') goto yy139;\r
+                       goto yy210;\r
+               }\r
+yy166:\r
+               YYDEBUG(166, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               goto yy139;\r
+yy167:\r
+               YYDEBUG(167, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == '>') goto yy206;\r
+               goto yy139;\r
+yy168:\r
+               YYDEBUG(168, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(169, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1455 "Zend/zend_language_scanner.l"\r
+               {\r
+       yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);\r
+       return '{';\r
+}\r
+#line 2915 "Zend/zend_language_scanner.c"\r
+yy170:\r
+               YYDEBUG(170, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(171, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1467 "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 2929 "Zend/zend_language_scanner.c"\r
+yy172:\r
+               YYDEBUG(172, *YYCURSOR);\r
+               yyaccept = 2;\r
+               yych = *(YYMARKER = ++YYCURSOR);\r
+               if (yych <= 'E') {\r
+                       if (yych <= '9') {\r
+                               if (yych == '.') goto yy188;\r
+                               if (yych >= '0') goto yy191;\r
+                       } else {\r
+                               if (yych == 'B') goto yy199;\r
+                               if (yych >= 'E') goto yy193;\r
+                       }\r
+               } else {\r
+                       if (yych <= 'b') {\r
+                               if (yych == 'X') goto yy198;\r
+                               if (yych >= 'b') goto yy199;\r
+                       } else {\r
+                               if (yych <= 'e') {\r
+                                       if (yych >= 'e') goto yy193;\r
+                               } else {\r
+                                       if (yych == 'x') goto yy198;\r
+                               }\r
+                       }\r
+               }\r
+yy173:\r
+               YYDEBUG(173, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1518 "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 2978 "Zend/zend_language_scanner.c"\r
+yy174:\r
+               YYDEBUG(174, *YYCURSOR);\r
+               yyaccept = 2;\r
+               yych = *(YYMARKER = ++YYCURSOR);\r
+               if (yych <= '9') {\r
+                       if (yych == '.') goto yy188;\r
+                       if (yych <= '/') goto yy173;\r
+                       goto yy191;\r
+               } else {\r
+                       if (yych <= 'E') {\r
+                               if (yych <= 'D') goto yy173;\r
+                               goto yy193;\r
+                       } else {\r
+                               if (yych == 'e') goto yy193;\r
+                               goto yy173;\r
+                       }\r
+               }\r
+yy175:\r
+               YYDEBUG(175, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               goto yy187;\r
+yy176:\r
+               YYDEBUG(176, *YYCURSOR);\r
+               ++YYCURSOR;\r
+yy177:\r
+               YYDEBUG(177, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1915 "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 3040 "Zend/zend_language_scanner.c"\r
+yy178:\r
+               YYDEBUG(178, *YYCURSOR);\r
+               ++YYCURSOR;\r
+yy179:\r
+               YYDEBUG(179, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 2006 "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
+       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
+       return T_CONSTANT_ENCAPSED_STRING;\r
+}\r
+#line 3115 "Zend/zend_language_scanner.c"\r
+yy180:\r
+               YYDEBUG(180, *YYCURSOR);\r
+               ++YYCURSOR;\r
+yy181:\r
+               YYDEBUG(181, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 2075 "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 3163 "Zend/zend_language_scanner.c"\r
+yy182:\r
+               YYDEBUG(182, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(183, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 2165 "Zend/zend_language_scanner.l"\r
+               {\r
+       BEGIN(ST_BACKQUOTE);\r
+       return '`';\r
+}\r
+#line 3174 "Zend/zend_language_scanner.c"\r
+yy184:\r
+               YYDEBUG(184, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(185, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 2428 "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 3189 "Zend/zend_language_scanner.c"\r
+yy186:\r
+               YYDEBUG(186, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(1);\r
+               yych = *YYCURSOR;\r
+yy187:\r
+               YYDEBUG(187, *YYCURSOR);\r
+               if (yybm[0+yych] & 4) {\r
+                       goto yy186;\r
+               }\r
+               goto yy124;\r
+yy188:\r
+               YYDEBUG(188, *YYCURSOR);\r
+               yyaccept = 3;\r
+               YYMARKER = ++YYCURSOR;\r
+               YYFILL(3);\r
+               yych = *YYCURSOR;\r
+               YYDEBUG(189, *YYCURSOR);\r
+               if (yybm[0+yych] & 8) {\r
+                       goto yy188;\r
+               }\r
+               if (yych == 'E') goto yy193;\r
+               if (yych == 'e') goto yy193;\r
+yy190:\r
+               YYDEBUG(190, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1583 "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 3222 "Zend/zend_language_scanner.c"\r
+yy191:\r
+               YYDEBUG(191, *YYCURSOR);\r
+               yyaccept = 2;\r
+               YYMARKER = ++YYCURSOR;\r
+               YYFILL(3);\r
+               yych = *YYCURSOR;\r
+               YYDEBUG(192, *YYCURSOR);\r
+               if (yych <= '9') {\r
+                       if (yych == '.') goto yy188;\r
+                       if (yych <= '/') goto yy173;\r
+                       goto yy191;\r
+               } else {\r
+                       if (yych <= 'E') {\r
+                               if (yych <= 'D') goto yy173;\r
+                       } else {\r
+                               if (yych != 'e') goto yy173;\r
+                       }\r
+               }\r
+yy193:\r
+               YYDEBUG(193, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= ',') {\r
+                       if (yych == '+') goto yy195;\r
+               } else {\r
+                       if (yych <= '-') goto yy195;\r
+                       if (yych <= '/') goto yy194;\r
+                       if (yych <= '9') goto yy196;\r
+               }\r
+yy194:\r
+               YYDEBUG(194, *YYCURSOR);\r
+               YYCURSOR = YYMARKER;\r
+               if (yyaccept <= 2) {\r
+                       if (yyaccept <= 1) {\r
+                               if (yyaccept <= 0) {\r
+                                       goto yy124;\r
+                               } else {\r
+                                       goto yy139;\r
+                               }\r
+                       } else {\r
+                               goto yy173;\r
+                       }\r
+               } else {\r
+                       if (yyaccept <= 4) {\r
+                               if (yyaccept <= 3) {\r
+                                       goto yy190;\r
+                               } else {\r
+                                       goto yy239;\r
+                               }\r
+                       } else {\r
+                               goto yy255;\r
+                       }\r
+               }\r
+yy195:\r
+               YYDEBUG(195, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= '/') goto yy194;\r
+               if (yych >= ':') goto yy194;\r
+yy196:\r
+               YYDEBUG(196, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(1);\r
+               yych = *YYCURSOR;\r
+               YYDEBUG(197, *YYCURSOR);\r
+               if (yych <= '/') goto yy190;\r
+               if (yych <= '9') goto yy196;\r
+               goto yy190;\r
+yy198:\r
+               YYDEBUG(198, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yybm[0+yych] & 32) {\r
+                       goto yy203;\r
+               }\r
+               goto yy194;\r
+yy199:\r
+               YYDEBUG(199, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yybm[0+yych] & 16) {\r
+                       goto yy200;\r
+               }\r
+               goto yy194;\r
+yy200:\r
+               YYDEBUG(200, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(1);\r
+               yych = *YYCURSOR;\r
+               YYDEBUG(201, *YYCURSOR);\r
+               if (yybm[0+yych] & 16) {\r
+                       goto yy200;\r
+               }\r
+               YYDEBUG(202, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1493 "Zend/zend_language_scanner.l"\r
+               {\r
+       char *bin = yytext + 2; /* Skip "0b" */\r
+       int len = yyleng - 2;\r
+\r
+       /* Skip any leading 0s */\r
+       while (*bin == '0') {\r
+               ++bin;\r
+               --len;\r
+       }\r
+\r
+       if (len < SIZEOF_LONG * 8) {\r
+               if (len == 0) {\r
+                       zendlval->value.lval = 0;\r
+               } else {\r
+                       zendlval->value.lval = strtol(bin, NULL, 2);\r
+               }\r
+               zendlval->type = IS_LONG;\r
+               return T_LNUMBER;\r
+       } else {\r
+               zendlval->value.dval = zend_bin_strtod(bin, NULL);\r
+               zendlval->type = IS_DOUBLE;\r
+               return T_DNUMBER;\r
+       }\r
+}\r
+#line 3339 "Zend/zend_language_scanner.c"\r
+yy203:\r
+               YYDEBUG(203, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(1);\r
+               yych = *YYCURSOR;\r
+               YYDEBUG(204, *YYCURSOR);\r
+               if (yybm[0+yych] & 32) {\r
+                       goto yy203;\r
+               }\r
+               YYDEBUG(205, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1539 "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 3376 "Zend/zend_language_scanner.c"\r
+yy206:\r
+               YYDEBUG(206, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if ((yych = *YYCURSOR) == '\n') goto yy208;\r
+               if (yych == '\r') goto yy209;\r
+yy207:\r
+               YYDEBUG(207, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1983 "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 3393 "Zend/zend_language_scanner.c"\r
+yy208:\r
+               YYDEBUG(208, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               goto yy207;\r
+yy209:\r
+               YYDEBUG(209, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == '\n') goto yy208;\r
+               goto yy207;\r
+yy210:\r
+               YYDEBUG(210, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(1);\r
+               yych = *YYCURSOR;\r
+               YYDEBUG(211, *YYCURSOR);\r
+               if (yych <= '^') {\r
+                       if (yych <= '9') {\r
+                               if (yych >= '0') goto yy210;\r
+                       } else {\r
+                               if (yych <= '@') goto yy212;\r
+                               if (yych <= 'Z') goto yy210;\r
+                       }\r
+               } else {\r
+                       if (yych <= '`') {\r
+                               if (yych <= '_') goto yy210;\r
+                       } else {\r
+                               if (yych <= 'z') goto yy210;\r
+                               if (yych >= 0x7F) goto yy210;\r
+                       }\r
+               }\r
+yy212:\r
+               YYDEBUG(212, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1885 "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 3433 "Zend/zend_language_scanner.c"\r
+yy213:\r
+               YYDEBUG(213, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'R') goto yy214;\r
+               if (yych != 'r') goto yy187;\r
+yy214:\r
+               YYDEBUG(214, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(215, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1438 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_LOGICAL_XOR;\r
+}\r
+#line 3451 "Zend/zend_language_scanner.c"\r
+yy216:\r
+               YYDEBUG(216, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(217, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1430 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_LOGICAL_OR;\r
+}\r
+#line 3464 "Zend/zend_language_scanner.c"\r
+yy218:\r
+               YYDEBUG(218, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(219, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1418 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_XOR_EQUAL;\r
+}\r
+#line 3474 "Zend/zend_language_scanner.c"\r
+yy220:\r
+               YYDEBUG(220, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(221, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1422 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_BOOLEAN_OR;\r
+}\r
+#line 3484 "Zend/zend_language_scanner.c"\r
+yy222:\r
+               YYDEBUG(222, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(223, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1414 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_OR_EQUAL;\r
+}\r
+#line 3494 "Zend/zend_language_scanner.c"\r
+yy224:\r
+               YYDEBUG(224, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(225, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1426 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_BOOLEAN_AND;\r
+}\r
+#line 3504 "Zend/zend_language_scanner.c"\r
+yy226:\r
+               YYDEBUG(226, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(227, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1410 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_AND_EQUAL;\r
+}\r
+#line 3514 "Zend/zend_language_scanner.c"\r
+yy228:\r
+               YYDEBUG(228, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if ((yych = *YYCURSOR) == '\n') goto yy232;\r
+               if (yych == '\r') goto yy233;\r
+yy229:\r
+               YYDEBUG(229, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1992 "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 3536 "Zend/zend_language_scanner.c"\r
+yy230:\r
+               YYDEBUG(230, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(231, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1398 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_MOD_EQUAL;\r
+}\r
+#line 3546 "Zend/zend_language_scanner.c"\r
+yy232:\r
+               YYDEBUG(232, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               goto yy229;\r
+yy233:\r
+               YYDEBUG(233, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == '\n') goto yy232;\r
+               goto yy229;\r
+yy234:\r
+               YYDEBUG(234, *YYCURSOR);\r
+               yyaccept = 3;\r
+               YYMARKER = ++YYCURSOR;\r
+               YYFILL(3);\r
+               yych = *YYCURSOR;\r
+               YYDEBUG(235, *YYCURSOR);\r
+               if (yych <= 'D') {\r
+                       if (yych <= '/') goto yy190;\r
+                       if (yych <= '9') goto yy234;\r
+                       goto yy190;\r
+               } else {\r
+                       if (yych <= 'E') goto yy193;\r
+                       if (yych == 'e') goto yy193;\r
+                       goto yy190;\r
+               }\r
+yy236:\r
+               YYDEBUG(236, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(237, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1394 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_CONCAT_EQUAL;\r
+}\r
+#line 3581 "Zend/zend_language_scanner.c"\r
+yy238:\r
+               YYDEBUG(238, *YYCURSOR);\r
+               yyaccept = 4;\r
+               yych = *(YYMARKER = ++YYCURSOR);\r
+               if (yych == '*') goto yy243;\r
+yy239:\r
+               YYDEBUG(239, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1949 "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 3624 "Zend/zend_language_scanner.c"\r
+yy240:\r
+               YYDEBUG(240, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               goto yy177;\r
+yy241:\r
+               YYDEBUG(241, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(242, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1390 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_DIV_EQUAL;\r
+}\r
+#line 3638 "Zend/zend_language_scanner.c"\r
+yy243:\r
+               YYDEBUG(243, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yybm[0+yych] & 64) {\r
+                       goto yy244;\r
+               }\r
+               goto yy194;\r
+yy244:\r
+               YYDEBUG(244, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(1);\r
+               yych = *YYCURSOR;\r
+               YYDEBUG(245, *YYCURSOR);\r
+               if (yybm[0+yych] & 64) {\r
+                       goto yy244;\r
+               }\r
+               goto yy239;\r
+yy246:\r
+               YYDEBUG(246, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(247, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1386 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_MUL_EQUAL;\r
+}\r
+#line 3665 "Zend/zend_language_scanner.c"\r
+yy248:\r
+               YYDEBUG(248, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if ((yych = *YYCURSOR) == '=') goto yy252;\r
+               YYDEBUG(249, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1446 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_SR;\r
+}\r
+#line 3676 "Zend/zend_language_scanner.c"\r
+yy250:\r
+               YYDEBUG(250, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(251, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1374 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_IS_GREATER_OR_EQUAL;\r
+}\r
+#line 3686 "Zend/zend_language_scanner.c"\r
+yy252:\r
+               YYDEBUG(252, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(253, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1406 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_SR_EQUAL;\r
+}\r
+#line 3696 "Zend/zend_language_scanner.c"\r
+yy254:\r
+               YYDEBUG(254, *YYCURSOR);\r
+               yyaccept = 5;\r
+               yych = *(YYMARKER = ++YYCURSOR);\r
+               if (yych <= ';') goto yy255;\r
+               if (yych <= '<') goto yy270;\r
+               if (yych <= '=') goto yy268;\r
+yy255:\r
+               YYDEBUG(255, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1442 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_SL;\r
+}\r
+#line 3711 "Zend/zend_language_scanner.c"\r
+yy256:\r
+               YYDEBUG(256, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'S') goto yy261;\r
+               if (yych == 's') goto yy261;\r
+               goto yy194;\r
+yy257:\r
+               YYDEBUG(257, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(258, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1370 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_IS_SMALLER_OR_EQUAL;\r
+}\r
+#line 3727 "Zend/zend_language_scanner.c"\r
+yy259:\r
+               YYDEBUG(259, *YYCURSOR);\r
+               ++YYCURSOR;\r
+yy260:\r
+               YYDEBUG(260, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1366 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_IS_NOT_EQUAL;\r
+}\r
+#line 3738 "Zend/zend_language_scanner.c"\r
+yy261:\r
+               YYDEBUG(261, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'C') goto yy262;\r
+               if (yych != 'c') goto yy194;\r
+yy262:\r
+               YYDEBUG(262, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'R') goto yy263;\r
+               if (yych != 'r') goto yy194;\r
+yy263:\r
+               YYDEBUG(263, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'I') goto yy264;\r
+               if (yych != 'i') goto yy194;\r
+yy264:\r
+               YYDEBUG(264, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'P') goto yy265;\r
+               if (yych != 'p') goto yy194;\r
+yy265:\r
+               YYDEBUG(265, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy266;\r
+               if (yych != 't') goto yy194;\r
+yy266:\r
+               YYDEBUG(266, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(3);\r
+               yych = *YYCURSOR;\r
+               YYDEBUG(267, *YYCURSOR);\r
+               if (yych <= '\r') {\r
+                       if (yych <= 0x08) goto yy194;\r
+                       if (yych <= '\n') goto yy266;\r
+                       if (yych <= '\f') goto yy194;\r
+                       goto yy266;\r
+               } else {\r
+                       if (yych <= ' ') {\r
+                               if (yych <= 0x1F) goto yy194;\r
+                               goto yy266;\r
+                       } else {\r
+                               if (yych == '>') goto yy206;\r
+                               goto yy194;\r
+                       }\r
+               }\r
+yy268:\r
+               YYDEBUG(268, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(269, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1402 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_SL_EQUAL;\r
+}\r
+#line 3793 "Zend/zend_language_scanner.c"\r
+yy270:\r
+               YYDEBUG(270, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(2);\r
+               yych = *YYCURSOR;\r
+               YYDEBUG(271, *YYCURSOR);\r
+               if (yybm[0+yych] & 128) {\r
+                       goto yy270;\r
+               }\r
+               if (yych <= 'Z') {\r
+                       if (yych <= '&') {\r
+                               if (yych == '"') goto yy275;\r
+                               goto yy194;\r
+                       } else {\r
+                               if (yych <= '\'') goto yy274;\r
+                               if (yych <= '@') goto yy194;\r
+                       }\r
+               } else {\r
+                       if (yych <= '`') {\r
+                               if (yych != '_') goto yy194;\r
+                       } else {\r
+                               if (yych <= 'z') goto yy272;\r
+                               if (yych <= '~') goto yy194;\r
+                       }\r
+               }\r
+yy272:\r
+               YYDEBUG(272, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(2);\r
+               yych = *YYCURSOR;\r
+               YYDEBUG(273, *YYCURSOR);\r
+               if (yych <= '@') {\r
+                       if (yych <= '\f') {\r
+                               if (yych == '\n') goto yy279;\r
+                               goto yy194;\r
+                       } else {\r
+                               if (yych <= '\r') goto yy281;\r
+                               if (yych <= '/') goto yy194;\r
+                               if (yych <= '9') goto yy272;\r
+                               goto yy194;\r
+                       }\r
+               } else {\r
+                       if (yych <= '_') {\r
+                               if (yych <= 'Z') goto yy272;\r
+                               if (yych <= '^') goto yy194;\r
+                               goto yy272;\r
+                       } else {\r
+                               if (yych <= '`') goto yy194;\r
+                               if (yych <= 'z') goto yy272;\r
+                               if (yych <= '~') goto yy194;\r
+                               goto yy272;\r
+                       }\r
+               }\r
+yy274:\r
+               YYDEBUG(274, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == '\'') goto yy194;\r
+               if (yych <= '/') goto yy283;\r
+               if (yych <= '9') goto yy194;\r
+               goto yy283;\r
+yy275:\r
+               YYDEBUG(275, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == '"') goto yy194;\r
+               if (yych <= '/') goto yy277;\r
+               if (yych <= '9') goto yy194;\r
+               goto yy277;\r
+yy276:\r
+               YYDEBUG(276, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(3);\r
+               yych = *YYCURSOR;\r
+yy277:\r
+               YYDEBUG(277, *YYCURSOR);\r
+               if (yych <= 'Z') {\r
+                       if (yych <= '/') {\r
+                               if (yych != '"') goto yy194;\r
+                       } else {\r
+                               if (yych <= '9') goto yy276;\r
+                               if (yych <= '@') goto yy194;\r
+                               goto yy276;\r
+                       }\r
+               } else {\r
+                       if (yych <= '`') {\r
+                               if (yych == '_') goto yy276;\r
+                               goto yy194;\r
+                       } else {\r
+                               if (yych <= 'z') goto yy276;\r
+                               if (yych <= '~') goto yy194;\r
+                               goto yy276;\r
+                       }\r
+               }\r
+yy278:\r
+               YYDEBUG(278, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == '\n') goto yy279;\r
+               if (yych == '\r') goto yy281;\r
+               goto yy194;\r
+yy279:\r
+               YYDEBUG(279, *YYCURSOR);\r
+               ++YYCURSOR;\r
+yy280:\r
+               YYDEBUG(280, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 2117 "Zend/zend_language_scanner.l"\r
+               {\r
+       char *s;\r
+       int bprefix = (yytext[0] != '<') ? 1 : 0;\r
+       zend_heredoc_label *heredoc_label = emalloc(sizeof(zend_heredoc_label));\r
+\r
+       CG(zend_lineno)++;\r
+       heredoc_label->length = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);\r
+       s = yytext+bprefix+3;\r
+       while ((*s == ' ') || (*s == '\t')) {\r
+               s++;\r
+               heredoc_label->length--;\r
+       }\r
+\r
+       if (*s == '\'') {\r
+               s++;\r
+               heredoc_label->length -= 2;\r
+\r
+               BEGIN(ST_NOWDOC);\r
+       } else {\r
+               if (*s == '"') {\r
+                       s++;\r
+                       heredoc_label->length -= 2;\r
+               }\r
+\r
+               BEGIN(ST_HEREDOC);\r
+       }\r
+\r
+       heredoc_label->label = estrndup(s, heredoc_label->length);\r
+\r
+       /* Check for ending label on the next line */\r
+       if (heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, heredoc_label->length)) {\r
+               YYCTYPE *end = YYCURSOR + heredoc_label->length;\r
+\r
+               if (*end == ';') {\r
+                       end++;\r
+               }\r
+\r
+               if (*end == '\n' || *end == '\r') {\r
+                       BEGIN(ST_END_HEREDOC);\r
+               }\r
+       }\r
+\r
+       zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) heredoc_label);\r
+\r
+       return T_START_HEREDOC;\r
+}\r
+#line 3945 "Zend/zend_language_scanner.c"\r
+yy281:\r
+               YYDEBUG(281, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == '\n') goto yy279;\r
+               goto yy280;\r
+yy282:\r
+               YYDEBUG(282, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(3);\r
+               yych = *YYCURSOR;\r
+yy283:\r
+               YYDEBUG(283, *YYCURSOR);\r
+               if (yych <= 'Z') {\r
+                       if (yych <= '/') {\r
+                               if (yych == '\'') goto yy278;\r
+                               goto yy194;\r
+                       } else {\r
+                               if (yych <= '9') goto yy282;\r
+                               if (yych <= '@') goto yy194;\r
+                               goto yy282;\r
+                       }\r
+               } else {\r
+                       if (yych <= '`') {\r
+                               if (yych == '_') goto yy282;\r
+                               goto yy194;\r
+                       } else {\r
+                               if (yych <= 'z') goto yy282;\r
+                               if (yych <= '~') goto yy194;\r
+                               goto yy282;\r
+                       }\r
+               }\r
+yy284:\r
+               YYDEBUG(284, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych != '=') goto yy260;\r
+               YYDEBUG(285, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(286, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1358 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_IS_NOT_IDENTICAL;\r
+}\r
+#line 3989 "Zend/zend_language_scanner.c"\r
+yy287:\r
+               YYDEBUG(287, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(288, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1378 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_PLUS_EQUAL;\r
+}\r
+#line 3999 "Zend/zend_language_scanner.c"\r
+yy289:\r
+               YYDEBUG(289, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(290, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1346 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_INC;\r
+}\r
+#line 4009 "Zend/zend_language_scanner.c"\r
+yy291:\r
+               YYDEBUG(291, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'S') goto yy292;\r
+               if (yych != 's') goto yy187;\r
+yy292:\r
+               YYDEBUG(292, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy293;\r
+               if (yych != 't') goto yy187;\r
+yy293:\r
+               YYDEBUG(293, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(294, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1334 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_LIST;\r
+}\r
+#line 4032 "Zend/zend_language_scanner.c"\r
+yy295:\r
+               YYDEBUG(295, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if ((yych = *YYCURSOR) == '=') goto yy299;\r
+               YYDEBUG(296, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1362 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_IS_EQUAL;\r
+}\r
+#line 4043 "Zend/zend_language_scanner.c"\r
+yy297:\r
+               YYDEBUG(297, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(298, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1330 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_DOUBLE_ARROW;\r
+}\r
+#line 4053 "Zend/zend_language_scanner.c"\r
+yy299:\r
+               YYDEBUG(299, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(300, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1354 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_IS_IDENTICAL;\r
+}\r
+#line 4063 "Zend/zend_language_scanner.c"\r
+yy301:\r
+               YYDEBUG(301, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               YYDEBUG(-1, yych);\r
+               switch (yych) {\r
+               case 'C':\r
+               case 'c':       goto yy303;\r
+               case 'D':\r
+               case 'd':       goto yy308;\r
+               case 'F':\r
+               case 'f':       goto yy305;\r
+               case 'H':\r
+               case 'h':       goto yy302;\r
+               case 'L':\r
+               case 'l':       goto yy307;\r
+               case 'M':\r
+               case 'm':       goto yy306;\r
+               case 'N':\r
+               case 'n':       goto yy309;\r
+               case 'T':\r
+               case 't':       goto yy304;\r
+               default:        goto yy187;\r
+               }\r
+yy302:\r
+               YYDEBUG(302, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy370;\r
+               if (yych == 'a') goto yy370;\r
+               goto yy187;\r
+yy303:\r
+               YYDEBUG(303, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'L') goto yy363;\r
+               if (yych == 'l') goto yy363;\r
+               goto yy187;\r
+yy304:\r
+               YYDEBUG(304, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'R') goto yy356;\r
+               if (yych == 'r') goto yy356;\r
+               goto yy187;\r
+yy305:\r
+               YYDEBUG(305, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'U') {\r
+                       if (yych == 'I') goto yy340;\r
+                       if (yych <= 'T') goto yy187;\r
+                       goto yy341;\r
+               } else {\r
+                       if (yych <= 'i') {\r
+                               if (yych <= 'h') goto yy187;\r
+                               goto yy340;\r
+                       } else {\r
+                               if (yych == 'u') goto yy341;\r
+                               goto yy187;\r
+                       }\r
+               }\r
+yy306:\r
+               YYDEBUG(306, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy332;\r
+               if (yych == 'e') goto yy332;\r
+               goto yy187;\r
+yy307:\r
+               YYDEBUG(307, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'I') goto yy326;\r
+               if (yych == 'i') goto yy326;\r
+               goto yy187;\r
+yy308:\r
+               YYDEBUG(308, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'I') goto yy321;\r
+               if (yych == 'i') goto yy321;\r
+               goto yy187;\r
+yy309:\r
+               YYDEBUG(309, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy310;\r
+               if (yych != 'a') goto yy187;\r
+yy310:\r
+               YYDEBUG(310, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'M') goto yy311;\r
+               if (yych != 'm') goto yy187;\r
+yy311:\r
+               YYDEBUG(311, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy312;\r
+               if (yych != 'e') goto yy187;\r
+yy312:\r
+               YYDEBUG(312, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'S') goto yy313;\r
+               if (yych != 's') goto yy187;\r
+yy313:\r
+               YYDEBUG(313, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'P') goto yy314;\r
+               if (yych != 'p') goto yy187;\r
+yy314:\r
+               YYDEBUG(314, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy315;\r
+               if (yych != 'a') goto yy187;\r
+yy315:\r
+               YYDEBUG(315, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'C') goto yy316;\r
+               if (yych != 'c') goto yy187;\r
+yy316:\r
+               YYDEBUG(316, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy317;\r
+               if (yych != 'e') goto yy187;\r
+yy317:\r
+               YYDEBUG(317, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych != '_') goto yy187;\r
+               YYDEBUG(318, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych != '_') goto yy187;\r
+               YYDEBUG(319, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(320, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1718 "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 4203 "Zend/zend_language_scanner.c"\r
+yy321:\r
+               YYDEBUG(321, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'R') goto yy322;\r
+               if (yych != 'r') goto yy187;\r
+yy322:\r
+               YYDEBUG(322, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych != '_') goto yy187;\r
+               YYDEBUG(323, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych != '_') goto yy187;\r
+               YYDEBUG(324, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(325, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1691 "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 4250 "Zend/zend_language_scanner.c"\r
+yy326:\r
+               YYDEBUG(326, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'N') goto yy327;\r
+               if (yych != 'n') goto yy187;\r
+yy327:\r
+               YYDEBUG(327, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy328;\r
+               if (yych != 'e') goto yy187;\r
+yy328:\r
+               YYDEBUG(328, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych != '_') goto yy187;\r
+               YYDEBUG(329, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych != '_') goto yy187;\r
+               YYDEBUG(330, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(331, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1673 "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 4281 "Zend/zend_language_scanner.c"\r
+yy332:\r
+               YYDEBUG(332, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy333;\r
+               if (yych != 't') goto yy187;\r
+yy333:\r
+               YYDEBUG(333, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'H') goto yy334;\r
+               if (yych != 'h') goto yy187;\r
+yy334:\r
+               YYDEBUG(334, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'O') goto yy335;\r
+               if (yych != 'o') goto yy187;\r
+yy335:\r
+               YYDEBUG(335, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'D') goto yy336;\r
+               if (yych != 'd') goto yy187;\r
+yy336:\r
+               YYDEBUG(336, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych != '_') goto yy187;\r
+               YYDEBUG(337, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych != '_') goto yy187;\r
+               YYDEBUG(338, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(339, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1652 "Zend/zend_language_scanner.l"\r
+               {\r
+       const char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL;\r
+       const 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 4337 "Zend/zend_language_scanner.c"\r
+yy340:\r
+               YYDEBUG(340, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'L') goto yy351;\r
+               if (yych == 'l') goto yy351;\r
+               goto yy187;\r
+yy341:\r
+               YYDEBUG(341, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'N') goto yy342;\r
+               if (yych != 'n') goto yy187;\r
+yy342:\r
+               YYDEBUG(342, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'C') goto yy343;\r
+               if (yych != 'c') goto yy187;\r
+yy343:\r
+               YYDEBUG(343, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy344;\r
+               if (yych != 't') goto yy187;\r
+yy344:\r
+               YYDEBUG(344, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'I') goto yy345;\r
+               if (yych != 'i') goto yy187;\r
+yy345:\r
+               YYDEBUG(345, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'O') goto yy346;\r
+               if (yych != 'o') goto yy187;\r
+yy346:\r
+               YYDEBUG(346, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'N') goto yy347;\r
+               if (yych != 'n') goto yy187;\r
+yy347:\r
+               YYDEBUG(347, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych != '_') goto yy187;\r
+               YYDEBUG(348, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych != '_') goto yy187;\r
+               YYDEBUG(349, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(350, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1636 "Zend/zend_language_scanner.l"\r
+               {\r
+       const 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 4404 "Zend/zend_language_scanner.c"\r
+yy351:\r
+               YYDEBUG(351, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy352;\r
+               if (yych != 'e') goto yy187;\r
+yy352:\r
+               YYDEBUG(352, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych != '_') goto yy187;\r
+               YYDEBUG(353, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych != '_') goto yy187;\r
+               YYDEBUG(354, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(355, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1679 "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 4436 "Zend/zend_language_scanner.c"\r
+yy356:\r
+               YYDEBUG(356, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy357;\r
+               if (yych != 'a') goto yy187;\r
+yy357:\r
+               YYDEBUG(357, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'I') goto yy358;\r
+               if (yych != 'i') goto yy187;\r
+yy358:\r
+               YYDEBUG(358, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy359;\r
+               if (yych != 't') goto yy187;\r
+yy359:\r
+               YYDEBUG(359, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych != '_') goto yy187;\r
+               YYDEBUG(360, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych != '_') goto yy187;\r
+               YYDEBUG(361, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(362, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1616 "Zend/zend_language_scanner.l"\r
+               {\r
+       const char *trait_name = NULL;\r
+       \r
+       if (CG(active_class_entry)\r
+               && (ZEND_ACC_TRAIT == \r
+                       (CG(active_class_entry)->ce_flags & ZEND_ACC_TRAIT))) {\r
+               trait_name = CG(active_class_entry)->name;\r
+       }\r
+       \r
+       if (!trait_name) {\r
+               trait_name = "";\r
+       }\r
+       \r
+       zendlval->value.str.len = strlen(trait_name);\r
+       zendlval->value.str.val = estrndup(trait_name, zendlval->value.str.len);\r
+       zendlval->type = IS_STRING;\r
+       \r
+       return T_TRAIT_C;\r
+}\r
+#line 4486 "Zend/zend_language_scanner.c"\r
+yy363:\r
+               YYDEBUG(363, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy364;\r
+               if (yych != 'a') goto yy187;\r
+yy364:\r
+               YYDEBUG(364, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'S') goto yy365;\r
+               if (yych != 's') goto yy187;\r
+yy365:\r
+               YYDEBUG(365, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'S') goto yy366;\r
+               if (yych != 's') goto yy187;\r
+yy366:\r
+               YYDEBUG(366, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych != '_') goto yy187;\r
+               YYDEBUG(367, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych != '_') goto yy187;\r
+               YYDEBUG(368, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(369, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1589 "Zend/zend_language_scanner.l"\r
+               {\r
+       const char *class_name = NULL;\r
+       \r
+       if (CG(active_class_entry)\r
+               && (ZEND_ACC_TRAIT ==\r
+                       (CG(active_class_entry)->ce_flags & ZEND_ACC_TRAIT))) {\r
+               /* We create a special __CLASS__ constant that is going to be resolved\r
+                  at run-time */\r
+               zendlval->value.str.len = sizeof("__CLASS__")-1;\r
+               zendlval->value.str.val = estrndup("__CLASS__", zendlval->value.str.len);\r
+               zendlval->type = IS_CONSTANT;\r
+       } else {\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
+               \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
+       }\r
+       return T_CLASS_C;\r
+}\r
+#line 4543 "Zend/zend_language_scanner.c"\r
+yy370:\r
+               YYDEBUG(370, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'L') goto yy371;\r
+               if (yych != 'l') goto yy187;\r
+yy371:\r
+               YYDEBUG(371, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy372;\r
+               if (yych != 't') goto yy187;\r
+yy372:\r
+               YYDEBUG(372, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych != '_') goto yy187;\r
+               YYDEBUG(373, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'C') goto yy374;\r
+               if (yych != 'c') goto yy187;\r
+yy374:\r
+               YYDEBUG(374, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'O') goto yy375;\r
+               if (yych != 'o') goto yy187;\r
+yy375:\r
+               YYDEBUG(375, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'M') goto yy376;\r
+               if (yych != 'm') goto yy187;\r
+yy376:\r
+               YYDEBUG(376, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'P') goto yy377;\r
+               if (yych != 'p') goto yy187;\r
+yy377:\r
+               YYDEBUG(377, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'I') goto yy378;\r
+               if (yych != 'i') goto yy187;\r
+yy378:\r
+               YYDEBUG(378, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'L') goto yy379;\r
+               if (yych != 'l') goto yy187;\r
+yy379:\r
+               YYDEBUG(379, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy380;\r
+               if (yych != 'e') goto yy187;\r
+yy380:\r
+               YYDEBUG(380, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'R') goto yy381;\r
+               if (yych != 'r') goto yy187;\r
+yy381:\r
+               YYDEBUG(381, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(382, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1298 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_HALT_COMPILER;\r
+}\r
+#line 4609 "Zend/zend_language_scanner.c"\r
+yy383:\r
+               YYDEBUG(383, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'S') goto yy387;\r
+               if (yych == 's') goto yy387;\r
+               goto yy187;\r
+yy384:\r
+               YYDEBUG(384, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy385;\r
+               if (yych != 'e') goto yy187;\r
+yy385:\r
+               YYDEBUG(385, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(386, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1278 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_USE;\r
+}\r
+#line 4633 "Zend/zend_language_scanner.c"\r
+yy387:\r
+               YYDEBUG(387, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy388;\r
+               if (yych != 'e') goto yy187;\r
+yy388:\r
+               YYDEBUG(388, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy389;\r
+               if (yych != 't') goto yy187;\r
+yy389:\r
+               YYDEBUG(389, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(390, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1326 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_UNSET;\r
+}\r
+#line 4656 "Zend/zend_language_scanner.c"\r
+yy391:\r
+               YYDEBUG(391, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(7);\r
+               yych = *YYCURSOR;\r
+yy392:\r
+               YYDEBUG(392, *YYCURSOR);\r
+               if (yych <= 'S') {\r
+                       if (yych <= 'D') {\r
+                               if (yych <= ' ') {\r
+                                       if (yych == '\t') goto yy391;\r
+                                       if (yych <= 0x1F) goto yy194;\r
+                                       goto yy391;\r
+                               } else {\r
+                                       if (yych <= 'A') {\r
+                                               if (yych <= '@') goto yy194;\r
+                                               goto yy396;\r
+                                       } else {\r
+                                               if (yych <= 'B') goto yy394;\r
+                                               if (yych <= 'C') goto yy194;\r
+                                               goto yy399;\r
+                                       }\r
+                               }\r
+                       } else {\r
+                               if (yych <= 'I') {\r
+                                       if (yych == 'F') goto yy400;\r
+                                       if (yych <= 'H') goto yy194;\r
+                                       goto yy401;\r
+                               } else {\r
+                                       if (yych <= 'O') {\r
+                                               if (yych <= 'N') goto yy194;\r
+                                               goto yy395;\r
+                                       } else {\r
+                                               if (yych <= 'Q') goto yy194;\r
+                                               if (yych <= 'R') goto yy398;\r
+                                               goto yy397;\r
+                                       }\r
+                               }\r
+                       }\r
+               } else {\r
+                       if (yych <= 'f') {\r
+                               if (yych <= 'a') {\r
+                                       if (yych == 'U') goto yy393;\r
+                                       if (yych <= '`') goto yy194;\r
+                                       goto yy396;\r
+                               } else {\r
+                                       if (yych <= 'c') {\r
+                                               if (yych <= 'b') goto yy394;\r
+                                               goto yy194;\r
+                                       } else {\r
+                                               if (yych <= 'd') goto yy399;\r
+                                               if (yych <= 'e') goto yy194;\r
+                                               goto yy400;\r
+                                       }\r
+                               }\r
+                       } else {\r
+                               if (yych <= 'q') {\r
+                                       if (yych <= 'i') {\r
+                                               if (yych <= 'h') goto yy194;\r
+                                               goto yy401;\r
+                                       } else {\r
+                                               if (yych == 'o') goto yy395;\r
+                                               goto yy194;\r
+                                       }\r
+                               } else {\r
+                                       if (yych <= 's') {\r
+                                               if (yych <= 'r') goto yy398;\r
+                                               goto yy397;\r
+                                       } else {\r
+                                               if (yych != 'u') goto yy194;\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+yy393:\r
+               YYDEBUG(393, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'N') goto yy460;\r
+               if (yych == 'n') goto yy460;\r
+               goto yy194;\r
+yy394:\r
+               YYDEBUG(394, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'O') {\r
+                       if (yych == 'I') goto yy447;\r
+                       if (yych <= 'N') goto yy194;\r
+                       goto yy448;\r
+               } else {\r
+                       if (yych <= 'i') {\r
+                               if (yych <= 'h') goto yy194;\r
+                               goto yy447;\r
+                       } else {\r
+                               if (yych == 'o') goto yy448;\r
+                               goto yy194;\r
+                       }\r
+               }\r
+yy395:\r
+               YYDEBUG(395, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'B') goto yy439;\r
+               if (yych == 'b') goto yy439;\r
+               goto yy194;\r
+yy396:\r
+               YYDEBUG(396, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'R') goto yy432;\r
+               if (yych == 'r') goto yy432;\r
+               goto yy194;\r
+yy397:\r
+               YYDEBUG(397, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy424;\r
+               if (yych == 't') goto yy424;\r
+               goto yy194;\r
+yy398:\r
+               YYDEBUG(398, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy422;\r
+               if (yych == 'e') goto yy422;\r
+               goto yy194;\r
+yy399:\r
+               YYDEBUG(399, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'O') goto yy418;\r
+               if (yych == 'o') goto yy418;\r
+               goto yy194;\r
+yy400:\r
+               YYDEBUG(400, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'L') goto yy411;\r
+               if (yych == 'l') goto yy411;\r
+               goto yy194;\r
+yy401:\r
+               YYDEBUG(401, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'N') goto yy402;\r
+               if (yych != 'n') goto yy194;\r
+yy402:\r
+               YYDEBUG(402, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy403;\r
+               if (yych != 't') goto yy194;\r
+yy403:\r
+               YYDEBUG(403, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy404;\r
+               if (yych != 'e') goto yy406;\r
+yy404:\r
+               YYDEBUG(404, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'G') goto yy409;\r
+               if (yych == 'g') goto yy409;\r
+               goto yy194;\r
+yy405:\r
+               YYDEBUG(405, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(1);\r
+               yych = *YYCURSOR;\r
+yy406:\r
+               YYDEBUG(406, *YYCURSOR);\r
+               if (yych <= 0x1F) {\r
+                       if (yych == '\t') goto yy405;\r
+                       goto yy194;\r
+               } else {\r
+                       if (yych <= ' ') goto yy405;\r
+                       if (yych != ')') goto yy194;\r
+               }\r
+               YYDEBUG(407, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(408, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1226 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_INT_CAST;\r
+}\r
+#line 4832 "Zend/zend_language_scanner.c"\r
+yy409:\r
+               YYDEBUG(409, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy410;\r
+               if (yych != 'e') goto yy194;\r
+yy410:\r
+               YYDEBUG(410, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'R') goto yy405;\r
+               if (yych == 'r') goto yy405;\r
+               goto yy194;\r
+yy411:\r
+               YYDEBUG(411, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'O') goto yy412;\r
+               if (yych != 'o') goto yy194;\r
+yy412:\r
+               YYDEBUG(412, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy413;\r
+               if (yych != 'a') goto yy194;\r
+yy413:\r
+               YYDEBUG(413, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy414;\r
+               if (yych != 't') goto yy194;\r
+yy414:\r
+               YYDEBUG(414, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(1);\r
+               yych = *YYCURSOR;\r
+               YYDEBUG(415, *YYCURSOR);\r
+               if (yych <= 0x1F) {\r
+                       if (yych == '\t') goto yy414;\r
+                       goto yy194;\r
+               } else {\r
+                       if (yych <= ' ') goto yy414;\r
+                       if (yych != ')') goto yy194;\r
+               }\r
+               YYDEBUG(416, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(417, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1230 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_DOUBLE_CAST;\r
+}\r
+#line 4880 "Zend/zend_language_scanner.c"\r
+yy418:\r
+               YYDEBUG(418, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'U') goto yy419;\r
+               if (yych != 'u') goto yy194;\r
+yy419:\r
+               YYDEBUG(419, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'B') goto yy420;\r
+               if (yych != 'b') goto yy194;\r
+yy420:\r
+               YYDEBUG(420, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'L') goto yy421;\r
+               if (yych != 'l') goto yy194;\r
+yy421:\r
+               YYDEBUG(421, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy414;\r
+               if (yych == 'e') goto yy414;\r
+               goto yy194;\r
+yy422:\r
+               YYDEBUG(422, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy423;\r
+               if (yych != 'a') goto yy194;\r
+yy423:\r
+               YYDEBUG(423, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'L') goto yy414;\r
+               if (yych == 'l') goto yy414;\r
+               goto yy194;\r
+yy424:\r
+               YYDEBUG(424, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'R') goto yy425;\r
+               if (yych != 'r') goto yy194;\r
+yy425:\r
+               YYDEBUG(425, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'I') goto yy426;\r
+               if (yych != 'i') goto yy194;\r
+yy426:\r
+               YYDEBUG(426, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'N') goto yy427;\r
+               if (yych != 'n') goto yy194;\r
+yy427:\r
+               YYDEBUG(427, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'G') goto yy428;\r
+               if (yych != 'g') goto yy194;\r
+yy428:\r
+               YYDEBUG(428, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(1);\r
+               yych = *YYCURSOR;\r
+               YYDEBUG(429, *YYCURSOR);\r
+               if (yych <= 0x1F) {\r
+                       if (yych == '\t') goto yy428;\r
+                       goto yy194;\r
+               } else {\r
+                       if (yych <= ' ') goto yy428;\r
+                       if (yych != ')') goto yy194;\r
+               }\r
+               YYDEBUG(430, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(431, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1234 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_STRING_CAST;\r
+}\r
+#line 4954 "Zend/zend_language_scanner.c"\r
+yy432:\r
+               YYDEBUG(432, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'R') goto yy433;\r
+               if (yych != 'r') goto yy194;\r
+yy433:\r
+               YYDEBUG(433, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy434;\r
+               if (yych != 'a') goto yy194;\r
+yy434:\r
+               YYDEBUG(434, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'Y') goto yy435;\r
+               if (yych != 'y') goto yy194;\r
+yy435:\r
+               YYDEBUG(435, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(1);\r
+               yych = *YYCURSOR;\r
+               YYDEBUG(436, *YYCURSOR);\r
+               if (yych <= 0x1F) {\r
+                       if (yych == '\t') goto yy435;\r
+                       goto yy194;\r
+               } else {\r
+                       if (yych <= ' ') goto yy435;\r
+                       if (yych != ')') goto yy194;\r
+               }\r
+               YYDEBUG(437, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(438, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1238 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_ARRAY_CAST;\r
+}\r
+#line 4991 "Zend/zend_language_scanner.c"\r
+yy439:\r
+               YYDEBUG(439, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'J') goto yy440;\r
+               if (yych != 'j') goto yy194;\r
+yy440:\r
+               YYDEBUG(440, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy441;\r
+               if (yych != 'e') goto yy194;\r
+yy441:\r
+               YYDEBUG(441, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'C') goto yy442;\r
+               if (yych != 'c') goto yy194;\r
+yy442:\r
+               YYDEBUG(442, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy443;\r
+               if (yych != 't') goto yy194;\r
+yy443:\r
+               YYDEBUG(443, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(1);\r
+               yych = *YYCURSOR;\r
+               YYDEBUG(444, *YYCURSOR);\r
+               if (yych <= 0x1F) {\r
+                       if (yych == '\t') goto yy443;\r
+                       goto yy194;\r
+               } else {\r
+                       if (yych <= ' ') goto yy443;\r
+                       if (yych != ')') goto yy194;\r
+               }\r
+               YYDEBUG(445, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(446, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1242 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_OBJECT_CAST;\r
+}\r
+#line 5033 "Zend/zend_language_scanner.c"\r
+yy447:\r
+               YYDEBUG(447, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'N') goto yy457;\r
+               if (yych == 'n') goto yy457;\r
+               goto yy194;\r
+yy448:\r
+               YYDEBUG(448, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'O') goto yy449;\r
+               if (yych != 'o') goto yy194;\r
+yy449:\r
+               YYDEBUG(449, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'L') goto yy450;\r
+               if (yych != 'l') goto yy194;\r
+yy450:\r
+               YYDEBUG(450, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy455;\r
+               if (yych == 'e') goto yy455;\r
+               goto yy452;\r
+yy451:\r
+               YYDEBUG(451, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(1);\r
+               yych = *YYCURSOR;\r
+yy452:\r
+               YYDEBUG(452, *YYCURSOR);\r
+               if (yych <= 0x1F) {\r
+                       if (yych == '\t') goto yy451;\r
+                       goto yy194;\r
+               } else {\r
+                       if (yych <= ' ') goto yy451;\r
+                       if (yych != ')') goto yy194;\r
+               }\r
+               YYDEBUG(453, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(454, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1246 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_BOOL_CAST;\r
+}\r
+#line 5078 "Zend/zend_language_scanner.c"\r
+yy455:\r
+               YYDEBUG(455, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy456;\r
+               if (yych != 'a') goto yy194;\r
+yy456:\r
+               YYDEBUG(456, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'N') goto yy451;\r
+               if (yych == 'n') goto yy451;\r
+               goto yy194;\r
+yy457:\r
+               YYDEBUG(457, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy458;\r
+               if (yych != 'a') goto yy194;\r
+yy458:\r
+               YYDEBUG(458, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'R') goto yy459;\r
+               if (yych != 'r') goto yy194;\r
+yy459:\r
+               YYDEBUG(459, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'Y') goto yy428;\r
+               if (yych == 'y') goto yy428;\r
+               goto yy194;\r
+yy460:\r
+               YYDEBUG(460, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'S') goto yy461;\r
+               if (yych != 's') goto yy194;\r
+yy461:\r
+               YYDEBUG(461, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy462;\r
+               if (yych != 'e') goto yy194;\r
+yy462:\r
+               YYDEBUG(462, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy463;\r
+               if (yych != 't') goto yy194;\r
+yy463:\r
+               YYDEBUG(463, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(1);\r
+               yych = *YYCURSOR;\r
+               YYDEBUG(464, *YYCURSOR);\r
+               if (yych <= 0x1F) {\r
+                       if (yych == '\t') goto yy463;\r
+                       goto yy194;\r
+               } else {\r
+                       if (yych <= ' ') goto yy463;\r
+                       if (yych != ')') goto yy194;\r
+               }\r
+               YYDEBUG(465, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(466, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1250 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_UNSET_CAST;\r
+}\r
+#line 5142 "Zend/zend_language_scanner.c"\r
+yy467:\r
+               YYDEBUG(467, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'R') goto yy468;\r
+               if (yych != 'r') goto yy187;\r
+yy468:\r
+               YYDEBUG(468, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(469, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1222 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_VAR;\r
+}\r
+#line 5160 "Zend/zend_language_scanner.c"\r
+yy470:\r
+               YYDEBUG(470, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'M') goto yy474;\r
+               if (yych == 'm') goto yy474;\r
+               goto yy187;\r
+yy471:\r
+               YYDEBUG(471, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'W') goto yy472;\r
+               if (yych != 'w') goto yy187;\r
+yy472:\r
+               YYDEBUG(472, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(473, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1214 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_NEW;\r
+}\r
+#line 5184 "Zend/zend_language_scanner.c"\r
+yy474:\r
+               YYDEBUG(474, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy475;\r
+               if (yych != 'e') goto yy187;\r
+yy475:\r
+               YYDEBUG(475, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'S') goto yy476;\r
+               if (yych != 's') goto yy187;\r
+yy476:\r
+               YYDEBUG(476, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'P') goto yy477;\r
+               if (yych != 'p') goto yy187;\r
+yy477:\r
+               YYDEBUG(477, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy478;\r
+               if (yych != 'a') goto yy187;\r
+yy478:\r
+               YYDEBUG(478, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'C') goto yy479;\r
+               if (yych != 'c') goto yy187;\r
+yy479:\r
+               YYDEBUG(479, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy480;\r
+               if (yych != 'e') goto yy187;\r
+yy480:\r
+               YYDEBUG(480, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(481, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1274 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_NAMESPACE;\r
+}\r
+#line 5227 "Zend/zend_language_scanner.c"\r
+yy482:\r
+               YYDEBUG(482, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(483, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1206 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_PAAMAYIM_NEKUDOTAYIM;\r
+}\r
+#line 5237 "Zend/zend_language_scanner.c"\r
+yy484:\r
+               YYDEBUG(484, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(1);\r
+               yych = *YYCURSOR;\r
+yy485:\r
+               YYDEBUG(485, *YYCURSOR);\r
+               if (yych <= '\f') {\r
+                       if (yych <= 0x08) goto yy141;\r
+                       if (yych <= '\n') goto yy484;\r
+                       goto yy141;\r
+               } else {\r
+                       if (yych <= '\r') goto yy484;\r
+                       if (yych == ' ') goto yy484;\r
+                       goto yy141;\r
+               }\r
+yy486:\r
+               YYDEBUG(486, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(487, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1382 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_MINUS_EQUAL;\r
+}\r
+#line 5263 "Zend/zend_language_scanner.c"\r
+yy488:\r
+               YYDEBUG(488, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(489, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1350 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_DEC;\r
+}\r
+#line 5273 "Zend/zend_language_scanner.c"\r
+yy490:\r
+               YYDEBUG(490, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(491, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1176 "Zend/zend_language_scanner.l"\r
+               {\r
+       yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);\r
+       return T_OBJECT_OPERATOR;\r
+}\r
+#line 5284 "Zend/zend_language_scanner.c"\r
+yy492:\r
+               YYDEBUG(492, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'O') {\r
+                       if (yych == 'I') goto yy499;\r
+                       if (yych <= 'N') goto yy187;\r
+                       goto yy500;\r
+               } else {\r
+                       if (yych <= 'i') {\r
+                               if (yych <= 'h') goto yy187;\r
+                               goto yy499;\r
+                       } else {\r
+                               if (yych == 'o') goto yy500;\r
+                               goto yy187;\r
+                       }\r
+               }\r
+yy493:\r
+               YYDEBUG(493, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'B') goto yy494;\r
+               if (yych != 'b') goto yy187;\r
+yy494:\r
+               YYDEBUG(494, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'L') goto yy495;\r
+               if (yych != 'l') goto yy187;\r
+yy495:\r
+               YYDEBUG(495, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'I') goto yy496;\r
+               if (yych != 'i') goto yy187;\r
+yy496:\r
+               YYDEBUG(496, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'C') goto yy497;\r
+               if (yych != 'c') goto yy187;\r
+yy497:\r
+               YYDEBUG(497, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(498, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1322 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_PUBLIC;\r
+}\r
+#line 5333 "Zend/zend_language_scanner.c"\r
+yy499:\r
+               YYDEBUG(499, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'V') {\r
+                       if (yych == 'N') goto yy508;\r
+                       if (yych <= 'U') goto yy187;\r
+                       goto yy509;\r
+               } else {\r
+                       if (yych <= 'n') {\r
+                               if (yych <= 'm') goto yy187;\r
+                               goto yy508;\r
+                       } else {\r
+                               if (yych == 'v') goto yy509;\r
+                               goto yy187;\r
+                       }\r
+               }\r
+yy500:\r
+               YYDEBUG(500, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy501;\r
+               if (yych != 't') goto yy187;\r
+yy501:\r
+               YYDEBUG(501, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy502;\r
+               if (yych != 'e') goto yy187;\r
+yy502:\r
+               YYDEBUG(502, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'C') goto yy503;\r
+               if (yych != 'c') goto yy187;\r
+yy503:\r
+               YYDEBUG(503, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy504;\r
+               if (yych != 't') goto yy187;\r
+yy504:\r
+               YYDEBUG(504, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy505;\r
+               if (yych != 'e') goto yy187;\r
+yy505:\r
+               YYDEBUG(505, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'D') goto yy506;\r
+               if (yych != 'd') goto yy187;\r
+yy506:\r
+               YYDEBUG(506, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(507, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1318 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_PROTECTED;\r
+}\r
+#line 5392 "Zend/zend_language_scanner.c"\r
+yy508:\r
+               YYDEBUG(508, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy514;\r
+               if (yych == 't') goto yy514;\r
+               goto yy187;\r
+yy509:\r
+               YYDEBUG(509, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy510;\r
+               if (yych != 'a') goto yy187;\r
+yy510:\r
+               YYDEBUG(510, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy511;\r
+               if (yych != 't') goto yy187;\r
+yy511:\r
+               YYDEBUG(511, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy512;\r
+               if (yych != 'e') goto yy187;\r
+yy512:\r
+               YYDEBUG(512, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(513, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1314 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_PRIVATE;\r
+}\r
+#line 5426 "Zend/zend_language_scanner.c"\r
+yy514:\r
+               YYDEBUG(514, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(515, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1152 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_PRINT;\r
+}\r
+#line 5439 "Zend/zend_language_scanner.c"\r
+yy516:\r
+               YYDEBUG(516, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'O') goto yy521;\r
+               if (yych == 'o') goto yy521;\r
+               goto yy187;\r
+yy517:\r
+               YYDEBUG(517, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy518;\r
+               if (yych != 't') goto yy187;\r
+yy518:\r
+               YYDEBUG(518, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'O') goto yy519;\r
+               if (yych != 'o') goto yy187;\r
+yy519:\r
+               YYDEBUG(519, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(520, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1144 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_GOTO;\r
+}\r
+#line 5468 "Zend/zend_language_scanner.c"\r
+yy521:\r
+               YYDEBUG(521, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'B') goto yy522;\r
+               if (yych != 'b') goto yy187;\r
+yy522:\r
+               YYDEBUG(522, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy523;\r
+               if (yych != 'a') goto yy187;\r
+yy523:\r
+               YYDEBUG(523, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'L') goto yy524;\r
+               if (yych != 'l') goto yy187;\r
+yy524:\r
+               YYDEBUG(524, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(525, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1286 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_GLOBAL;\r
+}\r
+#line 5496 "Zend/zend_language_scanner.c"\r
+yy526:\r
+               YYDEBUG(526, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == '<') goto yy534;\r
+               goto yy194;\r
+yy527:\r
+               YYDEBUG(527, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               goto yy181;\r
+yy528:\r
+               YYDEBUG(528, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               goto yy179;\r
+yy529:\r
+               YYDEBUG(529, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy530;\r
+               if (yych != 'e') goto yy187;\r
+yy530:\r
+               YYDEBUG(530, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy531;\r
+               if (yych != 'a') goto yy187;\r
+yy531:\r
+               YYDEBUG(531, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'K') goto yy532;\r
+               if (yych != 'k') goto yy187;\r
+yy532:\r
+               YYDEBUG(532, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(533, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1136 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_BREAK;\r
+}\r
+#line 5537 "Zend/zend_language_scanner.c"\r
+yy534:\r
+               YYDEBUG(534, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == '<') goto yy270;\r
+               goto yy194;\r
+yy535:\r
+               YYDEBUG(535, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy542;\r
+               if (yych == 'a') goto yy542;\r
+               goto yy187;\r
+yy536:\r
+               YYDEBUG(536, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'I') goto yy537;\r
+               if (yych != 'i') goto yy187;\r
+yy537:\r
+               YYDEBUG(537, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy538;\r
+               if (yych != 't') goto yy187;\r
+yy538:\r
+               YYDEBUG(538, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'C') goto yy539;\r
+               if (yych != 'c') goto yy187;\r
+yy539:\r
+               YYDEBUG(539, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'H') goto yy540;\r
+               if (yych != 'h') goto yy187;\r
+yy540:\r
+               YYDEBUG(540, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(541, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1120 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_SWITCH;\r
+}\r
+#line 5581 "Zend/zend_language_scanner.c"\r
+yy542:\r
+               YYDEBUG(542, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy543;\r
+               if (yych != 't') goto yy187;\r
+yy543:\r
+               YYDEBUG(543, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'I') goto yy544;\r
+               if (yych != 'i') goto yy187;\r
+yy544:\r
+               YYDEBUG(544, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'C') goto yy545;\r
+               if (yych != 'c') goto yy187;\r
+yy545:\r
+               YYDEBUG(545, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(546, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1302 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_STATIC;\r
+}\r
+#line 5609 "Zend/zend_language_scanner.c"\r
+yy547:\r
+               YYDEBUG(547, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'S') goto yy558;\r
+               if (yych == 's') goto yy558;\r
+               goto yy187;\r
+yy548:\r
+               YYDEBUG(548, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'D') goto yy556;\r
+               if (yych == 'd') goto yy556;\r
+               goto yy187;\r
+yy549:\r
+               YYDEBUG(549, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'R') goto yy552;\r
+               if (yych == 'r') goto yy552;\r
+               goto yy187;\r
+yy550:\r
+               YYDEBUG(550, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(551, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1116 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_AS;\r
+}\r
+#line 5640 "Zend/zend_language_scanner.c"\r
+yy552:\r
+               YYDEBUG(552, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy553;\r
+               if (yych != 'a') goto yy187;\r
+yy553:\r
+               YYDEBUG(553, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'Y') goto yy554;\r
+               if (yych != 'y') goto yy187;\r
+yy554:\r
+               YYDEBUG(554, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(555, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1338 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_ARRAY;\r
+}\r
+#line 5663 "Zend/zend_language_scanner.c"\r
+yy556:\r
+               YYDEBUG(556, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(557, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1434 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_LOGICAL_AND;\r
+}\r
+#line 5676 "Zend/zend_language_scanner.c"\r
+yy558:\r
+               YYDEBUG(558, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy559;\r
+               if (yych != 't') goto yy187;\r
+yy559:\r
+               YYDEBUG(559, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'R') goto yy560;\r
+               if (yych != 'r') goto yy187;\r
+yy560:\r
+               YYDEBUG(560, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy561;\r
+               if (yych != 'a') goto yy187;\r
+yy561:\r
+               YYDEBUG(561, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'C') goto yy562;\r
+               if (yych != 'c') goto yy187;\r
+yy562:\r
+               YYDEBUG(562, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy563;\r
+               if (yych != 't') goto yy187;\r
+yy563:\r
+               YYDEBUG(563, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(564, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1306 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_ABSTRACT;\r
+}\r
+#line 5714 "Zend/zend_language_scanner.c"\r
+yy565:\r
+               YYDEBUG(565, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'I') goto yy566;\r
+               if (yych != 'i') goto yy187;\r
+yy566:\r
+               YYDEBUG(566, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'L') goto yy567;\r
+               if (yych != 'l') goto yy187;\r
+yy567:\r
+               YYDEBUG(567, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy568;\r
+               if (yych != 'e') goto yy187;\r
+yy568:\r
+               YYDEBUG(568, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(569, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1076 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_WHILE;\r
+}\r
+#line 5742 "Zend/zend_language_scanner.c"\r
+yy570:\r
+               YYDEBUG(570, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(571, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1060 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_IF;\r
+}\r
+#line 5755 "Zend/zend_language_scanner.c"\r
+yy572:\r
+               YYDEBUG(572, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'P') goto yy614;\r
+               if (yych == 'p') goto yy614;\r
+               goto yy187;\r
+yy573:\r
+               YYDEBUG(573, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'T') {\r
+                       if (yych <= 'C') {\r
+                               if (yych <= 'B') goto yy187;\r
+                               goto yy581;\r
+                       } else {\r
+                               if (yych <= 'R') goto yy187;\r
+                               if (yych <= 'S') goto yy579;\r
+                               goto yy580;\r
+                       }\r
+               } else {\r
+                       if (yych <= 'r') {\r
+                               if (yych == 'c') goto yy581;\r
+                               goto yy187;\r
+                       } else {\r
+                               if (yych <= 's') goto yy579;\r
+                               if (yych <= 't') goto yy580;\r
+                               goto yy187;\r
+                       }\r
+               }\r
+yy574:\r
+               YYDEBUG(574, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'S') goto yy575;\r
+               if (yych != 's') goto yy187;\r
+yy575:\r
+               YYDEBUG(575, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy576;\r
+               if (yych != 'e') goto yy187;\r
+yy576:\r
+               YYDEBUG(576, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy577;\r
+               if (yych != 't') goto yy187;\r
+yy577:\r
+               YYDEBUG(577, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(578, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1290 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_ISSET;\r
+}\r
+#line 5811 "Zend/zend_language_scanner.c"\r
+yy579:\r
+               YYDEBUG(579, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy600;\r
+               if (yych == 't') goto yy600;\r
+               goto yy187;\r
+yy580:\r
+               YYDEBUG(580, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy593;\r
+               if (yych == 'e') goto yy593;\r
+               goto yy187;\r
+yy581:\r
+               YYDEBUG(581, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'L') goto yy582;\r
+               if (yych != 'l') goto yy187;\r
+yy582:\r
+               YYDEBUG(582, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'U') goto yy583;\r
+               if (yych != 'u') goto yy187;\r
+yy583:\r
+               YYDEBUG(583, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'D') goto yy584;\r
+               if (yych != 'd') goto yy187;\r
+yy584:\r
+               YYDEBUG(584, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy585;\r
+               if (yych != 'e') goto yy187;\r
+yy585:\r
+               YYDEBUG(585, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if ((yych = *YYCURSOR) <= '^') {\r
+                       if (yych <= '9') {\r
+                               if (yych >= '0') goto yy186;\r
+                       } else {\r
+                               if (yych <= '@') goto yy586;\r
+                               if (yych <= 'Z') goto yy186;\r
+                       }\r
+               } else {\r
+                       if (yych <= '`') {\r
+                               if (yych <= '_') goto yy587;\r
+                       } else {\r
+                               if (yych <= 'z') goto yy186;\r
+                               if (yych >= 0x7F) goto yy186;\r
+                       }\r
+               }\r
+yy586:\r
+               YYDEBUG(586, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1258 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_INCLUDE;\r
+}\r
+#line 5869 "Zend/zend_language_scanner.c"\r
+yy587:\r
+               YYDEBUG(587, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'O') goto yy588;\r
+               if (yych != 'o') goto yy187;\r
+yy588:\r
+               YYDEBUG(588, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'N') goto yy589;\r
+               if (yych != 'n') goto yy187;\r
+yy589:\r
+               YYDEBUG(589, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'C') goto yy590;\r
+               if (yych != 'c') goto yy187;\r
+yy590:\r
+               YYDEBUG(590, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy591;\r
+               if (yych != 'e') goto yy187;\r
+yy591:\r
+               YYDEBUG(591, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(592, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1262 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_INCLUDE_ONCE;\r
+}\r
+#line 5902 "Zend/zend_language_scanner.c"\r
+yy593:\r
+               YYDEBUG(593, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'R') goto yy594;\r
+               if (yych != 'r') goto yy187;\r
+yy594:\r
+               YYDEBUG(594, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'F') goto yy595;\r
+               if (yych != 'f') goto yy187;\r
+yy595:\r
+               YYDEBUG(595, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy596;\r
+               if (yych != 'a') goto yy187;\r
+yy596:\r
+               YYDEBUG(596, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'C') goto yy597;\r
+               if (yych != 'c') goto yy187;\r
+yy597:\r
+               YYDEBUG(597, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy598;\r
+               if (yych != 'e') goto yy187;\r
+yy598:\r
+               YYDEBUG(598, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(599, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1160 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_INTERFACE;\r
+}\r
+#line 5940 "Zend/zend_language_scanner.c"\r
+yy600:\r
+               YYDEBUG(600, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'E') {\r
+                       if (yych == 'A') goto yy601;\r
+                       if (yych <= 'D') goto yy187;\r
+                       goto yy602;\r
+               } else {\r
+                       if (yych <= 'a') {\r
+                               if (yych <= '`') goto yy187;\r
+                       } else {\r
+                               if (yych == 'e') goto yy602;\r
+                               goto yy187;\r
+                       }\r
+               }\r
+yy601:\r
+               YYDEBUG(601, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'N') goto yy608;\r
+               if (yych == 'n') goto yy608;\r
+               goto yy187;\r
+yy602:\r
+               YYDEBUG(602, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy603;\r
+               if (yych != 'a') goto yy187;\r
+yy603:\r
+               YYDEBUG(603, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'D') goto yy604;\r
+               if (yych != 'd') goto yy187;\r
+yy604:\r
+               YYDEBUG(604, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'O') goto yy605;\r
+               if (yych != 'o') goto yy187;\r
+yy605:\r
+               YYDEBUG(605, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'F') goto yy606;\r
+               if (yych != 'f') goto yy187;\r
+yy606:\r
+               YYDEBUG(606, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(607, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1282 "Zend/zend_language_scanner.l"\r
+               {\r
+        return T_INSTEADOF;\r
+}\r
+#line 5994 "Zend/zend_language_scanner.c"\r
+yy608:\r
+               YYDEBUG(608, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'C') goto yy609;\r
+               if (yych != 'c') goto yy187;\r
+yy609:\r
+               YYDEBUG(609, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy610;\r
+               if (yych != 'e') goto yy187;\r
+yy610:\r
+               YYDEBUG(610, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'O') goto yy611;\r
+               if (yych != 'o') goto yy187;\r
+yy611:\r
+               YYDEBUG(611, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'F') goto yy612;\r
+               if (yych != 'f') goto yy187;\r
+yy612:\r
+               YYDEBUG(612, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(613, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1112 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_INSTANCEOF;\r
+}\r
+#line 6027 "Zend/zend_language_scanner.c"\r
+yy614:\r
+               YYDEBUG(614, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'L') goto yy615;\r
+               if (yych != 'l') goto yy187;\r
+yy615:\r
+               YYDEBUG(615, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy616;\r
+               if (yych != 'e') goto yy187;\r
+yy616:\r
+               YYDEBUG(616, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'M') goto yy617;\r
+               if (yych != 'm') goto yy187;\r
+yy617:\r
+               YYDEBUG(617, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy618;\r
+               if (yych != 'e') goto yy187;\r
+yy618:\r
+               YYDEBUG(618, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'N') goto yy619;\r
+               if (yych != 'n') goto yy187;\r
+yy619:\r
+               YYDEBUG(619, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy620;\r
+               if (yych != 't') goto yy187;\r
+yy620:\r
+               YYDEBUG(620, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'S') goto yy621;\r
+               if (yych != 's') goto yy187;\r
+yy621:\r
+               YYDEBUG(621, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(622, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1172 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_IMPLEMENTS;\r
+}\r
+#line 6075 "Zend/zend_language_scanner.c"\r
+yy623:\r
+               YYDEBUG(623, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'R') goto yy631;\r
+               if (yych == 'r') goto yy631;\r
+               goto yy187;\r
+yy624:\r
+               YYDEBUG(624, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'Y') {\r
+                       if (yych == 'A') goto yy627;\r
+                       if (yych <= 'X') goto yy187;\r
+               } else {\r
+                       if (yych <= 'a') {\r
+                               if (yych <= '`') goto yy187;\r
+                               goto yy627;\r
+                       } else {\r
+                               if (yych != 'y') goto yy187;\r
+                       }\r
+               }\r
+               YYDEBUG(625, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(626, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1044 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_TRY;\r
+}\r
+#line 6107 "Zend/zend_language_scanner.c"\r
+yy627:\r
+               YYDEBUG(627, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'I') goto yy628;\r
+               if (yych != 'i') goto yy187;\r
+yy628:\r
+               YYDEBUG(628, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy629;\r
+               if (yych != 't') goto yy187;\r
+yy629:\r
+               YYDEBUG(629, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(630, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1164 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_TRAIT;\r
+}\r
+#line 6130 "Zend/zend_language_scanner.c"\r
+yy631:\r
+               YYDEBUG(631, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'O') goto yy632;\r
+               if (yych != 'o') goto yy187;\r
+yy632:\r
+               YYDEBUG(632, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'W') goto yy633;\r
+               if (yych != 'w') goto yy187;\r
+yy633:\r
+               YYDEBUG(633, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(634, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1056 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_THROW;\r
+}\r
+#line 6153 "Zend/zend_language_scanner.c"\r
+yy635:\r
+               YYDEBUG(635, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy636;\r
+               if (yych != 'e') goto yy187;\r
+yy636:\r
+               YYDEBUG(636, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'L') goto yy637;\r
+               if (yych != 'l') goto yy187;\r
+yy637:\r
+               YYDEBUG(637, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'D') goto yy638;\r
+               if (yych != 'd') goto yy187;\r
+yy638:\r
+               YYDEBUG(638, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(639, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1040 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_YIELD;\r
+}\r
+#line 6181 "Zend/zend_language_scanner.c"\r
+yy640:\r
+               YYDEBUG(640, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'T') {\r
+                       if (yych == 'Q') goto yy642;\r
+                       if (yych <= 'S') goto yy187;\r
+               } else {\r
+                       if (yych <= 'q') {\r
+                               if (yych <= 'p') goto yy187;\r
+                               goto yy642;\r
+                       } else {\r
+                               if (yych != 't') goto yy187;\r
+                       }\r
+               }\r
+               YYDEBUG(641, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'U') goto yy654;\r
+               if (yych == 'u') goto yy654;\r
+               goto yy187;\r
+yy642:\r
+               YYDEBUG(642, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'U') goto yy643;\r
+               if (yych != 'u') goto yy187;\r
+yy643:\r
+               YYDEBUG(643, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'I') goto yy644;\r
+               if (yych != 'i') goto yy187;\r
+yy644:\r
+               YYDEBUG(644, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'R') goto yy645;\r
+               if (yych != 'r') goto yy187;\r
+yy645:\r
+               YYDEBUG(645, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy646;\r
+               if (yych != 'e') goto yy187;\r
+yy646:\r
+               YYDEBUG(646, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if ((yych = *YYCURSOR) <= '^') {\r
+                       if (yych <= '9') {\r
+                               if (yych >= '0') goto yy186;\r
+                       } else {\r
+                               if (yych <= '@') goto yy647;\r
+                               if (yych <= 'Z') goto yy186;\r
+                       }\r
+               } else {\r
+                       if (yych <= '`') {\r
+                               if (yych <= '_') goto yy648;\r
+                       } else {\r
+                               if (yych <= 'z') goto yy186;\r
+                               if (yych >= 0x7F) goto yy186;\r
+                       }\r
+               }\r
+yy647:\r
+               YYDEBUG(647, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1266 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_REQUIRE;\r
+}\r
+#line 6246 "Zend/zend_language_scanner.c"\r
+yy648:\r
+               YYDEBUG(648, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'O') goto yy649;\r
+               if (yych != 'o') goto yy187;\r
+yy649:\r
+               YYDEBUG(649, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'N') goto yy650;\r
+               if (yych != 'n') goto yy187;\r
+yy650:\r
+               YYDEBUG(650, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'C') goto yy651;\r
+               if (yych != 'c') goto yy187;\r
+yy651:\r
+               YYDEBUG(651, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy652;\r
+               if (yych != 'e') goto yy187;\r
+yy652:\r
+               YYDEBUG(652, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(653, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1270 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_REQUIRE_ONCE;\r
+}\r
+#line 6279 "Zend/zend_language_scanner.c"\r
+yy654:\r
+               YYDEBUG(654, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'R') goto yy655;\r
+               if (yych != 'r') goto yy187;\r
+yy655:\r
+               YYDEBUG(655, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'N') goto yy656;\r
+               if (yych != 'n') goto yy187;\r
+yy656:\r
+               YYDEBUG(656, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(657, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1036 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_RETURN;\r
+}\r
+#line 6302 "Zend/zend_language_scanner.c"\r
+yy658:\r
+               YYDEBUG(658, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'T') {\r
+                       if (yych <= 'L') {\r
+                               if (yych <= 'K') goto yy187;\r
+                               goto yy681;\r
+                       } else {\r
+                               if (yych <= 'R') goto yy187;\r
+                               if (yych <= 'S') goto yy680;\r
+                               goto yy679;\r
+                       }\r
+               } else {\r
+                       if (yych <= 'r') {\r
+                               if (yych == 'l') goto yy681;\r
+                               goto yy187;\r
+                       } else {\r
+                               if (yych <= 's') goto yy680;\r
+                               if (yych <= 't') goto yy679;\r
+                               goto yy187;\r
+                       }\r
+               }\r
+yy659:\r
+               YYDEBUG(659, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'O') {\r
+                       if (yych == 'A') goto yy671;\r
+                       if (yych <= 'N') goto yy187;\r
+                       goto yy672;\r
+               } else {\r
+                       if (yych <= 'a') {\r
+                               if (yych <= '`') goto yy187;\r
+                               goto yy671;\r
+                       } else {\r
+                               if (yych == 'o') goto yy672;\r
+                               goto yy187;\r
+                       }\r
+               }\r
+yy660:\r
+               YYDEBUG(660, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'N') goto yy661;\r
+               if (yych != 'n') goto yy187;\r
+yy661:\r
+               YYDEBUG(661, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'T') {\r
+                       if (yych <= 'R') goto yy187;\r
+                       if (yych >= 'T') goto yy663;\r
+               } else {\r
+                       if (yych <= 'r') goto yy187;\r
+                       if (yych <= 's') goto yy662;\r
+                       if (yych <= 't') goto yy663;\r
+                       goto yy187;\r
+               }\r
+yy662:\r
+               YYDEBUG(662, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy669;\r
+               if (yych == 't') goto yy669;\r
+               goto yy187;\r
+yy663:\r
+               YYDEBUG(663, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'I') goto yy664;\r
+               if (yych != 'i') goto yy187;\r
+yy664:\r
+               YYDEBUG(664, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'N') goto yy665;\r
+               if (yych != 'n') goto yy187;\r
+yy665:\r
+               YYDEBUG(665, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'U') goto yy666;\r
+               if (yych != 'u') goto yy187;\r
+yy666:\r
+               YYDEBUG(666, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy667;\r
+               if (yych != 'e') goto yy187;\r
+yy667:\r
+               YYDEBUG(667, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(668, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1140 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_CONTINUE;\r
+}\r
+#line 6396 "Zend/zend_language_scanner.c"\r
+yy669:\r
+               YYDEBUG(669, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(670, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1032 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_CONST;\r
+}\r
+#line 6409 "Zend/zend_language_scanner.c"\r
+yy671:\r
+               YYDEBUG(671, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'S') goto yy676;\r
+               if (yych == 's') goto yy676;\r
+               goto yy187;\r
+yy672:\r
+               YYDEBUG(672, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'N') goto yy673;\r
+               if (yych != 'n') goto yy187;\r
+yy673:\r
+               YYDEBUG(673, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy674;\r
+               if (yych != 'e') goto yy187;\r
+yy674:\r
+               YYDEBUG(674, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(675, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1218 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_CLONE;\r
+}\r
+#line 6438 "Zend/zend_language_scanner.c"\r
+yy676:\r
+               YYDEBUG(676, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'S') goto yy677;\r
+               if (yych != 's') goto yy187;\r
+yy677:\r
+               YYDEBUG(677, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(678, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1156 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_CLASS;\r
+}\r
+#line 6456 "Zend/zend_language_scanner.c"\r
+yy679:\r
+               YYDEBUG(679, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'C') goto yy690;\r
+               if (yych == 'c') goto yy690;\r
+               goto yy187;\r
+yy680:\r
+               YYDEBUG(680, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy688;\r
+               if (yych == 'e') goto yy688;\r
+               goto yy187;\r
+yy681:\r
+               YYDEBUG(681, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'L') goto yy682;\r
+               if (yych != 'l') goto yy187;\r
+yy682:\r
+               YYDEBUG(682, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy683;\r
+               if (yych != 'a') goto yy187;\r
+yy683:\r
+               YYDEBUG(683, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'B') goto yy684;\r
+               if (yych != 'b') goto yy187;\r
+yy684:\r
+               YYDEBUG(684, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'L') goto yy685;\r
+               if (yych != 'l') goto yy187;\r
+yy685:\r
+               YYDEBUG(685, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy686;\r
+               if (yych != 'e') goto yy187;\r
+yy686:\r
+               YYDEBUG(686, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(687, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1342 "Zend/zend_language_scanner.l"\r
+               {\r
+ return T_CALLABLE;\r
+}\r
+#line 6506 "Zend/zend_language_scanner.c"\r
+yy688:\r
+               YYDEBUG(688, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(689, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1128 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_CASE;\r
+}\r
+#line 6519 "Zend/zend_language_scanner.c"\r
+yy690:\r
+               YYDEBUG(690, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'H') goto yy691;\r
+               if (yych != 'h') goto yy187;\r
+yy691:\r
+               YYDEBUG(691, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(692, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1048 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_CATCH;\r
+}\r
+#line 6537 "Zend/zend_language_scanner.c"\r
+yy693:\r
+               YYDEBUG(693, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'N') goto yy710;\r
+               if (yych == 'n') goto yy710;\r
+               goto yy187;\r
+yy694:\r
+               YYDEBUG(694, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'R') goto yy703;\r
+               if (yych == 'r') goto yy703;\r
+               goto yy187;\r
+yy695:\r
+               YYDEBUG(695, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'N') goto yy696;\r
+               if (yych != 'n') goto yy187;\r
+yy696:\r
+               YYDEBUG(696, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'C') goto yy697;\r
+               if (yych != 'c') goto yy187;\r
+yy697:\r
+               YYDEBUG(697, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy698;\r
+               if (yych != 't') goto yy187;\r
+yy698:\r
+               YYDEBUG(698, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'I') goto yy699;\r
+               if (yych != 'i') goto yy187;\r
+yy699:\r
+               YYDEBUG(699, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'O') goto yy700;\r
+               if (yych != 'o') goto yy187;\r
+yy700:\r
+               YYDEBUG(700, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'N') goto yy701;\r
+               if (yych != 'n') goto yy187;\r
+yy701:\r
+               YYDEBUG(701, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(702, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1028 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_FUNCTION;\r
+}\r
+#line 6592 "Zend/zend_language_scanner.c"\r
+yy703:\r
+               YYDEBUG(703, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if ((yych = *YYCURSOR) <= '^') {\r
+                       if (yych <= '@') {\r
+                               if (yych <= '/') goto yy704;\r
+                               if (yych <= '9') goto yy186;\r
+                       } else {\r
+                               if (yych == 'E') goto yy705;\r
+                               if (yych <= 'Z') goto yy186;\r
+                       }\r
+               } else {\r
+                       if (yych <= 'd') {\r
+                               if (yych != '`') goto yy186;\r
+                       } else {\r
+                               if (yych <= 'e') goto yy705;\r
+                               if (yych <= 'z') goto yy186;\r
+                               if (yych >= 0x7F) goto yy186;\r
+                       }\r
+               }\r
+yy704:\r
+               YYDEBUG(704, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1088 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_FOR;\r
+}\r
+#line 6620 "Zend/zend_language_scanner.c"\r
+yy705:\r
+               YYDEBUG(705, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy706;\r
+               if (yych != 'a') goto yy187;\r
+yy706:\r
+               YYDEBUG(706, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'C') goto yy707;\r
+               if (yych != 'c') goto yy187;\r
+yy707:\r
+               YYDEBUG(707, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'H') goto yy708;\r
+               if (yych != 'h') goto yy187;\r
+yy708:\r
+               YYDEBUG(708, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(709, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1096 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_FOREACH;\r
+}\r
+#line 6648 "Zend/zend_language_scanner.c"\r
+yy710:\r
+               YYDEBUG(710, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy711;\r
+               if (yych != 'a') goto yy187;\r
+yy711:\r
+               YYDEBUG(711, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'L') goto yy712;\r
+               if (yych != 'l') goto yy187;\r
+yy712:\r
+               YYDEBUG(712, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if ((yych = *YYCURSOR) <= '^') {\r
+                       if (yych <= '@') {\r
+                               if (yych <= '/') goto yy713;\r
+                               if (yych <= '9') goto yy186;\r
+                       } else {\r
+                               if (yych == 'L') goto yy714;\r
+                               if (yych <= 'Z') goto yy186;\r
+                       }\r
+               } else {\r
+                       if (yych <= 'k') {\r
+                               if (yych != '`') goto yy186;\r
+                       } else {\r
+                               if (yych <= 'l') goto yy714;\r
+                               if (yych <= 'z') goto yy186;\r
+                               if (yych >= 0x7F) goto yy186;\r
+                       }\r
+               }\r
+yy713:\r
+               YYDEBUG(713, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1310 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_FINAL;\r
+}\r
+#line 6686 "Zend/zend_language_scanner.c"\r
+yy714:\r
+               YYDEBUG(714, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'Y') goto yy715;\r
+               if (yych != 'y') goto yy187;\r
+yy715:\r
+               YYDEBUG(715, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(716, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1052 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_FINALLY;\r
+}\r
+#line 6704 "Zend/zend_language_scanner.c"\r
+yy717:\r
+               YYDEBUG(717, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'F') {\r
+                       if (yych == 'C') goto yy723;\r
+                       if (yych <= 'E') goto yy187;\r
+                       goto yy724;\r
+               } else {\r
+                       if (yych <= 'c') {\r
+                               if (yych <= 'b') goto yy187;\r
+                               goto yy723;\r
+                       } else {\r
+                               if (yych == 'f') goto yy724;\r
+                               goto yy187;\r
+                       }\r
+               }\r
+yy718:\r
+               YYDEBUG(718, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy721;\r
+               if (yych == 'e') goto yy721;\r
+               goto yy187;\r
+yy719:\r
+               YYDEBUG(719, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(720, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1084 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_DO;\r
+}\r
+#line 6739 "Zend/zend_language_scanner.c"\r
+yy721:\r
+               YYDEBUG(721, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(722, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1024 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_EXIT;\r
+}\r
+#line 6752 "Zend/zend_language_scanner.c"\r
+yy723:\r
+               YYDEBUG(723, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'L') goto yy730;\r
+               if (yych == 'l') goto yy730;\r
+               goto yy187;\r
+yy724:\r
+               YYDEBUG(724, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy725;\r
+               if (yych != 'a') goto yy187;\r
+yy725:\r
+               YYDEBUG(725, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'U') goto yy726;\r
+               if (yych != 'u') goto yy187;\r
+yy726:\r
+               YYDEBUG(726, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'L') goto yy727;\r
+               if (yych != 'l') goto yy187;\r
+yy727:\r
+               YYDEBUG(727, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy728;\r
+               if (yych != 't') goto yy187;\r
+yy728:\r
+               YYDEBUG(728, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(729, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1132 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_DEFAULT;\r
+}\r
+#line 6791 "Zend/zend_language_scanner.c"\r
+yy730:\r
+               YYDEBUG(730, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy731;\r
+               if (yych != 'a') goto yy187;\r
+yy731:\r
+               YYDEBUG(731, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'R') goto yy732;\r
+               if (yych != 'r') goto yy187;\r
+yy732:\r
+               YYDEBUG(732, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy733;\r
+               if (yych != 'e') goto yy187;\r
+yy733:\r
+               YYDEBUG(733, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(734, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1104 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_DECLARE;\r
+}\r
+#line 6819 "Zend/zend_language_scanner.c"\r
+yy735:\r
+               YYDEBUG(735, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'H') goto yy797;\r
+               if (yych == 'h') goto yy797;\r
+               goto yy187;\r
+yy736:\r
+               YYDEBUG(736, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'S') goto yy791;\r
+               if (yych == 's') goto yy791;\r
+               goto yy187;\r
+yy737:\r
+               YYDEBUG(737, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'P') goto yy787;\r
+               if (yych == 'p') goto yy787;\r
+               goto yy187;\r
+yy738:\r
+               YYDEBUG(738, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'D') goto yy753;\r
+               if (yych == 'd') goto yy753;\r
+               goto yy187;\r
+yy739:\r
+               YYDEBUG(739, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy750;\r
+               if (yych == 'a') goto yy750;\r
+               goto yy187;\r
+yy740:\r
+               YYDEBUG(740, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych <= 'T') {\r
+                       if (yych == 'I') goto yy741;\r
+                       if (yych <= 'S') goto yy187;\r
+                       goto yy742;\r
+               } else {\r
+                       if (yych <= 'i') {\r
+                               if (yych <= 'h') goto yy187;\r
+                       } else {\r
+                               if (yych == 't') goto yy742;\r
+                               goto yy187;\r
+                       }\r
+               }\r
+yy741:\r
+               YYDEBUG(741, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy748;\r
+               if (yych == 't') goto yy748;\r
+               goto yy187;\r
+yy742:\r
+               YYDEBUG(742, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy743;\r
+               if (yych != 'e') goto yy187;\r
+yy743:\r
+               YYDEBUG(743, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'N') goto yy744;\r
+               if (yych != 'n') goto yy187;\r
+yy744:\r
+               YYDEBUG(744, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'D') goto yy745;\r
+               if (yych != 'd') goto yy187;\r
+yy745:\r
+               YYDEBUG(745, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'S') goto yy746;\r
+               if (yych != 's') goto yy187;\r
+yy746:\r
+               YYDEBUG(746, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(747, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1168 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_EXTENDS;\r
+}\r
+#line 6903 "Zend/zend_language_scanner.c"\r
+yy748:\r
+               YYDEBUG(748, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(749, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1020 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_EXIT;\r
+}\r
+#line 6916 "Zend/zend_language_scanner.c"\r
+yy750:\r
+               YYDEBUG(750, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'L') goto yy751;\r
+               if (yych != 'l') goto yy187;\r
+yy751:\r
+               YYDEBUG(751, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(752, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1254 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_EVAL;\r
+}\r
+#line 6934 "Zend/zend_language_scanner.c"\r
+yy753:\r
+               YYDEBUG(753, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               YYDEBUG(-1, yych);\r
+               switch (yych) {\r
+               case 'D':\r
+               case 'd':       goto yy754;\r
+               case 'F':\r
+               case 'f':       goto yy755;\r
+               case 'I':\r
+               case 'i':       goto yy756;\r
+               case 'S':\r
+               case 's':       goto yy757;\r
+               case 'W':\r
+               case 'w':       goto yy758;\r
+               default:        goto yy187;\r
+               }\r
+yy754:\r
+               YYDEBUG(754, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy780;\r
+               if (yych == 'e') goto yy780;\r
+               goto yy187;\r
+yy755:\r
+               YYDEBUG(755, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'O') goto yy772;\r
+               if (yych == 'o') goto yy772;\r
+               goto yy187;\r
+yy756:\r
+               YYDEBUG(756, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'F') goto yy770;\r
+               if (yych == 'f') goto yy770;\r
+               goto yy187;\r
+yy757:\r
+               YYDEBUG(757, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'W') goto yy764;\r
+               if (yych == 'w') goto yy764;\r
+               goto yy187;\r
+yy758:\r
+               YYDEBUG(758, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'H') goto yy759;\r
+               if (yych != 'h') goto yy187;\r
+yy759:\r
+               YYDEBUG(759, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'I') goto yy760;\r
+               if (yych != 'i') goto yy187;\r
+yy760:\r
+               YYDEBUG(760, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'L') goto yy761;\r
+               if (yych != 'l') goto yy187;\r
+yy761:\r
+               YYDEBUG(761, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy762;\r
+               if (yych != 'e') goto yy187;\r
+yy762:\r
+               YYDEBUG(762, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(763, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1080 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_ENDWHILE;\r
+}\r
+#line 7008 "Zend/zend_language_scanner.c"\r
+yy764:\r
+               YYDEBUG(764, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'I') goto yy765;\r
+               if (yych != 'i') goto yy187;\r
+yy765:\r
+               YYDEBUG(765, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy766;\r
+               if (yych != 't') goto yy187;\r
+yy766:\r
+               YYDEBUG(766, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'C') goto yy767;\r
+               if (yych != 'c') goto yy187;\r
+yy767:\r
+               YYDEBUG(767, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'H') goto yy768;\r
+               if (yych != 'h') goto yy187;\r
+yy768:\r
+               YYDEBUG(768, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(769, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1124 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_ENDSWITCH;\r
+}\r
+#line 7041 "Zend/zend_language_scanner.c"\r
+yy770:\r
+               YYDEBUG(770, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(771, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1068 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_ENDIF;\r
+}\r
+#line 7054 "Zend/zend_language_scanner.c"\r
+yy772:\r
+               YYDEBUG(772, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'R') goto yy773;\r
+               if (yych != 'r') goto yy187;\r
+yy773:\r
+               YYDEBUG(773, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if ((yych = *YYCURSOR) <= '^') {\r
+                       if (yych <= '@') {\r
+                               if (yych <= '/') goto yy774;\r
+                               if (yych <= '9') goto yy186;\r
+                       } else {\r
+                               if (yych == 'E') goto yy775;\r
+                               if (yych <= 'Z') goto yy186;\r
+                       }\r
+               } else {\r
+                       if (yych <= 'd') {\r
+                               if (yych != '`') goto yy186;\r
+                       } else {\r
+                               if (yych <= 'e') goto yy775;\r
+                               if (yych <= 'z') goto yy186;\r
+                               if (yych >= 0x7F) goto yy186;\r
+                       }\r
+               }\r
+yy774:\r
+               YYDEBUG(774, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1092 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_ENDFOR;\r
+}\r
+#line 7087 "Zend/zend_language_scanner.c"\r
+yy775:\r
+               YYDEBUG(775, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy776;\r
+               if (yych != 'a') goto yy187;\r
+yy776:\r
+               YYDEBUG(776, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'C') goto yy777;\r
+               if (yych != 'c') goto yy187;\r
+yy777:\r
+               YYDEBUG(777, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'H') goto yy778;\r
+               if (yych != 'h') goto yy187;\r
+yy778:\r
+               YYDEBUG(778, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(779, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1100 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_ENDFOREACH;\r
+}\r
+#line 7115 "Zend/zend_language_scanner.c"\r
+yy780:\r
+               YYDEBUG(780, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'C') goto yy781;\r
+               if (yych != 'c') goto yy187;\r
+yy781:\r
+               YYDEBUG(781, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'L') goto yy782;\r
+               if (yych != 'l') goto yy187;\r
+yy782:\r
+               YYDEBUG(782, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'A') goto yy783;\r
+               if (yych != 'a') goto yy187;\r
+yy783:\r
+               YYDEBUG(783, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'R') goto yy784;\r
+               if (yych != 'r') goto yy187;\r
+yy784:\r
+               YYDEBUG(784, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy785;\r
+               if (yych != 'e') goto yy187;\r
+yy785:\r
+               YYDEBUG(785, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(786, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1108 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_ENDDECLARE;\r
+}\r
+#line 7153 "Zend/zend_language_scanner.c"\r
+yy787:\r
+               YYDEBUG(787, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'T') goto yy788;\r
+               if (yych != 't') goto yy187;\r
+yy788:\r
+               YYDEBUG(788, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'Y') goto yy789;\r
+               if (yych != 'y') goto yy187;\r
+yy789:\r
+               YYDEBUG(789, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(790, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1294 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_EMPTY;\r
+}\r
+#line 7176 "Zend/zend_language_scanner.c"\r
+yy791:\r
+               YYDEBUG(791, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'E') goto yy792;\r
+               if (yych != 'e') goto yy187;\r
+yy792:\r
+               YYDEBUG(792, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if ((yych = *YYCURSOR) <= '^') {\r
+                       if (yych <= '@') {\r
+                               if (yych <= '/') goto yy793;\r
+                               if (yych <= '9') goto yy186;\r
+                       } else {\r
+                               if (yych == 'I') goto yy794;\r
+                               if (yych <= 'Z') goto yy186;\r
+                       }\r
+               } else {\r
+                       if (yych <= 'h') {\r
+                               if (yych != '`') goto yy186;\r
+                       } else {\r
+                               if (yych <= 'i') goto yy794;\r
+                               if (yych <= 'z') goto yy186;\r
+                               if (yych >= 0x7F) goto yy186;\r
+                       }\r
+               }\r
+yy793:\r
+               YYDEBUG(793, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1072 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_ELSE;\r
+}\r
+#line 7209 "Zend/zend_language_scanner.c"\r
+yy794:\r
+               YYDEBUG(794, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'F') goto yy795;\r
+               if (yych != 'f') goto yy187;\r
+yy795:\r
+               YYDEBUG(795, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(796, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1064 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_ELSEIF;\r
+}\r
+#line 7227 "Zend/zend_language_scanner.c"\r
+yy797:\r
+               YYDEBUG(797, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yych == 'O') goto yy798;\r
+               if (yych != 'o') goto yy187;\r
+yy798:\r
+               YYDEBUG(798, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if (yybm[0+(yych = *YYCURSOR)] & 4) {\r
+                       goto yy186;\r
+               }\r
+               YYDEBUG(799, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1148 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_ECHO;\r
+}\r
+#line 7245 "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(800, *YYCURSOR);\r
+               YYFILL(2);\r
+               yych = *YYCURSOR;\r
+               if (yych <= '-') {\r
+                       if (yych <= '\r') {\r
+                               if (yych <= 0x08) goto yy808;\r
+                               if (yych <= '\n') goto yy802;\r
+                               if (yych <= '\f') goto yy808;\r
+                       } else {\r
+                               if (yych == ' ') goto yy802;\r
+                               if (yych <= ',') goto yy808;\r
+                               goto yy804;\r
+                       }\r
+               } else {\r
+                       if (yych <= '_') {\r
+                               if (yych <= '@') goto yy808;\r
+                               if (yych <= 'Z') goto yy806;\r
+                               if (yych <= '^') goto yy808;\r
+                               goto yy806;\r
+                       } else {\r
+                               if (yych <= '`') goto yy808;\r
+                               if (yych <= 'z') goto yy806;\r
+                               if (yych <= '~') goto yy808;\r
+                               goto yy806;\r
+                       }\r
+               }\r
+yy802:\r
+               YYDEBUG(802, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               yych = *YYCURSOR;\r
+               goto yy814;\r
+yy803:\r
+               YYDEBUG(803, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1181 "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 7326 "Zend/zend_language_scanner.c"\r
+yy804:\r
+               YYDEBUG(804, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if ((yych = *YYCURSOR) == '>') goto yy811;\r
+yy805:\r
+               YYDEBUG(805, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1200 "Zend/zend_language_scanner.l"\r
+               {\r
+       yyless(0);\r
+       yy_pop_state(TSRMLS_C);\r
+       goto restart;\r
+}\r
+#line 7340 "Zend/zend_language_scanner.c"\r
+yy806:\r
+               YYDEBUG(806, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               yych = *YYCURSOR;\r
+               goto yy810;\r
+yy807:\r
+               YYDEBUG(807, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1193 "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 7356 "Zend/zend_language_scanner.c"\r
+yy808:\r
+               YYDEBUG(808, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               goto yy805;\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] & 64) {\r
+                       goto yy809;\r
+               }\r
+               goto yy807;\r
+yy811:\r
+               YYDEBUG(811, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(812, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1189 "Zend/zend_language_scanner.l"\r
+               {\r
+       return T_OBJECT_OPERATOR;\r
+}\r
+#line 7381 "Zend/zend_language_scanner.c"\r
+yy813:\r
+               YYDEBUG(813, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(1);\r
+               yych = *YYCURSOR;\r
+yy814:\r
+               YYDEBUG(814, *YYCURSOR);\r
+               if (yybm[0+yych] & 128) {\r
+                       goto yy813;\r
+               }\r
+               goto yy803;\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(815, *YYCURSOR);\r
+               YYFILL(2);\r
+               yych = *YYCURSOR;\r
+               if (yych <= '_') {\r
+                       if (yych <= '@') goto yy819;\r
+                       if (yych <= 'Z') goto yy817;\r
+                       if (yych <= '^') goto yy819;\r
+               } else {\r
+                       if (yych <= '`') goto yy819;\r
+                       if (yych <= 'z') goto yy817;\r
+                       if (yych <= '~') goto yy819;\r
+               }\r
+yy817:\r
+               YYDEBUG(817, *YYCURSOR);\r
+               yyaccept = 0;\r
+               yych = *(YYMARKER = ++YYCURSOR);\r
+               if (yych <= '_') {\r
+                       if (yych <= '@') {\r
+                               if (yych <= '/') goto yy818;\r
+                               if (yych <= '9') goto yy821;\r
+                       } else {\r
+                               if (yych <= '[') goto yy821;\r
+                               if (yych >= '_') goto yy821;\r
+                       }\r
+               } else {\r
+                       if (yych <= '|') {\r
+                               if (yych <= '`') goto yy818;\r
+                               if (yych <= 'z') goto yy821;\r
+                       } else {\r
+                               if (yych != '~') goto yy821;\r
+                       }\r
+               }\r
+yy818:\r
+               YYDEBUG(818, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1486 "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 7473 "Zend/zend_language_scanner.c"\r
+yy819:\r
+               YYDEBUG(819, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               goto yy818;\r
+yy820:\r
+               YYDEBUG(820, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(1);\r
+               yych = *YYCURSOR;\r
+yy821:\r
+               YYDEBUG(821, *YYCURSOR);\r
+               if (yybm[0+yych] & 128) {\r
+                       goto yy820;\r
+               }\r
+               if (yych == '[') goto yy823;\r
+               if (yych == '}') goto yy823;\r
+               YYDEBUG(822, *YYCURSOR);\r
+               YYCURSOR = YYMARKER;\r
+               goto yy818;\r
+yy823:\r
+               YYDEBUG(823, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(824, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1476 "Zend/zend_language_scanner.l"\r
+               {\r
+       yyless(yyleng - 1);\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 7507 "Zend/zend_language_scanner.c"\r
+       }\r
+/* *********************************** */\r
+yyc_ST_NOWDOC:\r
+       YYDEBUG(825, *YYCURSOR);\r
+       YYFILL(1);\r
+       yych = *YYCURSOR;\r
+       YYDEBUG(827, *YYCURSOR);\r
+       ++YYCURSOR;\r
+       YYDEBUG(828, *YYCURSOR);\r
+       yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 2370 "Zend/zend_language_scanner.l"\r
+       {\r
+       int newline = 0;\r
+\r
+       zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));\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) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {\r
+                                       YYCTYPE *end = YYCURSOR + heredoc_label->length;\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 7575 "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
+                       240, 240, 112, 112, 112, 112, 112, 112, \r
+                       112, 112,   0,   0,   0,   0,   0,   0, \r
+                         0,  80,  80,  80,  80,  80,  80,  16, \r
+                        16,  16,  16,  16,  16,  16,  16,  16, \r
+                        16,  16,  16,  16,  16,  16,  16,  16, \r
+                        16,  16,  16,   0,   0,   0,   0,  16, \r
+                         0,  80,  80,  80,  80,  80,  80,  16, \r
+                        16,  16,  16,  16,  16,  16,  16,  16, \r
+                        16,  16,  16,  16,  16,  16,  16,  16, \r
+                        16,  16,  16,   0,   0,   0,   0,  16, \r
+                        16,  16,  16,  16,  16,  16,  16,  16, \r
+                        16,  16,  16,  16,  16,  16,  16,  16, \r
+                        16,  16,  16,  16,  16,  16,  16,  16, \r
+                        16,  16,  16,  16,  16,  16,  16,  16, \r
+                        16,  16,  16,  16,  16,  16,  16,  16, \r
+                        16,  16,  16,  16,  16,  16,  16,  16, \r
+                        16,  16,  16,  16,  16,  16,  16,  16, \r
+                        16,  16,  16,  16,  16,  16,  16,  16, \r
+                        16,  16,  16,  16,  16,  16,  16,  16, \r
+                        16,  16,  16,  16,  16,  16,  16,  16, \r
+                        16,  16,  16,  16,  16,  16,  16,  16, \r
+                        16,  16,  16,  16,  16,  16,  16,  16, \r
+                        16,  16,  16,  16,  16,  16,  16,  16, \r
+                        16,  16,  16,  16,  16,  16,  16,  16, \r
+                        16,  16,  16,  16,  16,  16,  16,  16, \r
+                        16,  16,  16,  16,  16,  16,  16,  16, \r
+               };\r
+               YYDEBUG(829, *YYCURSOR);\r
+               YYFILL(3);\r
+               yych = *YYCURSOR;\r
+               if (yych <= '/') {\r
+                       if (yych <= ' ') {\r
+                               if (yych <= '\f') {\r
+                                       if (yych <= 0x08) goto yy843;\r
+                                       if (yych <= '\n') goto yy839;\r
+                                       goto yy843;\r
+                               } else {\r
+                                       if (yych <= '\r') goto yy839;\r
+                                       if (yych <= 0x1F) goto yy843;\r
+                                       goto yy839;\r
+                               }\r
+                       } else {\r
+                               if (yych <= '$') {\r
+                                       if (yych <= '"') goto yy838;\r
+                                       if (yych <= '#') goto yy839;\r
+                                       goto yy834;\r
+                               } else {\r
+                                       if (yych == '\'') goto yy839;\r
+                                       goto yy838;\r
+                               }\r
+                       }\r
+               } else {\r
+                       if (yych <= '\\') {\r
+                               if (yych <= '@') {\r
+                                       if (yych <= '0') goto yy831;\r
+                                       if (yych <= '9') goto yy833;\r
+                                       goto yy838;\r
+                               } else {\r
+                                       if (yych <= 'Z') goto yy841;\r
+                                       if (yych <= '[') goto yy838;\r
+                                       goto yy839;\r
+                               }\r
+                       } else {\r
+                               if (yych <= '_') {\r
+                                       if (yych <= ']') goto yy836;\r
+                                       if (yych <= '^') goto yy838;\r
+                                       goto yy841;\r
+                               } else {\r
+                                       if (yych <= '`') goto yy838;\r
+                                       if (yych <= 'z') goto yy841;\r
+                                       if (yych <= '~') goto yy838;\r
+                                       goto yy841;\r
+                               }\r
+                       }\r
+               }\r
+yy831:\r
+               YYDEBUG(831, *YYCURSOR);\r
+               yyaccept = 0;\r
+               yych = *(YYMARKER = ++YYCURSOR);\r
+               if (yych <= 'W') {\r
+                       if (yych <= '9') {\r
+                               if (yych >= '0') goto yy855;\r
+                       } else {\r
+                               if (yych == 'B') goto yy852;\r
+                       }\r
+               } else {\r
+                       if (yych <= 'b') {\r
+                               if (yych <= 'X') goto yy854;\r
+                               if (yych >= 'b') goto yy852;\r
+                       } else {\r
+                               if (yych == 'x') goto yy854;\r
+                       }\r
+               }\r
+yy832:\r
+               YYDEBUG(832, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1564 "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 7694 "Zend/zend_language_scanner.c"\r
+yy833:\r
+               YYDEBUG(833, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               goto yy851;\r
+yy834:\r
+               YYDEBUG(834, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               if ((yych = *YYCURSOR) <= '_') {\r
+                       if (yych <= '@') goto yy835;\r
+                       if (yych <= 'Z') goto yy847;\r
+                       if (yych >= '_') goto yy847;\r
+               } else {\r
+                       if (yych <= '`') goto yy835;\r
+                       if (yych <= 'z') goto yy847;\r
+                       if (yych >= 0x7F) goto yy847;\r
+               }\r
+yy835:\r
+               YYDEBUG(835, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1896 "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 7719 "Zend/zend_language_scanner.c"\r
+yy836:\r
+               YYDEBUG(836, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(837, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1891 "Zend/zend_language_scanner.l"\r
+               {\r
+       yy_pop_state(TSRMLS_C);\r
+       return ']';\r
+}\r
+#line 7730 "Zend/zend_language_scanner.c"\r
+yy838:\r
+               YYDEBUG(838, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               goto yy835;\r
+yy839:\r
+               YYDEBUG(839, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(840, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1901 "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 7747 "Zend/zend_language_scanner.c"\r
+yy841:\r
+               YYDEBUG(841, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               yych = *YYCURSOR;\r
+               goto yy846;\r
+yy842:\r
+               YYDEBUG(842, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1908 "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 7762 "Zend/zend_language_scanner.c"\r
+yy843:\r
+               YYDEBUG(843, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYDEBUG(844, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 2428 "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 7777 "Zend/zend_language_scanner.c"\r
+yy845:\r
+               YYDEBUG(845, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(1);\r
+               yych = *YYCURSOR;\r
+yy846:\r
+               YYDEBUG(846, *YYCURSOR);\r
+               if (yybm[0+yych] & 16) {\r
+                       goto yy845;\r
+               }\r
+               goto yy842;\r
+yy847:\r
+               YYDEBUG(847, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(1);\r
+               yych = *YYCURSOR;\r
+               YYDEBUG(848, *YYCURSOR);\r
+               if (yych <= '^') {\r
+                       if (yych <= '9') {\r
+                               if (yych >= '0') goto yy847;\r
+                       } else {\r
+                               if (yych <= '@') goto yy849;\r
+                               if (yych <= 'Z') goto yy847;\r
+                       }\r
+               } else {\r
+                       if (yych <= '`') {\r
+                               if (yych <= '_') goto yy847;\r
+                       } else {\r
+                               if (yych <= 'z') goto yy847;\r
+                               if (yych >= 0x7F) goto yy847;\r
+                       }\r
+               }\r
+yy849:\r
+               YYDEBUG(849, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1885 "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 7819 "Zend/zend_language_scanner.c"\r
+yy850:\r
+               YYDEBUG(850, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(1);\r
+               yych = *YYCURSOR;\r
+yy851:\r
+               YYDEBUG(851, *YYCURSOR);\r
+               if (yybm[0+yych] & 32) {\r
+                       goto yy850;\r
+               }\r
+               goto yy832;\r
+yy852:\r
+               YYDEBUG(852, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yybm[0+yych] & 128) {\r
+                       goto yy860;\r
+               }\r
+yy853:\r
+               YYDEBUG(853, *YYCURSOR);\r
+               YYCURSOR = YYMARKER;\r
+               goto yy832;\r
+yy854:\r
+               YYDEBUG(854, *YYCURSOR);\r
+               yych = *++YYCURSOR;\r
+               if (yybm[0+yych] & 64) {\r
+                       goto yy858;\r
+               }\r
+               goto yy853;\r
+yy855:\r
+               YYDEBUG(855, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(1);\r
+               yych = *YYCURSOR;\r
+               YYDEBUG(856, *YYCURSOR);\r
+               if (yych <= '/') goto yy857;\r
+               if (yych <= '9') goto yy855;\r
+yy857:\r
+               YYDEBUG(857, *YYCURSOR);\r
+               yyleng = YYCURSOR - SCNG(yy_text);\r
+#line 1576 "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 7866 "Zend/zend_language_scanner.c"\r
+yy858:\r
+               YYDEBUG(858, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(1);\r
+               yych = *YYCURSOR;\r
+               YYDEBUG(859, *YYCURSOR);\r
+               if (yybm[0+yych] & 64) {\r
+                       goto yy858;\r
+               }\r
+               goto yy857;\r
+yy860:\r
+               YYDEBUG(860, *YYCURSOR);\r
+               ++YYCURSOR;\r
+               YYFILL(1);\r
+               yych = *YYCURSOR;\r
+               YYDEBUG(861, *YYCURSOR);\r
+               if (yybm[0+yych] & 128) {\r
+                       goto yy860;\r
+               }\r
+               goto yy857;\r
+       }\r
+}\r
+#line 2437 "Zend/zend_language_scanner.l"\r
+\r
+}\r
index 5926e3c61d971615174d2f61216148cca197e370..f25c3f46bebd1a1b7126ff4269a760264a18b5dd 100644 (file)
@@ -1,15 +1,15 @@
-/* Generated by re2c 0.13.5 */
-#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,
-};
+/* Generated by re2c 0.13.5 */\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
index b25a0e2d9fb5d051f42762d88778b9a0bae0affc..e6fbc49ea23c6fe67c45a8b510f64466c7a83d1f 100644 (file)
@@ -48,7 +48,7 @@ if (PHP_GD != "no") {
                        gd_io_file.c gd_io_ss.c gd_jpeg.c gdkanji.c gd_png.c gd_ss.c \
                        gdtables.c gd_topal.c gd_wbmp.c gdxpm.c wbmp.c xbm.c gd_security.c gd_transform.c \
                        gd_filter.c gd_pixelate.c gd_arc.c gd_rotate.c gd_color.c webpimg.c gd_webp.c \
-                       gd_crop.c", "gd");
+                       gd_crop.c gd_interpolation.c gd_matrix.c", "gd");
                AC_DEFINE('HAVE_LIBGD', 1, 'GD support');
                ADD_FLAG("CFLAGS_GD", " \
 /D HAVE_GD_DYNAMIC_CTX_EX=1 \
@@ -84,7 +84,7 @@ if (PHP_GD != "no") {
                ");
                
                PHP_INSTALL_HEADERS("", "ext/gd ext/gd/libgd" );
-               } else {
+       } else {
                WARNING("gd not enabled; libraries and headers not found");
        }
 }
index be9501e55485cc1018dd888c6c40a6f871b8da42..c4cdea31189abb0148643df76cfaddfbc01a7e50 100644 (file)
@@ -58,7 +58,6 @@
 # include "libgd/gd_compat.h"
 #endif
 
-
 static int le_gd, le_gd_font;
 #if HAVE_LIBT1
 #include <t1lib.h>
@@ -195,6 +194,10 @@ ZEND_BEGIN_ARG_INFO(arginfo_imagetruecolortopalette, 0)
        ZEND_ARG_INFO(0, colorsWanted)
 ZEND_END_ARG_INFO()
 
+ZEND_BEGIN_ARG_INFO(arginfo_imagepalettetotruecolor, 0)
+       ZEND_ARG_INFO(0, im)
+ZEND_END_ARG_INFO()
+
 ZEND_BEGIN_ARG_INFO(arginfo_imagecolormatch, 0)
        ZEND_ARG_INFO(0, im1)
        ZEND_ARG_INFO(0, im2)
@@ -902,6 +905,24 @@ ZEND_BEGIN_ARG_INFO(arginfo_imagecropauto, 0)
        ZEND_ARG_INFO(0, threshold)
        ZEND_ARG_INFO(0, color)
 ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO(arginfo_imagescale, 0)
+       ZEND_ARG_INFO(0, im)
+       ZEND_ARG_INFO(0, new_width)
+       ZEND_ARG_INFO(0, new_height)
+       ZEND_ARG_INFO(0, mode)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO(arginfo_imageaffine, 0)
+       ZEND_ARG_INFO(0, im)
+       ZEND_ARG_INFO(0, affine)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO(arginfo_imagesetinterpolation, 0)
+       ZEND_ARG_INFO(0, im)
+       ZEND_ARG_INFO(0, method)
+ZEND_END_ARG_INFO()
+
 #endif
 
 /* }}} */
@@ -941,6 +962,7 @@ const zend_function_entry gd_functions[] = {
        PHP_FE(imagecreatetruecolor,                                    arginfo_imagecreatetruecolor)
        PHP_FE(imageistruecolor,                                                arginfo_imageistruecolor)
        PHP_FE(imagetruecolortopalette,                                 arginfo_imagetruecolortopalette)
+       PHP_FE(imagepalettetotruecolor,                                 arginfo_imagepalettetotruecolor)
        PHP_FE(imagesetthickness,                                               arginfo_imagesetthickness)
        PHP_FE(imagefilledarc,                                                  arginfo_imagefilledarc)
        PHP_FE(imagefilledellipse,                                              arginfo_imagefilledellipse)
@@ -964,6 +986,9 @@ const zend_function_entry gd_functions[] = {
        PHP_FE(imageflip,                                                               arginfo_imageflip)
        PHP_FE(imagecrop,                                                               arginfo_imagecrop)
        PHP_FE(imagecropauto,                                                   arginfo_imagecropauto)
+       PHP_FE(imagescale,                                                              arginfo_imagescale)
+       PHP_FE(imageaffine,                                                             arginfo_imageaffine)
+       PHP_FE(imagesetinterpolation,                   arginfo_imagesetinterpolation)
 #endif
 
 #if HAVE_GD_IMAGESETTILE
@@ -1218,13 +1243,37 @@ PHP_MINIT_FUNCTION(gd)
        REGISTER_LONG_CONSTANT("IMG_FLIP_HORIZONTAL", GD_FLIP_HORINZONTAL, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_FLIP_VERTICAL", GD_FLIP_VERTICAL, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_FLIP_BOTH", GD_FLIP_BOTH, CONST_CS | CONST_PERSISTENT);
-       
+
        REGISTER_LONG_CONSTANT("IMG_CROP_DEFAULT", GD_CROP_DEFAULT, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_CROP_TRANSPARENT", GD_CROP_TRANSPARENT, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_CROP_BLACK", GD_CROP_BLACK, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_CROP_WHITE", GD_CROP_WHITE, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_CROP_SIDES", GD_CROP_SIDES, CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_CROP_THRESHOLD", GD_CROP_THRESHOLD, CONST_CS | CONST_PERSISTENT);
+
+       
+       REGISTER_LONG_CONSTANT("IMG_BELL", GD_BILINEAR_FIXED, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_BESSEL", GD_BESSEL, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_BILINEAR_FIXED", GD_BILINEAR_FIXED, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_BICUBIC", GD_BICUBIC, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_BICUBIC_FIXED", GD_BICUBIC_FIXED, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_BLACKMAN", GD_BLACKMAN, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_BOX", GD_BOX, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_BSPLINE", GD_BSPLINE, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_CATMULLROM", GD_CATMULLROM, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_GAUSSIAN", GD_GAUSSIAN, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_GENERALIZED_CUBIC", GD_GENERALIZED_CUBIC, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_HERMITE", GD_HERMITE, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_HAMMING", GD_HAMMING, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_HANNING", GD_HANNING, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_MITCHELL", GD_MITCHELL, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_POWER", GD_POWER, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_QUADRATIC", GD_QUADRATIC, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_SINC", GD_SINC, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_NEAREST_NEIGHBOUR", GD_NEAREST_NEIGHBOUR, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_WEIGHTED4", GD_WEIGHTED4, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_TRIANGLE", GD_TRIANGLE, CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_DEFAULT",  GD_BICUBIC_FIXED, CONST_CS | CONST_PERSISTENT);
 #else
        REGISTER_LONG_CONSTANT("GD_BUNDLED", 0, CONST_CS | CONST_PERSISTENT);
 #endif
@@ -1730,6 +1779,29 @@ PHP_FUNCTION(imagetruecolortopalette)
 }
 /* }}} */
 
+
+
+/* {{{ proto void imagetruecolortopalette(resource im, bool ditherFlag, int colorsWanted)
+   Convert a true colour image to a palette based image with a number of colours, optionally using dithering. */
+PHP_FUNCTION(imagepalettetotruecolor)
+{
+       zval *IM;
+       gdImagePtr im;
+
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &IM) == FAILURE)  {
+               return;
+       }
+
+       ZEND_FETCH_RESOURCE(im, gdImagePtr, &IM, -1, "Image", le_gd);
+
+       if (gdImagePaletteToTrueColor(im) == 0) {
+               RETURN_TRUE;
+       }
+
+       RETURN_TRUE;
+}
+/* }}} */
+
 /* {{{ proto bool imagecolormatch(resource im1, resource im2)
    Makes the colors of the palette version of an image more closely match the true color version */
 PHP_FUNCTION(imagecolormatch)
@@ -2172,7 +2244,7 @@ PHP_FUNCTION(imagerotate)
 
        ZEND_FETCH_RESOURCE(im_src, gdImagePtr, &SIM, -1, "Image", le_gd);
 
-       im_dst = gdImageRotate(im_src, degrees, color, ignoretransparent);
+       im_dst = gdImageRotateGeneric(im_src, (float)degrees, color);
 
        if (im_dst != NULL) {
                ZEND_REGISTER_RESOURCE(return_value, im_dst, le_gd);
@@ -5127,11 +5199,11 @@ PHP_FUNCTION(imageflip)
 
        switch (mode) {
                case GD_FLIP_VERTICAL:
-                       gdImageFlipHorizontal(im);
+                       gdImageFlipVertical(im);
                        break;
 
                case GD_FLIP_HORINZONTAL:
-                       gdImageFlipVertical(im);
+                       gdImageFlipHorizontal(im);
                        break;
 
                case GD_FLIP_BOTH:
@@ -5252,6 +5324,178 @@ PHP_FUNCTION(imagecropauto)
        }
 }
 /* }}} */
+
+/* {{{ proto resource imagescale(resource im, new_width[, new_height[, method]])
+   Crop an image using the given coordinates and size, x, y, width and height. */
+PHP_FUNCTION(imagescale)
+{
+       zval *IM;
+       long mode = -1;
+       long color = -1;
+       double threshold = 0.5f;
+       gdImagePtr im;
+       gdImagePtr im_scaled;
+       int new_width, new_height = -1;
+       gdInterpolationMethod method = GD_BILINEAR_FIXED;
+
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl|ll", &IM, &new_width, &new_height, &method) == FAILURE)  {
+               return;
+       }
+
+       ZEND_FETCH_RESOURCE(im, gdImagePtr, &IM, -1, "Image", le_gd);
+       im_scaled = gdImageScale(im, new_width, new_height);
+       goto finish;
+       switch (method) {
+               case GD_NEAREST_NEIGHBOUR:
+                       im_scaled = gdImageScaleNearestNeighbour(im, new_width, new_height);
+                       break;
+
+               case GD_BILINEAR_FIXED:
+                       im_scaled = gdImageScaleBilinear(im, new_width, new_height);
+                       break;
+
+               case GD_BICUBIC:
+                       im_scaled = gdImageScaleBicubicFixed(im, new_width, new_height);
+                       break;
+
+               case GD_BICUBIC_FIXED:
+                       im_scaled = gdImageScaleBicubicFixed(im, new_width, new_height);
+                       break;
+
+               default:
+                       im_scaled = gdImageScaleTwoPass(im, im->sx, im->sy, new_width, new_height);
+                       break;
+
+       }
+finish:
+       if (im_scaled == NULL) {
+               RETURN_FALSE;
+       } else {
+               ZEND_REGISTER_RESOURCE(return_value, im_scaled, le_gd);
+       }
+}
+/* }}} */
+
+/* {{{ proto resource imageaffine(resource dst, resource src, array affine, array clip)
+   Return an image containing the affine tramsformed src image, using an optional clipping area */
+PHP_FUNCTION(imageaffine)
+{
+       zval *IM;
+       long mode = -1;
+       long color = -1;
+       double threshold = 0.5f;
+       gdImagePtr src;
+       gdImagePtr dst;
+       gdRect rect;
+       gdRectPtr pRect = NULL;
+       zval *z_rect = NULL;
+       zval *z_affine;
+       zval **tmp;
+       double affine[6];
+       int i, nelems;
+       zval **zval_affine_elem = NULL;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ra|a", &IM, &z_affine, &z_rect) == FAILURE)  {
+               return;
+       }
+
+       ZEND_FETCH_RESOURCE(src, gdImagePtr, &IM, -1, "Image", le_gd);
+
+       if ((nelems = zend_hash_num_elements(Z_ARRVAL_P(z_affine))) != 6) {
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Affine array must have six elements");
+               RETURN_FALSE;
+       }
+
+       for (i = 0; i < nelems; i++) {
+               if (zend_hash_index_find(Z_ARRVAL_P(z_affine), i, (void **) &zval_affine_elem) == SUCCESS) {
+                       switch (Z_TYPE_PP(zval_affine_elem)) {
+                               case IS_LONG:
+                                       affine[i]  = Z_LVAL_PP(zval_affine_elem);
+                                       break;
+                               case IS_DOUBLE:
+                                       affine[i] = Z_DVAL_PP(zval_affine_elem);
+                                       break;
+                               case IS_STRING:
+                                       convert_to_double_ex(zval_affine_elem);
+                                       affine[i] = Z_DVAL_PP(zval_affine_elem);
+                                       break;
+                               default:
+                                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid type for element %i", i);
+                                       RETURN_FALSE;
+                       }
+               }
+       }
+
+       if (z_rect != NULL) {
+               if (zend_hash_find(HASH_OF(z_rect), "x", sizeof("x"), (void **)&tmp) != FAILURE) {
+                       rect.x = Z_LVAL_PP(tmp);
+               } else {
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Missing x position");
+                       RETURN_FALSE;
+               }
+
+               if (zend_hash_find(HASH_OF(z_rect), "y", sizeof("x"), (void **)&tmp) != FAILURE) {
+                       rect.y = Z_LVAL_PP(tmp);
+               } else {
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Missing y position");
+                       RETURN_FALSE;
+               }
+
+               if (zend_hash_find(HASH_OF(z_rect), "width", sizeof("width"), (void **)&tmp) != FAILURE) {
+                       rect.width = Z_LVAL_PP(tmp);
+               } else {
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Missing width");
+                       RETURN_FALSE;
+               }
+
+               if (zend_hash_find(HASH_OF(z_rect), "height", sizeof("height"), (void **)&tmp) != FAILURE) {
+                       rect.height = Z_LVAL_PP(tmp);
+               } else {
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Missing height");
+                       RETURN_FALSE;
+               }
+               pRect = &rect;
+       } else {
+               rect.x = -1;
+               rect.y = -1;
+               rect.width = gdImageSX(src);
+               rect.height = gdImageSY(src);
+               pRect = NULL;
+       }
+
+
+       //int gdTransformAffineGetImage(gdImagePtr *dst, const gdImagePtr src, gdRectPtr src_area, const double affine[6]);
+       if (gdTransformAffineGetImage(&dst, src, pRect, affine) != GD_TRUE) {
+               RETURN_FALSE;
+       }
+
+       if (dst == NULL) {
+               RETURN_FALSE;
+       } else {
+               ZEND_REGISTER_RESOURCE(return_value, dst, le_gd);
+       }
+}
+/* }}} */
+
+/* {{{ proto resource imagesetinterpolation(resource im, [, method]])
+   Set the default interpolation method, passing -1 or 0 sets it to the libgd default (bilinear). */
+PHP_FUNCTION(imagesetinterpolation)
+{
+       zval *IM;
+       gdImagePtr im;
+       gdInterpolationMethod method = GD_BILINEAR_FIXED;
+
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r|l", &IM, &method) == FAILURE)  {
+               return;
+       }
+
+       ZEND_FETCH_RESOURCE(im, gdImagePtr, &IM, -1, "Image", le_gd);
+
+       if (method == -1) {
+                method = GD_BILINEAR_FIXED;
+       }
+       RETURN_BOOL(gdImageSetInterpolationMethod(im, (gdInterpolationMethod) method));
+}
+/* }}} */
 #endif
 
 
index fa75898ddb33678569ff4de3195974fc7c74443e..cb45c0e9c27facf0b4814ac41f1e04ad2ec9d727 100644 (file)
@@ -168,6 +168,8 @@ gdImagePtr gdImageCreate (int sx, int sy)
        im->cy1 = 0;
        im->cx2 = im->sx - 1;
        im->cy2 = im->sy - 1;
+       im->interpolation = NULL;
+       im->interpolation_id = GD_BILINEAR_FIXED;
        return im;
 }
 
@@ -183,7 +185,7 @@ gdImagePtr gdImageCreateTrueColor (int sx, int sy)
        if (overflow2(sizeof(unsigned char *), sy)) {
                return NULL;
        }
-       
+
        if (overflow2(sizeof(int), sx)) {
                return NULL;
        }
@@ -221,6 +223,8 @@ gdImagePtr gdImageCreateTrueColor (int sx, int sy)
        im->cy1 = 0;
        im->cx2 = im->sx - 1;
        im->cy2 = im->sy - 1;
+       im->interpolation = NULL;
+       im->interpolation_id = GD_BILINEAR_FIXED;
        return im;
 }
 
@@ -3009,3 +3013,70 @@ void gdImageGetClip (gdImagePtr im, int *x1P, int *y1P, int *x2P, int *y2P)
        *y2P = im->cy2;
 }
 
+/* convert a palette image to true color */
+int gdImagePaletteToTrueColor(gdImagePtr src)
+{
+       unsigned int y;
+       unsigned char alloc_y = 0, alloc_aa = 0;
+       unsigned int yy;
+
+       if (src == NULL) {
+               return 0;
+       }
+
+       if (src->trueColor == 1) {
+               return 1;
+       } else {
+               unsigned int x;
+               const unsigned int sy = gdImageSY(src);
+               const unsigned int sx = gdImageSX(src);
+
+               src->tpixels = (int **) gdMalloc(sizeof(int *) * sy);
+               if (src->tpixels == NULL) {
+                       return 0;
+               }
+
+               for (y = 0; y < sy; y++) {
+                       const unsigned char *src_row = src->pixels[y];
+                       int * dst_row;
+
+                       /* no need to calloc it, we overwrite all pxl anyway */
+                       src->tpixels[y] = (int *) gdMalloc(sx * sizeof(int));
+                       if (src->tpixels[y] == NULL) {
+                               goto clean_on_error;
+                       }
+
+                       dst_row = src->tpixels[y];
+                       for (x = 0; x < sx; x++) {
+                               const unsigned char c = *(src_row + x);
+                               if (c == src->transparent) {
+                                       *(dst_row + x) = gdTrueColorAlpha(0, 0, 0, 127);;
+                               } else {
+                                       *(dst_row + x) = gdTrueColorAlpha(src->red[c], src->green[c], src->blue[c], src->alpha[c]);
+                               }
+                       }
+               }
+       }
+
+       /* free old palette buffer */
+       for (yy = y - 1; yy >= yy - 1; yy--) {
+               gdFree(src->pixels[yy]);
+       }
+       gdFree(src->pixels);
+       src->trueColor = 1;
+       src->pixels = NULL;
+       src->alphaBlendingFlag = 0;
+       src->saveAlphaFlag = 1;
+       return 1;
+
+clean_on_error:
+       if (y > 0) {
+
+               for (yy = y; yy >= yy - 1; y--) {
+                       gdFree(src->tpixels[y]);
+               }
+               gdFree(src->tpixels);
+       }
+       return 0;
+}
+
index 8d9df2a49cf2028c90e14c8cf5ec3bee193e27df..5209a49c19474effd3a78f5529b7515c9885c7ee 100644 (file)
@@ -93,6 +93,10 @@ void php_gd_error(const char *format, ...);
 #define gdEffectNormal 2
 #define gdEffectOverlay 3
 
+#define GD_TRUE 1
+#define GD_FALSE 0
+
+#define GD_EPSILON 1e-6
 
 /* This function accepts truecolor pixel values only. The
        source color is composited with the destination color
@@ -101,6 +105,67 @@ void php_gd_error(const char *format, ...);
 
 int gdAlphaBlend(int dest, int src);
 
+/**
+ * Group: Transform
+ *
+ * Constants: gdInterpolationMethod
+
+ *  GD_BELL                             - Bell
+ *  GD_BESSEL                   - Bessel
+ *  GD_BILINEAR_FIXED   - fixed point bilinear 
+ *  GD_BICUBIC                          - Bicubic
+ *  GD_BICUBIC_FIXED    - fixed point bicubic integer
+ *  GD_BLACKMAN                         - Blackman
+ *  GD_BOX                              - Box
+ *  GD_BSPLINE                  - BSpline
+ *  GD_CATMULLROM               - Catmullrom
+ *  GD_GAUSSIAN                         - Gaussian
+ *  GD_GENERALIZED_CUBIC - Generalized cubic
+ *  GD_HERMITE                  - Hermite
+ *  GD_HAMMING                  - Hamming
+ *  GD_HANNING                  - Hannig
+ *  GD_MITCHELL                         - Mitchell
+ *  GD_NEAREST_NEIGHBOUR - Nearest neighbour interpolation
+ *  GD_POWER                    - Power
+ *  GD_QUADRATIC                - Quadratic
+ *  GD_SINC                             - Sinc
+ *  GD_TRIANGLE                         - Triangle
+ *  GD_WEIGHTED4                - 4 pixels weighted bilinear interpolation
+ *
+ * See also:
+ *  <gdSetInterpolationMethod>
+ **/
+typedef enum {
+       GD_DEFAULT          = 0,
+       GD_BELL,
+       GD_BESSEL,
+       GD_BILINEAR_FIXED,
+       GD_BICUBIC,
+       GD_BICUBIC_FIXED,
+       GD_BLACKMAN,
+       GD_BOX,
+       GD_BSPLINE,
+       GD_CATMULLROM,
+       GD_GAUSSIAN,
+       GD_GENERALIZED_CUBIC,
+       GD_HERMITE,
+       GD_HAMMING,
+       GD_HANNING,
+       GD_MITCHELL,
+       GD_NEAREST_NEIGHBOUR,
+       GD_POWER,
+       GD_QUADRATIC,
+       GD_SINC,
+       GD_TRIANGLE,
+       GD_WEIGHTED4,
+       GD_METHOD_COUNT = 21
+} gdInterpolationMethod;
+
+/* define struct with name and func ptr and add it to gdImageStruct gdInterpolationMethod interpolation; */
+
+/* Interpolation function ptr */
+typedef double (* interpolation_method )(double);
+
 typedef struct gdImageStruct {
        /* Palette-based image pixels */
        unsigned char ** pixels;
@@ -188,10 +253,35 @@ typedef struct gdImageStruct {
        int cy1;
        int cx2;
        int cy2;
+       gdInterpolationMethod interpolation_id;
+       interpolation_method interpolation;
 } gdImage;
 
 typedef gdImage * gdImagePtr;
 
+/* Point type for use in polygon drawing. */
+
+/**
+ * Group: Types
+ *
+ * typedef: gdPointF
+ *  Defines a point in a 2D coordinate system using floating point
+ *  values.
+ * x - Floating point position (increase from left to right)
+ * y - Floating point Row position (increase from top to bottom)
+ *
+ * typedef: gdPointFPtr
+ *  Pointer to a <gdPointF>
+ *
+ * See also:
+ *  <gdImageCreate>, <gdImageCreateTrueColor>,
+ **/
+typedef struct
+{
+       double x, y;
+}
+gdPointF, *gdPointFPtr;
+
 typedef struct {
        /* # of characters in font */
        int nchars;
@@ -469,7 +559,7 @@ void gdImageColorDeallocate(gdImagePtr im, int color);
 gdImagePtr gdImageCreatePaletteFromTrueColor (gdImagePtr im, int ditherFlag, int colorsWanted);
 
 void gdImageTrueColorToPalette(gdImagePtr im, int ditherFlag, int colorsWanted);
-
+int gdImagePaletteToTrueColor(gdImagePtr src);
 
 /* An attempt at getting the results of gdImageTrueColorToPalette
        to look a bit more like the original (im1 is the original
@@ -741,6 +831,44 @@ gdImagePtr gdImageCrop(gdImagePtr src, const gdRectPtr crop);
 gdImagePtr gdImageCropAuto(gdImagePtr im, const unsigned int mode);
 gdImagePtr gdImageCropThreshold(gdImagePtr im, const unsigned int color, const float threshold);
 
+int gdImageSetInterpolationMethod(gdImagePtr im, gdInterpolationMethod id);
+
+gdImagePtr gdImageScaleBilinear(gdImagePtr im, const unsigned int new_width, const unsigned int new_height);
+gdImagePtr gdImageScaleBicubic(gdImagePtr src_img, const unsigned int new_width, const unsigned int new_height);
+gdImagePtr gdImageScaleBicubicFixed(gdImagePtr src, const unsigned int width, const unsigned int height);
+gdImagePtr gdImageScaleNearestNeighbour(gdImagePtr im, const unsigned int width, const unsigned int height);
+gdImagePtr gdImageScaleTwoPass(const gdImagePtr pOrigImage, const unsigned int uOrigWidth, const unsigned int uOrigHeight, const unsigned int uNewWidth, const unsigned int uNewHeight);
+gdImagePtr gdImageScale(const gdImagePtr src, const unsigned int new_width, const unsigned int new_height);
+
+gdImagePtr gdImageRotateNearestNeighbour(gdImagePtr src, const float degrees, const int bgColor);
+gdImagePtr gdImageRotateBilinear(gdImagePtr src, const float degrees, const int bgColor);
+gdImagePtr gdImageRotateBicubicFixed(gdImagePtr src, const float degrees, const int bgColor);
+gdImagePtr gdImageRotateGeneric(gdImagePtr src, const float degrees, const int bgColor);
+
+int gdAffineApplyToPointF (gdPointFPtr dst, const gdPointFPtr src, const double affine[6]);
+int gdAffineInvert (double dst[6], const double src[6]);
+int gdAffineFlip (double dst_affine[6], const double src_affine[6], const int flip_h, const int flip_v);
+int gdAffineConcat (double dst[6], const double m1[6], const double m2[6]);
+
+int gdAffineIdentity (double dst[6]);
+int gdAffineScale (double dst[6], const double scale_x, const double scale_y);
+int gdAffineRotate (double dst[6], const double angle);
+int gdAffineShearHorizontal (double dst[6], const double angle);
+int gdAffineShearVertical(double dst[6], const double angle);
+int gdAffineTranslate (double dst[6], const double offset_x, const double offset_y);
+double gdAffineExpansion (const double src[6]);
+int gdAffineRectilinear (const double src[6]);
+int gdAffineEqual (const double matrix1[6], const double matrix2[6]);
+int gdTransformAffineGetImage(gdImagePtr *dst, const gdImagePtr src, gdRectPtr src_area, const double affine[6]);
+int gdTransformAffineCopy(gdImagePtr dst, int dst_x, int dst_y, const gdImagePtr src, gdRectPtr src_region, const double affine[6]);
+/*
+gdTransformAffineCopy(gdImagePtr dst, int x0, int y0, int x1, int y1,
+                       const gdImagePtr src, int src_width, int src_height,
+                       const double affine[6]);
+*/
+int gdTransformAffineBoundingBox(gdRectPtr src, const double affine[6], gdRectPtr bbox);
+
+
 #define GD_CMP_IMAGE           1       /* Actual image IS different */
 #define GD_CMP_NUM_COLORS      2       /* Number of Colours in pallette differ */
 #define GD_CMP_COLOR           4       /* Image colours differ */
index 90ebd65268fef6efc8ed7323e6e658a49a5c6d96..044277c6c89d59d12acdb4503839fe744a1f3f78 100644 (file)
@@ -104,6 +104,7 @@ PHP_FUNCTION(imagefttext);
 
 PHP_FUNCTION(imagecreatetruecolor);
 PHP_FUNCTION(imagetruecolortopalette);
+PHP_FUNCTION(imagepalettetotruecolor);
 PHP_FUNCTION(imagesetthickness);
 PHP_FUNCTION(imagefilledellipse);
 PHP_FUNCTION(imagefilledarc);
@@ -127,6 +128,9 @@ PHP_FUNCTION(imageantialias);
 PHP_FUNCTION(imageflip);
 PHP_FUNCTION(imagecrop);
 PHP_FUNCTION(imagecropauto);
+PHP_FUNCTION(imagescale);
+PHP_FUNCTION(imageaffine);
+PHP_FUNCTION(imagesetinterpolation);
 #endif
 
 PHP_FUNCTION(imagesetthickness);