Annotation of embedaddon/php/Zend/zend_language_scanner.c, revision 1.1

1.1     ! misho       1: /* Generated by re2c 0.13.5 on Sun Jan  1 17:48:17 2012 */
        !             2: #line 1 "Zend/zend_language_scanner.l"
        !             3: /*
        !             4:    +----------------------------------------------------------------------+
        !             5:    | Zend Engine                                                          |
        !             6:    +----------------------------------------------------------------------+
        !             7:    | Copyright (c) 1998-2012 Zend Technologies Ltd. (http://www.zend.com) |
        !             8:    +----------------------------------------------------------------------+
        !             9:    | This source file is subject to version 2.00 of the Zend license,     |
        !            10:    | that is bundled with this package in the file LICENSE, and is        |
        !            11:    | available through the world-wide-web at the following url:           |
        !            12:    | http://www.zend.com/license/2_00.txt.                                |
        !            13:    | If you did not receive a copy of the Zend license and are unable to  |
        !            14:    | obtain it through the world-wide-web, please send a note to          |
        !            15:    | license@zend.com so we can mail you a copy immediately.              |
        !            16:    +----------------------------------------------------------------------+
        !            17:    | Authors: Marcus Boerger <helly@php.net>                              |
        !            18:    |          Nuno Lopes <nlopess@php.net>                                |
        !            19:    |          Scott MacVicar <scottmac@php.net>                           |
        !            20:    | Flex version authors:                                                |
        !            21:    |          Andi Gutmans <andi@zend.com>                                |
        !            22:    |          Zeev Suraski <zeev@zend.com>                                |
        !            23:    +----------------------------------------------------------------------+
        !            24: */
        !            25: 
        !            26: /* $Id: zend_language_scanner.c 321657 2012-01-01 22:52:23Z nlopess $ */
        !            27: 
        !            28: #if 0
        !            29: # define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c)
        !            30: #else
        !            31: # define YYDEBUG(s, c)
        !            32: #endif
        !            33: 
        !            34: #include "zend_language_scanner_defs.h"
        !            35: 
        !            36: #include <errno.h>
        !            37: #include "zend.h"
        !            38: #include "zend_alloc.h"
        !            39: #include <zend_language_parser.h>
        !            40: #include "zend_compile.h"
        !            41: #include "zend_language_scanner.h"
        !            42: #include "zend_highlight.h"
        !            43: #include "zend_constants.h"
        !            44: #include "zend_variables.h"
        !            45: #include "zend_operators.h"
        !            46: #include "zend_API.h"
        !            47: #include "zend_strtod.h"
        !            48: #include "zend_exceptions.h"
        !            49: #include "tsrm_virtual_cwd.h"
        !            50: #include "tsrm_config_common.h"
        !            51: 
        !            52: #define YYCTYPE   unsigned char
        !            53: #define YYFILL(n) { if ((YYCURSOR + n) >= (YYLIMIT + ZEND_MMAP_AHEAD)) { return 0; } }
        !            54: #define YYCURSOR  SCNG(yy_cursor)
        !            55: #define YYLIMIT   SCNG(yy_limit)
        !            56: #define YYMARKER  SCNG(yy_marker)
        !            57: 
        !            58: #define YYGETCONDITION()  SCNG(yy_state)
        !            59: #define YYSETCONDITION(s) SCNG(yy_state) = s
        !            60: 
        !            61: #define STATE(name)  yyc##name
        !            62: 
        !            63: /* emulate flex constructs */
        !            64: #define BEGIN(state) YYSETCONDITION(STATE(state))
        !            65: #define YYSTATE      YYGETCONDITION()
        !            66: #define yytext       ((char*)SCNG(yy_text))
        !            67: #define yyleng       SCNG(yy_leng)
        !            68: #define yyless(x)    do { YYCURSOR = (unsigned char*)yytext + x; \
        !            69:                           yyleng   = (unsigned int)x; } while(0)
        !            70: #define yymore()     goto yymore_restart
        !            71: 
        !            72: /* perform sanity check. If this message is triggered you should
        !            73:    increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */
        !            74: #define YYMAXFILL 16
        !            75: #if ZEND_MMAP_AHEAD < YYMAXFILL
        !            76: # error ZEND_MMAP_AHEAD should be greater than or equal to YYMAXFILL
        !            77: #endif
        !            78: 
        !            79: #ifdef HAVE_STDARG_H
        !            80: # include <stdarg.h>
        !            81: #endif
        !            82: 
        !            83: #ifdef HAVE_UNISTD_H
        !            84: # include <unistd.h>
        !            85: #endif
        !            86: 
        !            87: /* Globals Macros */
        !            88: #define SCNG   LANG_SCNG
        !            89: #ifdef ZTS
        !            90: ZEND_API ts_rsrc_id language_scanner_globals_id;
        !            91: #else
        !            92: ZEND_API zend_php_scanner_globals language_scanner_globals;
        !            93: #endif
        !            94: 
        !            95: #define HANDLE_NEWLINES(s, l)                                                                                                  \
        !            96: do {                                                                                                                                                   \
        !            97:        char *p = (s), *boundary = p+(l);                                                                                       \
        !            98:                                                                                                                                                                \
        !            99:        while (p<boundary) {                                                                                                            \
        !           100:                if (*p == '\n' || (*p == '\r' && (*(p+1) != '\n'))) {                                   \
        !           101:                        CG(zend_lineno)++;                                                                                                      \
        !           102:                }                                                                                                                                               \
        !           103:                p++;                                                                                                                                    \
        !           104:        }                                                                                                                                                       \
        !           105: } while (0)
        !           106: 
        !           107: #define HANDLE_NEWLINE(c) \
        !           108: { \
        !           109:        if (c == '\n' || c == '\r') { \
        !           110:                CG(zend_lineno)++; \
        !           111:        } \
        !           112: }
        !           113: 
        !           114: /* To save initial string length after scanning to first variable, CG(doc_comment_len) can be reused */
        !           115: #define SET_DOUBLE_QUOTES_SCANNED_LENGTH(len) CG(doc_comment_len) = (len)
        !           116: #define GET_DOUBLE_QUOTES_SCANNED_LENGTH()    CG(doc_comment_len)
        !           117: 
        !           118: #define IS_LABEL_START(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || (c) == '_' || (c) >= 0x7F)
        !           119: 
        !           120: #define ZEND_IS_OCT(c)  ((c)>='0' && (c)<='7')
        !           121: #define ZEND_IS_HEX(c)  (((c)>='0' && (c)<='9') || ((c)>='a' && (c)<='f') || ((c)>='A' && (c)<='F'))
        !           122: 
        !           123: BEGIN_EXTERN_C()
        !           124: 
        !           125: static void _yy_push_state(int new_state TSRMLS_DC)
        !           126: {
        !           127:        zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION(), sizeof(int));
        !           128:        YYSETCONDITION(new_state);
        !           129: }
        !           130: 
        !           131: #define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm)
        !           132: 
        !           133: static void yy_pop_state(TSRMLS_D)
        !           134: {
        !           135:        int *stack_state;
        !           136:        zend_stack_top(&SCNG(state_stack), (void **) &stack_state);
        !           137:        YYSETCONDITION(*stack_state);
        !           138:        zend_stack_del_top(&SCNG(state_stack));
        !           139: }
        !           140: 
        !           141: static void yy_scan_buffer(char *str, unsigned int len TSRMLS_DC)
        !           142: {
        !           143:        YYCURSOR       = (YYCTYPE*)str;
        !           144:        YYLIMIT        = YYCURSOR + len;
        !           145:        if (!SCNG(yy_start)) {
        !           146:                SCNG(yy_start) = YYCURSOR;
        !           147:        }
        !           148: }
        !           149: 
        !           150: void startup_scanner(TSRMLS_D)
        !           151: {
        !           152:        CG(heredoc) = NULL;
        !           153:        CG(heredoc_len) = 0;
        !           154:        CG(doc_comment) = NULL;
        !           155:        CG(doc_comment_len) = 0;
        !           156:        zend_stack_init(&SCNG(state_stack));
        !           157: }
        !           158: 
        !           159: void shutdown_scanner(TSRMLS_D)
        !           160: {
        !           161:        if (CG(heredoc)) {
        !           162:                efree(CG(heredoc));
        !           163:                CG(heredoc_len)=0;
        !           164:        }
        !           165:        zend_stack_destroy(&SCNG(state_stack));
        !           166:        RESET_DOC_COMMENT();
        !           167: }
        !           168: 
        !           169: ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
        !           170: {
        !           171:        lex_state->yy_leng   = SCNG(yy_leng);
        !           172:        lex_state->yy_start  = SCNG(yy_start);
        !           173:        lex_state->yy_text   = SCNG(yy_text);
        !           174:        lex_state->yy_cursor = SCNG(yy_cursor);
        !           175:        lex_state->yy_marker = SCNG(yy_marker);
        !           176:        lex_state->yy_limit  = SCNG(yy_limit);
        !           177: 
        !           178:        lex_state->state_stack = SCNG(state_stack);
        !           179:        zend_stack_init(&SCNG(state_stack));
        !           180: 
        !           181:        lex_state->in = SCNG(yy_in);
        !           182:        lex_state->yy_state = YYSTATE;
        !           183:        lex_state->filename = zend_get_compiled_filename(TSRMLS_C);
        !           184:        lex_state->lineno = CG(zend_lineno);
        !           185: 
        !           186: #ifdef ZEND_MULTIBYTE
        !           187:        lex_state->script_org = SCNG(script_org);
        !           188:        lex_state->script_org_size = SCNG(script_org_size);
        !           189:        lex_state->script_filtered = SCNG(script_filtered);
        !           190:        lex_state->script_filtered_size = SCNG(script_filtered_size);
        !           191:        lex_state->input_filter = SCNG(input_filter);
        !           192:        lex_state->output_filter = SCNG(output_filter);
        !           193:        lex_state->script_encoding = SCNG(script_encoding);
        !           194:        lex_state->internal_encoding = SCNG(internal_encoding);
        !           195: #endif /* ZEND_MULTIBYTE */
        !           196: }
        !           197: 
        !           198: ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
        !           199: {
        !           200:        SCNG(yy_leng)   = lex_state->yy_leng;
        !           201:        SCNG(yy_start)  = lex_state->yy_start;
        !           202:        SCNG(yy_text)   = lex_state->yy_text;
        !           203:        SCNG(yy_cursor) = lex_state->yy_cursor;
        !           204:        SCNG(yy_marker) = lex_state->yy_marker;
        !           205:        SCNG(yy_limit)  = lex_state->yy_limit;
        !           206: 
        !           207:        zend_stack_destroy(&SCNG(state_stack));
        !           208:        SCNG(state_stack) = lex_state->state_stack;
        !           209: 
        !           210:        SCNG(yy_in) = lex_state->in;
        !           211:        YYSETCONDITION(lex_state->yy_state);
        !           212:        CG(zend_lineno) = lex_state->lineno;
        !           213:        zend_restore_compiled_filename(lex_state->filename TSRMLS_CC);
        !           214: #ifdef ZEND_MULTIBYTE
        !           215:        if (SCNG(script_org)) {
        !           216:                efree(SCNG(script_org));
        !           217:                SCNG(script_org) = NULL;
        !           218:        }
        !           219:        if (SCNG(script_filtered)) {
        !           220:                efree(SCNG(script_filtered));
        !           221:                SCNG(script_filtered) = NULL;
        !           222:        }
        !           223:        SCNG(script_org) = lex_state->script_org;
        !           224:        SCNG(script_org_size) = lex_state->script_org_size;
        !           225:        SCNG(script_filtered) = lex_state->script_filtered;
        !           226:        SCNG(script_filtered_size) = lex_state->script_filtered_size;
        !           227:        SCNG(input_filter) = lex_state->input_filter;
        !           228:        SCNG(output_filter) = lex_state->output_filter;
        !           229:        SCNG(script_encoding) = lex_state->script_encoding;
        !           230:        SCNG(internal_encoding) = lex_state->internal_encoding;
        !           231: #endif /* ZEND_MULTIBYTE */
        !           232: 
        !           233:        if (CG(heredoc)) {
        !           234:                efree(CG(heredoc));
        !           235:                CG(heredoc) = NULL;
        !           236:                CG(heredoc_len) = 0;
        !           237:        }
        !           238: }
        !           239: 
        !           240: ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC)
        !           241: {
        !           242:        zend_llist_del_element(&CG(open_files), file_handle, (int (*)(void *, void *)) zend_compare_file_handles);
        !           243:        /* zend_file_handle_dtor() operates on the copy, so we have to NULLify the original here */
        !           244:        file_handle->opened_path = NULL;
        !           245:        if (file_handle->free_filename) {
        !           246:                file_handle->filename = NULL;
        !           247:        }
        !           248: }
        !           249: 
        !           250: 
        !           251: ZEND_API int open_file_for_scanning(zend_file_handle *file_handle TSRMLS_DC)
        !           252: {
        !           253:        char *file_path = NULL, *buf;
        !           254:        size_t size, offset = 0;
        !           255:        
        !           256:        /* The shebang line was read, get the current position to obtain the buffer start */
        !           257:        if (CG(start_lineno) == 2 && file_handle->type == ZEND_HANDLE_FP && file_handle->handle.fp) {
        !           258:                if ((offset = ftell(file_handle->handle.fp)) == -1) {
        !           259:                        offset = 0;
        !           260:                }
        !           261:        }
        !           262: 
        !           263:        if (zend_stream_fixup(file_handle, &buf, &size TSRMLS_CC) == FAILURE) {
        !           264:                return FAILURE;
        !           265:        }
        !           266: 
        !           267:        zend_llist_add_element(&CG(open_files), file_handle);
        !           268:        if (file_handle->handle.stream.handle >= (void*)file_handle && file_handle->handle.stream.handle <= (void*)(file_handle+1)) {
        !           269:                zend_file_handle *fh = (zend_file_handle*)zend_llist_get_last(&CG(open_files));
        !           270:                size_t diff = (char*)file_handle->handle.stream.handle - (char*)file_handle;
        !           271:                fh->handle.stream.handle = (void*)(((char*)fh) + diff);
        !           272:                file_handle->handle.stream.handle = fh->handle.stream.handle;
        !           273:        }
        !           274: 
        !           275:        /* Reset the scanner for scanning the new file */
        !           276:        SCNG(yy_in) = file_handle;
        !           277:        SCNG(yy_start) = NULL;
        !           278: 
        !           279:        if (size != -1) {
        !           280: #ifdef ZEND_MULTIBYTE
        !           281:                if (zend_multibyte_read_script((unsigned char *)buf, size TSRMLS_CC) != 0) {
        !           282:                        return FAILURE;
        !           283:                }
        !           284: 
        !           285:                SCNG(yy_in) = NULL;
        !           286: 
        !           287:                zend_multibyte_set_filter(NULL TSRMLS_CC);
        !           288: 
        !           289:                if (!SCNG(input_filter)) {
        !           290:                        SCNG(script_filtered) = (unsigned char*)emalloc(SCNG(script_org_size)+1);
        !           291:                        memcpy(SCNG(script_filtered), SCNG(script_org), SCNG(script_org_size)+1);
        !           292:                        SCNG(script_filtered_size) = SCNG(script_org_size);
        !           293:                } else {
        !           294:                        SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size) TSRMLS_CC);
        !           295:                        if (SCNG(script_filtered) == NULL) {
        !           296:                                zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
        !           297:                                                "encoding \"%s\" to a compatible encoding", LANG_SCNG(script_encoding)->name);
        !           298:                        }
        !           299:                }
        !           300:                SCNG(yy_start) = SCNG(script_filtered) - offset;
        !           301:                yy_scan_buffer((char *)SCNG(script_filtered), SCNG(script_filtered_size) TSRMLS_CC);
        !           302: #else /* !ZEND_MULTIBYTE */
        !           303:                SCNG(yy_start) = buf - offset;
        !           304:                yy_scan_buffer(buf, size TSRMLS_CC);
        !           305: #endif /* ZEND_MULTIBYTE */
        !           306:        } else {
        !           307:                zend_error_noreturn(E_COMPILE_ERROR, "zend_stream_mmap() failed");
        !           308:        }
        !           309: 
        !           310:        BEGIN(INITIAL);
        !           311: 
        !           312:        if (file_handle->opened_path) {
        !           313:                file_path = file_handle->opened_path;
        !           314:        } else {
        !           315:                file_path = file_handle->filename;
        !           316:        }
        !           317: 
        !           318:        zend_set_compiled_filename(file_path TSRMLS_CC);
        !           319: 
        !           320:        if (CG(start_lineno)) {
        !           321:                CG(zend_lineno) = CG(start_lineno);
        !           322:                CG(start_lineno) = 0;
        !           323:        } else {
        !           324:                CG(zend_lineno) = 1;
        !           325:        }
        !           326: 
        !           327:        CG(increment_lineno) = 0;
        !           328:        return SUCCESS;
        !           329: }
        !           330: END_EXTERN_C()
        !           331: 
        !           332: 
        !           333: ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSRMLS_DC)
        !           334: {
        !           335:        zend_lex_state original_lex_state;
        !           336:        zend_op_array *op_array = (zend_op_array *) emalloc(sizeof(zend_op_array));
        !           337:        zend_op_array *original_active_op_array = CG(active_op_array);
        !           338:        zend_op_array *retval=NULL;
        !           339:        int compiler_result;
        !           340:        zend_bool compilation_successful=0;
        !           341:        znode retval_znode;
        !           342:        zend_bool original_in_compilation = CG(in_compilation);
        !           343: 
        !           344:        retval_znode.op_type = IS_CONST;
        !           345:        retval_znode.u.constant.type = IS_LONG;
        !           346:        retval_znode.u.constant.value.lval = 1;
        !           347:        Z_UNSET_ISREF(retval_znode.u.constant);
        !           348:        Z_SET_REFCOUNT(retval_znode.u.constant, 1);
        !           349: 
        !           350:        zend_save_lexical_state(&original_lex_state TSRMLS_CC);
        !           351: 
        !           352:        retval = op_array; /* success oriented */
        !           353: 
        !           354:        if (open_file_for_scanning(file_handle TSRMLS_CC)==FAILURE) {
        !           355:                if (type==ZEND_REQUIRE) {
        !           356:                        zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, file_handle->filename TSRMLS_CC);
        !           357:                        zend_bailout();
        !           358:                } else {
        !           359:                        zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, file_handle->filename TSRMLS_CC);
        !           360:                }
        !           361:                compilation_successful=0;
        !           362:        } else {
        !           363:                init_op_array(op_array, ZEND_USER_FUNCTION, INITIAL_OP_ARRAY_SIZE TSRMLS_CC);
        !           364:                CG(in_compilation) = 1;
        !           365:                CG(active_op_array) = op_array;
        !           366:                compiler_result = zendparse(TSRMLS_C);
        !           367:                zend_do_return(&retval_znode, 0 TSRMLS_CC);
        !           368:                CG(in_compilation) = original_in_compilation;
        !           369:                if (compiler_result==1) { /* parser error */
        !           370:                        zend_bailout();
        !           371:                }
        !           372:                compilation_successful=1;
        !           373:        }
        !           374: 
        !           375:        if (retval) {
        !           376:                CG(active_op_array) = original_active_op_array;
        !           377:                if (compilation_successful) {
        !           378:                        pass_two(op_array TSRMLS_CC);
        !           379:                        zend_release_labels(TSRMLS_C);
        !           380:                } else {
        !           381:                        efree(op_array);
        !           382:                        retval = NULL;
        !           383:                }
        !           384:        }
        !           385:        zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
        !           386:        return retval;
        !           387: }
        !           388: 
        !           389: 
        !           390: zend_op_array *compile_filename(int type, zval *filename TSRMLS_DC)
        !           391: {
        !           392:        zend_file_handle file_handle;
        !           393:        zval tmp;
        !           394:        zend_op_array *retval;
        !           395:        char *opened_path = NULL;
        !           396: 
        !           397:        if (filename->type != IS_STRING) {
        !           398:                tmp = *filename;
        !           399:                zval_copy_ctor(&tmp);
        !           400:                convert_to_string(&tmp);
        !           401:                filename = &tmp;
        !           402:        }
        !           403:        file_handle.filename = filename->value.str.val;
        !           404:        file_handle.free_filename = 0;
        !           405:        file_handle.type = ZEND_HANDLE_FILENAME;
        !           406:        file_handle.opened_path = NULL;
        !           407:        file_handle.handle.fp = NULL;
        !           408: 
        !           409:        retval = zend_compile_file(&file_handle, type TSRMLS_CC);
        !           410:        if (retval && file_handle.handle.stream.handle) {
        !           411:                int dummy = 1;
        !           412: 
        !           413:                if (!file_handle.opened_path) {
        !           414:                        file_handle.opened_path = opened_path = estrndup(filename->value.str.val, filename->value.str.len);
        !           415:                }
        !           416: 
        !           417:                zend_hash_add(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)+1, (void *)&dummy, sizeof(int), NULL);
        !           418: 
        !           419:                if (opened_path) {
        !           420:                        efree(opened_path);
        !           421:                }
        !           422:        }
        !           423:        zend_destroy_file_handle(&file_handle TSRMLS_CC);
        !           424: 
        !           425:        if (filename==&tmp) {
        !           426:                zval_dtor(&tmp);
        !           427:        }
        !           428:        return retval;
        !           429: }
        !           430: 
        !           431: ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_DC)
        !           432: {
        !           433:        /* enforce two trailing NULLs for flex... */
        !           434:        str->value.str.val = safe_erealloc(str->value.str.val, 1, str->value.str.len, ZEND_MMAP_AHEAD);
        !           435: 
        !           436:        memset(str->value.str.val + str->value.str.len, 0, ZEND_MMAP_AHEAD);
        !           437: 
        !           438:        SCNG(yy_in)=NULL;
        !           439:        SCNG(yy_start) = NULL;
        !           440: 
        !           441: #ifdef ZEND_MULTIBYTE
        !           442:        SCNG(script_org) = (unsigned char *)estrdup(str->value.str.val);
        !           443:        SCNG(script_org_size) = str->value.str.len;
        !           444: 
        !           445:        zend_multibyte_set_filter(CG(internal_encoding) TSRMLS_CC);
        !           446: 
        !           447:        if (!SCNG(input_filter)) {
        !           448:                SCNG(script_filtered) = (unsigned char*)emalloc(SCNG(script_org_size)+1);
        !           449:                memcpy(SCNG(script_filtered), SCNG(script_org), SCNG(script_org_size)+1);
        !           450:                SCNG(script_filtered_size) = SCNG(script_org_size);
        !           451:        } else {
        !           452:                SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size) TSRMLS_CC);
        !           453:        }
        !           454: 
        !           455:        yy_scan_buffer((char *)SCNG(script_filtered), SCNG(script_filtered_size) TSRMLS_CC);    
        !           456: #else /* !ZEND_MULTIBYTE */
        !           457:        yy_scan_buffer(str->value.str.val, str->value.str.len TSRMLS_CC);
        !           458: #endif /* ZEND_MULTIBYTE */
        !           459: 
        !           460:        zend_set_compiled_filename(filename TSRMLS_CC);
        !           461:        CG(zend_lineno) = 1;
        !           462:        CG(increment_lineno) = 0;
        !           463:        return SUCCESS;
        !           464: }
        !           465: 
        !           466: 
        !           467: ZEND_API size_t zend_get_scanned_file_offset(TSRMLS_D)
        !           468: {
        !           469:        size_t offset = SCNG(yy_cursor) - SCNG(yy_start);
        !           470: #ifdef ZEND_MULTIBYTE
        !           471:        if (SCNG(input_filter)) {
        !           472:                size_t original_offset = offset, length = 0; do {
        !           473:                        unsigned char *p = NULL;
        !           474:                        SCNG(input_filter)(&p, &length, SCNG(script_org), offset TSRMLS_CC);
        !           475:                        if (!p) {
        !           476:                                break;
        !           477:                        }
        !           478:                        efree(p);
        !           479:                        if (length > original_offset) {
        !           480:                                offset--;
        !           481:                        } else if (length < original_offset) {
        !           482:                                offset++;
        !           483:                        }
        !           484:                } while (original_offset != length);
        !           485:        }
        !           486: #endif
        !           487:        return offset;
        !           488: }
        !           489: 
        !           490: 
        !           491: zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC)
        !           492: {
        !           493:        zend_lex_state original_lex_state;
        !           494:        zend_op_array *op_array = (zend_op_array *) emalloc(sizeof(zend_op_array));
        !           495:        zend_op_array *original_active_op_array = CG(active_op_array);
        !           496:        zend_op_array *retval;
        !           497:        zval tmp;
        !           498:        int compiler_result;
        !           499:        zend_bool original_in_compilation = CG(in_compilation);
        !           500: 
        !           501:        if (source_string->value.str.len==0) {
        !           502:                efree(op_array);
        !           503:                return NULL;
        !           504:        }
        !           505: 
        !           506:        CG(in_compilation) = 1;
        !           507: 
        !           508:        tmp = *source_string;
        !           509:        zval_copy_ctor(&tmp);
        !           510:        convert_to_string(&tmp);
        !           511:        source_string = &tmp;
        !           512: 
        !           513:        zend_save_lexical_state(&original_lex_state TSRMLS_CC);
        !           514:        if (zend_prepare_string_for_scanning(source_string, filename TSRMLS_CC)==FAILURE) {
        !           515:                efree(op_array);
        !           516:                retval = NULL;
        !           517:        } else {
        !           518:                zend_bool orig_interactive = CG(interactive);
        !           519: 
        !           520:                CG(interactive) = 0;
        !           521:                init_op_array(op_array, ZEND_EVAL_CODE, INITIAL_OP_ARRAY_SIZE TSRMLS_CC);
        !           522:                CG(interactive) = orig_interactive;
        !           523:                CG(active_op_array) = op_array;
        !           524:                BEGIN(ST_IN_SCRIPTING);
        !           525:                compiler_result = zendparse(TSRMLS_C);
        !           526: 
        !           527: #ifdef ZEND_MULTIBYTE
        !           528:                if (SCNG(script_org)) {
        !           529:                        efree(SCNG(script_org));
        !           530:                        SCNG(script_org) = NULL;
        !           531:                }
        !           532:                if (SCNG(script_filtered)) {
        !           533:                        efree(SCNG(script_filtered));
        !           534:                        SCNG(script_filtered) = NULL;
        !           535:                }
        !           536: #endif /* ZEND_MULTIBYTE */
        !           537: 
        !           538:                if (compiler_result==1) {
        !           539:                        CG(active_op_array) = original_active_op_array;
        !           540:                        CG(unclean_shutdown)=1;
        !           541:                        destroy_op_array(op_array TSRMLS_CC);
        !           542:                        efree(op_array);
        !           543:                        retval = NULL;
        !           544:                } else {
        !           545:                        zend_do_return(NULL, 0 TSRMLS_CC);
        !           546:                        CG(active_op_array) = original_active_op_array;
        !           547:                        pass_two(op_array TSRMLS_CC);
        !           548:                        zend_release_labels(TSRMLS_C);
        !           549:                        retval = op_array;
        !           550:                }
        !           551:        }
        !           552:        zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
        !           553:        zval_dtor(&tmp);
        !           554:        CG(in_compilation) = original_in_compilation;
        !           555:        return retval;
        !           556: }
        !           557: 
        !           558: 
        !           559: BEGIN_EXTERN_C()
        !           560: int highlight_file(char *filename, zend_syntax_highlighter_ini *syntax_highlighter_ini TSRMLS_DC)
        !           561: {
        !           562:        zend_lex_state original_lex_state;
        !           563:        zend_file_handle file_handle;
        !           564: 
        !           565:        file_handle.type = ZEND_HANDLE_FILENAME;
        !           566:        file_handle.filename = filename;
        !           567:        file_handle.free_filename = 0;
        !           568:        file_handle.opened_path = NULL;
        !           569:        zend_save_lexical_state(&original_lex_state TSRMLS_CC);
        !           570:        if (open_file_for_scanning(&file_handle TSRMLS_CC)==FAILURE) {
        !           571:                zend_message_dispatcher(ZMSG_FAILED_HIGHLIGHT_FOPEN, filename TSRMLS_CC);
        !           572:                zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
        !           573:                return FAILURE;
        !           574:        }
        !           575:        zend_highlight(syntax_highlighter_ini TSRMLS_CC);
        !           576: #ifdef ZEND_MULTIBYTE
        !           577:        if (SCNG(script_org)) {
        !           578:                efree(SCNG(script_org));
        !           579:                SCNG(script_org) = NULL;
        !           580:        }
        !           581:        if (SCNG(script_filtered)) {
        !           582:                efree(SCNG(script_filtered));
        !           583:                SCNG(script_filtered) = NULL;
        !           584:        }
        !           585: #endif /* ZEND_MULTIBYTE */
        !           586:        zend_destroy_file_handle(&file_handle TSRMLS_CC);
        !           587:        zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
        !           588:        return SUCCESS;
        !           589: }
        !           590: 
        !           591: int highlight_string(zval *str, zend_syntax_highlighter_ini *syntax_highlighter_ini, char *str_name TSRMLS_DC)
        !           592: {
        !           593:        zend_lex_state original_lex_state;
        !           594:        zval tmp = *str;
        !           595: 
        !           596:        str = &tmp;
        !           597:        zval_copy_ctor(str);
        !           598:        zend_save_lexical_state(&original_lex_state TSRMLS_CC);
        !           599:        if (zend_prepare_string_for_scanning(str, str_name TSRMLS_CC)==FAILURE) {
        !           600:                zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
        !           601:                return FAILURE;
        !           602:        }
        !           603:        BEGIN(INITIAL);
        !           604:        zend_highlight(syntax_highlighter_ini TSRMLS_CC);
        !           605: #ifdef ZEND_MULTIBYTE
        !           606:        if (SCNG(script_org)) {
        !           607:                efree(SCNG(script_org));
        !           608:                SCNG(script_org) = NULL;
        !           609:        }
        !           610:        if (SCNG(script_filtered)) {
        !           611:                efree(SCNG(script_filtered));
        !           612:                SCNG(script_filtered) = NULL;
        !           613:        }
        !           614: #endif /* ZEND_MULTIBYTE */
        !           615:        zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
        !           616:        zval_dtor(str);
        !           617:        return SUCCESS;
        !           618: }
        !           619: END_EXTERN_C()
        !           620: 
        !           621: #ifdef ZEND_MULTIBYTE
        !           622: 
        !           623: BEGIN_EXTERN_C()
        !           624: ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter, zend_encoding *old_encoding TSRMLS_DC)
        !           625: {
        !           626:        size_t original_offset, offset, free_flag, new_len, length;
        !           627:        unsigned char *p;
        !           628: 
        !           629:        /* calculate current position */
        !           630:        offset = original_offset = YYCURSOR - SCNG(yy_start);
        !           631:        if (old_input_filter && offset > 0) {
        !           632:                zend_encoding *new_encoding = SCNG(script_encoding);
        !           633:                zend_encoding_filter new_filter = SCNG(input_filter);
        !           634:                SCNG(script_encoding) = old_encoding;
        !           635:                SCNG(input_filter) = old_input_filter;
        !           636:                offset = zend_get_scanned_file_offset(TSRMLS_C);
        !           637:                SCNG(script_encoding) = new_encoding;
        !           638:                SCNG(input_filter) = new_filter;
        !           639:        }
        !           640: 
        !           641:        /* convert and set */
        !           642:        if (!SCNG(input_filter)) {
        !           643:                length = SCNG(script_org_size) - offset;
        !           644:                p = SCNG(script_org) + offset;
        !           645:                free_flag = 0;
        !           646:        } else {
        !           647:                SCNG(input_filter)(&p, &length, SCNG(script_org) + offset, SCNG(script_org_size) - offset TSRMLS_CC);
        !           648:                free_flag = 1;
        !           649:        }
        !           650: 
        !           651:        new_len = original_offset + length;
        !           652: 
        !           653:        if (new_len > YYLIMIT - SCNG(yy_start)) {
        !           654:                unsigned char *new_yy_start = erealloc(SCNG(yy_start), new_len);
        !           655:                SCNG(yy_cursor) = new_yy_start + (SCNG(yy_cursor) - SCNG(yy_start));
        !           656:                SCNG(yy_marker) = new_yy_start + (SCNG(yy_marker) - SCNG(yy_start));
        !           657:                SCNG(yy_text) = new_yy_start + (SCNG(yy_text) - SCNG(yy_start));
        !           658:                SCNG(yy_start) = new_yy_start;
        !           659:                SCNG(script_filtered) = new_yy_start;
        !           660:                SCNG(script_filtered_size) = new_len;
        !           661:        }
        !           662: 
        !           663:        SCNG(yy_limit) = SCNG(yy_start) + new_len;
        !           664:        memmove(SCNG(yy_start) + original_offset, p, length);
        !           665: 
        !           666:        if (free_flag) {
        !           667:                efree(p);
        !           668:        }
        !           669: }
        !           670: 
        !           671: 
        !           672: ZEND_API int zend_multibyte_yyinput(zend_file_handle *file_handle, char *buf, size_t len TSRMLS_DC)
        !           673: {
        !           674:        size_t n;
        !           675: 
        !           676:        if (CG(interactive) == 0) {
        !           677:                if (zend_stream_fixup(file_handle, &buf, &len TSRMLS_CC) == FAILURE) {
        !           678:                        return FAILURE;
        !           679:                }
        !           680:                n = len;
        !           681:                return n;
        !           682:        }
        !           683: 
        !           684:        /* interactive */
        !           685:        if (SCNG(script_org)) {
        !           686:                efree(SCNG(script_org));
        !           687:        }
        !           688:        if (SCNG(script_filtered)) {
        !           689:                efree(SCNG(script_filtered));
        !           690:        }
        !           691:        SCNG(script_org) = NULL;
        !           692:        SCNG(script_org_size) = 0;
        !           693: 
        !           694:        /* TODO: support widechars */
        !           695:        if (zend_stream_fixup(file_handle, &buf, &len TSRMLS_CC) == FAILURE) {
        !           696:                return FAILURE;
        !           697:        }
        !           698:        n = len;
        !           699: 
        !           700:        SCNG(script_org_size) = n;
        !           701:        SCNG(script_org) = (unsigned char*)emalloc(SCNG(script_org_size) + 1);
        !           702:        memcpy(SCNG(script_org), buf, n);
        !           703: 
        !           704:        return n;
        !           705: }
        !           706: 
        !           707: 
        !           708: ZEND_API int zend_multibyte_read_script(unsigned char *buf, size_t n TSRMLS_DC)
        !           709: {
        !           710:        if (SCNG(script_org)) {
        !           711:                efree(SCNG(script_org));
        !           712:                SCNG(script_org) = NULL;
        !           713:        }
        !           714:        SCNG(script_org_size) = n;      
        !           715:        
        !           716:        SCNG(script_org) = (unsigned char*)emalloc(SCNG(script_org_size) + 1);
        !           717:        memcpy(SCNG(script_org), buf, n);
        !           718:        *(SCNG(script_org)+SCNG(script_org_size)) = '\0';
        !           719: 
        !           720:        return 0;
        !           721: }
        !           722: 
        !           723: 
        !           724: # define zend_copy_value(zendlval, yytext, yyleng) \
        !           725:        if (SCNG(output_filter)) { \
        !           726:                size_t sz = 0; \
        !           727:                SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)yytext, (size_t)yyleng TSRMLS_CC); \
        !           728:                zendlval->value.str.len = sz; \
        !           729:        } else { \
        !           730:                zendlval->value.str.val = (char *) estrndup(yytext, yyleng); \
        !           731:                zendlval->value.str.len = yyleng; \
        !           732:        }
        !           733: #else /* ZEND_MULTIBYTE */
        !           734: # define zend_copy_value(zendlval, yytext, yyleng) \
        !           735:        zendlval->value.str.val = (char *)estrndup(yytext, yyleng); \
        !           736:        zendlval->value.str.len = yyleng;
        !           737: #endif /* ZEND_MULTIBYTE */
        !           738: 
        !           739: static void zend_scan_escape_string(zval *zendlval, char *str, int len, char quote_type TSRMLS_DC)
        !           740: {
        !           741:        register char *s, *t;
        !           742:        char *end;
        !           743: 
        !           744:        ZVAL_STRINGL(zendlval, str, len, 1);
        !           745: 
        !           746:        /* convert escape sequences */
        !           747:        s = t = zendlval->value.str.val;
        !           748:        end = s+zendlval->value.str.len;
        !           749:        while (s<end) {
        !           750:                if (*s=='\\') {
        !           751:                        s++;
        !           752:                        if (s >= end) {
        !           753:                                *t++ = '\\';
        !           754:                                break;
        !           755:                        }
        !           756: 
        !           757:                        switch(*s) {
        !           758:                                case 'n':
        !           759:                                        *t++ = '\n';
        !           760:                                        zendlval->value.str.len--;
        !           761:                                        break;
        !           762:                                case 'r':
        !           763:                                        *t++ = '\r';
        !           764:                                        zendlval->value.str.len--;
        !           765:                                        break;
        !           766:                                case 't':
        !           767:                                        *t++ = '\t';
        !           768:                                        zendlval->value.str.len--;
        !           769:                                        break;
        !           770:                                case 'f':
        !           771:                                        *t++ = '\f';
        !           772:                                        zendlval->value.str.len--;
        !           773:                                        break;
        !           774:                                case 'v':
        !           775:                                        *t++ = '\v';
        !           776:                                        zendlval->value.str.len--;
        !           777:                                        break;
        !           778:                                case '"':
        !           779:                                case '`':
        !           780:                                        if (*s != quote_type) {
        !           781:                                                *t++ = '\\';
        !           782:                                                *t++ = *s;
        !           783:                                                break;
        !           784:                                        }
        !           785:                                case '\\':
        !           786:                                case '$':
        !           787:                                        *t++ = *s;
        !           788:                                        zendlval->value.str.len--;
        !           789:                                        break;
        !           790:                                case 'x':
        !           791:                                case 'X':
        !           792:                                        if (ZEND_IS_HEX(*(s+1))) {
        !           793:                                                char hex_buf[3] = { 0, 0, 0 };
        !           794: 
        !           795:                                                zendlval->value.str.len--; /* for the 'x' */
        !           796: 
        !           797:                                                hex_buf[0] = *(++s);
        !           798:                                                zendlval->value.str.len--;
        !           799:                                                if (ZEND_IS_HEX(*(s+1))) {
        !           800:                                                        hex_buf[1] = *(++s);
        !           801:                                                        zendlval->value.str.len--;
        !           802:                                                }
        !           803:                                                *t++ = (char) strtol(hex_buf, NULL, 16);
        !           804:                                        } else {
        !           805:                                                *t++ = '\\';
        !           806:                                                *t++ = *s;
        !           807:                                        }
        !           808:                                        break;
        !           809:                                default:
        !           810:                                        /* check for an octal */
        !           811:                                        if (ZEND_IS_OCT(*s)) {
        !           812:                                                char octal_buf[4] = { 0, 0, 0, 0 };
        !           813: 
        !           814:                                                octal_buf[0] = *s;
        !           815:                                                zendlval->value.str.len--;
        !           816:                                                if (ZEND_IS_OCT(*(s+1))) {
        !           817:                                                        octal_buf[1] = *(++s);
        !           818:                                                        zendlval->value.str.len--;
        !           819:                                                        if (ZEND_IS_OCT(*(s+1))) {
        !           820:                                                                octal_buf[2] = *(++s);
        !           821:                                                                zendlval->value.str.len--;
        !           822:                                                        }
        !           823:                                                }
        !           824:                                                *t++ = (char) strtol(octal_buf, NULL, 8);
        !           825:                                        } else {
        !           826:                                                *t++ = '\\';
        !           827:                                                *t++ = *s;
        !           828:                                        }
        !           829:                                        break;
        !           830:                        }
        !           831:                } else {
        !           832:                        *t++ = *s;
        !           833:                }
        !           834: 
        !           835:                if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
        !           836:                        CG(zend_lineno)++;
        !           837:                }
        !           838:                s++;
        !           839:        }
        !           840:        *t = 0;
        !           841: #ifdef ZEND_MULTIBYTE
        !           842:        if (SCNG(output_filter)) {
        !           843:                size_t sz = 0;
        !           844:                s = zendlval->value.str.val;
        !           845:                SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)s, (size_t)zendlval->value.str.len TSRMLS_CC);
        !           846:                zendlval->value.str.len = sz;
        !           847:                efree(s);
        !           848:        }
        !           849: #endif /* ZEND_MULTIBYTE */
        !           850: }
        !           851: 
        !           852: 
        !           853: int lex_scan(zval *zendlval TSRMLS_DC)
        !           854: {
        !           855: restart:
        !           856:        SCNG(yy_text) = YYCURSOR;
        !           857: 
        !           858: yymore_restart:
        !           859: 
        !           860: 
        !           861: #line 862 "Zend/zend_language_scanner.c"
        !           862: {
        !           863:        YYCTYPE yych;
        !           864:        unsigned int yyaccept = 0;
        !           865:        if (YYGETCONDITION() < 5) {
        !           866:                if (YYGETCONDITION() < 2) {
        !           867:                        if (YYGETCONDITION() < 1) {
        !           868:                                goto yyc_ST_IN_SCRIPTING;
        !           869:                        } else {
        !           870:                                goto yyc_ST_LOOKING_FOR_PROPERTY;
        !           871:                        }
        !           872:                } else {
        !           873:                        if (YYGETCONDITION() < 3) {
        !           874:                                goto yyc_ST_BACKQUOTE;
        !           875:                        } else {
        !           876:                                if (YYGETCONDITION() < 4) {
        !           877:                                        goto yyc_ST_DOUBLE_QUOTES;
        !           878:                                } else {
        !           879:                                        goto yyc_ST_HEREDOC;
        !           880:                                }
        !           881:                        }
        !           882:                }
        !           883:        } else {
        !           884:                if (YYGETCONDITION() < 7) {
        !           885:                        if (YYGETCONDITION() < 6) {
        !           886:                                goto yyc_ST_LOOKING_FOR_VARNAME;
        !           887:                        } else {
        !           888:                                goto yyc_ST_VAR_OFFSET;
        !           889:                        }
        !           890:                } else {
        !           891:                        if (YYGETCONDITION() < 8) {
        !           892:                                goto yyc_INITIAL;
        !           893:                        } else {
        !           894:                                if (YYGETCONDITION() < 9) {
        !           895:                                        goto yyc_ST_END_HEREDOC;
        !           896:                                } else {
        !           897:                                        goto yyc_ST_NOWDOC;
        !           898:                                }
        !           899:                        }
        !           900:                }
        !           901:        }
        !           902: /* *********************************** */
        !           903: yyc_INITIAL:
        !           904:        {
        !           905:                static const unsigned char yybm[] = {
        !           906:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           907:                          0, 128, 128,   0,   0, 128,   0,   0, 
        !           908:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           909:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           910:                        128,   0,   0,   0,   0,   0,   0,   0, 
        !           911:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           912:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           913:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           914:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           915:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           916:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           917:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           918:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           919:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           920:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           921:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           922:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           923:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           924:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           925:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           926:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           927:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           928:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           929:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           930:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           931:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           932:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           933:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           934:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           935:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           936:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           937:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !           938:                };
        !           939: 
        !           940:                YYDEBUG(0, *YYCURSOR);
        !           941:                YYFILL(8);
        !           942:                yych = *YYCURSOR;
        !           943:                if (yych != '<') goto yy4;
        !           944:                YYDEBUG(2, *YYCURSOR);
        !           945:                yyaccept = 0;
        !           946:                yych = *(YYMARKER = ++YYCURSOR);
        !           947:                if (yych <= '?') {
        !           948:                        if (yych == '%') goto yy7;
        !           949:                        if (yych >= '?') goto yy5;
        !           950:                } else {
        !           951:                        if (yych <= 'S') {
        !           952:                                if (yych >= 'S') goto yy9;
        !           953:                        } else {
        !           954:                                if (yych == 's') goto yy9;
        !           955:                        }
        !           956:                }
        !           957: yy3:
        !           958:                YYDEBUG(3, *YYCURSOR);
        !           959:                yyleng = YYCURSOR - SCNG(yy_text);
        !           960: #line 1586 "Zend/zend_language_scanner.l"
        !           961:                {
        !           962:        if (YYCURSOR > YYLIMIT) {
        !           963:                return 0;
        !           964:        }
        !           965: 
        !           966: inline_char_handler:
        !           967: 
        !           968:        while (1) {
        !           969:                YYCTYPE *ptr = memchr(YYCURSOR, '<', YYLIMIT - YYCURSOR);
        !           970: 
        !           971:                YYCURSOR = ptr ? ptr + 1 : YYLIMIT;
        !           972: 
        !           973:                if (YYCURSOR < YYLIMIT) {
        !           974:                        switch (*YYCURSOR) {
        !           975:                                case '?':
        !           976:                                        if (CG(short_tags) || !strncasecmp(YYCURSOR + 1, "php", 3)) { /* Assume [ \t\n\r] follows "php" */
        !           977:                                                break;
        !           978:                                        }
        !           979:                                        continue;
        !           980:                                case '%':
        !           981:                                        if (CG(asp_tags)) {
        !           982:                                                break;
        !           983:                                        }
        !           984:                                        continue;
        !           985:                                case 's':
        !           986:                                case 'S':
        !           987:                                        /* Probably NOT an opening PHP <script> tag, so don't end the HTML chunk yet
        !           988:                                         * If it is, the PHP <script> tag rule checks for any HTML scanned before it */
        !           989:                                        YYCURSOR--;
        !           990:                                        yymore();
        !           991:                                default:
        !           992:                                        continue;
        !           993:                        }
        !           994: 
        !           995:                        YYCURSOR--;
        !           996:                }
        !           997: 
        !           998:                break;
        !           999:        }
        !          1000: 
        !          1001: inline_html:
        !          1002:        yyleng = YYCURSOR - SCNG(yy_text);
        !          1003: 
        !          1004: #ifdef ZEND_MULTIBYTE
        !          1005:        if (SCNG(output_filter)) {
        !          1006:                int readsize;
        !          1007:                size_t sz = 0;
        !          1008:                readsize = SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)yytext, (size_t)yyleng TSRMLS_CC);
        !          1009:                zendlval->value.str.len = sz;
        !          1010:                if (readsize < yyleng) {
        !          1011:                        yyless(readsize);
        !          1012:                }
        !          1013:        } else {
        !          1014:          zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
        !          1015:          zendlval->value.str.len = yyleng;
        !          1016:        }
        !          1017: #else /* !ZEND_MULTIBYTE */
        !          1018:        zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
        !          1019:        zendlval->value.str.len = yyleng;
        !          1020: #endif
        !          1021:        zendlval->type = IS_STRING;
        !          1022:        HANDLE_NEWLINES(yytext, yyleng);
        !          1023:        return T_INLINE_HTML;
        !          1024: }
        !          1025: #line 1026 "Zend/zend_language_scanner.c"
        !          1026: yy4:
        !          1027:                YYDEBUG(4, *YYCURSOR);
        !          1028:                yych = *++YYCURSOR;
        !          1029:                goto yy3;
        !          1030: yy5:
        !          1031:                YYDEBUG(5, *YYCURSOR);
        !          1032:                yyaccept = 1;
        !          1033:                yych = *(YYMARKER = ++YYCURSOR);
        !          1034:                if (yych <= 'O') {
        !          1035:                        if (yych == '=') goto yy45;
        !          1036:                } else {
        !          1037:                        if (yych <= 'P') goto yy47;
        !          1038:                        if (yych == 'p') goto yy47;
        !          1039:                }
        !          1040: yy6:
        !          1041:                YYDEBUG(6, *YYCURSOR);
        !          1042:                yyleng = YYCURSOR - SCNG(yy_text);
        !          1043: #line 1574 "Zend/zend_language_scanner.l"
        !          1044:                {
        !          1045:        if (CG(short_tags)) {
        !          1046:                zendlval->value.str.val = yytext; /* no copying - intentional */
        !          1047:                zendlval->value.str.len = yyleng;
        !          1048:                zendlval->type = IS_STRING;
        !          1049:                BEGIN(ST_IN_SCRIPTING);
        !          1050:                return T_OPEN_TAG;
        !          1051:        } else {
        !          1052:                goto inline_char_handler;
        !          1053:        }
        !          1054: }
        !          1055: #line 1056 "Zend/zend_language_scanner.c"
        !          1056: yy7:
        !          1057:                YYDEBUG(7, *YYCURSOR);
        !          1058:                ++YYCURSOR;
        !          1059:                if ((yych = *YYCURSOR) == '=') goto yy43;
        !          1060:                YYDEBUG(8, *YYCURSOR);
        !          1061:                yyleng = YYCURSOR - SCNG(yy_text);
        !          1062: #line 1551 "Zend/zend_language_scanner.l"
        !          1063:                {
        !          1064:        if (CG(asp_tags)) {
        !          1065:                zendlval->value.str.val = yytext; /* no copying - intentional */
        !          1066:                zendlval->value.str.len = yyleng;
        !          1067:                zendlval->type = IS_STRING;
        !          1068:                BEGIN(ST_IN_SCRIPTING);
        !          1069:                return T_OPEN_TAG;
        !          1070:        } else {
        !          1071:                goto inline_char_handler;
        !          1072:        }
        !          1073: }
        !          1074: #line 1075 "Zend/zend_language_scanner.c"
        !          1075: yy9:
        !          1076:                YYDEBUG(9, *YYCURSOR);
        !          1077:                yych = *++YYCURSOR;
        !          1078:                if (yych == 'C') goto yy11;
        !          1079:                if (yych == 'c') goto yy11;
        !          1080: yy10:
        !          1081:                YYDEBUG(10, *YYCURSOR);
        !          1082:                YYCURSOR = YYMARKER;
        !          1083:                if (yyaccept <= 0) {
        !          1084:                        goto yy3;
        !          1085:                } else {
        !          1086:                        goto yy6;
        !          1087:                }
        !          1088: yy11:
        !          1089:                YYDEBUG(11, *YYCURSOR);
        !          1090:                yych = *++YYCURSOR;
        !          1091:                if (yych == 'R') goto yy12;
        !          1092:                if (yych != 'r') goto yy10;
        !          1093: yy12:
        !          1094:                YYDEBUG(12, *YYCURSOR);
        !          1095:                yych = *++YYCURSOR;
        !          1096:                if (yych == 'I') goto yy13;
        !          1097:                if (yych != 'i') goto yy10;
        !          1098: yy13:
        !          1099:                YYDEBUG(13, *YYCURSOR);
        !          1100:                yych = *++YYCURSOR;
        !          1101:                if (yych == 'P') goto yy14;
        !          1102:                if (yych != 'p') goto yy10;
        !          1103: yy14:
        !          1104:                YYDEBUG(14, *YYCURSOR);
        !          1105:                yych = *++YYCURSOR;
        !          1106:                if (yych == 'T') goto yy15;
        !          1107:                if (yych != 't') goto yy10;
        !          1108: yy15:
        !          1109:                YYDEBUG(15, *YYCURSOR);
        !          1110:                yych = *++YYCURSOR;
        !          1111:                if (yych == 'L') goto yy10;
        !          1112:                if (yych == 'l') goto yy10;
        !          1113:                goto yy17;
        !          1114: yy16:
        !          1115:                YYDEBUG(16, *YYCURSOR);
        !          1116:                ++YYCURSOR;
        !          1117:                YYFILL(8);
        !          1118:                yych = *YYCURSOR;
        !          1119: yy17:
        !          1120:                YYDEBUG(17, *YYCURSOR);
        !          1121:                if (yybm[0+yych] & 128) {
        !          1122:                        goto yy16;
        !          1123:                }
        !          1124:                if (yych == 'L') goto yy18;
        !          1125:                if (yych != 'l') goto yy10;
        !          1126: yy18:
        !          1127:                YYDEBUG(18, *YYCURSOR);
        !          1128:                yych = *++YYCURSOR;
        !          1129:                if (yych == 'A') goto yy19;
        !          1130:                if (yych != 'a') goto yy10;
        !          1131: yy19:
        !          1132:                YYDEBUG(19, *YYCURSOR);
        !          1133:                yych = *++YYCURSOR;
        !          1134:                if (yych == 'N') goto yy20;
        !          1135:                if (yych != 'n') goto yy10;
        !          1136: yy20:
        !          1137:                YYDEBUG(20, *YYCURSOR);
        !          1138:                yych = *++YYCURSOR;
        !          1139:                if (yych == 'G') goto yy21;
        !          1140:                if (yych != 'g') goto yy10;
        !          1141: yy21:
        !          1142:                YYDEBUG(21, *YYCURSOR);
        !          1143:                yych = *++YYCURSOR;
        !          1144:                if (yych == 'U') goto yy22;
        !          1145:                if (yych != 'u') goto yy10;
        !          1146: yy22:
        !          1147:                YYDEBUG(22, *YYCURSOR);
        !          1148:                yych = *++YYCURSOR;
        !          1149:                if (yych == 'A') goto yy23;
        !          1150:                if (yych != 'a') goto yy10;
        !          1151: yy23:
        !          1152:                YYDEBUG(23, *YYCURSOR);
        !          1153:                yych = *++YYCURSOR;
        !          1154:                if (yych == 'G') goto yy24;
        !          1155:                if (yych != 'g') goto yy10;
        !          1156: yy24:
        !          1157:                YYDEBUG(24, *YYCURSOR);
        !          1158:                yych = *++YYCURSOR;
        !          1159:                if (yych == 'E') goto yy25;
        !          1160:                if (yych != 'e') goto yy10;
        !          1161: yy25:
        !          1162:                YYDEBUG(25, *YYCURSOR);
        !          1163:                ++YYCURSOR;
        !          1164:                YYFILL(1);
        !          1165:                yych = *YYCURSOR;
        !          1166:                YYDEBUG(26, *YYCURSOR);
        !          1167:                if (yych <= '\r') {
        !          1168:                        if (yych <= 0x08) goto yy10;
        !          1169:                        if (yych <= '\n') goto yy25;
        !          1170:                        if (yych <= '\f') goto yy10;
        !          1171:                        goto yy25;
        !          1172:                } else {
        !          1173:                        if (yych <= ' ') {
        !          1174:                                if (yych <= 0x1F) goto yy10;
        !          1175:                                goto yy25;
        !          1176:                        } else {
        !          1177:                                if (yych != '=') goto yy10;
        !          1178:                        }
        !          1179:                }
        !          1180: yy27:
        !          1181:                YYDEBUG(27, *YYCURSOR);
        !          1182:                ++YYCURSOR;
        !          1183:                YYFILL(5);
        !          1184:                yych = *YYCURSOR;
        !          1185:                YYDEBUG(28, *YYCURSOR);
        !          1186:                if (yych <= '!') {
        !          1187:                        if (yych <= '\f') {
        !          1188:                                if (yych <= 0x08) goto yy10;
        !          1189:                                if (yych <= '\n') goto yy27;
        !          1190:                                goto yy10;
        !          1191:                        } else {
        !          1192:                                if (yych <= '\r') goto yy27;
        !          1193:                                if (yych == ' ') goto yy27;
        !          1194:                                goto yy10;
        !          1195:                        }
        !          1196:                } else {
        !          1197:                        if (yych <= 'O') {
        !          1198:                                if (yych <= '"') goto yy30;
        !          1199:                                if (yych == '\'') goto yy31;
        !          1200:                                goto yy10;
        !          1201:                        } else {
        !          1202:                                if (yych <= 'P') goto yy29;
        !          1203:                                if (yych != 'p') goto yy10;
        !          1204:                        }
        !          1205:                }
        !          1206: yy29:
        !          1207:                YYDEBUG(29, *YYCURSOR);
        !          1208:                yych = *++YYCURSOR;
        !          1209:                if (yych == 'H') goto yy42;
        !          1210:                if (yych == 'h') goto yy42;
        !          1211:                goto yy10;
        !          1212: yy30:
        !          1213:                YYDEBUG(30, *YYCURSOR);
        !          1214:                yych = *++YYCURSOR;
        !          1215:                if (yych == 'P') goto yy39;
        !          1216:                if (yych == 'p') goto yy39;
        !          1217:                goto yy10;
        !          1218: yy31:
        !          1219:                YYDEBUG(31, *YYCURSOR);
        !          1220:                yych = *++YYCURSOR;
        !          1221:                if (yych == 'P') goto yy32;
        !          1222:                if (yych != 'p') goto yy10;
        !          1223: yy32:
        !          1224:                YYDEBUG(32, *YYCURSOR);
        !          1225:                yych = *++YYCURSOR;
        !          1226:                if (yych == 'H') goto yy33;
        !          1227:                if (yych != 'h') goto yy10;
        !          1228: yy33:
        !          1229:                YYDEBUG(33, *YYCURSOR);
        !          1230:                yych = *++YYCURSOR;
        !          1231:                if (yych == 'P') goto yy34;
        !          1232:                if (yych != 'p') goto yy10;
        !          1233: yy34:
        !          1234:                YYDEBUG(34, *YYCURSOR);
        !          1235:                yych = *++YYCURSOR;
        !          1236:                if (yych != '\'') goto yy10;
        !          1237: yy35:
        !          1238:                YYDEBUG(35, *YYCURSOR);
        !          1239:                ++YYCURSOR;
        !          1240:                YYFILL(1);
        !          1241:                yych = *YYCURSOR;
        !          1242:                YYDEBUG(36, *YYCURSOR);
        !          1243:                if (yych <= '\r') {
        !          1244:                        if (yych <= 0x08) goto yy10;
        !          1245:                        if (yych <= '\n') goto yy35;
        !          1246:                        if (yych <= '\f') goto yy10;
        !          1247:                        goto yy35;
        !          1248:                } else {
        !          1249:                        if (yych <= ' ') {
        !          1250:                                if (yych <= 0x1F) goto yy10;
        !          1251:                                goto yy35;
        !          1252:                        } else {
        !          1253:                                if (yych != '>') goto yy10;
        !          1254:                        }
        !          1255:                }
        !          1256:                YYDEBUG(37, *YYCURSOR);
        !          1257:                ++YYCURSOR;
        !          1258:                YYDEBUG(38, *YYCURSOR);
        !          1259:                yyleng = YYCURSOR - SCNG(yy_text);
        !          1260: #line 1507 "Zend/zend_language_scanner.l"
        !          1261:                {
        !          1262:        YYCTYPE *bracket = zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1));
        !          1263: 
        !          1264:        if (bracket != SCNG(yy_text)) {
        !          1265:                /* Handle previously scanned HTML, as possible <script> tags found are assumed to not be PHP's */
        !          1266:                YYCURSOR = bracket;
        !          1267:                goto inline_html;
        !          1268:        }
        !          1269: 
        !          1270:        HANDLE_NEWLINES(yytext, yyleng);
        !          1271:        zendlval->value.str.val = yytext; /* no copying - intentional */
        !          1272:        zendlval->value.str.len = yyleng;
        !          1273:        zendlval->type = IS_STRING;
        !          1274:        BEGIN(ST_IN_SCRIPTING);
        !          1275:        return T_OPEN_TAG;
        !          1276: }
        !          1277: #line 1278 "Zend/zend_language_scanner.c"
        !          1278: yy39:
        !          1279:                YYDEBUG(39, *YYCURSOR);
        !          1280:                yych = *++YYCURSOR;
        !          1281:                if (yych == 'H') goto yy40;
        !          1282:                if (yych != 'h') goto yy10;
        !          1283: yy40:
        !          1284:                YYDEBUG(40, *YYCURSOR);
        !          1285:                yych = *++YYCURSOR;
        !          1286:                if (yych == 'P') goto yy41;
        !          1287:                if (yych != 'p') goto yy10;
        !          1288: yy41:
        !          1289:                YYDEBUG(41, *YYCURSOR);
        !          1290:                yych = *++YYCURSOR;
        !          1291:                if (yych == '"') goto yy35;
        !          1292:                goto yy10;
        !          1293: yy42:
        !          1294:                YYDEBUG(42, *YYCURSOR);
        !          1295:                yych = *++YYCURSOR;
        !          1296:                if (yych == 'P') goto yy35;
        !          1297:                if (yych == 'p') goto yy35;
        !          1298:                goto yy10;
        !          1299: yy43:
        !          1300:                YYDEBUG(43, *YYCURSOR);
        !          1301:                ++YYCURSOR;
        !          1302:                YYDEBUG(44, *YYCURSOR);
        !          1303:                yyleng = YYCURSOR - SCNG(yy_text);
        !          1304: #line 1525 "Zend/zend_language_scanner.l"
        !          1305:                {
        !          1306:        if (CG(asp_tags)) {
        !          1307:                zendlval->value.str.val = yytext; /* no copying - intentional */
        !          1308:                zendlval->value.str.len = yyleng;
        !          1309:                zendlval->type = IS_STRING;
        !          1310:                BEGIN(ST_IN_SCRIPTING);
        !          1311:                return T_OPEN_TAG_WITH_ECHO;
        !          1312:        } else {
        !          1313:                goto inline_char_handler;
        !          1314:        }
        !          1315: }
        !          1316: #line 1317 "Zend/zend_language_scanner.c"
        !          1317: yy45:
        !          1318:                YYDEBUG(45, *YYCURSOR);
        !          1319:                ++YYCURSOR;
        !          1320:                YYDEBUG(46, *YYCURSOR);
        !          1321:                yyleng = YYCURSOR - SCNG(yy_text);
        !          1322: #line 1538 "Zend/zend_language_scanner.l"
        !          1323:                {
        !          1324:        if (CG(short_tags)) {
        !          1325:                zendlval->value.str.val = yytext; /* no copying - intentional */
        !          1326:                zendlval->value.str.len = yyleng;
        !          1327:                zendlval->type = IS_STRING;
        !          1328:                BEGIN(ST_IN_SCRIPTING);
        !          1329:                return T_OPEN_TAG_WITH_ECHO;
        !          1330:        } else {
        !          1331:                goto inline_char_handler;
        !          1332:        }
        !          1333: }
        !          1334: #line 1335 "Zend/zend_language_scanner.c"
        !          1335: yy47:
        !          1336:                YYDEBUG(47, *YYCURSOR);
        !          1337:                yych = *++YYCURSOR;
        !          1338:                if (yych == 'H') goto yy48;
        !          1339:                if (yych != 'h') goto yy10;
        !          1340: yy48:
        !          1341:                YYDEBUG(48, *YYCURSOR);
        !          1342:                yych = *++YYCURSOR;
        !          1343:                if (yych == 'P') goto yy49;
        !          1344:                if (yych != 'p') goto yy10;
        !          1345: yy49:
        !          1346:                YYDEBUG(49, *YYCURSOR);
        !          1347:                yych = *++YYCURSOR;
        !          1348:                if (yych <= '\f') {
        !          1349:                        if (yych <= 0x08) goto yy10;
        !          1350:                        if (yych >= '\v') goto yy10;
        !          1351:                } else {
        !          1352:                        if (yych <= '\r') goto yy52;
        !          1353:                        if (yych != ' ') goto yy10;
        !          1354:                }
        !          1355: yy50:
        !          1356:                YYDEBUG(50, *YYCURSOR);
        !          1357:                ++YYCURSOR;
        !          1358: yy51:
        !          1359:                YYDEBUG(51, *YYCURSOR);
        !          1360:                yyleng = YYCURSOR - SCNG(yy_text);
        !          1361: #line 1564 "Zend/zend_language_scanner.l"
        !          1362:                {
        !          1363:        zendlval->value.str.val = yytext; /* no copying - intentional */
        !          1364:        zendlval->value.str.len = yyleng;
        !          1365:        zendlval->type = IS_STRING;
        !          1366:        HANDLE_NEWLINE(yytext[yyleng-1]);
        !          1367:        BEGIN(ST_IN_SCRIPTING);
        !          1368:        return T_OPEN_TAG;
        !          1369: }
        !          1370: #line 1371 "Zend/zend_language_scanner.c"
        !          1371: yy52:
        !          1372:                YYDEBUG(52, *YYCURSOR);
        !          1373:                ++YYCURSOR;
        !          1374:                if ((yych = *YYCURSOR) == '\n') goto yy50;
        !          1375:                goto yy51;
        !          1376:        }
        !          1377: /* *********************************** */
        !          1378: yyc_ST_BACKQUOTE:
        !          1379:        {
        !          1380:                static const unsigned char yybm[] = {
        !          1381:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          1382:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          1383:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          1384:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          1385:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          1386:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          1387:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1388:                        128, 128,   0,   0,   0,   0,   0,   0, 
        !          1389:                          0, 128, 128, 128, 128, 128, 128, 128, 
        !          1390:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1391:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1392:                        128, 128, 128,   0,   0,   0,   0, 128, 
        !          1393:                          0, 128, 128, 128, 128, 128, 128, 128, 
        !          1394:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1395:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1396:                        128, 128, 128,   0,   0,   0,   0, 128, 
        !          1397:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1398:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1399:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1400:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1401:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1402:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1403:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1404:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1405:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1406:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1407:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1408:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1409:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1410:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1411:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1412:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1413:                };
        !          1414:                YYDEBUG(53, *YYCURSOR);
        !          1415:                YYFILL(2);
        !          1416:                yych = *YYCURSOR;
        !          1417:                if (yych <= '_') {
        !          1418:                        if (yych != '$') goto yy60;
        !          1419:                } else {
        !          1420:                        if (yych <= '`') goto yy58;
        !          1421:                        if (yych == '{') goto yy57;
        !          1422:                        goto yy60;
        !          1423:                }
        !          1424:                YYDEBUG(55, *YYCURSOR);
        !          1425:                ++YYCURSOR;
        !          1426:                if ((yych = *YYCURSOR) <= '_') {
        !          1427:                        if (yych <= '@') goto yy56;
        !          1428:                        if (yych <= 'Z') goto yy63;
        !          1429:                        if (yych >= '_') goto yy63;
        !          1430:                } else {
        !          1431:                        if (yych <= 'z') {
        !          1432:                                if (yych >= 'a') goto yy63;
        !          1433:                        } else {
        !          1434:                                if (yych <= '{') goto yy66;
        !          1435:                                if (yych >= 0x7F) goto yy63;
        !          1436:                        }
        !          1437:                }
        !          1438: yy56:
        !          1439:                YYDEBUG(56, *YYCURSOR);
        !          1440:                yyleng = YYCURSOR - SCNG(yy_text);
        !          1441: #line 2044 "Zend/zend_language_scanner.l"
        !          1442:                {
        !          1443:        if (YYCURSOR > YYLIMIT) {
        !          1444:                return 0;
        !          1445:        }
        !          1446:        if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
        !          1447:                YYCURSOR++;
        !          1448:        }
        !          1449: 
        !          1450:        while (YYCURSOR < YYLIMIT) {
        !          1451:                switch (*YYCURSOR++) {
        !          1452:                        case '`':
        !          1453:                                break;
        !          1454:                        case '$':
        !          1455:                                if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
        !          1456:                                        break;
        !          1457:                                }
        !          1458:                                continue;
        !          1459:                        case '{':
        !          1460:                                if (*YYCURSOR == '$') {
        !          1461:                                        break;
        !          1462:                                }
        !          1463:                                continue;
        !          1464:                        case '\\':
        !          1465:                                if (YYCURSOR < YYLIMIT) {
        !          1466:                                        YYCURSOR++;
        !          1467:                                }
        !          1468:                                /* fall through */
        !          1469:                        default:
        !          1470:                                continue;
        !          1471:                }
        !          1472: 
        !          1473:                YYCURSOR--;
        !          1474:                break;
        !          1475:        }
        !          1476: 
        !          1477:        yyleng = YYCURSOR - SCNG(yy_text);
        !          1478: 
        !          1479:        zend_scan_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC);
        !          1480:        return T_ENCAPSED_AND_WHITESPACE;
        !          1481: }
        !          1482: #line 1483 "Zend/zend_language_scanner.c"
        !          1483: yy57:
        !          1484:                YYDEBUG(57, *YYCURSOR);
        !          1485:                yych = *++YYCURSOR;
        !          1486:                if (yych == '$') goto yy61;
        !          1487:                goto yy56;
        !          1488: yy58:
        !          1489:                YYDEBUG(58, *YYCURSOR);
        !          1490:                ++YYCURSOR;
        !          1491:                YYDEBUG(59, *YYCURSOR);
        !          1492:                yyleng = YYCURSOR - SCNG(yy_text);
        !          1493: #line 1988 "Zend/zend_language_scanner.l"
        !          1494:                {
        !          1495:        BEGIN(ST_IN_SCRIPTING);
        !          1496:        return '`';
        !          1497: }
        !          1498: #line 1499 "Zend/zend_language_scanner.c"
        !          1499: yy60:
        !          1500:                YYDEBUG(60, *YYCURSOR);
        !          1501:                yych = *++YYCURSOR;
        !          1502:                goto yy56;
        !          1503: yy61:
        !          1504:                YYDEBUG(61, *YYCURSOR);
        !          1505:                ++YYCURSOR;
        !          1506:                YYDEBUG(62, *YYCURSOR);
        !          1507:                yyleng = YYCURSOR - SCNG(yy_text);
        !          1508: #line 1975 "Zend/zend_language_scanner.l"
        !          1509:                {
        !          1510:        zendlval->value.lval = (long) '{';
        !          1511:        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        !          1512:        yyless(1);
        !          1513:        return T_CURLY_OPEN;
        !          1514: }
        !          1515: #line 1516 "Zend/zend_language_scanner.c"
        !          1516: yy63:
        !          1517:                YYDEBUG(63, *YYCURSOR);
        !          1518:                yyaccept = 0;
        !          1519:                YYMARKER = ++YYCURSOR;
        !          1520:                YYFILL(3);
        !          1521:                yych = *YYCURSOR;
        !          1522:                YYDEBUG(64, *YYCURSOR);
        !          1523:                if (yybm[0+yych] & 128) {
        !          1524:                        goto yy63;
        !          1525:                }
        !          1526:                if (yych == '-') goto yy68;
        !          1527:                if (yych == '[') goto yy70;
        !          1528: yy65:
        !          1529:                YYDEBUG(65, *YYCURSOR);
        !          1530:                yyleng = YYCURSOR - SCNG(yy_text);
        !          1531: #line 1673 "Zend/zend_language_scanner.l"
        !          1532:                {
        !          1533:        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        !          1534:        zendlval->type = IS_STRING;
        !          1535:        return T_VARIABLE;
        !          1536: }
        !          1537: #line 1538 "Zend/zend_language_scanner.c"
        !          1538: yy66:
        !          1539:                YYDEBUG(66, *YYCURSOR);
        !          1540:                ++YYCURSOR;
        !          1541:                YYDEBUG(67, *YYCURSOR);
        !          1542:                yyleng = YYCURSOR - SCNG(yy_text);
        !          1543: #line 1300 "Zend/zend_language_scanner.l"
        !          1544:                {
        !          1545:        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        !          1546:        return T_DOLLAR_OPEN_CURLY_BRACES;
        !          1547: }
        !          1548: #line 1549 "Zend/zend_language_scanner.c"
        !          1549: yy68:
        !          1550:                YYDEBUG(68, *YYCURSOR);
        !          1551:                yych = *++YYCURSOR;
        !          1552:                if (yych == '>') goto yy72;
        !          1553: yy69:
        !          1554:                YYDEBUG(69, *YYCURSOR);
        !          1555:                YYCURSOR = YYMARKER;
        !          1556:                goto yy65;
        !          1557: yy70:
        !          1558:                YYDEBUG(70, *YYCURSOR);
        !          1559:                ++YYCURSOR;
        !          1560:                YYDEBUG(71, *YYCURSOR);
        !          1561:                yyleng = YYCURSOR - SCNG(yy_text);
        !          1562: #line 1665 "Zend/zend_language_scanner.l"
        !          1563:                {
        !          1564:        yyless(yyleng - 1);
        !          1565:        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
        !          1566:        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        !          1567:        zendlval->type = IS_STRING;
        !          1568:        return T_VARIABLE;
        !          1569: }
        !          1570: #line 1571 "Zend/zend_language_scanner.c"
        !          1571: yy72:
        !          1572:                YYDEBUG(72, *YYCURSOR);
        !          1573:                yych = *++YYCURSOR;
        !          1574:                if (yych <= '_') {
        !          1575:                        if (yych <= '@') goto yy69;
        !          1576:                        if (yych <= 'Z') goto yy73;
        !          1577:                        if (yych <= '^') goto yy69;
        !          1578:                } else {
        !          1579:                        if (yych <= '`') goto yy69;
        !          1580:                        if (yych <= 'z') goto yy73;
        !          1581:                        if (yych <= '~') goto yy69;
        !          1582:                }
        !          1583: yy73:
        !          1584:                YYDEBUG(73, *YYCURSOR);
        !          1585:                ++YYCURSOR;
        !          1586:                YYDEBUG(74, *YYCURSOR);
        !          1587:                yyleng = YYCURSOR - SCNG(yy_text);
        !          1588: #line 1655 "Zend/zend_language_scanner.l"
        !          1589:                {
        !          1590:        yyless(yyleng - 3);
        !          1591:        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
        !          1592:        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        !          1593:        zendlval->type = IS_STRING;
        !          1594:        return T_VARIABLE;
        !          1595: }
        !          1596: #line 1597 "Zend/zend_language_scanner.c"
        !          1597:        }
        !          1598: /* *********************************** */
        !          1599: yyc_ST_DOUBLE_QUOTES:
        !          1600:        {
        !          1601:                static const unsigned char yybm[] = {
        !          1602:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          1603:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          1604:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          1605:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          1606:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          1607:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          1608:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1609:                        128, 128,   0,   0,   0,   0,   0,   0, 
        !          1610:                          0, 128, 128, 128, 128, 128, 128, 128, 
        !          1611:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1612:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1613:                        128, 128, 128,   0,   0,   0,   0, 128, 
        !          1614:                          0, 128, 128, 128, 128, 128, 128, 128, 
        !          1615:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1616:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1617:                        128, 128, 128,   0,   0,   0,   0, 128, 
        !          1618:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1619:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1620:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1621:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1622:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1623:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1624:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1625:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1626:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1627:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1628:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1629:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1630:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1631:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1632:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1633:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1634:                };
        !          1635:                YYDEBUG(75, *YYCURSOR);
        !          1636:                YYFILL(2);
        !          1637:                yych = *YYCURSOR;
        !          1638:                if (yych <= '#') {
        !          1639:                        if (yych == '"') goto yy80;
        !          1640:                        goto yy82;
        !          1641:                } else {
        !          1642:                        if (yych <= '$') goto yy77;
        !          1643:                        if (yych == '{') goto yy79;
        !          1644:                        goto yy82;
        !          1645:                }
        !          1646: yy77:
        !          1647:                YYDEBUG(77, *YYCURSOR);
        !          1648:                ++YYCURSOR;
        !          1649:                if ((yych = *YYCURSOR) <= '_') {
        !          1650:                        if (yych <= '@') goto yy78;
        !          1651:                        if (yych <= 'Z') goto yy85;
        !          1652:                        if (yych >= '_') goto yy85;
        !          1653:                } else {
        !          1654:                        if (yych <= 'z') {
        !          1655:                                if (yych >= 'a') goto yy85;
        !          1656:                        } else {
        !          1657:                                if (yych <= '{') goto yy88;
        !          1658:                                if (yych >= 0x7F) goto yy85;
        !          1659:                        }
        !          1660:                }
        !          1661: yy78:
        !          1662:                YYDEBUG(78, *YYCURSOR);
        !          1663:                yyleng = YYCURSOR - SCNG(yy_text);
        !          1664: #line 1994 "Zend/zend_language_scanner.l"
        !          1665:                {
        !          1666:        if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
        !          1667:                YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
        !          1668:                SET_DOUBLE_QUOTES_SCANNED_LENGTH(0);
        !          1669: 
        !          1670:                goto double_quotes_scan_done;
        !          1671:        }
        !          1672: 
        !          1673:        if (YYCURSOR > YYLIMIT) {
        !          1674:                return 0;
        !          1675:        }
        !          1676:        if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
        !          1677:                YYCURSOR++;
        !          1678:        }
        !          1679: 
        !          1680:        while (YYCURSOR < YYLIMIT) {
        !          1681:                switch (*YYCURSOR++) {
        !          1682:                        case '"':
        !          1683:                                break;
        !          1684:                        case '$':
        !          1685:                                if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
        !          1686:                                        break;
        !          1687:                                }
        !          1688:                                continue;
        !          1689:                        case '{':
        !          1690:                                if (*YYCURSOR == '$') {
        !          1691:                                        break;
        !          1692:                                }
        !          1693:                                continue;
        !          1694:                        case '\\':
        !          1695:                                if (YYCURSOR < YYLIMIT) {
        !          1696:                                        YYCURSOR++;
        !          1697:                                }
        !          1698:                                /* fall through */
        !          1699:                        default:
        !          1700:                                continue;
        !          1701:                }
        !          1702: 
        !          1703:                YYCURSOR--;
        !          1704:                break;
        !          1705:        }
        !          1706: 
        !          1707: double_quotes_scan_done:
        !          1708:        yyleng = YYCURSOR - SCNG(yy_text);
        !          1709: 
        !          1710:        zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC);
        !          1711:        return T_ENCAPSED_AND_WHITESPACE;
        !          1712: }
        !          1713: #line 1714 "Zend/zend_language_scanner.c"
        !          1714: yy79:
        !          1715:                YYDEBUG(79, *YYCURSOR);
        !          1716:                yych = *++YYCURSOR;
        !          1717:                if (yych == '$') goto yy83;
        !          1718:                goto yy78;
        !          1719: yy80:
        !          1720:                YYDEBUG(80, *YYCURSOR);
        !          1721:                ++YYCURSOR;
        !          1722:                YYDEBUG(81, *YYCURSOR);
        !          1723:                yyleng = YYCURSOR - SCNG(yy_text);
        !          1724: #line 1983 "Zend/zend_language_scanner.l"
        !          1725:                {
        !          1726:        BEGIN(ST_IN_SCRIPTING);
        !          1727:        return '"';
        !          1728: }
        !          1729: #line 1730 "Zend/zend_language_scanner.c"
        !          1730: yy82:
        !          1731:                YYDEBUG(82, *YYCURSOR);
        !          1732:                yych = *++YYCURSOR;
        !          1733:                goto yy78;
        !          1734: yy83:
        !          1735:                YYDEBUG(83, *YYCURSOR);
        !          1736:                ++YYCURSOR;
        !          1737:                YYDEBUG(84, *YYCURSOR);
        !          1738:                yyleng = YYCURSOR - SCNG(yy_text);
        !          1739: #line 1975 "Zend/zend_language_scanner.l"
        !          1740:                {
        !          1741:        zendlval->value.lval = (long) '{';
        !          1742:        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        !          1743:        yyless(1);
        !          1744:        return T_CURLY_OPEN;
        !          1745: }
        !          1746: #line 1747 "Zend/zend_language_scanner.c"
        !          1747: yy85:
        !          1748:                YYDEBUG(85, *YYCURSOR);
        !          1749:                yyaccept = 0;
        !          1750:                YYMARKER = ++YYCURSOR;
        !          1751:                YYFILL(3);
        !          1752:                yych = *YYCURSOR;
        !          1753:                YYDEBUG(86, *YYCURSOR);
        !          1754:                if (yybm[0+yych] & 128) {
        !          1755:                        goto yy85;
        !          1756:                }
        !          1757:                if (yych == '-') goto yy90;
        !          1758:                if (yych == '[') goto yy92;
        !          1759: yy87:
        !          1760:                YYDEBUG(87, *YYCURSOR);
        !          1761:                yyleng = YYCURSOR - SCNG(yy_text);
        !          1762: #line 1673 "Zend/zend_language_scanner.l"
        !          1763:                {
        !          1764:        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        !          1765:        zendlval->type = IS_STRING;
        !          1766:        return T_VARIABLE;
        !          1767: }
        !          1768: #line 1769 "Zend/zend_language_scanner.c"
        !          1769: yy88:
        !          1770:                YYDEBUG(88, *YYCURSOR);
        !          1771:                ++YYCURSOR;
        !          1772:                YYDEBUG(89, *YYCURSOR);
        !          1773:                yyleng = YYCURSOR - SCNG(yy_text);
        !          1774: #line 1300 "Zend/zend_language_scanner.l"
        !          1775:                {
        !          1776:        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        !          1777:        return T_DOLLAR_OPEN_CURLY_BRACES;
        !          1778: }
        !          1779: #line 1780 "Zend/zend_language_scanner.c"
        !          1780: yy90:
        !          1781:                YYDEBUG(90, *YYCURSOR);
        !          1782:                yych = *++YYCURSOR;
        !          1783:                if (yych == '>') goto yy94;
        !          1784: yy91:
        !          1785:                YYDEBUG(91, *YYCURSOR);
        !          1786:                YYCURSOR = YYMARKER;
        !          1787:                goto yy87;
        !          1788: yy92:
        !          1789:                YYDEBUG(92, *YYCURSOR);
        !          1790:                ++YYCURSOR;
        !          1791:                YYDEBUG(93, *YYCURSOR);
        !          1792:                yyleng = YYCURSOR - SCNG(yy_text);
        !          1793: #line 1665 "Zend/zend_language_scanner.l"
        !          1794:                {
        !          1795:        yyless(yyleng - 1);
        !          1796:        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
        !          1797:        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        !          1798:        zendlval->type = IS_STRING;
        !          1799:        return T_VARIABLE;
        !          1800: }
        !          1801: #line 1802 "Zend/zend_language_scanner.c"
        !          1802: yy94:
        !          1803:                YYDEBUG(94, *YYCURSOR);
        !          1804:                yych = *++YYCURSOR;
        !          1805:                if (yych <= '_') {
        !          1806:                        if (yych <= '@') goto yy91;
        !          1807:                        if (yych <= 'Z') goto yy95;
        !          1808:                        if (yych <= '^') goto yy91;
        !          1809:                } else {
        !          1810:                        if (yych <= '`') goto yy91;
        !          1811:                        if (yych <= 'z') goto yy95;
        !          1812:                        if (yych <= '~') goto yy91;
        !          1813:                }
        !          1814: yy95:
        !          1815:                YYDEBUG(95, *YYCURSOR);
        !          1816:                ++YYCURSOR;
        !          1817:                YYDEBUG(96, *YYCURSOR);
        !          1818:                yyleng = YYCURSOR - SCNG(yy_text);
        !          1819: #line 1655 "Zend/zend_language_scanner.l"
        !          1820:                {
        !          1821:        yyless(yyleng - 3);
        !          1822:        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
        !          1823:        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        !          1824:        zendlval->type = IS_STRING;
        !          1825:        return T_VARIABLE;
        !          1826: }
        !          1827: #line 1828 "Zend/zend_language_scanner.c"
        !          1828:        }
        !          1829: /* *********************************** */
        !          1830: yyc_ST_END_HEREDOC:
        !          1831:        YYDEBUG(97, *YYCURSOR);
        !          1832:        YYFILL(1);
        !          1833:        yych = *YYCURSOR;
        !          1834:        YYDEBUG(99, *YYCURSOR);
        !          1835:        ++YYCURSOR;
        !          1836:        YYDEBUG(100, *YYCURSOR);
        !          1837:        yyleng = YYCURSOR - SCNG(yy_text);
        !          1838: #line 1962 "Zend/zend_language_scanner.l"
        !          1839:        {
        !          1840:        YYCURSOR += CG(heredoc_len) - 1;
        !          1841:        yyleng = CG(heredoc_len);
        !          1842: 
        !          1843:        Z_STRVAL_P(zendlval) = CG(heredoc);
        !          1844:        Z_STRLEN_P(zendlval) = CG(heredoc_len);
        !          1845:        CG(heredoc) = NULL;
        !          1846:        CG(heredoc_len) = 0;
        !          1847:        BEGIN(ST_IN_SCRIPTING);
        !          1848:        return T_END_HEREDOC;
        !          1849: }
        !          1850: #line 1851 "Zend/zend_language_scanner.c"
        !          1851: /* *********************************** */
        !          1852: yyc_ST_HEREDOC:
        !          1853:        {
        !          1854:                static const unsigned char yybm[] = {
        !          1855:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          1856:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          1857:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          1858:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          1859:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          1860:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          1861:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1862:                        128, 128,   0,   0,   0,   0,   0,   0, 
        !          1863:                          0, 128, 128, 128, 128, 128, 128, 128, 
        !          1864:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1865:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1866:                        128, 128, 128,   0,   0,   0,   0, 128, 
        !          1867:                          0, 128, 128, 128, 128, 128, 128, 128, 
        !          1868:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1869:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1870:                        128, 128, 128,   0,   0,   0,   0, 128, 
        !          1871:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1872:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1873:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1874:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1875:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1876:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1877:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1878:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1879:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1880:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1881:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1882:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1883:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1884:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1885:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1886:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          1887:                };
        !          1888:                YYDEBUG(101, *YYCURSOR);
        !          1889:                YYFILL(2);
        !          1890:                yych = *YYCURSOR;
        !          1891:                if (yych == '$') goto yy103;
        !          1892:                if (yych == '{') goto yy105;
        !          1893:                goto yy106;
        !          1894: yy103:
        !          1895:                YYDEBUG(103, *YYCURSOR);
        !          1896:                ++YYCURSOR;
        !          1897:                if ((yych = *YYCURSOR) <= '_') {
        !          1898:                        if (yych <= '@') goto yy104;
        !          1899:                        if (yych <= 'Z') goto yy109;
        !          1900:                        if (yych >= '_') goto yy109;
        !          1901:                } else {
        !          1902:                        if (yych <= 'z') {
        !          1903:                                if (yych >= 'a') goto yy109;
        !          1904:                        } else {
        !          1905:                                if (yych <= '{') goto yy112;
        !          1906:                                if (yych >= 0x7F) goto yy109;
        !          1907:                        }
        !          1908:                }
        !          1909: yy104:
        !          1910:                YYDEBUG(104, *YYCURSOR);
        !          1911:                yyleng = YYCURSOR - SCNG(yy_text);
        !          1912: #line 2086 "Zend/zend_language_scanner.l"
        !          1913:                {
        !          1914:        int newline = 0;
        !          1915: 
        !          1916:        if (YYCURSOR > YYLIMIT) {
        !          1917:                return 0;
        !          1918:        }
        !          1919: 
        !          1920:        YYCURSOR--;
        !          1921: 
        !          1922:        while (YYCURSOR < YYLIMIT) {
        !          1923:                switch (*YYCURSOR++) {
        !          1924:                        case '\r':
        !          1925:                                if (*YYCURSOR == '\n') {
        !          1926:                                        YYCURSOR++;
        !          1927:                                }
        !          1928:                                /* fall through */
        !          1929:                        case '\n':
        !          1930:                                /* Check for ending label on the next line */
        !          1931:                                if (IS_LABEL_START(*YYCURSOR) && CG(heredoc_len) < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, CG(heredoc), CG(heredoc_len))) {
        !          1932:                                        YYCTYPE *end = YYCURSOR + CG(heredoc_len);
        !          1933: 
        !          1934:                                        if (*end == ';') {
        !          1935:                                                end++;
        !          1936:                                        }
        !          1937: 
        !          1938:                                        if (*end == '\n' || *end == '\r') {
        !          1939:                                                /* newline before label will be subtracted from returned text, but
        !          1940:                                                 * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */
        !          1941:                                                if (YYCURSOR[-2] == '\r' && YYCURSOR[-1] == '\n') {
        !          1942:                                                        newline = 2; /* Windows newline */
        !          1943:                                                } else {
        !          1944:                                                        newline = 1;
        !          1945:                                                }
        !          1946: 
        !          1947:                                                CG(increment_lineno) = 1; /* For newline before label */
        !          1948:                                                BEGIN(ST_END_HEREDOC);
        !          1949: 
        !          1950:                                                goto heredoc_scan_done;
        !          1951:                                        }
        !          1952:                                }
        !          1953:                                continue;
        !          1954:                        case '$':
        !          1955:                                if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
        !          1956:                                        break;
        !          1957:                                }
        !          1958:                                continue;
        !          1959:                        case '{':
        !          1960:                                if (*YYCURSOR == '$') {
        !          1961:                                        break;
        !          1962:                                }
        !          1963:                                continue;
        !          1964:                        case '\\':
        !          1965:                                if (YYCURSOR < YYLIMIT && *YYCURSOR != '\n' && *YYCURSOR != '\r') {
        !          1966:                                        YYCURSOR++;
        !          1967:                                }
        !          1968:                                /* fall through */
        !          1969:                        default:
        !          1970:                                continue;
        !          1971:                }
        !          1972: 
        !          1973:                YYCURSOR--;
        !          1974:                break;
        !          1975:        }
        !          1976: 
        !          1977: heredoc_scan_done:
        !          1978:        yyleng = YYCURSOR - SCNG(yy_text);
        !          1979: 
        !          1980:        zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0 TSRMLS_CC);
        !          1981:        return T_ENCAPSED_AND_WHITESPACE;
        !          1982: }
        !          1983: #line 1984 "Zend/zend_language_scanner.c"
        !          1984: yy105:
        !          1985:                YYDEBUG(105, *YYCURSOR);
        !          1986:                yych = *++YYCURSOR;
        !          1987:                if (yych == '$') goto yy107;
        !          1988:                goto yy104;
        !          1989: yy106:
        !          1990:                YYDEBUG(106, *YYCURSOR);
        !          1991:                yych = *++YYCURSOR;
        !          1992:                goto yy104;
        !          1993: yy107:
        !          1994:                YYDEBUG(107, *YYCURSOR);
        !          1995:                ++YYCURSOR;
        !          1996:                YYDEBUG(108, *YYCURSOR);
        !          1997:                yyleng = YYCURSOR - SCNG(yy_text);
        !          1998: #line 1975 "Zend/zend_language_scanner.l"
        !          1999:                {
        !          2000:        zendlval->value.lval = (long) '{';
        !          2001:        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        !          2002:        yyless(1);
        !          2003:        return T_CURLY_OPEN;
        !          2004: }
        !          2005: #line 2006 "Zend/zend_language_scanner.c"
        !          2006: yy109:
        !          2007:                YYDEBUG(109, *YYCURSOR);
        !          2008:                yyaccept = 0;
        !          2009:                YYMARKER = ++YYCURSOR;
        !          2010:                YYFILL(3);
        !          2011:                yych = *YYCURSOR;
        !          2012:                YYDEBUG(110, *YYCURSOR);
        !          2013:                if (yybm[0+yych] & 128) {
        !          2014:                        goto yy109;
        !          2015:                }
        !          2016:                if (yych == '-') goto yy114;
        !          2017:                if (yych == '[') goto yy116;
        !          2018: yy111:
        !          2019:                YYDEBUG(111, *YYCURSOR);
        !          2020:                yyleng = YYCURSOR - SCNG(yy_text);
        !          2021: #line 1673 "Zend/zend_language_scanner.l"
        !          2022:                {
        !          2023:        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        !          2024:        zendlval->type = IS_STRING;
        !          2025:        return T_VARIABLE;
        !          2026: }
        !          2027: #line 2028 "Zend/zend_language_scanner.c"
        !          2028: yy112:
        !          2029:                YYDEBUG(112, *YYCURSOR);
        !          2030:                ++YYCURSOR;
        !          2031:                YYDEBUG(113, *YYCURSOR);
        !          2032:                yyleng = YYCURSOR - SCNG(yy_text);
        !          2033: #line 1300 "Zend/zend_language_scanner.l"
        !          2034:                {
        !          2035:        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        !          2036:        return T_DOLLAR_OPEN_CURLY_BRACES;
        !          2037: }
        !          2038: #line 2039 "Zend/zend_language_scanner.c"
        !          2039: yy114:
        !          2040:                YYDEBUG(114, *YYCURSOR);
        !          2041:                yych = *++YYCURSOR;
        !          2042:                if (yych == '>') goto yy118;
        !          2043: yy115:
        !          2044:                YYDEBUG(115, *YYCURSOR);
        !          2045:                YYCURSOR = YYMARKER;
        !          2046:                goto yy111;
        !          2047: yy116:
        !          2048:                YYDEBUG(116, *YYCURSOR);
        !          2049:                ++YYCURSOR;
        !          2050:                YYDEBUG(117, *YYCURSOR);
        !          2051:                yyleng = YYCURSOR - SCNG(yy_text);
        !          2052: #line 1665 "Zend/zend_language_scanner.l"
        !          2053:                {
        !          2054:        yyless(yyleng - 1);
        !          2055:        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
        !          2056:        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        !          2057:        zendlval->type = IS_STRING;
        !          2058:        return T_VARIABLE;
        !          2059: }
        !          2060: #line 2061 "Zend/zend_language_scanner.c"
        !          2061: yy118:
        !          2062:                YYDEBUG(118, *YYCURSOR);
        !          2063:                yych = *++YYCURSOR;
        !          2064:                if (yych <= '_') {
        !          2065:                        if (yych <= '@') goto yy115;
        !          2066:                        if (yych <= 'Z') goto yy119;
        !          2067:                        if (yych <= '^') goto yy115;
        !          2068:                } else {
        !          2069:                        if (yych <= '`') goto yy115;
        !          2070:                        if (yych <= 'z') goto yy119;
        !          2071:                        if (yych <= '~') goto yy115;
        !          2072:                }
        !          2073: yy119:
        !          2074:                YYDEBUG(119, *YYCURSOR);
        !          2075:                ++YYCURSOR;
        !          2076:                YYDEBUG(120, *YYCURSOR);
        !          2077:                yyleng = YYCURSOR - SCNG(yy_text);
        !          2078: #line 1655 "Zend/zend_language_scanner.l"
        !          2079:                {
        !          2080:        yyless(yyleng - 3);
        !          2081:        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
        !          2082:        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        !          2083:        zendlval->type = IS_STRING;
        !          2084:        return T_VARIABLE;
        !          2085: }
        !          2086: #line 2087 "Zend/zend_language_scanner.c"
        !          2087:        }
        !          2088: /* *********************************** */
        !          2089: yyc_ST_IN_SCRIPTING:
        !          2090:        {
        !          2091:                static const unsigned char yybm[] = {
        !          2092:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          2093:                          0, 192,  64,   0,   0,  64,   0,   0, 
        !          2094:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          2095:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          2096:                        192,   0,   0,   0,   0,   0,   0,   0, 
        !          2097:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          2098:                         56,  56,  56,  56,  56,  56,  56,  56, 
        !          2099:                         56,  56,   0,   0,   0,   0,   0,   0, 
        !          2100:                          0,  40,  40,  40,  40,  40,  40,   8, 
        !          2101:                          8,   8,   8,   8,   8,   8,   8,   8, 
        !          2102:                          8,   8,   8,   8,   8,   8,   8,   8, 
        !          2103:                          8,   8,   8,   0,   0,   0,   0,   8, 
        !          2104:                          0,  40,  40,  40,  40,  40,  40,   8, 
        !          2105:                          8,   8,   8,   8,   8,   8,   8,   8, 
        !          2106:                          8,   8,   8,   8,   8,   8,   8,   8, 
        !          2107:                          8,   8,   8,   0,   0,   0,   0,   8, 
        !          2108:                          8,   8,   8,   8,   8,   8,   8,   8, 
        !          2109:                          8,   8,   8,   8,   8,   8,   8,   8, 
        !          2110:                          8,   8,   8,   8,   8,   8,   8,   8, 
        !          2111:                          8,   8,   8,   8,   8,   8,   8,   8, 
        !          2112:                          8,   8,   8,   8,   8,   8,   8,   8, 
        !          2113:                          8,   8,   8,   8,   8,   8,   8,   8, 
        !          2114:                          8,   8,   8,   8,   8,   8,   8,   8, 
        !          2115:                          8,   8,   8,   8,   8,   8,   8,   8, 
        !          2116:                          8,   8,   8,   8,   8,   8,   8,   8, 
        !          2117:                          8,   8,   8,   8,   8,   8,   8,   8, 
        !          2118:                          8,   8,   8,   8,   8,   8,   8,   8, 
        !          2119:                          8,   8,   8,   8,   8,   8,   8,   8, 
        !          2120:                          8,   8,   8,   8,   8,   8,   8,   8, 
        !          2121:                          8,   8,   8,   8,   8,   8,   8,   8, 
        !          2122:                          8,   8,   8,   8,   8,   8,   8,   8, 
        !          2123:                          8,   8,   8,   8,   8,   8,   8,   8, 
        !          2124:                };
        !          2125:                YYDEBUG(121, *YYCURSOR);
        !          2126:                YYFILL(16);
        !          2127:                yych = *YYCURSOR;
        !          2128:                YYDEBUG(-1, yych);
        !          2129:                switch (yych) {
        !          2130:                case 0x00:
        !          2131:                case 0x01:
        !          2132:                case 0x02:
        !          2133:                case 0x03:
        !          2134:                case 0x04:
        !          2135:                case 0x05:
        !          2136:                case 0x06:
        !          2137:                case 0x07:
        !          2138:                case 0x08:
        !          2139:                case '\v':
        !          2140:                case '\f':
        !          2141:                case 0x0E:
        !          2142:                case 0x0F:
        !          2143:                case 0x10:
        !          2144:                case 0x11:
        !          2145:                case 0x12:
        !          2146:                case 0x13:
        !          2147:                case 0x14:
        !          2148:                case 0x15:
        !          2149:                case 0x16:
        !          2150:                case 0x17:
        !          2151:                case 0x18:
        !          2152:                case 0x19:
        !          2153:                case 0x1A:
        !          2154:                case 0x1B:
        !          2155:                case 0x1C:
        !          2156:                case 0x1D:
        !          2157:                case 0x1E:
        !          2158:                case 0x1F:      goto yy183;
        !          2159:                case '\t':
        !          2160:                case '\n':
        !          2161:                case '\r':
        !          2162:                case ' ':       goto yy139;
        !          2163:                case '!':       goto yy152;
        !          2164:                case '"':       goto yy179;
        !          2165:                case '#':       goto yy175;
        !          2166:                case '$':       goto yy164;
        !          2167:                case '%':       goto yy158;
        !          2168:                case '&':       goto yy159;
        !          2169:                case '\'':      goto yy177;
        !          2170:                case '(':       goto yy146;
        !          2171:                case ')':
        !          2172:                case ',':
        !          2173:                case ';':
        !          2174:                case '@':
        !          2175:                case '[':
        !          2176:                case ']':
        !          2177:                case '~':       goto yy165;
        !          2178:                case '*':       goto yy155;
        !          2179:                case '+':       goto yy151;
        !          2180:                case '-':       goto yy137;
        !          2181:                case '.':       goto yy157;
        !          2182:                case '/':       goto yy156;
        !          2183:                case '0':       goto yy171;
        !          2184:                case '1':
        !          2185:                case '2':
        !          2186:                case '3':
        !          2187:                case '4':
        !          2188:                case '5':
        !          2189:                case '6':
        !          2190:                case '7':
        !          2191:                case '8':
        !          2192:                case '9':       goto yy173;
        !          2193:                case ':':       goto yy141;
        !          2194:                case '<':       goto yy153;
        !          2195:                case '=':       goto yy149;
        !          2196:                case '>':       goto yy154;
        !          2197:                case '?':       goto yy166;
        !          2198:                case 'A':
        !          2199:                case 'a':       goto yy132;
        !          2200:                case 'B':
        !          2201:                case 'b':       goto yy134;
        !          2202:                case 'C':
        !          2203:                case 'c':       goto yy127;
        !          2204:                case 'D':
        !          2205:                case 'd':       goto yy125;
        !          2206:                case 'E':
        !          2207:                case 'e':       goto yy123;
        !          2208:                case 'F':
        !          2209:                case 'f':       goto yy126;
        !          2210:                case 'G':
        !          2211:                case 'g':       goto yy135;
        !          2212:                case 'I':
        !          2213:                case 'i':       goto yy130;
        !          2214:                case 'L':
        !          2215:                case 'l':       goto yy150;
        !          2216:                case 'N':
        !          2217:                case 'n':       goto yy144;
        !          2218:                case 'O':
        !          2219:                case 'o':       goto yy162;
        !          2220:                case 'P':
        !          2221:                case 'p':       goto yy136;
        !          2222:                case 'R':
        !          2223:                case 'r':       goto yy128;
        !          2224:                case 'S':
        !          2225:                case 's':       goto yy133;
        !          2226:                case 'T':
        !          2227:                case 't':       goto yy129;
        !          2228:                case 'U':
        !          2229:                case 'u':       goto yy147;
        !          2230:                case 'V':
        !          2231:                case 'v':       goto yy145;
        !          2232:                case 'W':
        !          2233:                case 'w':       goto yy131;
        !          2234:                case 'X':
        !          2235:                case 'x':       goto yy163;
        !          2236:                case '\\':      goto yy142;
        !          2237:                case '^':       goto yy161;
        !          2238:                case '_':       goto yy148;
        !          2239:                case '`':       goto yy181;
        !          2240:                case '{':       goto yy167;
        !          2241:                case '|':       goto yy160;
        !          2242:                case '}':       goto yy169;
        !          2243:                default:        goto yy174;
        !          2244:                }
        !          2245: yy123:
        !          2246:                YYDEBUG(123, *YYCURSOR);
        !          2247:                ++YYCURSOR;
        !          2248:                YYDEBUG(-1, yych);
        !          2249:                switch ((yych = *YYCURSOR)) {
        !          2250:                case 'C':
        !          2251:                case 'c':       goto yy701;
        !          2252:                case 'L':
        !          2253:                case 'l':       goto yy702;
        !          2254:                case 'M':
        !          2255:                case 'm':       goto yy703;
        !          2256:                case 'N':
        !          2257:                case 'n':       goto yy704;
        !          2258:                case 'V':
        !          2259:                case 'v':       goto yy705;
        !          2260:                case 'X':
        !          2261:                case 'x':       goto yy706;
        !          2262:                default:        goto yy186;
        !          2263:                }
        !          2264: yy124:
        !          2265:                YYDEBUG(124, *YYCURSOR);
        !          2266:                yyleng = YYCURSOR - SCNG(yy_text);
        !          2267: #line 1696 "Zend/zend_language_scanner.l"
        !          2268:                {
        !          2269:        zend_copy_value(zendlval, yytext, yyleng);
        !          2270:        zendlval->type = IS_STRING;
        !          2271:        return T_STRING;
        !          2272: }
        !          2273: #line 2274 "Zend/zend_language_scanner.c"
        !          2274: yy125:
        !          2275:                YYDEBUG(125, *YYCURSOR);
        !          2276:                yych = *++YYCURSOR;
        !          2277:                if (yych <= 'O') {
        !          2278:                        if (yych <= 'H') {
        !          2279:                                if (yych == 'E') goto yy683;
        !          2280:                                goto yy186;
        !          2281:                        } else {
        !          2282:                                if (yych <= 'I') goto yy684;
        !          2283:                                if (yych <= 'N') goto yy186;
        !          2284:                                goto yy685;
        !          2285:                        }
        !          2286:                } else {
        !          2287:                        if (yych <= 'h') {
        !          2288:                                if (yych == 'e') goto yy683;
        !          2289:                                goto yy186;
        !          2290:                        } else {
        !          2291:                                if (yych <= 'i') goto yy684;
        !          2292:                                if (yych == 'o') goto yy685;
        !          2293:                                goto yy186;
        !          2294:                        }
        !          2295:                }
        !          2296: yy126:
        !          2297:                YYDEBUG(126, *YYCURSOR);
        !          2298:                yych = *++YYCURSOR;
        !          2299:                if (yych <= 'U') {
        !          2300:                        if (yych <= 'N') {
        !          2301:                                if (yych == 'I') goto yy662;
        !          2302:                                goto yy186;
        !          2303:                        } else {
        !          2304:                                if (yych <= 'O') goto yy663;
        !          2305:                                if (yych <= 'T') goto yy186;
        !          2306:                                goto yy664;
        !          2307:                        }
        !          2308:                } else {
        !          2309:                        if (yych <= 'n') {
        !          2310:                                if (yych == 'i') goto yy662;
        !          2311:                                goto yy186;
        !          2312:                        } else {
        !          2313:                                if (yych <= 'o') goto yy663;
        !          2314:                                if (yych == 'u') goto yy664;
        !          2315:                                goto yy186;
        !          2316:                        }
        !          2317:                }
        !          2318: yy127:
        !          2319:                YYDEBUG(127, *YYCURSOR);
        !          2320:                yych = *++YYCURSOR;
        !          2321:                if (yych <= 'O') {
        !          2322:                        if (yych <= 'K') {
        !          2323:                                if (yych == 'A') goto yy634;
        !          2324:                                goto yy186;
        !          2325:                        } else {
        !          2326:                                if (yych <= 'L') goto yy635;
        !          2327:                                if (yych <= 'N') goto yy186;
        !          2328:                                goto yy636;
        !          2329:                        }
        !          2330:                } else {
        !          2331:                        if (yych <= 'k') {
        !          2332:                                if (yych == 'a') goto yy634;
        !          2333:                                goto yy186;
        !          2334:                        } else {
        !          2335:                                if (yych <= 'l') goto yy635;
        !          2336:                                if (yych == 'o') goto yy636;
        !          2337:                                goto yy186;
        !          2338:                        }
        !          2339:                }
        !          2340: yy128:
        !          2341:                YYDEBUG(128, *YYCURSOR);
        !          2342:                yych = *++YYCURSOR;
        !          2343:                if (yych == 'E') goto yy616;
        !          2344:                if (yych == 'e') goto yy616;
        !          2345:                goto yy186;
        !          2346: yy129:
        !          2347:                YYDEBUG(129, *YYCURSOR);
        !          2348:                yych = *++YYCURSOR;
        !          2349:                if (yych <= 'R') {
        !          2350:                        if (yych == 'H') goto yy608;
        !          2351:                        if (yych <= 'Q') goto yy186;
        !          2352:                        goto yy609;
        !          2353:                } else {
        !          2354:                        if (yych <= 'h') {
        !          2355:                                if (yych <= 'g') goto yy186;
        !          2356:                                goto yy608;
        !          2357:                        } else {
        !          2358:                                if (yych == 'r') goto yy609;
        !          2359:                                goto yy186;
        !          2360:                        }
        !          2361:                }
        !          2362: yy130:
        !          2363:                YYDEBUG(130, *YYCURSOR);
        !          2364:                yych = *++YYCURSOR;
        !          2365:                if (yych <= 'S') {
        !          2366:                        if (yych <= 'L') {
        !          2367:                                if (yych == 'F') goto yy561;
        !          2368:                                goto yy186;
        !          2369:                        } else {
        !          2370:                                if (yych <= 'M') goto yy563;
        !          2371:                                if (yych <= 'N') goto yy564;
        !          2372:                                if (yych <= 'R') goto yy186;
        !          2373:                                goto yy565;
        !          2374:                        }
        !          2375:                } else {
        !          2376:                        if (yych <= 'm') {
        !          2377:                                if (yych == 'f') goto yy561;
        !          2378:                                if (yych <= 'l') goto yy186;
        !          2379:                                goto yy563;
        !          2380:                        } else {
        !          2381:                                if (yych <= 'n') goto yy564;
        !          2382:                                if (yych == 's') goto yy565;
        !          2383:                                goto yy186;
        !          2384:                        }
        !          2385:                }
        !          2386: yy131:
        !          2387:                YYDEBUG(131, *YYCURSOR);
        !          2388:                yych = *++YYCURSOR;
        !          2389:                if (yych == 'H') goto yy556;
        !          2390:                if (yych == 'h') goto yy556;
        !          2391:                goto yy186;
        !          2392: yy132:
        !          2393:                YYDEBUG(132, *YYCURSOR);
        !          2394:                yych = *++YYCURSOR;
        !          2395:                if (yych <= 'S') {
        !          2396:                        if (yych <= 'M') {
        !          2397:                                if (yych == 'B') goto yy538;
        !          2398:                                goto yy186;
        !          2399:                        } else {
        !          2400:                                if (yych <= 'N') goto yy539;
        !          2401:                                if (yych <= 'Q') goto yy186;
        !          2402:                                if (yych <= 'R') goto yy540;
        !          2403:                                goto yy541;
        !          2404:                        }
        !          2405:                } else {
        !          2406:                        if (yych <= 'n') {
        !          2407:                                if (yych == 'b') goto yy538;
        !          2408:                                if (yych <= 'm') goto yy186;
        !          2409:                                goto yy539;
        !          2410:                        } else {
        !          2411:                                if (yych <= 'q') goto yy186;
        !          2412:                                if (yych <= 'r') goto yy540;
        !          2413:                                if (yych <= 's') goto yy541;
        !          2414:                                goto yy186;
        !          2415:                        }
        !          2416:                }
        !          2417: yy133:
        !          2418:                YYDEBUG(133, *YYCURSOR);
        !          2419:                yych = *++YYCURSOR;
        !          2420:                if (yych <= 'W') {
        !          2421:                        if (yych == 'T') goto yy526;
        !          2422:                        if (yych <= 'V') goto yy186;
        !          2423:                        goto yy527;
        !          2424:                } else {
        !          2425:                        if (yych <= 't') {
        !          2426:                                if (yych <= 's') goto yy186;
        !          2427:                                goto yy526;
        !          2428:                        } else {
        !          2429:                                if (yych == 'w') goto yy527;
        !          2430:                                goto yy186;
        !          2431:                        }
        !          2432:                }
        !          2433: yy134:
        !          2434:                YYDEBUG(134, *YYCURSOR);
        !          2435:                yyaccept = 0;
        !          2436:                yych = *(YYMARKER = ++YYCURSOR);
        !          2437:                if (yych <= ';') {
        !          2438:                        if (yych <= '"') {
        !          2439:                                if (yych <= '!') goto yy186;
        !          2440:                                goto yy518;
        !          2441:                        } else {
        !          2442:                                if (yych == '\'') goto yy519;
        !          2443:                                goto yy186;
        !          2444:                        }
        !          2445:                } else {
        !          2446:                        if (yych <= 'R') {
        !          2447:                                if (yych <= '<') goto yy517;
        !          2448:                                if (yych <= 'Q') goto yy186;
        !          2449:                                goto yy520;
        !          2450:                        } else {
        !          2451:                                if (yych == 'r') goto yy520;
        !          2452:                                goto yy186;
        !          2453:                        }
        !          2454:                }
        !          2455: yy135:
        !          2456:                YYDEBUG(135, *YYCURSOR);
        !          2457:                yych = *++YYCURSOR;
        !          2458:                if (yych <= 'O') {
        !          2459:                        if (yych == 'L') goto yy507;
        !          2460:                        if (yych <= 'N') goto yy186;
        !          2461:                        goto yy508;
        !          2462:                } else {
        !          2463:                        if (yych <= 'l') {
        !          2464:                                if (yych <= 'k') goto yy186;
        !          2465:                                goto yy507;
        !          2466:                        } else {
        !          2467:                                if (yych == 'o') goto yy508;
        !          2468:                                goto yy186;
        !          2469:                        }
        !          2470:                }
        !          2471: yy136:
        !          2472:                YYDEBUG(136, *YYCURSOR);
        !          2473:                yych = *++YYCURSOR;
        !          2474:                if (yych <= 'U') {
        !          2475:                        if (yych == 'R') goto yy483;
        !          2476:                        if (yych <= 'T') goto yy186;
        !          2477:                        goto yy484;
        !          2478:                } else {
        !          2479:                        if (yych <= 'r') {
        !          2480:                                if (yych <= 'q') goto yy186;
        !          2481:                                goto yy483;
        !          2482:                        } else {
        !          2483:                                if (yych == 'u') goto yy484;
        !          2484:                                goto yy186;
        !          2485:                        }
        !          2486:                }
        !          2487: yy137:
        !          2488:                YYDEBUG(137, *YYCURSOR);
        !          2489:                ++YYCURSOR;
        !          2490:                if ((yych = *YYCURSOR) <= '<') {
        !          2491:                        if (yych == '-') goto yy479;
        !          2492:                } else {
        !          2493:                        if (yych <= '=') goto yy477;
        !          2494:                        if (yych <= '>') goto yy481;
        !          2495:                }
        !          2496: yy138:
        !          2497:                YYDEBUG(138, *YYCURSOR);
        !          2498:                yyleng = YYCURSOR - SCNG(yy_text);
        !          2499: #line 1289 "Zend/zend_language_scanner.l"
        !          2500:                {
        !          2501:        return yytext[0];
        !          2502: }
        !          2503: #line 2504 "Zend/zend_language_scanner.c"
        !          2504: yy139:
        !          2505:                YYDEBUG(139, *YYCURSOR);
        !          2506:                ++YYCURSOR;
        !          2507:                yych = *YYCURSOR;
        !          2508:                goto yy476;
        !          2509: yy140:
        !          2510:                YYDEBUG(140, *YYCURSOR);
        !          2511:                yyleng = YYCURSOR - SCNG(yy_text);
        !          2512: #line 1024 "Zend/zend_language_scanner.l"
        !          2513:                {
        !          2514:        zendlval->value.str.val = yytext; /* no copying - intentional */
        !          2515:        zendlval->value.str.len = yyleng;
        !          2516:        zendlval->type = IS_STRING;
        !          2517:        HANDLE_NEWLINES(yytext, yyleng);
        !          2518:        return T_WHITESPACE;
        !          2519: }
        !          2520: #line 2521 "Zend/zend_language_scanner.c"
        !          2521: yy141:
        !          2522:                YYDEBUG(141, *YYCURSOR);
        !          2523:                yych = *++YYCURSOR;
        !          2524:                if (yych == ':') goto yy473;
        !          2525:                goto yy138;
        !          2526: yy142:
        !          2527:                YYDEBUG(142, *YYCURSOR);
        !          2528:                ++YYCURSOR;
        !          2529:                YYDEBUG(143, *YYCURSOR);
        !          2530:                yyleng = YYCURSOR - SCNG(yy_text);
        !          2531: #line 1053 "Zend/zend_language_scanner.l"
        !          2532:                {
        !          2533:        return T_NS_SEPARATOR;
        !          2534: }
        !          2535: #line 2536 "Zend/zend_language_scanner.c"
        !          2536: yy144:
        !          2537:                YYDEBUG(144, *YYCURSOR);
        !          2538:                yych = *++YYCURSOR;
        !          2539:                if (yych <= 'E') {
        !          2540:                        if (yych == 'A') goto yy461;
        !          2541:                        if (yych <= 'D') goto yy186;
        !          2542:                        goto yy462;
        !          2543:                } else {
        !          2544:                        if (yych <= 'a') {
        !          2545:                                if (yych <= '`') goto yy186;
        !          2546:                                goto yy461;
        !          2547:                        } else {
        !          2548:                                if (yych == 'e') goto yy462;
        !          2549:                                goto yy186;
        !          2550:                        }
        !          2551:                }
        !          2552: yy145:
        !          2553:                YYDEBUG(145, *YYCURSOR);
        !          2554:                yych = *++YYCURSOR;
        !          2555:                if (yych == 'A') goto yy458;
        !          2556:                if (yych == 'a') goto yy458;
        !          2557:                goto yy186;
        !          2558: yy146:
        !          2559:                YYDEBUG(146, *YYCURSOR);
        !          2560:                yyaccept = 1;
        !          2561:                yych = *(YYMARKER = ++YYCURSOR);
        !          2562:                if (yych <= 'S') {
        !          2563:                        if (yych <= 'D') {
        !          2564:                                if (yych <= ' ') {
        !          2565:                                        if (yych == '\t') goto yy379;
        !          2566:                                        if (yych <= 0x1F) goto yy138;
        !          2567:                                        goto yy379;
        !          2568:                                } else {
        !          2569:                                        if (yych <= '@') goto yy138;
        !          2570:                                        if (yych == 'C') goto yy138;
        !          2571:                                        goto yy379;
        !          2572:                                }
        !          2573:                        } else {
        !          2574:                                if (yych <= 'I') {
        !          2575:                                        if (yych == 'F') goto yy379;
        !          2576:                                        if (yych <= 'H') goto yy138;
        !          2577:                                        goto yy379;
        !          2578:                                } else {
        !          2579:                                        if (yych == 'O') goto yy379;
        !          2580:                                        if (yych <= 'Q') goto yy138;
        !          2581:                                        goto yy379;
        !          2582:                                }
        !          2583:                        }
        !          2584:                } else {
        !          2585:                        if (yych <= 'f') {
        !          2586:                                if (yych <= 'b') {
        !          2587:                                        if (yych == 'U') goto yy379;
        !          2588:                                        if (yych <= '`') goto yy138;
        !          2589:                                        goto yy379;
        !          2590:                                } else {
        !          2591:                                        if (yych == 'd') goto yy379;
        !          2592:                                        if (yych <= 'e') goto yy138;
        !          2593:                                        goto yy379;
        !          2594:                                }
        !          2595:                        } else {
        !          2596:                                if (yych <= 'o') {
        !          2597:                                        if (yych == 'i') goto yy379;
        !          2598:                                        if (yych <= 'n') goto yy138;
        !          2599:                                        goto yy379;
        !          2600:                                } else {
        !          2601:                                        if (yych <= 's') {
        !          2602:                                                if (yych <= 'q') goto yy138;
        !          2603:                                                goto yy379;
        !          2604:                                        } else {
        !          2605:                                                if (yych == 'u') goto yy379;
        !          2606:                                                goto yy138;
        !          2607:                                        }
        !          2608:                                }
        !          2609:                        }
        !          2610:                }
        !          2611: yy147:
        !          2612:                YYDEBUG(147, *YYCURSOR);
        !          2613:                yych = *++YYCURSOR;
        !          2614:                if (yych <= 'S') {
        !          2615:                        if (yych == 'N') goto yy370;
        !          2616:                        if (yych <= 'R') goto yy186;
        !          2617:                        goto yy371;
        !          2618:                } else {
        !          2619:                        if (yych <= 'n') {
        !          2620:                                if (yych <= 'm') goto yy186;
        !          2621:                                goto yy370;
        !          2622:                        } else {
        !          2623:                                if (yych == 's') goto yy371;
        !          2624:                                goto yy186;
        !          2625:                        }
        !          2626:                }
        !          2627: yy148:
        !          2628:                YYDEBUG(148, *YYCURSOR);
        !          2629:                yych = *++YYCURSOR;
        !          2630:                if (yych == '_') goto yy296;
        !          2631:                goto yy186;
        !          2632: yy149:
        !          2633:                YYDEBUG(149, *YYCURSOR);
        !          2634:                yych = *++YYCURSOR;
        !          2635:                if (yych <= '<') goto yy138;
        !          2636:                if (yych <= '=') goto yy290;
        !          2637:                if (yych <= '>') goto yy292;
        !          2638:                goto yy138;
        !          2639: yy150:
        !          2640:                YYDEBUG(150, *YYCURSOR);
        !          2641:                yych = *++YYCURSOR;
        !          2642:                if (yych == 'I') goto yy286;
        !          2643:                if (yych == 'i') goto yy286;
        !          2644:                goto yy186;
        !          2645: yy151:
        !          2646:                YYDEBUG(151, *YYCURSOR);
        !          2647:                yych = *++YYCURSOR;
        !          2648:                if (yych == '+') goto yy284;
        !          2649:                if (yych == '=') goto yy282;
        !          2650:                goto yy138;
        !          2651: yy152:
        !          2652:                YYDEBUG(152, *YYCURSOR);
        !          2653:                yych = *++YYCURSOR;
        !          2654:                if (yych == '=') goto yy279;
        !          2655:                goto yy138;
        !          2656: yy153:
        !          2657:                YYDEBUG(153, *YYCURSOR);
        !          2658:                yyaccept = 1;
        !          2659:                yych = *(YYMARKER = ++YYCURSOR);
        !          2660:                if (yych <= ';') {
        !          2661:                        if (yych == '/') goto yy251;
        !          2662:                        goto yy138;
        !          2663:                } else {
        !          2664:                        if (yych <= '<') goto yy249;
        !          2665:                        if (yych <= '=') goto yy252;
        !          2666:                        if (yych <= '>') goto yy254;
        !          2667:                        goto yy138;
        !          2668:                }
        !          2669: yy154:
        !          2670:                YYDEBUG(154, *YYCURSOR);
        !          2671:                yych = *++YYCURSOR;
        !          2672:                if (yych <= '<') goto yy138;
        !          2673:                if (yych <= '=') goto yy245;
        !          2674:                if (yych <= '>') goto yy243;
        !          2675:                goto yy138;
        !          2676: yy155:
        !          2677:                YYDEBUG(155, *YYCURSOR);
        !          2678:                yych = *++YYCURSOR;
        !          2679:                if (yych == '=') goto yy241;
        !          2680:                goto yy138;
        !          2681: yy156:
        !          2682:                YYDEBUG(156, *YYCURSOR);
        !          2683:                yych = *++YYCURSOR;
        !          2684:                if (yych <= '.') {
        !          2685:                        if (yych == '*') goto yy233;
        !          2686:                        goto yy138;
        !          2687:                } else {
        !          2688:                        if (yych <= '/') goto yy235;
        !          2689:                        if (yych == '=') goto yy236;
        !          2690:                        goto yy138;
        !          2691:                }
        !          2692: yy157:
        !          2693:                YYDEBUG(157, *YYCURSOR);
        !          2694:                yych = *++YYCURSOR;
        !          2695:                if (yych <= '/') goto yy138;
        !          2696:                if (yych <= '9') goto yy229;
        !          2697:                if (yych == '=') goto yy231;
        !          2698:                goto yy138;
        !          2699: yy158:
        !          2700:                YYDEBUG(158, *YYCURSOR);
        !          2701:                yych = *++YYCURSOR;
        !          2702:                if (yych <= '<') goto yy138;
        !          2703:                if (yych <= '=') goto yy225;
        !          2704:                if (yych <= '>') goto yy223;
        !          2705:                goto yy138;
        !          2706: yy159:
        !          2707:                YYDEBUG(159, *YYCURSOR);
        !          2708:                yych = *++YYCURSOR;
        !          2709:                if (yych == '&') goto yy219;
        !          2710:                if (yych == '=') goto yy221;
        !          2711:                goto yy138;
        !          2712: yy160:
        !          2713:                YYDEBUG(160, *YYCURSOR);
        !          2714:                yych = *++YYCURSOR;
        !          2715:                if (yych == '=') goto yy217;
        !          2716:                if (yych == '|') goto yy215;
        !          2717:                goto yy138;
        !          2718: yy161:
        !          2719:                YYDEBUG(161, *YYCURSOR);
        !          2720:                yych = *++YYCURSOR;
        !          2721:                if (yych == '=') goto yy213;
        !          2722:                goto yy138;
        !          2723: yy162:
        !          2724:                YYDEBUG(162, *YYCURSOR);
        !          2725:                yych = *++YYCURSOR;
        !          2726:                if (yych == 'R') goto yy211;
        !          2727:                if (yych == 'r') goto yy211;
        !          2728:                goto yy186;
        !          2729: yy163:
        !          2730:                YYDEBUG(163, *YYCURSOR);
        !          2731:                yych = *++YYCURSOR;
        !          2732:                if (yych == 'O') goto yy208;
        !          2733:                if (yych == 'o') goto yy208;
        !          2734:                goto yy186;
        !          2735: yy164:
        !          2736:                YYDEBUG(164, *YYCURSOR);
        !          2737:                yych = *++YYCURSOR;
        !          2738:                if (yych <= '_') {
        !          2739:                        if (yych <= '@') goto yy138;
        !          2740:                        if (yych <= 'Z') goto yy205;
        !          2741:                        if (yych <= '^') goto yy138;
        !          2742:                        goto yy205;
        !          2743:                } else {
        !          2744:                        if (yych <= '`') goto yy138;
        !          2745:                        if (yych <= 'z') goto yy205;
        !          2746:                        if (yych <= '~') goto yy138;
        !          2747:                        goto yy205;
        !          2748:                }
        !          2749: yy165:
        !          2750:                YYDEBUG(165, *YYCURSOR);
        !          2751:                yych = *++YYCURSOR;
        !          2752:                goto yy138;
        !          2753: yy166:
        !          2754:                YYDEBUG(166, *YYCURSOR);
        !          2755:                yych = *++YYCURSOR;
        !          2756:                if (yych == '>') goto yy201;
        !          2757:                goto yy138;
        !          2758: yy167:
        !          2759:                YYDEBUG(167, *YYCURSOR);
        !          2760:                ++YYCURSOR;
        !          2761:                YYDEBUG(168, *YYCURSOR);
        !          2762:                yyleng = YYCURSOR - SCNG(yy_text);
        !          2763: #line 1294 "Zend/zend_language_scanner.l"
        !          2764:                {
        !          2765:        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        !          2766:        return '{';
        !          2767: }
        !          2768: #line 2769 "Zend/zend_language_scanner.c"
        !          2769: yy169:
        !          2770:                YYDEBUG(169, *YYCURSOR);
        !          2771:                ++YYCURSOR;
        !          2772:                YYDEBUG(170, *YYCURSOR);
        !          2773:                yyleng = YYCURSOR - SCNG(yy_text);
        !          2774: #line 1306 "Zend/zend_language_scanner.l"
        !          2775:                {
        !          2776:        RESET_DOC_COMMENT();
        !          2777:        if (!zend_stack_is_empty(&SCNG(state_stack))) {
        !          2778:                yy_pop_state(TSRMLS_C);
        !          2779:        }
        !          2780:        return '}';
        !          2781: }
        !          2782: #line 2783 "Zend/zend_language_scanner.c"
        !          2783: yy171:
        !          2784:                YYDEBUG(171, *YYCURSOR);
        !          2785:                yyaccept = 2;
        !          2786:                yych = *(YYMARKER = ++YYCURSOR);
        !          2787:                if (yych <= 'E') {
        !          2788:                        if (yych <= '/') {
        !          2789:                                if (yych == '.') goto yy187;
        !          2790:                        } else {
        !          2791:                                if (yych <= '9') goto yy190;
        !          2792:                                if (yych >= 'E') goto yy192;
        !          2793:                        }
        !          2794:                } else {
        !          2795:                        if (yych <= 'd') {
        !          2796:                                if (yych == 'X') goto yy197;
        !          2797:                        } else {
        !          2798:                                if (yych <= 'e') goto yy192;
        !          2799:                                if (yych == 'x') goto yy197;
        !          2800:                        }
        !          2801:                }
        !          2802: yy172:
        !          2803:                YYDEBUG(172, *YYCURSOR);
        !          2804:                yyleng = YYCURSOR - SCNG(yy_text);
        !          2805: #line 1332 "Zend/zend_language_scanner.l"
        !          2806:                {
        !          2807:        if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
        !          2808:                zendlval->value.lval = strtol(yytext, NULL, 0);
        !          2809:        } else {
        !          2810:                errno = 0;
        !          2811:                zendlval->value.lval = strtol(yytext, NULL, 0);
        !          2812:                if (errno == ERANGE) { /* Overflow */
        !          2813:                        if (yytext[0] == '0') { /* octal overflow */
        !          2814:                                zendlval->value.dval = zend_oct_strtod(yytext, NULL);
        !          2815:                        } else {
        !          2816:                                zendlval->value.dval = zend_strtod(yytext, NULL);
        !          2817:                        }
        !          2818:                        zendlval->type = IS_DOUBLE;
        !          2819:                        return T_DNUMBER;
        !          2820:                }
        !          2821:        }
        !          2822: 
        !          2823:        zendlval->type = IS_LONG;
        !          2824:        return T_LNUMBER;
        !          2825: }
        !          2826: #line 2827 "Zend/zend_language_scanner.c"
        !          2827: yy173:
        !          2828:                YYDEBUG(173, *YYCURSOR);
        !          2829:                yyaccept = 2;
        !          2830:                yych = *(YYMARKER = ++YYCURSOR);
        !          2831:                if (yych <= '9') {
        !          2832:                        if (yych == '.') goto yy187;
        !          2833:                        if (yych <= '/') goto yy172;
        !          2834:                        goto yy190;
        !          2835:                } else {
        !          2836:                        if (yych <= 'E') {
        !          2837:                                if (yych <= 'D') goto yy172;
        !          2838:                                goto yy192;
        !          2839:                        } else {
        !          2840:                                if (yych == 'e') goto yy192;
        !          2841:                                goto yy172;
        !          2842:                        }
        !          2843:                }
        !          2844: yy174:
        !          2845:                YYDEBUG(174, *YYCURSOR);
        !          2846:                yych = *++YYCURSOR;
        !          2847:                goto yy186;
        !          2848: yy175:
        !          2849:                YYDEBUG(175, *YYCURSOR);
        !          2850:                ++YYCURSOR;
        !          2851: yy176:
        !          2852:                YYDEBUG(176, *YYCURSOR);
        !          2853:                yyleng = YYCURSOR - SCNG(yy_text);
        !          2854: #line 1703 "Zend/zend_language_scanner.l"
        !          2855:                {
        !          2856:        while (YYCURSOR < YYLIMIT) {
        !          2857:                switch (*YYCURSOR++) {
        !          2858:                        case '\r':
        !          2859:                                if (*YYCURSOR == '\n') {
        !          2860:                                        YYCURSOR++;
        !          2861:                                }
        !          2862:                                /* fall through */
        !          2863:                        case '\n':
        !          2864:                                CG(zend_lineno)++;
        !          2865:                                break;
        !          2866:                        case '%':
        !          2867:                                if (!CG(asp_tags)) {
        !          2868:                                        continue;
        !          2869:                                }
        !          2870:                                /* fall through */
        !          2871:                        case '?':
        !          2872:                                if (*YYCURSOR == '>') {
        !          2873:                                        YYCURSOR--;
        !          2874:                                        break;
        !          2875:                                }
        !          2876:                                /* fall through */
        !          2877:                        default:
        !          2878:                                continue;
        !          2879:                }
        !          2880: 
        !          2881:                break;
        !          2882:        }
        !          2883: 
        !          2884:        yyleng = YYCURSOR - SCNG(yy_text);
        !          2885: 
        !          2886:        return T_COMMENT;
        !          2887: }
        !          2888: #line 2889 "Zend/zend_language_scanner.c"
        !          2889: yy177:
        !          2890:                YYDEBUG(177, *YYCURSOR);
        !          2891:                ++YYCURSOR;
        !          2892: yy178:
        !          2893:                YYDEBUG(178, *YYCURSOR);
        !          2894:                yyleng = YYCURSOR - SCNG(yy_text);
        !          2895: #line 1794 "Zend/zend_language_scanner.l"
        !          2896:                {
        !          2897:        register char *s, *t;
        !          2898:        char *end;
        !          2899:        int bprefix = (yytext[0] != '\'') ? 1 : 0;
        !          2900: 
        !          2901:        while (1) {
        !          2902:                if (YYCURSOR < YYLIMIT) {
        !          2903:                        if (*YYCURSOR == '\'') {
        !          2904:                                YYCURSOR++;
        !          2905:                                yyleng = YYCURSOR - SCNG(yy_text);
        !          2906: 
        !          2907:                                break;
        !          2908:                        } else if (*YYCURSOR++ == '\\' && YYCURSOR < YYLIMIT) {
        !          2909:                                YYCURSOR++;
        !          2910:                        }
        !          2911:                } else {
        !          2912:                        yyleng = YYLIMIT - SCNG(yy_text);
        !          2913: 
        !          2914:                        /* Unclosed single quotes; treat similar to double quotes, but without a separate token
        !          2915:                         * for ' (unrecognized by parser), instead of old flex fallback to "Unexpected character..."
        !          2916:                         * rule, which continued in ST_IN_SCRIPTING state after the quote */
        !          2917:                        return T_ENCAPSED_AND_WHITESPACE;
        !          2918:                }
        !          2919:        }
        !          2920: 
        !          2921:        zendlval->value.str.val = estrndup(yytext+bprefix+1, yyleng-bprefix-2);
        !          2922:        zendlval->value.str.len = yyleng-bprefix-2;
        !          2923:        zendlval->type = IS_STRING;
        !          2924: 
        !          2925:        /* convert escape sequences */
        !          2926:        s = t = zendlval->value.str.val;
        !          2927:        end = s+zendlval->value.str.len;
        !          2928:        while (s<end) {
        !          2929:                if (*s=='\\') {
        !          2930:                        s++;
        !          2931: 
        !          2932:                        switch(*s) {
        !          2933:                                case '\\':
        !          2934:                                case '\'':
        !          2935:                                        *t++ = *s;
        !          2936:                                        zendlval->value.str.len--;
        !          2937:                                        break;
        !          2938:                                default:
        !          2939:                                        *t++ = '\\';
        !          2940:                                        *t++ = *s;
        !          2941:                                        break;
        !          2942:                        }
        !          2943:                } else {
        !          2944:                        *t++ = *s;
        !          2945:                }
        !          2946: 
        !          2947:                if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
        !          2948:                        CG(zend_lineno)++;
        !          2949:                }
        !          2950:                s++;
        !          2951:        }
        !          2952:        *t = 0;
        !          2953: 
        !          2954: #ifdef ZEND_MULTIBYTE
        !          2955:        if (SCNG(output_filter)) {
        !          2956:                size_t sz = 0;
        !          2957:                s = zendlval->value.str.val;
        !          2958:                SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)s, (size_t)zendlval->value.str.len TSRMLS_CC);
        !          2959:                zendlval->value.str.len = sz;
        !          2960:                efree(s);
        !          2961:        }
        !          2962: #endif /* ZEND_MULTIBYTE */
        !          2963:        return T_CONSTANT_ENCAPSED_STRING;
        !          2964: }
        !          2965: #line 2966 "Zend/zend_language_scanner.c"
        !          2966: yy179:
        !          2967:                YYDEBUG(179, *YYCURSOR);
        !          2968:                ++YYCURSOR;
        !          2969: yy180:
        !          2970:                YYDEBUG(180, *YYCURSOR);
        !          2971:                yyleng = YYCURSOR - SCNG(yy_text);
        !          2972: #line 1865 "Zend/zend_language_scanner.l"
        !          2973:                {
        !          2974:        int bprefix = (yytext[0] != '"') ? 1 : 0;
        !          2975: 
        !          2976:        while (YYCURSOR < YYLIMIT) {
        !          2977:                switch (*YYCURSOR++) {
        !          2978:                        case '"':
        !          2979:                                yyleng = YYCURSOR - SCNG(yy_text);
        !          2980:                                zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"' TSRMLS_CC);
        !          2981:                                return T_CONSTANT_ENCAPSED_STRING;
        !          2982:                        case '$':
        !          2983:                                if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
        !          2984:                                        break;
        !          2985:                                }
        !          2986:                                continue;
        !          2987:                        case '{':
        !          2988:                                if (*YYCURSOR == '$') {
        !          2989:                                        break;
        !          2990:                                }
        !          2991:                                continue;
        !          2992:                        case '\\':
        !          2993:                                if (YYCURSOR < YYLIMIT) {
        !          2994:                                        YYCURSOR++;
        !          2995:                                }
        !          2996:                                /* fall through */
        !          2997:                        default:
        !          2998:                                continue;
        !          2999:                }
        !          3000: 
        !          3001:                YYCURSOR--;
        !          3002:                break;
        !          3003:        }
        !          3004: 
        !          3005:        /* Remember how much was scanned to save rescanning */
        !          3006:        SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng);
        !          3007: 
        !          3008:        YYCURSOR = SCNG(yy_text) + yyleng;
        !          3009: 
        !          3010:        BEGIN(ST_DOUBLE_QUOTES);
        !          3011:        return '"';
        !          3012: }
        !          3013: #line 3014 "Zend/zend_language_scanner.c"
        !          3014: yy181:
        !          3015:                YYDEBUG(181, *YYCURSOR);
        !          3016:                ++YYCURSOR;
        !          3017:                YYDEBUG(182, *YYCURSOR);
        !          3018:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3019: #line 1956 "Zend/zend_language_scanner.l"
        !          3020:                {
        !          3021:        BEGIN(ST_BACKQUOTE);
        !          3022:        return '`';
        !          3023: }
        !          3024: #line 3025 "Zend/zend_language_scanner.c"
        !          3025: yy183:
        !          3026:                YYDEBUG(183, *YYCURSOR);
        !          3027:                ++YYCURSOR;
        !          3028:                YYDEBUG(184, *YYCURSOR);
        !          3029:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3030: #line 2214 "Zend/zend_language_scanner.l"
        !          3031:                {
        !          3032:        if (YYCURSOR > YYLIMIT) {
        !          3033:                return 0;
        !          3034:        }
        !          3035: 
        !          3036:        zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
        !          3037:        goto restart;
        !          3038: }
        !          3039: #line 3040 "Zend/zend_language_scanner.c"
        !          3040: yy185:
        !          3041:                YYDEBUG(185, *YYCURSOR);
        !          3042:                ++YYCURSOR;
        !          3043:                YYFILL(1);
        !          3044:                yych = *YYCURSOR;
        !          3045: yy186:
        !          3046:                YYDEBUG(186, *YYCURSOR);
        !          3047:                if (yybm[0+yych] & 8) {
        !          3048:                        goto yy185;
        !          3049:                }
        !          3050:                goto yy124;
        !          3051: yy187:
        !          3052:                YYDEBUG(187, *YYCURSOR);
        !          3053:                yyaccept = 3;
        !          3054:                YYMARKER = ++YYCURSOR;
        !          3055:                YYFILL(3);
        !          3056:                yych = *YYCURSOR;
        !          3057:                YYDEBUG(188, *YYCURSOR);
        !          3058:                if (yybm[0+yych] & 16) {
        !          3059:                        goto yy187;
        !          3060:                }
        !          3061:                if (yych == 'E') goto yy192;
        !          3062:                if (yych == 'e') goto yy192;
        !          3063: yy189:
        !          3064:                YYDEBUG(189, *YYCURSOR);
        !          3065:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3066: #line 1393 "Zend/zend_language_scanner.l"
        !          3067:                {
        !          3068:        zendlval->value.dval = zend_strtod(yytext, NULL);
        !          3069:        zendlval->type = IS_DOUBLE;
        !          3070:        return T_DNUMBER;
        !          3071: }
        !          3072: #line 3073 "Zend/zend_language_scanner.c"
        !          3073: yy190:
        !          3074:                YYDEBUG(190, *YYCURSOR);
        !          3075:                yyaccept = 2;
        !          3076:                YYMARKER = ++YYCURSOR;
        !          3077:                YYFILL(3);
        !          3078:                yych = *YYCURSOR;
        !          3079:                YYDEBUG(191, *YYCURSOR);
        !          3080:                if (yych <= '9') {
        !          3081:                        if (yych == '.') goto yy187;
        !          3082:                        if (yych <= '/') goto yy172;
        !          3083:                        goto yy190;
        !          3084:                } else {
        !          3085:                        if (yych <= 'E') {
        !          3086:                                if (yych <= 'D') goto yy172;
        !          3087:                        } else {
        !          3088:                                if (yych != 'e') goto yy172;
        !          3089:                        }
        !          3090:                }
        !          3091: yy192:
        !          3092:                YYDEBUG(192, *YYCURSOR);
        !          3093:                yych = *++YYCURSOR;
        !          3094:                if (yych <= ',') {
        !          3095:                        if (yych == '+') goto yy194;
        !          3096:                } else {
        !          3097:                        if (yych <= '-') goto yy194;
        !          3098:                        if (yych <= '/') goto yy193;
        !          3099:                        if (yych <= '9') goto yy195;
        !          3100:                }
        !          3101: yy193:
        !          3102:                YYDEBUG(193, *YYCURSOR);
        !          3103:                YYCURSOR = YYMARKER;
        !          3104:                if (yyaccept <= 2) {
        !          3105:                        if (yyaccept <= 1) {
        !          3106:                                if (yyaccept <= 0) {
        !          3107:                                        goto yy124;
        !          3108:                                } else {
        !          3109:                                        goto yy138;
        !          3110:                                }
        !          3111:                        } else {
        !          3112:                                goto yy172;
        !          3113:                        }
        !          3114:                } else {
        !          3115:                        if (yyaccept <= 4) {
        !          3116:                                if (yyaccept <= 3) {
        !          3117:                                        goto yy189;
        !          3118:                                } else {
        !          3119:                                        goto yy234;
        !          3120:                                }
        !          3121:                        } else {
        !          3122:                                goto yy250;
        !          3123:                        }
        !          3124:                }
        !          3125: yy194:
        !          3126:                YYDEBUG(194, *YYCURSOR);
        !          3127:                yych = *++YYCURSOR;
        !          3128:                if (yych <= '/') goto yy193;
        !          3129:                if (yych >= ':') goto yy193;
        !          3130: yy195:
        !          3131:                YYDEBUG(195, *YYCURSOR);
        !          3132:                ++YYCURSOR;
        !          3133:                YYFILL(1);
        !          3134:                yych = *YYCURSOR;
        !          3135:                YYDEBUG(196, *YYCURSOR);
        !          3136:                if (yych <= '/') goto yy189;
        !          3137:                if (yych <= '9') goto yy195;
        !          3138:                goto yy189;
        !          3139: yy197:
        !          3140:                YYDEBUG(197, *YYCURSOR);
        !          3141:                yych = *++YYCURSOR;
        !          3142:                if (yybm[0+yych] & 32) {
        !          3143:                        goto yy198;
        !          3144:                }
        !          3145:                goto yy193;
        !          3146: yy198:
        !          3147:                YYDEBUG(198, *YYCURSOR);
        !          3148:                ++YYCURSOR;
        !          3149:                YYFILL(1);
        !          3150:                yych = *YYCURSOR;
        !          3151:                YYDEBUG(199, *YYCURSOR);
        !          3152:                if (yybm[0+yych] & 32) {
        !          3153:                        goto yy198;
        !          3154:                }
        !          3155:                YYDEBUG(200, *YYCURSOR);
        !          3156:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3157: #line 1353 "Zend/zend_language_scanner.l"
        !          3158:                {
        !          3159:        char *hex = yytext + 2; /* Skip "0x" */
        !          3160:        int len = yyleng - 2;
        !          3161: 
        !          3162:        /* Skip any leading 0s */
        !          3163:        while (*hex == '0') {
        !          3164:                hex++;
        !          3165:                len--;
        !          3166:        }
        !          3167: 
        !          3168:        if (len < SIZEOF_LONG * 2 || (len == SIZEOF_LONG * 2 && *hex <= '7')) {
        !          3169:                zendlval->value.lval = strtol(hex, NULL, 16);
        !          3170:                zendlval->type = IS_LONG;
        !          3171:                return T_LNUMBER;
        !          3172:        } else {
        !          3173:                zendlval->value.dval = zend_hex_strtod(hex, NULL);
        !          3174:                zendlval->type = IS_DOUBLE;
        !          3175:                return T_DNUMBER;
        !          3176:        }
        !          3177: }
        !          3178: #line 3179 "Zend/zend_language_scanner.c"
        !          3179: yy201:
        !          3180:                YYDEBUG(201, *YYCURSOR);
        !          3181:                ++YYCURSOR;
        !          3182:                if ((yych = *YYCURSOR) == '\n') goto yy203;
        !          3183:                if (yych == '\r') goto yy204;
        !          3184: yy202:
        !          3185:                YYDEBUG(202, *YYCURSOR);
        !          3186:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3187: #line 1771 "Zend/zend_language_scanner.l"
        !          3188:                {
        !          3189:        zendlval->value.str.val = yytext; /* no copying - intentional */
        !          3190:        zendlval->value.str.len = yyleng;
        !          3191:        zendlval->type = IS_STRING;
        !          3192:        BEGIN(INITIAL);
        !          3193:        return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
        !          3194: }
        !          3195: #line 3196 "Zend/zend_language_scanner.c"
        !          3196: yy203:
        !          3197:                YYDEBUG(203, *YYCURSOR);
        !          3198:                yych = *++YYCURSOR;
        !          3199:                goto yy202;
        !          3200: yy204:
        !          3201:                YYDEBUG(204, *YYCURSOR);
        !          3202:                yych = *++YYCURSOR;
        !          3203:                if (yych == '\n') goto yy203;
        !          3204:                goto yy202;
        !          3205: yy205:
        !          3206:                YYDEBUG(205, *YYCURSOR);
        !          3207:                ++YYCURSOR;
        !          3208:                YYFILL(1);
        !          3209:                yych = *YYCURSOR;
        !          3210:                YYDEBUG(206, *YYCURSOR);
        !          3211:                if (yych <= '^') {
        !          3212:                        if (yych <= '9') {
        !          3213:                                if (yych >= '0') goto yy205;
        !          3214:                        } else {
        !          3215:                                if (yych <= '@') goto yy207;
        !          3216:                                if (yych <= 'Z') goto yy205;
        !          3217:                        }
        !          3218:                } else {
        !          3219:                        if (yych <= '`') {
        !          3220:                                if (yych <= '_') goto yy205;
        !          3221:                        } else {
        !          3222:                                if (yych <= 'z') goto yy205;
        !          3223:                                if (yych >= 0x7F) goto yy205;
        !          3224:                        }
        !          3225:                }
        !          3226: yy207:
        !          3227:                YYDEBUG(207, *YYCURSOR);
        !          3228:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3229: #line 1673 "Zend/zend_language_scanner.l"
        !          3230:                {
        !          3231:        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        !          3232:        zendlval->type = IS_STRING;
        !          3233:        return T_VARIABLE;
        !          3234: }
        !          3235: #line 3236 "Zend/zend_language_scanner.c"
        !          3236: yy208:
        !          3237:                YYDEBUG(208, *YYCURSOR);
        !          3238:                yych = *++YYCURSOR;
        !          3239:                if (yych == 'R') goto yy209;
        !          3240:                if (yych != 'r') goto yy186;
        !          3241: yy209:
        !          3242:                YYDEBUG(209, *YYCURSOR);
        !          3243:                ++YYCURSOR;
        !          3244:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          3245:                        goto yy185;
        !          3246:                }
        !          3247:                YYDEBUG(210, *YYCURSOR);
        !          3248:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3249: #line 1277 "Zend/zend_language_scanner.l"
        !          3250:                {
        !          3251:        return T_LOGICAL_XOR;
        !          3252: }
        !          3253: #line 3254 "Zend/zend_language_scanner.c"
        !          3254: yy211:
        !          3255:                YYDEBUG(211, *YYCURSOR);
        !          3256:                ++YYCURSOR;
        !          3257:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          3258:                        goto yy185;
        !          3259:                }
        !          3260:                YYDEBUG(212, *YYCURSOR);
        !          3261:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3262: #line 1269 "Zend/zend_language_scanner.l"
        !          3263:                {
        !          3264:        return T_LOGICAL_OR;
        !          3265: }
        !          3266: #line 3267 "Zend/zend_language_scanner.c"
        !          3267: yy213:
        !          3268:                YYDEBUG(213, *YYCURSOR);
        !          3269:                ++YYCURSOR;
        !          3270:                YYDEBUG(214, *YYCURSOR);
        !          3271:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3272: #line 1257 "Zend/zend_language_scanner.l"
        !          3273:                {
        !          3274:        return T_XOR_EQUAL;
        !          3275: }
        !          3276: #line 3277 "Zend/zend_language_scanner.c"
        !          3277: yy215:
        !          3278:                YYDEBUG(215, *YYCURSOR);
        !          3279:                ++YYCURSOR;
        !          3280:                YYDEBUG(216, *YYCURSOR);
        !          3281:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3282: #line 1261 "Zend/zend_language_scanner.l"
        !          3283:                {
        !          3284:        return T_BOOLEAN_OR;
        !          3285: }
        !          3286: #line 3287 "Zend/zend_language_scanner.c"
        !          3287: yy217:
        !          3288:                YYDEBUG(217, *YYCURSOR);
        !          3289:                ++YYCURSOR;
        !          3290:                YYDEBUG(218, *YYCURSOR);
        !          3291:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3292: #line 1253 "Zend/zend_language_scanner.l"
        !          3293:                {
        !          3294:        return T_OR_EQUAL;
        !          3295: }
        !          3296: #line 3297 "Zend/zend_language_scanner.c"
        !          3297: yy219:
        !          3298:                YYDEBUG(219, *YYCURSOR);
        !          3299:                ++YYCURSOR;
        !          3300:                YYDEBUG(220, *YYCURSOR);
        !          3301:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3302: #line 1265 "Zend/zend_language_scanner.l"
        !          3303:                {
        !          3304:        return T_BOOLEAN_AND;
        !          3305: }
        !          3306: #line 3307 "Zend/zend_language_scanner.c"
        !          3307: yy221:
        !          3308:                YYDEBUG(221, *YYCURSOR);
        !          3309:                ++YYCURSOR;
        !          3310:                YYDEBUG(222, *YYCURSOR);
        !          3311:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3312: #line 1249 "Zend/zend_language_scanner.l"
        !          3313:                {
        !          3314:        return T_AND_EQUAL;
        !          3315: }
        !          3316: #line 3317 "Zend/zend_language_scanner.c"
        !          3317: yy223:
        !          3318:                YYDEBUG(223, *YYCURSOR);
        !          3319:                ++YYCURSOR;
        !          3320:                if ((yych = *YYCURSOR) == '\n') goto yy227;
        !          3321:                if (yych == '\r') goto yy228;
        !          3322: yy224:
        !          3323:                YYDEBUG(224, *YYCURSOR);
        !          3324:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3325: #line 1780 "Zend/zend_language_scanner.l"
        !          3326:                {
        !          3327:        if (CG(asp_tags)) {
        !          3328:                BEGIN(INITIAL);
        !          3329:                zendlval->value.str.len = yyleng;
        !          3330:                zendlval->type = IS_STRING;
        !          3331:                zendlval->value.str.val = yytext; /* no copying - intentional */
        !          3332:                return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
        !          3333:        } else {
        !          3334:                yyless(1);
        !          3335:                return yytext[0];
        !          3336:        }
        !          3337: }
        !          3338: #line 3339 "Zend/zend_language_scanner.c"
        !          3339: yy225:
        !          3340:                YYDEBUG(225, *YYCURSOR);
        !          3341:                ++YYCURSOR;
        !          3342:                YYDEBUG(226, *YYCURSOR);
        !          3343:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3344: #line 1237 "Zend/zend_language_scanner.l"
        !          3345:                {
        !          3346:        return T_MOD_EQUAL;
        !          3347: }
        !          3348: #line 3349 "Zend/zend_language_scanner.c"
        !          3349: yy227:
        !          3350:                YYDEBUG(227, *YYCURSOR);
        !          3351:                yych = *++YYCURSOR;
        !          3352:                goto yy224;
        !          3353: yy228:
        !          3354:                YYDEBUG(228, *YYCURSOR);
        !          3355:                yych = *++YYCURSOR;
        !          3356:                if (yych == '\n') goto yy227;
        !          3357:                goto yy224;
        !          3358: yy229:
        !          3359:                YYDEBUG(229, *YYCURSOR);
        !          3360:                yyaccept = 3;
        !          3361:                YYMARKER = ++YYCURSOR;
        !          3362:                YYFILL(3);
        !          3363:                yych = *YYCURSOR;
        !          3364:                YYDEBUG(230, *YYCURSOR);
        !          3365:                if (yych <= 'D') {
        !          3366:                        if (yych <= '/') goto yy189;
        !          3367:                        if (yych <= '9') goto yy229;
        !          3368:                        goto yy189;
        !          3369:                } else {
        !          3370:                        if (yych <= 'E') goto yy192;
        !          3371:                        if (yych == 'e') goto yy192;
        !          3372:                        goto yy189;
        !          3373:                }
        !          3374: yy231:
        !          3375:                YYDEBUG(231, *YYCURSOR);
        !          3376:                ++YYCURSOR;
        !          3377:                YYDEBUG(232, *YYCURSOR);
        !          3378:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3379: #line 1233 "Zend/zend_language_scanner.l"
        !          3380:                {
        !          3381:        return T_CONCAT_EQUAL;
        !          3382: }
        !          3383: #line 3384 "Zend/zend_language_scanner.c"
        !          3384: yy233:
        !          3385:                YYDEBUG(233, *YYCURSOR);
        !          3386:                yyaccept = 4;
        !          3387:                yych = *(YYMARKER = ++YYCURSOR);
        !          3388:                if (yych == '*') goto yy238;
        !          3389: yy234:
        !          3390:                YYDEBUG(234, *YYCURSOR);
        !          3391:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3392: #line 1737 "Zend/zend_language_scanner.l"
        !          3393:                {
        !          3394:        int doc_com;
        !          3395: 
        !          3396:        if (yyleng > 2) {
        !          3397:                doc_com = 1;
        !          3398:                RESET_DOC_COMMENT();
        !          3399:        } else {
        !          3400:                doc_com = 0;
        !          3401:        }
        !          3402: 
        !          3403:        while (YYCURSOR < YYLIMIT) {
        !          3404:                if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
        !          3405:                        break;
        !          3406:                }
        !          3407:        }
        !          3408: 
        !          3409:        if (YYCURSOR < YYLIMIT) {
        !          3410:                YYCURSOR++;
        !          3411:        } else {
        !          3412:                zend_error(E_COMPILE_WARNING, "Unterminated comment starting line %d", CG(zend_lineno));
        !          3413:        }
        !          3414: 
        !          3415:        yyleng = YYCURSOR - SCNG(yy_text);
        !          3416:        HANDLE_NEWLINES(yytext, yyleng);
        !          3417: 
        !          3418:        if (doc_com) {
        !          3419:                CG(doc_comment) = estrndup(yytext, yyleng);
        !          3420:                CG(doc_comment_len) = yyleng;
        !          3421:                return T_DOC_COMMENT;
        !          3422:        }
        !          3423: 
        !          3424:        return T_COMMENT;
        !          3425: }
        !          3426: #line 3427 "Zend/zend_language_scanner.c"
        !          3427: yy235:
        !          3428:                YYDEBUG(235, *YYCURSOR);
        !          3429:                yych = *++YYCURSOR;
        !          3430:                goto yy176;
        !          3431: yy236:
        !          3432:                YYDEBUG(236, *YYCURSOR);
        !          3433:                ++YYCURSOR;
        !          3434:                YYDEBUG(237, *YYCURSOR);
        !          3435:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3436: #line 1229 "Zend/zend_language_scanner.l"
        !          3437:                {
        !          3438:        return T_DIV_EQUAL;
        !          3439: }
        !          3440: #line 3441 "Zend/zend_language_scanner.c"
        !          3441: yy238:
        !          3442:                YYDEBUG(238, *YYCURSOR);
        !          3443:                yych = *++YYCURSOR;
        !          3444:                if (yybm[0+yych] & 64) {
        !          3445:                        goto yy239;
        !          3446:                }
        !          3447:                goto yy193;
        !          3448: yy239:
        !          3449:                YYDEBUG(239, *YYCURSOR);
        !          3450:                ++YYCURSOR;
        !          3451:                YYFILL(1);
        !          3452:                yych = *YYCURSOR;
        !          3453:                YYDEBUG(240, *YYCURSOR);
        !          3454:                if (yybm[0+yych] & 64) {
        !          3455:                        goto yy239;
        !          3456:                }
        !          3457:                goto yy234;
        !          3458: yy241:
        !          3459:                YYDEBUG(241, *YYCURSOR);
        !          3460:                ++YYCURSOR;
        !          3461:                YYDEBUG(242, *YYCURSOR);
        !          3462:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3463: #line 1225 "Zend/zend_language_scanner.l"
        !          3464:                {
        !          3465:        return T_MUL_EQUAL;
        !          3466: }
        !          3467: #line 3468 "Zend/zend_language_scanner.c"
        !          3468: yy243:
        !          3469:                YYDEBUG(243, *YYCURSOR);
        !          3470:                ++YYCURSOR;
        !          3471:                if ((yych = *YYCURSOR) == '=') goto yy247;
        !          3472:                YYDEBUG(244, *YYCURSOR);
        !          3473:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3474: #line 1285 "Zend/zend_language_scanner.l"
        !          3475:                {
        !          3476:        return T_SR;
        !          3477: }
        !          3478: #line 3479 "Zend/zend_language_scanner.c"
        !          3479: yy245:
        !          3480:                YYDEBUG(245, *YYCURSOR);
        !          3481:                ++YYCURSOR;
        !          3482:                YYDEBUG(246, *YYCURSOR);
        !          3483:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3484: #line 1213 "Zend/zend_language_scanner.l"
        !          3485:                {
        !          3486:        return T_IS_GREATER_OR_EQUAL;
        !          3487: }
        !          3488: #line 3489 "Zend/zend_language_scanner.c"
        !          3489: yy247:
        !          3490:                YYDEBUG(247, *YYCURSOR);
        !          3491:                ++YYCURSOR;
        !          3492:                YYDEBUG(248, *YYCURSOR);
        !          3493:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3494: #line 1245 "Zend/zend_language_scanner.l"
        !          3495:                {
        !          3496:        return T_SR_EQUAL;
        !          3497: }
        !          3498: #line 3499 "Zend/zend_language_scanner.c"
        !          3499: yy249:
        !          3500:                YYDEBUG(249, *YYCURSOR);
        !          3501:                yyaccept = 5;
        !          3502:                yych = *(YYMARKER = ++YYCURSOR);
        !          3503:                if (yych <= ';') goto yy250;
        !          3504:                if (yych <= '<') goto yy265;
        !          3505:                if (yych <= '=') goto yy263;
        !          3506: yy250:
        !          3507:                YYDEBUG(250, *YYCURSOR);
        !          3508:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3509: #line 1281 "Zend/zend_language_scanner.l"
        !          3510:                {
        !          3511:        return T_SL;
        !          3512: }
        !          3513: #line 3514 "Zend/zend_language_scanner.c"
        !          3514: yy251:
        !          3515:                YYDEBUG(251, *YYCURSOR);
        !          3516:                yych = *++YYCURSOR;
        !          3517:                if (yych == 'S') goto yy256;
        !          3518:                if (yych == 's') goto yy256;
        !          3519:                goto yy193;
        !          3520: yy252:
        !          3521:                YYDEBUG(252, *YYCURSOR);
        !          3522:                ++YYCURSOR;
        !          3523:                YYDEBUG(253, *YYCURSOR);
        !          3524:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3525: #line 1209 "Zend/zend_language_scanner.l"
        !          3526:                {
        !          3527:        return T_IS_SMALLER_OR_EQUAL;
        !          3528: }
        !          3529: #line 3530 "Zend/zend_language_scanner.c"
        !          3530: yy254:
        !          3531:                YYDEBUG(254, *YYCURSOR);
        !          3532:                ++YYCURSOR;
        !          3533: yy255:
        !          3534:                YYDEBUG(255, *YYCURSOR);
        !          3535:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3536: #line 1205 "Zend/zend_language_scanner.l"
        !          3537:                {
        !          3538:        return T_IS_NOT_EQUAL;
        !          3539: }
        !          3540: #line 3541 "Zend/zend_language_scanner.c"
        !          3541: yy256:
        !          3542:                YYDEBUG(256, *YYCURSOR);
        !          3543:                yych = *++YYCURSOR;
        !          3544:                if (yych == 'C') goto yy257;
        !          3545:                if (yych != 'c') goto yy193;
        !          3546: yy257:
        !          3547:                YYDEBUG(257, *YYCURSOR);
        !          3548:                yych = *++YYCURSOR;
        !          3549:                if (yych == 'R') goto yy258;
        !          3550:                if (yych != 'r') goto yy193;
        !          3551: yy258:
        !          3552:                YYDEBUG(258, *YYCURSOR);
        !          3553:                yych = *++YYCURSOR;
        !          3554:                if (yych == 'I') goto yy259;
        !          3555:                if (yych != 'i') goto yy193;
        !          3556: yy259:
        !          3557:                YYDEBUG(259, *YYCURSOR);
        !          3558:                yych = *++YYCURSOR;
        !          3559:                if (yych == 'P') goto yy260;
        !          3560:                if (yych != 'p') goto yy193;
        !          3561: yy260:
        !          3562:                YYDEBUG(260, *YYCURSOR);
        !          3563:                yych = *++YYCURSOR;
        !          3564:                if (yych == 'T') goto yy261;
        !          3565:                if (yych != 't') goto yy193;
        !          3566: yy261:
        !          3567:                YYDEBUG(261, *YYCURSOR);
        !          3568:                ++YYCURSOR;
        !          3569:                YYFILL(3);
        !          3570:                yych = *YYCURSOR;
        !          3571:                YYDEBUG(262, *YYCURSOR);
        !          3572:                if (yych <= '\r') {
        !          3573:                        if (yych <= 0x08) goto yy193;
        !          3574:                        if (yych <= '\n') goto yy261;
        !          3575:                        if (yych <= '\f') goto yy193;
        !          3576:                        goto yy261;
        !          3577:                } else {
        !          3578:                        if (yych <= ' ') {
        !          3579:                                if (yych <= 0x1F) goto yy193;
        !          3580:                                goto yy261;
        !          3581:                        } else {
        !          3582:                                if (yych == '>') goto yy201;
        !          3583:                                goto yy193;
        !          3584:                        }
        !          3585:                }
        !          3586: yy263:
        !          3587:                YYDEBUG(263, *YYCURSOR);
        !          3588:                ++YYCURSOR;
        !          3589:                YYDEBUG(264, *YYCURSOR);
        !          3590:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3591: #line 1241 "Zend/zend_language_scanner.l"
        !          3592:                {
        !          3593:        return T_SL_EQUAL;
        !          3594: }
        !          3595: #line 3596 "Zend/zend_language_scanner.c"
        !          3596: yy265:
        !          3597:                YYDEBUG(265, *YYCURSOR);
        !          3598:                ++YYCURSOR;
        !          3599:                YYFILL(2);
        !          3600:                yych = *YYCURSOR;
        !          3601:                YYDEBUG(266, *YYCURSOR);
        !          3602:                if (yybm[0+yych] & 128) {
        !          3603:                        goto yy265;
        !          3604:                }
        !          3605:                if (yych <= 'Z') {
        !          3606:                        if (yych <= '&') {
        !          3607:                                if (yych == '"') goto yy270;
        !          3608:                                goto yy193;
        !          3609:                        } else {
        !          3610:                                if (yych <= '\'') goto yy269;
        !          3611:                                if (yych <= '@') goto yy193;
        !          3612:                        }
        !          3613:                } else {
        !          3614:                        if (yych <= '`') {
        !          3615:                                if (yych != '_') goto yy193;
        !          3616:                        } else {
        !          3617:                                if (yych <= 'z') goto yy267;
        !          3618:                                if (yych <= '~') goto yy193;
        !          3619:                        }
        !          3620:                }
        !          3621: yy267:
        !          3622:                YYDEBUG(267, *YYCURSOR);
        !          3623:                ++YYCURSOR;
        !          3624:                YYFILL(2);
        !          3625:                yych = *YYCURSOR;
        !          3626:                YYDEBUG(268, *YYCURSOR);
        !          3627:                if (yych <= '@') {
        !          3628:                        if (yych <= '\f') {
        !          3629:                                if (yych == '\n') goto yy274;
        !          3630:                                goto yy193;
        !          3631:                        } else {
        !          3632:                                if (yych <= '\r') goto yy276;
        !          3633:                                if (yych <= '/') goto yy193;
        !          3634:                                if (yych <= '9') goto yy267;
        !          3635:                                goto yy193;
        !          3636:                        }
        !          3637:                } else {
        !          3638:                        if (yych <= '_') {
        !          3639:                                if (yych <= 'Z') goto yy267;
        !          3640:                                if (yych <= '^') goto yy193;
        !          3641:                                goto yy267;
        !          3642:                        } else {
        !          3643:                                if (yych <= '`') goto yy193;
        !          3644:                                if (yych <= 'z') goto yy267;
        !          3645:                                if (yych <= '~') goto yy193;
        !          3646:                                goto yy267;
        !          3647:                        }
        !          3648:                }
        !          3649: yy269:
        !          3650:                YYDEBUG(269, *YYCURSOR);
        !          3651:                yych = *++YYCURSOR;
        !          3652:                if (yych == '\'') goto yy193;
        !          3653:                if (yych <= '/') goto yy278;
        !          3654:                if (yych <= '9') goto yy193;
        !          3655:                goto yy278;
        !          3656: yy270:
        !          3657:                YYDEBUG(270, *YYCURSOR);
        !          3658:                yych = *++YYCURSOR;
        !          3659:                if (yych == '"') goto yy193;
        !          3660:                if (yych <= '/') goto yy272;
        !          3661:                if (yych <= '9') goto yy193;
        !          3662:                goto yy272;
        !          3663: yy271:
        !          3664:                YYDEBUG(271, *YYCURSOR);
        !          3665:                ++YYCURSOR;
        !          3666:                YYFILL(3);
        !          3667:                yych = *YYCURSOR;
        !          3668: yy272:
        !          3669:                YYDEBUG(272, *YYCURSOR);
        !          3670:                if (yych <= 'Z') {
        !          3671:                        if (yych <= '/') {
        !          3672:                                if (yych != '"') goto yy193;
        !          3673:                        } else {
        !          3674:                                if (yych <= '9') goto yy271;
        !          3675:                                if (yych <= '@') goto yy193;
        !          3676:                                goto yy271;
        !          3677:                        }
        !          3678:                } else {
        !          3679:                        if (yych <= '`') {
        !          3680:                                if (yych == '_') goto yy271;
        !          3681:                                goto yy193;
        !          3682:                        } else {
        !          3683:                                if (yych <= 'z') goto yy271;
        !          3684:                                if (yych <= '~') goto yy193;
        !          3685:                                goto yy271;
        !          3686:                        }
        !          3687:                }
        !          3688: yy273:
        !          3689:                YYDEBUG(273, *YYCURSOR);
        !          3690:                yych = *++YYCURSOR;
        !          3691:                if (yych == '\n') goto yy274;
        !          3692:                if (yych == '\r') goto yy276;
        !          3693:                goto yy193;
        !          3694: yy274:
        !          3695:                YYDEBUG(274, *YYCURSOR);
        !          3696:                ++YYCURSOR;
        !          3697: yy275:
        !          3698:                YYDEBUG(275, *YYCURSOR);
        !          3699:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3700: #line 1907 "Zend/zend_language_scanner.l"
        !          3701:                {
        !          3702:        char *s;
        !          3703:        int bprefix = (yytext[0] != '<') ? 1 : 0;
        !          3704: 
        !          3705:        /* save old heredoc label */
        !          3706:        Z_STRVAL_P(zendlval) = CG(heredoc);
        !          3707:        Z_STRLEN_P(zendlval) = CG(heredoc_len);
        !          3708: 
        !          3709:        CG(zend_lineno)++;
        !          3710:        CG(heredoc_len) = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
        !          3711:        s = yytext+bprefix+3;
        !          3712:        while ((*s == ' ') || (*s == '\t')) {
        !          3713:                s++;
        !          3714:                CG(heredoc_len)--;
        !          3715:        }
        !          3716: 
        !          3717:        if (*s == '\'') {
        !          3718:                s++;
        !          3719:                CG(heredoc_len) -= 2;
        !          3720: 
        !          3721:                BEGIN(ST_NOWDOC);
        !          3722:        } else {
        !          3723:                if (*s == '"') {
        !          3724:                        s++;
        !          3725:                        CG(heredoc_len) -= 2;
        !          3726:                }
        !          3727: 
        !          3728:                BEGIN(ST_HEREDOC);
        !          3729:        }
        !          3730: 
        !          3731:        CG(heredoc) = estrndup(s, CG(heredoc_len));
        !          3732: 
        !          3733:        /* Check for ending label on the next line */
        !          3734:        if (CG(heredoc_len) < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, CG(heredoc_len))) {
        !          3735:                YYCTYPE *end = YYCURSOR + CG(heredoc_len);
        !          3736: 
        !          3737:                if (*end == ';') {
        !          3738:                        end++;
        !          3739:                }
        !          3740: 
        !          3741:                if (*end == '\n' || *end == '\r') {
        !          3742:                        BEGIN(ST_END_HEREDOC);
        !          3743:                }
        !          3744:        }
        !          3745: 
        !          3746:        return T_START_HEREDOC;
        !          3747: }
        !          3748: #line 3749 "Zend/zend_language_scanner.c"
        !          3749: yy276:
        !          3750:                YYDEBUG(276, *YYCURSOR);
        !          3751:                yych = *++YYCURSOR;
        !          3752:                if (yych == '\n') goto yy274;
        !          3753:                goto yy275;
        !          3754: yy277:
        !          3755:                YYDEBUG(277, *YYCURSOR);
        !          3756:                ++YYCURSOR;
        !          3757:                YYFILL(3);
        !          3758:                yych = *YYCURSOR;
        !          3759: yy278:
        !          3760:                YYDEBUG(278, *YYCURSOR);
        !          3761:                if (yych <= 'Z') {
        !          3762:                        if (yych <= '/') {
        !          3763:                                if (yych == '\'') goto yy273;
        !          3764:                                goto yy193;
        !          3765:                        } else {
        !          3766:                                if (yych <= '9') goto yy277;
        !          3767:                                if (yych <= '@') goto yy193;
        !          3768:                                goto yy277;
        !          3769:                        }
        !          3770:                } else {
        !          3771:                        if (yych <= '`') {
        !          3772:                                if (yych == '_') goto yy277;
        !          3773:                                goto yy193;
        !          3774:                        } else {
        !          3775:                                if (yych <= 'z') goto yy277;
        !          3776:                                if (yych <= '~') goto yy193;
        !          3777:                                goto yy277;
        !          3778:                        }
        !          3779:                }
        !          3780: yy279:
        !          3781:                YYDEBUG(279, *YYCURSOR);
        !          3782:                yych = *++YYCURSOR;
        !          3783:                if (yych != '=') goto yy255;
        !          3784:                YYDEBUG(280, *YYCURSOR);
        !          3785:                ++YYCURSOR;
        !          3786:                YYDEBUG(281, *YYCURSOR);
        !          3787:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3788: #line 1197 "Zend/zend_language_scanner.l"
        !          3789:                {
        !          3790:        return T_IS_NOT_IDENTICAL;
        !          3791: }
        !          3792: #line 3793 "Zend/zend_language_scanner.c"
        !          3793: yy282:
        !          3794:                YYDEBUG(282, *YYCURSOR);
        !          3795:                ++YYCURSOR;
        !          3796:                YYDEBUG(283, *YYCURSOR);
        !          3797:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3798: #line 1217 "Zend/zend_language_scanner.l"
        !          3799:                {
        !          3800:        return T_PLUS_EQUAL;
        !          3801: }
        !          3802: #line 3803 "Zend/zend_language_scanner.c"
        !          3803: yy284:
        !          3804:                YYDEBUG(284, *YYCURSOR);
        !          3805:                ++YYCURSOR;
        !          3806:                YYDEBUG(285, *YYCURSOR);
        !          3807:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3808: #line 1185 "Zend/zend_language_scanner.l"
        !          3809:                {
        !          3810:        return T_INC;
        !          3811: }
        !          3812: #line 3813 "Zend/zend_language_scanner.c"
        !          3813: yy286:
        !          3814:                YYDEBUG(286, *YYCURSOR);
        !          3815:                yych = *++YYCURSOR;
        !          3816:                if (yych == 'S') goto yy287;
        !          3817:                if (yych != 's') goto yy186;
        !          3818: yy287:
        !          3819:                YYDEBUG(287, *YYCURSOR);
        !          3820:                yych = *++YYCURSOR;
        !          3821:                if (yych == 'T') goto yy288;
        !          3822:                if (yych != 't') goto yy186;
        !          3823: yy288:
        !          3824:                YYDEBUG(288, *YYCURSOR);
        !          3825:                ++YYCURSOR;
        !          3826:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          3827:                        goto yy185;
        !          3828:                }
        !          3829:                YYDEBUG(289, *YYCURSOR);
        !          3830:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3831: #line 1177 "Zend/zend_language_scanner.l"
        !          3832:                {
        !          3833:        return T_LIST;
        !          3834: }
        !          3835: #line 3836 "Zend/zend_language_scanner.c"
        !          3836: yy290:
        !          3837:                YYDEBUG(290, *YYCURSOR);
        !          3838:                ++YYCURSOR;
        !          3839:                if ((yych = *YYCURSOR) == '=') goto yy294;
        !          3840:                YYDEBUG(291, *YYCURSOR);
        !          3841:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3842: #line 1201 "Zend/zend_language_scanner.l"
        !          3843:                {
        !          3844:        return T_IS_EQUAL;
        !          3845: }
        !          3846: #line 3847 "Zend/zend_language_scanner.c"
        !          3847: yy292:
        !          3848:                YYDEBUG(292, *YYCURSOR);
        !          3849:                ++YYCURSOR;
        !          3850:                YYDEBUG(293, *YYCURSOR);
        !          3851:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3852: #line 1173 "Zend/zend_language_scanner.l"
        !          3853:                {
        !          3854:        return T_DOUBLE_ARROW;
        !          3855: }
        !          3856: #line 3857 "Zend/zend_language_scanner.c"
        !          3857: yy294:
        !          3858:                YYDEBUG(294, *YYCURSOR);
        !          3859:                ++YYCURSOR;
        !          3860:                YYDEBUG(295, *YYCURSOR);
        !          3861:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3862: #line 1193 "Zend/zend_language_scanner.l"
        !          3863:                {
        !          3864:        return T_IS_IDENTICAL;
        !          3865: }
        !          3866: #line 3867 "Zend/zend_language_scanner.c"
        !          3867: yy296:
        !          3868:                YYDEBUG(296, *YYCURSOR);
        !          3869:                yych = *++YYCURSOR;
        !          3870:                YYDEBUG(-1, yych);
        !          3871:                switch (yych) {
        !          3872:                case 'C':
        !          3873:                case 'c':       goto yy298;
        !          3874:                case 'D':
        !          3875:                case 'd':       goto yy302;
        !          3876:                case 'F':
        !          3877:                case 'f':       goto yy299;
        !          3878:                case 'H':
        !          3879:                case 'h':       goto yy297;
        !          3880:                case 'L':
        !          3881:                case 'l':       goto yy301;
        !          3882:                case 'M':
        !          3883:                case 'm':       goto yy300;
        !          3884:                case 'N':
        !          3885:                case 'n':       goto yy303;
        !          3886:                default:        goto yy186;
        !          3887:                }
        !          3888: yy297:
        !          3889:                YYDEBUG(297, *YYCURSOR);
        !          3890:                yych = *++YYCURSOR;
        !          3891:                if (yych == 'A') goto yy357;
        !          3892:                if (yych == 'a') goto yy357;
        !          3893:                goto yy186;
        !          3894: yy298:
        !          3895:                YYDEBUG(298, *YYCURSOR);
        !          3896:                yych = *++YYCURSOR;
        !          3897:                if (yych == 'L') goto yy350;
        !          3898:                if (yych == 'l') goto yy350;
        !          3899:                goto yy186;
        !          3900: yy299:
        !          3901:                YYDEBUG(299, *YYCURSOR);
        !          3902:                yych = *++YYCURSOR;
        !          3903:                if (yych <= 'U') {
        !          3904:                        if (yych == 'I') goto yy334;
        !          3905:                        if (yych <= 'T') goto yy186;
        !          3906:                        goto yy335;
        !          3907:                } else {
        !          3908:                        if (yych <= 'i') {
        !          3909:                                if (yych <= 'h') goto yy186;
        !          3910:                                goto yy334;
        !          3911:                        } else {
        !          3912:                                if (yych == 'u') goto yy335;
        !          3913:                                goto yy186;
        !          3914:                        }
        !          3915:                }
        !          3916: yy300:
        !          3917:                YYDEBUG(300, *YYCURSOR);
        !          3918:                yych = *++YYCURSOR;
        !          3919:                if (yych == 'E') goto yy326;
        !          3920:                if (yych == 'e') goto yy326;
        !          3921:                goto yy186;
        !          3922: yy301:
        !          3923:                YYDEBUG(301, *YYCURSOR);
        !          3924:                yych = *++YYCURSOR;
        !          3925:                if (yych == 'I') goto yy320;
        !          3926:                if (yych == 'i') goto yy320;
        !          3927:                goto yy186;
        !          3928: yy302:
        !          3929:                YYDEBUG(302, *YYCURSOR);
        !          3930:                yych = *++YYCURSOR;
        !          3931:                if (yych == 'I') goto yy315;
        !          3932:                if (yych == 'i') goto yy315;
        !          3933:                goto yy186;
        !          3934: yy303:
        !          3935:                YYDEBUG(303, *YYCURSOR);
        !          3936:                yych = *++YYCURSOR;
        !          3937:                if (yych == 'A') goto yy304;
        !          3938:                if (yych != 'a') goto yy186;
        !          3939: yy304:
        !          3940:                YYDEBUG(304, *YYCURSOR);
        !          3941:                yych = *++YYCURSOR;
        !          3942:                if (yych == 'M') goto yy305;
        !          3943:                if (yych != 'm') goto yy186;
        !          3944: yy305:
        !          3945:                YYDEBUG(305, *YYCURSOR);
        !          3946:                yych = *++YYCURSOR;
        !          3947:                if (yych == 'E') goto yy306;
        !          3948:                if (yych != 'e') goto yy186;
        !          3949: yy306:
        !          3950:                YYDEBUG(306, *YYCURSOR);
        !          3951:                yych = *++YYCURSOR;
        !          3952:                if (yych == 'S') goto yy307;
        !          3953:                if (yych != 's') goto yy186;
        !          3954: yy307:
        !          3955:                YYDEBUG(307, *YYCURSOR);
        !          3956:                yych = *++YYCURSOR;
        !          3957:                if (yych == 'P') goto yy308;
        !          3958:                if (yych != 'p') goto yy186;
        !          3959: yy308:
        !          3960:                YYDEBUG(308, *YYCURSOR);
        !          3961:                yych = *++YYCURSOR;
        !          3962:                if (yych == 'A') goto yy309;
        !          3963:                if (yych != 'a') goto yy186;
        !          3964: yy309:
        !          3965:                YYDEBUG(309, *YYCURSOR);
        !          3966:                yych = *++YYCURSOR;
        !          3967:                if (yych == 'C') goto yy310;
        !          3968:                if (yych != 'c') goto yy186;
        !          3969: yy310:
        !          3970:                YYDEBUG(310, *YYCURSOR);
        !          3971:                yych = *++YYCURSOR;
        !          3972:                if (yych == 'E') goto yy311;
        !          3973:                if (yych != 'e') goto yy186;
        !          3974: yy311:
        !          3975:                YYDEBUG(311, *YYCURSOR);
        !          3976:                yych = *++YYCURSOR;
        !          3977:                if (yych != '_') goto yy186;
        !          3978:                YYDEBUG(312, *YYCURSOR);
        !          3979:                yych = *++YYCURSOR;
        !          3980:                if (yych != '_') goto yy186;
        !          3981:                YYDEBUG(313, *YYCURSOR);
        !          3982:                ++YYCURSOR;
        !          3983:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          3984:                        goto yy185;
        !          3985:                }
        !          3986:                YYDEBUG(314, *YYCURSOR);
        !          3987:                yyleng = YYCURSOR - SCNG(yy_text);
        !          3988: #line 1497 "Zend/zend_language_scanner.l"
        !          3989:                {
        !          3990:        if (CG(current_namespace)) {
        !          3991:                *zendlval = *CG(current_namespace);
        !          3992:                zval_copy_ctor(zendlval);
        !          3993:        } else {
        !          3994:                ZVAL_EMPTY_STRING(zendlval);
        !          3995:        }
        !          3996:        return T_NS_C;
        !          3997: }
        !          3998: #line 3999 "Zend/zend_language_scanner.c"
        !          3999: yy315:
        !          4000:                YYDEBUG(315, *YYCURSOR);
        !          4001:                yych = *++YYCURSOR;
        !          4002:                if (yych == 'R') goto yy316;
        !          4003:                if (yych != 'r') goto yy186;
        !          4004: yy316:
        !          4005:                YYDEBUG(316, *YYCURSOR);
        !          4006:                yych = *++YYCURSOR;
        !          4007:                if (yych != '_') goto yy186;
        !          4008:                YYDEBUG(317, *YYCURSOR);
        !          4009:                yych = *++YYCURSOR;
        !          4010:                if (yych != '_') goto yy186;
        !          4011:                YYDEBUG(318, *YYCURSOR);
        !          4012:                ++YYCURSOR;
        !          4013:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          4014:                        goto yy185;
        !          4015:                }
        !          4016:                YYDEBUG(319, *YYCURSOR);
        !          4017:                yyleng = YYCURSOR - SCNG(yy_text);
        !          4018: #line 1470 "Zend/zend_language_scanner.l"
        !          4019:                {
        !          4020:        char *filename = zend_get_compiled_filename(TSRMLS_C);
        !          4021:        const size_t filename_len = strlen(filename);
        !          4022:        char *dirname;
        !          4023: 
        !          4024:        if (!filename) {
        !          4025:                filename = "";
        !          4026:        }
        !          4027: 
        !          4028:        dirname = estrndup(filename, filename_len);
        !          4029:        zend_dirname(dirname, filename_len);
        !          4030: 
        !          4031:        if (strcmp(dirname, ".") == 0) {
        !          4032:                dirname = erealloc(dirname, MAXPATHLEN);
        !          4033: #if HAVE_GETCWD
        !          4034:                VCWD_GETCWD(dirname, MAXPATHLEN);
        !          4035: #elif HAVE_GETWD
        !          4036:                VCWD_GETWD(dirname);
        !          4037: #endif
        !          4038:        }
        !          4039: 
        !          4040:        zendlval->value.str.len = strlen(dirname);
        !          4041:        zendlval->value.str.val = dirname;
        !          4042:        zendlval->type = IS_STRING;
        !          4043:        return T_DIR;
        !          4044: }
        !          4045: #line 4046 "Zend/zend_language_scanner.c"
        !          4046: yy320:
        !          4047:                YYDEBUG(320, *YYCURSOR);
        !          4048:                yych = *++YYCURSOR;
        !          4049:                if (yych == 'N') goto yy321;
        !          4050:                if (yych != 'n') goto yy186;
        !          4051: yy321:
        !          4052:                YYDEBUG(321, *YYCURSOR);
        !          4053:                yych = *++YYCURSOR;
        !          4054:                if (yych == 'E') goto yy322;
        !          4055:                if (yych != 'e') goto yy186;
        !          4056: yy322:
        !          4057:                YYDEBUG(322, *YYCURSOR);
        !          4058:                yych = *++YYCURSOR;
        !          4059:                if (yych != '_') goto yy186;
        !          4060:                YYDEBUG(323, *YYCURSOR);
        !          4061:                yych = *++YYCURSOR;
        !          4062:                if (yych != '_') goto yy186;
        !          4063:                YYDEBUG(324, *YYCURSOR);
        !          4064:                ++YYCURSOR;
        !          4065:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          4066:                        goto yy185;
        !          4067:                }
        !          4068:                YYDEBUG(325, *YYCURSOR);
        !          4069:                yyleng = YYCURSOR - SCNG(yy_text);
        !          4070: #line 1452 "Zend/zend_language_scanner.l"
        !          4071:                {
        !          4072:        zendlval->value.lval = CG(zend_lineno);
        !          4073:        zendlval->type = IS_LONG;
        !          4074:        return T_LINE;
        !          4075: }
        !          4076: #line 4077 "Zend/zend_language_scanner.c"
        !          4077: yy326:
        !          4078:                YYDEBUG(326, *YYCURSOR);
        !          4079:                yych = *++YYCURSOR;
        !          4080:                if (yych == 'T') goto yy327;
        !          4081:                if (yych != 't') goto yy186;
        !          4082: yy327:
        !          4083:                YYDEBUG(327, *YYCURSOR);
        !          4084:                yych = *++YYCURSOR;
        !          4085:                if (yych == 'H') goto yy328;
        !          4086:                if (yych != 'h') goto yy186;
        !          4087: yy328:
        !          4088:                YYDEBUG(328, *YYCURSOR);
        !          4089:                yych = *++YYCURSOR;
        !          4090:                if (yych == 'O') goto yy329;
        !          4091:                if (yych != 'o') goto yy186;
        !          4092: yy329:
        !          4093:                YYDEBUG(329, *YYCURSOR);
        !          4094:                yych = *++YYCURSOR;
        !          4095:                if (yych == 'D') goto yy330;
        !          4096:                if (yych != 'd') goto yy186;
        !          4097: yy330:
        !          4098:                YYDEBUG(330, *YYCURSOR);
        !          4099:                yych = *++YYCURSOR;
        !          4100:                if (yych != '_') goto yy186;
        !          4101:                YYDEBUG(331, *YYCURSOR);
        !          4102:                yych = *++YYCURSOR;
        !          4103:                if (yych != '_') goto yy186;
        !          4104:                YYDEBUG(332, *YYCURSOR);
        !          4105:                ++YYCURSOR;
        !          4106:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          4107:                        goto yy185;
        !          4108:                }
        !          4109:                YYDEBUG(333, *YYCURSOR);
        !          4110:                yyleng = YYCURSOR - SCNG(yy_text);
        !          4111: #line 1431 "Zend/zend_language_scanner.l"
        !          4112:                {
        !          4113:        char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL;
        !          4114:        char *func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL;
        !          4115:        size_t len = 0;
        !          4116: 
        !          4117:        if (class_name) {
        !          4118:                len += strlen(class_name) + 2;
        !          4119:        }
        !          4120:        if (func_name) {
        !          4121:                len += strlen(func_name);
        !          4122:        }
        !          4123: 
        !          4124:        zendlval->value.str.len = zend_spprintf(&zendlval->value.str.val, 0, "%s%s%s", 
        !          4125:                class_name ? class_name : "",
        !          4126:                class_name && func_name ? "::" : "",
        !          4127:                func_name ? func_name : ""
        !          4128:                );
        !          4129:        zendlval->type = IS_STRING;
        !          4130:        return T_METHOD_C;
        !          4131: }
        !          4132: #line 4133 "Zend/zend_language_scanner.c"
        !          4133: yy334:
        !          4134:                YYDEBUG(334, *YYCURSOR);
        !          4135:                yych = *++YYCURSOR;
        !          4136:                if (yych == 'L') goto yy345;
        !          4137:                if (yych == 'l') goto yy345;
        !          4138:                goto yy186;
        !          4139: yy335:
        !          4140:                YYDEBUG(335, *YYCURSOR);
        !          4141:                yych = *++YYCURSOR;
        !          4142:                if (yych == 'N') goto yy336;
        !          4143:                if (yych != 'n') goto yy186;
        !          4144: yy336:
        !          4145:                YYDEBUG(336, *YYCURSOR);
        !          4146:                yych = *++YYCURSOR;
        !          4147:                if (yych == 'C') goto yy337;
        !          4148:                if (yych != 'c') goto yy186;
        !          4149: yy337:
        !          4150:                YYDEBUG(337, *YYCURSOR);
        !          4151:                yych = *++YYCURSOR;
        !          4152:                if (yych == 'T') goto yy338;
        !          4153:                if (yych != 't') goto yy186;
        !          4154: yy338:
        !          4155:                YYDEBUG(338, *YYCURSOR);
        !          4156:                yych = *++YYCURSOR;
        !          4157:                if (yych == 'I') goto yy339;
        !          4158:                if (yych != 'i') goto yy186;
        !          4159: yy339:
        !          4160:                YYDEBUG(339, *YYCURSOR);
        !          4161:                yych = *++YYCURSOR;
        !          4162:                if (yych == 'O') goto yy340;
        !          4163:                if (yych != 'o') goto yy186;
        !          4164: yy340:
        !          4165:                YYDEBUG(340, *YYCURSOR);
        !          4166:                yych = *++YYCURSOR;
        !          4167:                if (yych == 'N') goto yy341;
        !          4168:                if (yych != 'n') goto yy186;
        !          4169: yy341:
        !          4170:                YYDEBUG(341, *YYCURSOR);
        !          4171:                yych = *++YYCURSOR;
        !          4172:                if (yych != '_') goto yy186;
        !          4173:                YYDEBUG(342, *YYCURSOR);
        !          4174:                yych = *++YYCURSOR;
        !          4175:                if (yych != '_') goto yy186;
        !          4176:                YYDEBUG(343, *YYCURSOR);
        !          4177:                ++YYCURSOR;
        !          4178:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          4179:                        goto yy185;
        !          4180:                }
        !          4181:                YYDEBUG(344, *YYCURSOR);
        !          4182:                yyleng = YYCURSOR - SCNG(yy_text);
        !          4183: #line 1415 "Zend/zend_language_scanner.l"
        !          4184:                {
        !          4185:        char *func_name = NULL;
        !          4186: 
        !          4187:        if (CG(active_op_array)) {
        !          4188:                func_name = CG(active_op_array)->function_name;
        !          4189:        }
        !          4190: 
        !          4191:        if (!func_name) {
        !          4192:                func_name = "";
        !          4193:        }
        !          4194:        zendlval->value.str.len = strlen(func_name);
        !          4195:        zendlval->value.str.val = estrndup(func_name, zendlval->value.str.len);
        !          4196:        zendlval->type = IS_STRING;
        !          4197:        return T_FUNC_C;
        !          4198: }
        !          4199: #line 4200 "Zend/zend_language_scanner.c"
        !          4200: yy345:
        !          4201:                YYDEBUG(345, *YYCURSOR);
        !          4202:                yych = *++YYCURSOR;
        !          4203:                if (yych == 'E') goto yy346;
        !          4204:                if (yych != 'e') goto yy186;
        !          4205: yy346:
        !          4206:                YYDEBUG(346, *YYCURSOR);
        !          4207:                yych = *++YYCURSOR;
        !          4208:                if (yych != '_') goto yy186;
        !          4209:                YYDEBUG(347, *YYCURSOR);
        !          4210:                yych = *++YYCURSOR;
        !          4211:                if (yych != '_') goto yy186;
        !          4212:                YYDEBUG(348, *YYCURSOR);
        !          4213:                ++YYCURSOR;
        !          4214:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          4215:                        goto yy185;
        !          4216:                }
        !          4217:                YYDEBUG(349, *YYCURSOR);
        !          4218:                yyleng = YYCURSOR - SCNG(yy_text);
        !          4219: #line 1458 "Zend/zend_language_scanner.l"
        !          4220:                {
        !          4221:        char *filename = zend_get_compiled_filename(TSRMLS_C);
        !          4222: 
        !          4223:        if (!filename) {
        !          4224:                filename = "";
        !          4225:        }
        !          4226:        zendlval->value.str.len = strlen(filename);
        !          4227:        zendlval->value.str.val = estrndup(filename, zendlval->value.str.len);
        !          4228:        zendlval->type = IS_STRING;
        !          4229:        return T_FILE;
        !          4230: }
        !          4231: #line 4232 "Zend/zend_language_scanner.c"
        !          4232: yy350:
        !          4233:                YYDEBUG(350, *YYCURSOR);
        !          4234:                yych = *++YYCURSOR;
        !          4235:                if (yych == 'A') goto yy351;
        !          4236:                if (yych != 'a') goto yy186;
        !          4237: yy351:
        !          4238:                YYDEBUG(351, *YYCURSOR);
        !          4239:                yych = *++YYCURSOR;
        !          4240:                if (yych == 'S') goto yy352;
        !          4241:                if (yych != 's') goto yy186;
        !          4242: yy352:
        !          4243:                YYDEBUG(352, *YYCURSOR);
        !          4244:                yych = *++YYCURSOR;
        !          4245:                if (yych == 'S') goto yy353;
        !          4246:                if (yych != 's') goto yy186;
        !          4247: yy353:
        !          4248:                YYDEBUG(353, *YYCURSOR);
        !          4249:                yych = *++YYCURSOR;
        !          4250:                if (yych != '_') goto yy186;
        !          4251:                YYDEBUG(354, *YYCURSOR);
        !          4252:                yych = *++YYCURSOR;
        !          4253:                if (yych != '_') goto yy186;
        !          4254:                YYDEBUG(355, *YYCURSOR);
        !          4255:                ++YYCURSOR;
        !          4256:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          4257:                        goto yy185;
        !          4258:                }
        !          4259:                YYDEBUG(356, *YYCURSOR);
        !          4260:                yyleng = YYCURSOR - SCNG(yy_text);
        !          4261: #line 1399 "Zend/zend_language_scanner.l"
        !          4262:                {
        !          4263:        char *class_name = NULL;
        !          4264: 
        !          4265:        if (CG(active_class_entry)) {
        !          4266:                class_name = CG(active_class_entry)->name;
        !          4267:        }
        !          4268: 
        !          4269:        if (!class_name) {
        !          4270:                class_name = "";
        !          4271:        }
        !          4272:        zendlval->value.str.len = strlen(class_name);
        !          4273:        zendlval->value.str.val = estrndup(class_name, zendlval->value.str.len);
        !          4274:        zendlval->type = IS_STRING;
        !          4275:        return T_CLASS_C;
        !          4276: }
        !          4277: #line 4278 "Zend/zend_language_scanner.c"
        !          4278: yy357:
        !          4279:                YYDEBUG(357, *YYCURSOR);
        !          4280:                yych = *++YYCURSOR;
        !          4281:                if (yych == 'L') goto yy358;
        !          4282:                if (yych != 'l') goto yy186;
        !          4283: yy358:
        !          4284:                YYDEBUG(358, *YYCURSOR);
        !          4285:                yych = *++YYCURSOR;
        !          4286:                if (yych == 'T') goto yy359;
        !          4287:                if (yych != 't') goto yy186;
        !          4288: yy359:
        !          4289:                YYDEBUG(359, *YYCURSOR);
        !          4290:                yych = *++YYCURSOR;
        !          4291:                if (yych != '_') goto yy186;
        !          4292:                YYDEBUG(360, *YYCURSOR);
        !          4293:                yych = *++YYCURSOR;
        !          4294:                if (yych == 'C') goto yy361;
        !          4295:                if (yych != 'c') goto yy186;
        !          4296: yy361:
        !          4297:                YYDEBUG(361, *YYCURSOR);
        !          4298:                yych = *++YYCURSOR;
        !          4299:                if (yych == 'O') goto yy362;
        !          4300:                if (yych != 'o') goto yy186;
        !          4301: yy362:
        !          4302:                YYDEBUG(362, *YYCURSOR);
        !          4303:                yych = *++YYCURSOR;
        !          4304:                if (yych == 'M') goto yy363;
        !          4305:                if (yych != 'm') goto yy186;
        !          4306: yy363:
        !          4307:                YYDEBUG(363, *YYCURSOR);
        !          4308:                yych = *++YYCURSOR;
        !          4309:                if (yych == 'P') goto yy364;
        !          4310:                if (yych != 'p') goto yy186;
        !          4311: yy364:
        !          4312:                YYDEBUG(364, *YYCURSOR);
        !          4313:                yych = *++YYCURSOR;
        !          4314:                if (yych == 'I') goto yy365;
        !          4315:                if (yych != 'i') goto yy186;
        !          4316: yy365:
        !          4317:                YYDEBUG(365, *YYCURSOR);
        !          4318:                yych = *++YYCURSOR;
        !          4319:                if (yych == 'L') goto yy366;
        !          4320:                if (yych != 'l') goto yy186;
        !          4321: yy366:
        !          4322:                YYDEBUG(366, *YYCURSOR);
        !          4323:                yych = *++YYCURSOR;
        !          4324:                if (yych == 'E') goto yy367;
        !          4325:                if (yych != 'e') goto yy186;
        !          4326: yy367:
        !          4327:                YYDEBUG(367, *YYCURSOR);
        !          4328:                yych = *++YYCURSOR;
        !          4329:                if (yych == 'R') goto yy368;
        !          4330:                if (yych != 'r') goto yy186;
        !          4331: yy368:
        !          4332:                YYDEBUG(368, *YYCURSOR);
        !          4333:                ++YYCURSOR;
        !          4334:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          4335:                        goto yy185;
        !          4336:                }
        !          4337:                YYDEBUG(369, *YYCURSOR);
        !          4338:                yyleng = YYCURSOR - SCNG(yy_text);
        !          4339: #line 1141 "Zend/zend_language_scanner.l"
        !          4340:                {
        !          4341:        return T_HALT_COMPILER;
        !          4342: }
        !          4343: #line 4344 "Zend/zend_language_scanner.c"
        !          4344: yy370:
        !          4345:                YYDEBUG(370, *YYCURSOR);
        !          4346:                yych = *++YYCURSOR;
        !          4347:                if (yych == 'S') goto yy374;
        !          4348:                if (yych == 's') goto yy374;
        !          4349:                goto yy186;
        !          4350: yy371:
        !          4351:                YYDEBUG(371, *YYCURSOR);
        !          4352:                yych = *++YYCURSOR;
        !          4353:                if (yych == 'E') goto yy372;
        !          4354:                if (yych != 'e') goto yy186;
        !          4355: yy372:
        !          4356:                YYDEBUG(372, *YYCURSOR);
        !          4357:                ++YYCURSOR;
        !          4358:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          4359:                        goto yy185;
        !          4360:                }
        !          4361:                YYDEBUG(373, *YYCURSOR);
        !          4362:                yyleng = YYCURSOR - SCNG(yy_text);
        !          4363: #line 1125 "Zend/zend_language_scanner.l"
        !          4364:                {
        !          4365:        return T_USE;
        !          4366: }
        !          4367: #line 4368 "Zend/zend_language_scanner.c"
        !          4368: yy374:
        !          4369:                YYDEBUG(374, *YYCURSOR);
        !          4370:                yych = *++YYCURSOR;
        !          4371:                if (yych == 'E') goto yy375;
        !          4372:                if (yych != 'e') goto yy186;
        !          4373: yy375:
        !          4374:                YYDEBUG(375, *YYCURSOR);
        !          4375:                yych = *++YYCURSOR;
        !          4376:                if (yych == 'T') goto yy376;
        !          4377:                if (yych != 't') goto yy186;
        !          4378: yy376:
        !          4379:                YYDEBUG(376, *YYCURSOR);
        !          4380:                ++YYCURSOR;
        !          4381:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          4382:                        goto yy185;
        !          4383:                }
        !          4384:                YYDEBUG(377, *YYCURSOR);
        !          4385:                yyleng = YYCURSOR - SCNG(yy_text);
        !          4386: #line 1169 "Zend/zend_language_scanner.l"
        !          4387:                {
        !          4388:        return T_UNSET;
        !          4389: }
        !          4390: #line 4391 "Zend/zend_language_scanner.c"
        !          4391: yy378:
        !          4392:                YYDEBUG(378, *YYCURSOR);
        !          4393:                ++YYCURSOR;
        !          4394:                YYFILL(7);
        !          4395:                yych = *YYCURSOR;
        !          4396: yy379:
        !          4397:                YYDEBUG(379, *YYCURSOR);
        !          4398:                if (yych <= 'S') {
        !          4399:                        if (yych <= 'D') {
        !          4400:                                if (yych <= ' ') {
        !          4401:                                        if (yych == '\t') goto yy378;
        !          4402:                                        if (yych <= 0x1F) goto yy193;
        !          4403:                                        goto yy378;
        !          4404:                                } else {
        !          4405:                                        if (yych <= 'A') {
        !          4406:                                                if (yych <= '@') goto yy193;
        !          4407:                                                goto yy383;
        !          4408:                                        } else {
        !          4409:                                                if (yych <= 'B') goto yy381;
        !          4410:                                                if (yych <= 'C') goto yy193;
        !          4411:                                                goto yy386;
        !          4412:                                        }
        !          4413:                                }
        !          4414:                        } else {
        !          4415:                                if (yych <= 'I') {
        !          4416:                                        if (yych == 'F') goto yy387;
        !          4417:                                        if (yych <= 'H') goto yy193;
        !          4418:                                        goto yy388;
        !          4419:                                } else {
        !          4420:                                        if (yych <= 'O') {
        !          4421:                                                if (yych <= 'N') goto yy193;
        !          4422:                                                goto yy382;
        !          4423:                                        } else {
        !          4424:                                                if (yych <= 'Q') goto yy193;
        !          4425:                                                if (yych <= 'R') goto yy385;
        !          4426:                                                goto yy384;
        !          4427:                                        }
        !          4428:                                }
        !          4429:                        }
        !          4430:                } else {
        !          4431:                        if (yych <= 'f') {
        !          4432:                                if (yych <= 'a') {
        !          4433:                                        if (yych == 'U') goto yy380;
        !          4434:                                        if (yych <= '`') goto yy193;
        !          4435:                                        goto yy383;
        !          4436:                                } else {
        !          4437:                                        if (yych <= 'c') {
        !          4438:                                                if (yych <= 'b') goto yy381;
        !          4439:                                                goto yy193;
        !          4440:                                        } else {
        !          4441:                                                if (yych <= 'd') goto yy386;
        !          4442:                                                if (yych <= 'e') goto yy193;
        !          4443:                                                goto yy387;
        !          4444:                                        }
        !          4445:                                }
        !          4446:                        } else {
        !          4447:                                if (yych <= 'q') {
        !          4448:                                        if (yych <= 'i') {
        !          4449:                                                if (yych <= 'h') goto yy193;
        !          4450:                                                goto yy388;
        !          4451:                                        } else {
        !          4452:                                                if (yych == 'o') goto yy382;
        !          4453:                                                goto yy193;
        !          4454:                                        }
        !          4455:                                } else {
        !          4456:                                        if (yych <= 's') {
        !          4457:                                                if (yych <= 'r') goto yy385;
        !          4458:                                                goto yy384;
        !          4459:                                        } else {
        !          4460:                                                if (yych != 'u') goto yy193;
        !          4461:                                        }
        !          4462:                                }
        !          4463:                        }
        !          4464:                }
        !          4465: yy380:
        !          4466:                YYDEBUG(380, *YYCURSOR);
        !          4467:                yych = *++YYCURSOR;
        !          4468:                if (yych == 'N') goto yy451;
        !          4469:                if (yych == 'n') goto yy451;
        !          4470:                goto yy193;
        !          4471: yy381:
        !          4472:                YYDEBUG(381, *YYCURSOR);
        !          4473:                yych = *++YYCURSOR;
        !          4474:                if (yych <= 'O') {
        !          4475:                        if (yych == 'I') goto yy434;
        !          4476:                        if (yych <= 'N') goto yy193;
        !          4477:                        goto yy435;
        !          4478:                } else {
        !          4479:                        if (yych <= 'i') {
        !          4480:                                if (yych <= 'h') goto yy193;
        !          4481:                                goto yy434;
        !          4482:                        } else {
        !          4483:                                if (yych == 'o') goto yy435;
        !          4484:                                goto yy193;
        !          4485:                        }
        !          4486:                }
        !          4487: yy382:
        !          4488:                YYDEBUG(382, *YYCURSOR);
        !          4489:                yych = *++YYCURSOR;
        !          4490:                if (yych == 'B') goto yy426;
        !          4491:                if (yych == 'b') goto yy426;
        !          4492:                goto yy193;
        !          4493: yy383:
        !          4494:                YYDEBUG(383, *YYCURSOR);
        !          4495:                yych = *++YYCURSOR;
        !          4496:                if (yych == 'R') goto yy419;
        !          4497:                if (yych == 'r') goto yy419;
        !          4498:                goto yy193;
        !          4499: yy384:
        !          4500:                YYDEBUG(384, *YYCURSOR);
        !          4501:                yych = *++YYCURSOR;
        !          4502:                if (yych == 'T') goto yy411;
        !          4503:                if (yych == 't') goto yy411;
        !          4504:                goto yy193;
        !          4505: yy385:
        !          4506:                YYDEBUG(385, *YYCURSOR);
        !          4507:                yych = *++YYCURSOR;
        !          4508:                if (yych == 'E') goto yy409;
        !          4509:                if (yych == 'e') goto yy409;
        !          4510:                goto yy193;
        !          4511: yy386:
        !          4512:                YYDEBUG(386, *YYCURSOR);
        !          4513:                yych = *++YYCURSOR;
        !          4514:                if (yych == 'O') goto yy405;
        !          4515:                if (yych == 'o') goto yy405;
        !          4516:                goto yy193;
        !          4517: yy387:
        !          4518:                YYDEBUG(387, *YYCURSOR);
        !          4519:                yych = *++YYCURSOR;
        !          4520:                if (yych == 'L') goto yy398;
        !          4521:                if (yych == 'l') goto yy398;
        !          4522:                goto yy193;
        !          4523: yy388:
        !          4524:                YYDEBUG(388, *YYCURSOR);
        !          4525:                yych = *++YYCURSOR;
        !          4526:                if (yych == 'N') goto yy389;
        !          4527:                if (yych != 'n') goto yy193;
        !          4528: yy389:
        !          4529:                YYDEBUG(389, *YYCURSOR);
        !          4530:                yych = *++YYCURSOR;
        !          4531:                if (yych == 'T') goto yy390;
        !          4532:                if (yych != 't') goto yy193;
        !          4533: yy390:
        !          4534:                YYDEBUG(390, *YYCURSOR);
        !          4535:                yych = *++YYCURSOR;
        !          4536:                if (yych == 'E') goto yy391;
        !          4537:                if (yych != 'e') goto yy393;
        !          4538: yy391:
        !          4539:                YYDEBUG(391, *YYCURSOR);
        !          4540:                yych = *++YYCURSOR;
        !          4541:                if (yych == 'G') goto yy396;
        !          4542:                if (yych == 'g') goto yy396;
        !          4543:                goto yy193;
        !          4544: yy392:
        !          4545:                YYDEBUG(392, *YYCURSOR);
        !          4546:                ++YYCURSOR;
        !          4547:                YYFILL(1);
        !          4548:                yych = *YYCURSOR;
        !          4549: yy393:
        !          4550:                YYDEBUG(393, *YYCURSOR);
        !          4551:                if (yych <= 0x1F) {
        !          4552:                        if (yych == '\t') goto yy392;
        !          4553:                        goto yy193;
        !          4554:                } else {
        !          4555:                        if (yych <= ' ') goto yy392;
        !          4556:                        if (yych != ')') goto yy193;
        !          4557:                }
        !          4558:                YYDEBUG(394, *YYCURSOR);
        !          4559:                ++YYCURSOR;
        !          4560:                YYDEBUG(395, *YYCURSOR);
        !          4561:                yyleng = YYCURSOR - SCNG(yy_text);
        !          4562: #line 1069 "Zend/zend_language_scanner.l"
        !          4563:                {
        !          4564:        return T_INT_CAST;
        !          4565: }
        !          4566: #line 4567 "Zend/zend_language_scanner.c"
        !          4567: yy396:
        !          4568:                YYDEBUG(396, *YYCURSOR);
        !          4569:                yych = *++YYCURSOR;
        !          4570:                if (yych == 'E') goto yy397;
        !          4571:                if (yych != 'e') goto yy193;
        !          4572: yy397:
        !          4573:                YYDEBUG(397, *YYCURSOR);
        !          4574:                yych = *++YYCURSOR;
        !          4575:                if (yych == 'R') goto yy392;
        !          4576:                if (yych == 'r') goto yy392;
        !          4577:                goto yy193;
        !          4578: yy398:
        !          4579:                YYDEBUG(398, *YYCURSOR);
        !          4580:                yych = *++YYCURSOR;
        !          4581:                if (yych == 'O') goto yy399;
        !          4582:                if (yych != 'o') goto yy193;
        !          4583: yy399:
        !          4584:                YYDEBUG(399, *YYCURSOR);
        !          4585:                yych = *++YYCURSOR;
        !          4586:                if (yych == 'A') goto yy400;
        !          4587:                if (yych != 'a') goto yy193;
        !          4588: yy400:
        !          4589:                YYDEBUG(400, *YYCURSOR);
        !          4590:                yych = *++YYCURSOR;
        !          4591:                if (yych == 'T') goto yy401;
        !          4592:                if (yych != 't') goto yy193;
        !          4593: yy401:
        !          4594:                YYDEBUG(401, *YYCURSOR);
        !          4595:                ++YYCURSOR;
        !          4596:                YYFILL(1);
        !          4597:                yych = *YYCURSOR;
        !          4598:                YYDEBUG(402, *YYCURSOR);
        !          4599:                if (yych <= 0x1F) {
        !          4600:                        if (yych == '\t') goto yy401;
        !          4601:                        goto yy193;
        !          4602:                } else {
        !          4603:                        if (yych <= ' ') goto yy401;
        !          4604:                        if (yych != ')') goto yy193;
        !          4605:                }
        !          4606:                YYDEBUG(403, *YYCURSOR);
        !          4607:                ++YYCURSOR;
        !          4608:                YYDEBUG(404, *YYCURSOR);
        !          4609:                yyleng = YYCURSOR - SCNG(yy_text);
        !          4610: #line 1073 "Zend/zend_language_scanner.l"
        !          4611:                {
        !          4612:        return T_DOUBLE_CAST;
        !          4613: }
        !          4614: #line 4615 "Zend/zend_language_scanner.c"
        !          4615: yy405:
        !          4616:                YYDEBUG(405, *YYCURSOR);
        !          4617:                yych = *++YYCURSOR;
        !          4618:                if (yych == 'U') goto yy406;
        !          4619:                if (yych != 'u') goto yy193;
        !          4620: yy406:
        !          4621:                YYDEBUG(406, *YYCURSOR);
        !          4622:                yych = *++YYCURSOR;
        !          4623:                if (yych == 'B') goto yy407;
        !          4624:                if (yych != 'b') goto yy193;
        !          4625: yy407:
        !          4626:                YYDEBUG(407, *YYCURSOR);
        !          4627:                yych = *++YYCURSOR;
        !          4628:                if (yych == 'L') goto yy408;
        !          4629:                if (yych != 'l') goto yy193;
        !          4630: yy408:
        !          4631:                YYDEBUG(408, *YYCURSOR);
        !          4632:                yych = *++YYCURSOR;
        !          4633:                if (yych == 'E') goto yy401;
        !          4634:                if (yych == 'e') goto yy401;
        !          4635:                goto yy193;
        !          4636: yy409:
        !          4637:                YYDEBUG(409, *YYCURSOR);
        !          4638:                yych = *++YYCURSOR;
        !          4639:                if (yych == 'A') goto yy410;
        !          4640:                if (yych != 'a') goto yy193;
        !          4641: yy410:
        !          4642:                YYDEBUG(410, *YYCURSOR);
        !          4643:                yych = *++YYCURSOR;
        !          4644:                if (yych == 'L') goto yy401;
        !          4645:                if (yych == 'l') goto yy401;
        !          4646:                goto yy193;
        !          4647: yy411:
        !          4648:                YYDEBUG(411, *YYCURSOR);
        !          4649:                yych = *++YYCURSOR;
        !          4650:                if (yych == 'R') goto yy412;
        !          4651:                if (yych != 'r') goto yy193;
        !          4652: yy412:
        !          4653:                YYDEBUG(412, *YYCURSOR);
        !          4654:                yych = *++YYCURSOR;
        !          4655:                if (yych == 'I') goto yy413;
        !          4656:                if (yych != 'i') goto yy193;
        !          4657: yy413:
        !          4658:                YYDEBUG(413, *YYCURSOR);
        !          4659:                yych = *++YYCURSOR;
        !          4660:                if (yych == 'N') goto yy414;
        !          4661:                if (yych != 'n') goto yy193;
        !          4662: yy414:
        !          4663:                YYDEBUG(414, *YYCURSOR);
        !          4664:                yych = *++YYCURSOR;
        !          4665:                if (yych == 'G') goto yy415;
        !          4666:                if (yych != 'g') goto yy193;
        !          4667: yy415:
        !          4668:                YYDEBUG(415, *YYCURSOR);
        !          4669:                ++YYCURSOR;
        !          4670:                YYFILL(1);
        !          4671:                yych = *YYCURSOR;
        !          4672:                YYDEBUG(416, *YYCURSOR);
        !          4673:                if (yych <= 0x1F) {
        !          4674:                        if (yych == '\t') goto yy415;
        !          4675:                        goto yy193;
        !          4676:                } else {
        !          4677:                        if (yych <= ' ') goto yy415;
        !          4678:                        if (yych != ')') goto yy193;
        !          4679:                }
        !          4680:                YYDEBUG(417, *YYCURSOR);
        !          4681:                ++YYCURSOR;
        !          4682:                YYDEBUG(418, *YYCURSOR);
        !          4683:                yyleng = YYCURSOR - SCNG(yy_text);
        !          4684: #line 1077 "Zend/zend_language_scanner.l"
        !          4685:                {
        !          4686:        return T_STRING_CAST;
        !          4687: }
        !          4688: #line 4689 "Zend/zend_language_scanner.c"
        !          4689: yy419:
        !          4690:                YYDEBUG(419, *YYCURSOR);
        !          4691:                yych = *++YYCURSOR;
        !          4692:                if (yych == 'R') goto yy420;
        !          4693:                if (yych != 'r') goto yy193;
        !          4694: yy420:
        !          4695:                YYDEBUG(420, *YYCURSOR);
        !          4696:                yych = *++YYCURSOR;
        !          4697:                if (yych == 'A') goto yy421;
        !          4698:                if (yych != 'a') goto yy193;
        !          4699: yy421:
        !          4700:                YYDEBUG(421, *YYCURSOR);
        !          4701:                yych = *++YYCURSOR;
        !          4702:                if (yych == 'Y') goto yy422;
        !          4703:                if (yych != 'y') goto yy193;
        !          4704: yy422:
        !          4705:                YYDEBUG(422, *YYCURSOR);
        !          4706:                ++YYCURSOR;
        !          4707:                YYFILL(1);
        !          4708:                yych = *YYCURSOR;
        !          4709:                YYDEBUG(423, *YYCURSOR);
        !          4710:                if (yych <= 0x1F) {
        !          4711:                        if (yych == '\t') goto yy422;
        !          4712:                        goto yy193;
        !          4713:                } else {
        !          4714:                        if (yych <= ' ') goto yy422;
        !          4715:                        if (yych != ')') goto yy193;
        !          4716:                }
        !          4717:                YYDEBUG(424, *YYCURSOR);
        !          4718:                ++YYCURSOR;
        !          4719:                YYDEBUG(425, *YYCURSOR);
        !          4720:                yyleng = YYCURSOR - SCNG(yy_text);
        !          4721: #line 1085 "Zend/zend_language_scanner.l"
        !          4722:                {
        !          4723:        return T_ARRAY_CAST;
        !          4724: }
        !          4725: #line 4726 "Zend/zend_language_scanner.c"
        !          4726: yy426:
        !          4727:                YYDEBUG(426, *YYCURSOR);
        !          4728:                yych = *++YYCURSOR;
        !          4729:                if (yych == 'J') goto yy427;
        !          4730:                if (yych != 'j') goto yy193;
        !          4731: yy427:
        !          4732:                YYDEBUG(427, *YYCURSOR);
        !          4733:                yych = *++YYCURSOR;
        !          4734:                if (yych == 'E') goto yy428;
        !          4735:                if (yych != 'e') goto yy193;
        !          4736: yy428:
        !          4737:                YYDEBUG(428, *YYCURSOR);
        !          4738:                yych = *++YYCURSOR;
        !          4739:                if (yych == 'C') goto yy429;
        !          4740:                if (yych != 'c') goto yy193;
        !          4741: yy429:
        !          4742:                YYDEBUG(429, *YYCURSOR);
        !          4743:                yych = *++YYCURSOR;
        !          4744:                if (yych == 'T') goto yy430;
        !          4745:                if (yych != 't') goto yy193;
        !          4746: yy430:
        !          4747:                YYDEBUG(430, *YYCURSOR);
        !          4748:                ++YYCURSOR;
        !          4749:                YYFILL(1);
        !          4750:                yych = *YYCURSOR;
        !          4751:                YYDEBUG(431, *YYCURSOR);
        !          4752:                if (yych <= 0x1F) {
        !          4753:                        if (yych == '\t') goto yy430;
        !          4754:                        goto yy193;
        !          4755:                } else {
        !          4756:                        if (yych <= ' ') goto yy430;
        !          4757:                        if (yych != ')') goto yy193;
        !          4758:                }
        !          4759:                YYDEBUG(432, *YYCURSOR);
        !          4760:                ++YYCURSOR;
        !          4761:                YYDEBUG(433, *YYCURSOR);
        !          4762:                yyleng = YYCURSOR - SCNG(yy_text);
        !          4763: #line 1089 "Zend/zend_language_scanner.l"
        !          4764:                {
        !          4765:        return T_OBJECT_CAST;
        !          4766: }
        !          4767: #line 4768 "Zend/zend_language_scanner.c"
        !          4768: yy434:
        !          4769:                YYDEBUG(434, *YYCURSOR);
        !          4770:                yych = *++YYCURSOR;
        !          4771:                if (yych == 'N') goto yy444;
        !          4772:                if (yych == 'n') goto yy444;
        !          4773:                goto yy193;
        !          4774: yy435:
        !          4775:                YYDEBUG(435, *YYCURSOR);
        !          4776:                yych = *++YYCURSOR;
        !          4777:                if (yych == 'O') goto yy436;
        !          4778:                if (yych != 'o') goto yy193;
        !          4779: yy436:
        !          4780:                YYDEBUG(436, *YYCURSOR);
        !          4781:                yych = *++YYCURSOR;
        !          4782:                if (yych == 'L') goto yy437;
        !          4783:                if (yych != 'l') goto yy193;
        !          4784: yy437:
        !          4785:                YYDEBUG(437, *YYCURSOR);
        !          4786:                yych = *++YYCURSOR;
        !          4787:                if (yych == 'E') goto yy442;
        !          4788:                if (yych == 'e') goto yy442;
        !          4789:                goto yy439;
        !          4790: yy438:
        !          4791:                YYDEBUG(438, *YYCURSOR);
        !          4792:                ++YYCURSOR;
        !          4793:                YYFILL(1);
        !          4794:                yych = *YYCURSOR;
        !          4795: yy439:
        !          4796:                YYDEBUG(439, *YYCURSOR);
        !          4797:                if (yych <= 0x1F) {
        !          4798:                        if (yych == '\t') goto yy438;
        !          4799:                        goto yy193;
        !          4800:                } else {
        !          4801:                        if (yych <= ' ') goto yy438;
        !          4802:                        if (yych != ')') goto yy193;
        !          4803:                }
        !          4804:                YYDEBUG(440, *YYCURSOR);
        !          4805:                ++YYCURSOR;
        !          4806:                YYDEBUG(441, *YYCURSOR);
        !          4807:                yyleng = YYCURSOR - SCNG(yy_text);
        !          4808: #line 1093 "Zend/zend_language_scanner.l"
        !          4809:                {
        !          4810:        return T_BOOL_CAST;
        !          4811: }
        !          4812: #line 4813 "Zend/zend_language_scanner.c"
        !          4813: yy442:
        !          4814:                YYDEBUG(442, *YYCURSOR);
        !          4815:                yych = *++YYCURSOR;
        !          4816:                if (yych == 'A') goto yy443;
        !          4817:                if (yych != 'a') goto yy193;
        !          4818: yy443:
        !          4819:                YYDEBUG(443, *YYCURSOR);
        !          4820:                yych = *++YYCURSOR;
        !          4821:                if (yych == 'N') goto yy438;
        !          4822:                if (yych == 'n') goto yy438;
        !          4823:                goto yy193;
        !          4824: yy444:
        !          4825:                YYDEBUG(444, *YYCURSOR);
        !          4826:                yych = *++YYCURSOR;
        !          4827:                if (yych == 'A') goto yy445;
        !          4828:                if (yych != 'a') goto yy193;
        !          4829: yy445:
        !          4830:                YYDEBUG(445, *YYCURSOR);
        !          4831:                yych = *++YYCURSOR;
        !          4832:                if (yych == 'R') goto yy446;
        !          4833:                if (yych != 'r') goto yy193;
        !          4834: yy446:
        !          4835:                YYDEBUG(446, *YYCURSOR);
        !          4836:                yych = *++YYCURSOR;
        !          4837:                if (yych == 'Y') goto yy447;
        !          4838:                if (yych != 'y') goto yy193;
        !          4839: yy447:
        !          4840:                YYDEBUG(447, *YYCURSOR);
        !          4841:                ++YYCURSOR;
        !          4842:                YYFILL(1);
        !          4843:                yych = *YYCURSOR;
        !          4844:                YYDEBUG(448, *YYCURSOR);
        !          4845:                if (yych <= 0x1F) {
        !          4846:                        if (yych == '\t') goto yy447;
        !          4847:                        goto yy193;
        !          4848:                } else {
        !          4849:                        if (yych <= ' ') goto yy447;
        !          4850:                        if (yych != ')') goto yy193;
        !          4851:                }
        !          4852:                YYDEBUG(449, *YYCURSOR);
        !          4853:                ++YYCURSOR;
        !          4854:                YYDEBUG(450, *YYCURSOR);
        !          4855:                yyleng = YYCURSOR - SCNG(yy_text);
        !          4856: #line 1081 "Zend/zend_language_scanner.l"
        !          4857:                {
        !          4858:        return T_STRING_CAST;
        !          4859: }
        !          4860: #line 4861 "Zend/zend_language_scanner.c"
        !          4861: yy451:
        !          4862:                YYDEBUG(451, *YYCURSOR);
        !          4863:                yych = *++YYCURSOR;
        !          4864:                if (yych == 'S') goto yy452;
        !          4865:                if (yych != 's') goto yy193;
        !          4866: yy452:
        !          4867:                YYDEBUG(452, *YYCURSOR);
        !          4868:                yych = *++YYCURSOR;
        !          4869:                if (yych == 'E') goto yy453;
        !          4870:                if (yych != 'e') goto yy193;
        !          4871: yy453:
        !          4872:                YYDEBUG(453, *YYCURSOR);
        !          4873:                yych = *++YYCURSOR;
        !          4874:                if (yych == 'T') goto yy454;
        !          4875:                if (yych != 't') goto yy193;
        !          4876: yy454:
        !          4877:                YYDEBUG(454, *YYCURSOR);
        !          4878:                ++YYCURSOR;
        !          4879:                YYFILL(1);
        !          4880:                yych = *YYCURSOR;
        !          4881:                YYDEBUG(455, *YYCURSOR);
        !          4882:                if (yych <= 0x1F) {
        !          4883:                        if (yych == '\t') goto yy454;
        !          4884:                        goto yy193;
        !          4885:                } else {
        !          4886:                        if (yych <= ' ') goto yy454;
        !          4887:                        if (yych != ')') goto yy193;
        !          4888:                }
        !          4889:                YYDEBUG(456, *YYCURSOR);
        !          4890:                ++YYCURSOR;
        !          4891:                YYDEBUG(457, *YYCURSOR);
        !          4892:                yyleng = YYCURSOR - SCNG(yy_text);
        !          4893: #line 1097 "Zend/zend_language_scanner.l"
        !          4894:                {
        !          4895:        return T_UNSET_CAST;
        !          4896: }
        !          4897: #line 4898 "Zend/zend_language_scanner.c"
        !          4898: yy458:
        !          4899:                YYDEBUG(458, *YYCURSOR);
        !          4900:                yych = *++YYCURSOR;
        !          4901:                if (yych == 'R') goto yy459;
        !          4902:                if (yych != 'r') goto yy186;
        !          4903: yy459:
        !          4904:                YYDEBUG(459, *YYCURSOR);
        !          4905:                ++YYCURSOR;
        !          4906:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          4907:                        goto yy185;
        !          4908:                }
        !          4909:                YYDEBUG(460, *YYCURSOR);
        !          4910:                yyleng = YYCURSOR - SCNG(yy_text);
        !          4911: #line 1065 "Zend/zend_language_scanner.l"
        !          4912:                {
        !          4913:        return T_VAR;
        !          4914: }
        !          4915: #line 4916 "Zend/zend_language_scanner.c"
        !          4916: yy461:
        !          4917:                YYDEBUG(461, *YYCURSOR);
        !          4918:                yych = *++YYCURSOR;
        !          4919:                if (yych == 'M') goto yy465;
        !          4920:                if (yych == 'm') goto yy465;
        !          4921:                goto yy186;
        !          4922: yy462:
        !          4923:                YYDEBUG(462, *YYCURSOR);
        !          4924:                yych = *++YYCURSOR;
        !          4925:                if (yych == 'W') goto yy463;
        !          4926:                if (yych != 'w') goto yy186;
        !          4927: yy463:
        !          4928:                YYDEBUG(463, *YYCURSOR);
        !          4929:                ++YYCURSOR;
        !          4930:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          4931:                        goto yy185;
        !          4932:                }
        !          4933:                YYDEBUG(464, *YYCURSOR);
        !          4934:                yyleng = YYCURSOR - SCNG(yy_text);
        !          4935: #line 1057 "Zend/zend_language_scanner.l"
        !          4936:                {
        !          4937:        return T_NEW;
        !          4938: }
        !          4939: #line 4940 "Zend/zend_language_scanner.c"
        !          4940: yy465:
        !          4941:                YYDEBUG(465, *YYCURSOR);
        !          4942:                yych = *++YYCURSOR;
        !          4943:                if (yych == 'E') goto yy466;
        !          4944:                if (yych != 'e') goto yy186;
        !          4945: yy466:
        !          4946:                YYDEBUG(466, *YYCURSOR);
        !          4947:                yych = *++YYCURSOR;
        !          4948:                if (yych == 'S') goto yy467;
        !          4949:                if (yych != 's') goto yy186;
        !          4950: yy467:
        !          4951:                YYDEBUG(467, *YYCURSOR);
        !          4952:                yych = *++YYCURSOR;
        !          4953:                if (yych == 'P') goto yy468;
        !          4954:                if (yych != 'p') goto yy186;
        !          4955: yy468:
        !          4956:                YYDEBUG(468, *YYCURSOR);
        !          4957:                yych = *++YYCURSOR;
        !          4958:                if (yych == 'A') goto yy469;
        !          4959:                if (yych != 'a') goto yy186;
        !          4960: yy469:
        !          4961:                YYDEBUG(469, *YYCURSOR);
        !          4962:                yych = *++YYCURSOR;
        !          4963:                if (yych == 'C') goto yy470;
        !          4964:                if (yych != 'c') goto yy186;
        !          4965: yy470:
        !          4966:                YYDEBUG(470, *YYCURSOR);
        !          4967:                yych = *++YYCURSOR;
        !          4968:                if (yych == 'E') goto yy471;
        !          4969:                if (yych != 'e') goto yy186;
        !          4970: yy471:
        !          4971:                YYDEBUG(471, *YYCURSOR);
        !          4972:                ++YYCURSOR;
        !          4973:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          4974:                        goto yy185;
        !          4975:                }
        !          4976:                YYDEBUG(472, *YYCURSOR);
        !          4977:                yyleng = YYCURSOR - SCNG(yy_text);
        !          4978: #line 1121 "Zend/zend_language_scanner.l"
        !          4979:                {
        !          4980:        return T_NAMESPACE;
        !          4981: }
        !          4982: #line 4983 "Zend/zend_language_scanner.c"
        !          4983: yy473:
        !          4984:                YYDEBUG(473, *YYCURSOR);
        !          4985:                ++YYCURSOR;
        !          4986:                YYDEBUG(474, *YYCURSOR);
        !          4987:                yyleng = YYCURSOR - SCNG(yy_text);
        !          4988: #line 1049 "Zend/zend_language_scanner.l"
        !          4989:                {
        !          4990:        return T_PAAMAYIM_NEKUDOTAYIM;
        !          4991: }
        !          4992: #line 4993 "Zend/zend_language_scanner.c"
        !          4993: yy475:
        !          4994:                YYDEBUG(475, *YYCURSOR);
        !          4995:                ++YYCURSOR;
        !          4996:                YYFILL(1);
        !          4997:                yych = *YYCURSOR;
        !          4998: yy476:
        !          4999:                YYDEBUG(476, *YYCURSOR);
        !          5000:                if (yych <= '\f') {
        !          5001:                        if (yych <= 0x08) goto yy140;
        !          5002:                        if (yych <= '\n') goto yy475;
        !          5003:                        goto yy140;
        !          5004:                } else {
        !          5005:                        if (yych <= '\r') goto yy475;
        !          5006:                        if (yych == ' ') goto yy475;
        !          5007:                        goto yy140;
        !          5008:                }
        !          5009: yy477:
        !          5010:                YYDEBUG(477, *YYCURSOR);
        !          5011:                ++YYCURSOR;
        !          5012:                YYDEBUG(478, *YYCURSOR);
        !          5013:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5014: #line 1221 "Zend/zend_language_scanner.l"
        !          5015:                {
        !          5016:        return T_MINUS_EQUAL;
        !          5017: }
        !          5018: #line 5019 "Zend/zend_language_scanner.c"
        !          5019: yy479:
        !          5020:                YYDEBUG(479, *YYCURSOR);
        !          5021:                ++YYCURSOR;
        !          5022:                YYDEBUG(480, *YYCURSOR);
        !          5023:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5024: #line 1189 "Zend/zend_language_scanner.l"
        !          5025:                {
        !          5026:        return T_DEC;
        !          5027: }
        !          5028: #line 5029 "Zend/zend_language_scanner.c"
        !          5029: yy481:
        !          5030:                YYDEBUG(481, *YYCURSOR);
        !          5031:                ++YYCURSOR;
        !          5032:                YYDEBUG(482, *YYCURSOR);
        !          5033:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5034: #line 1019 "Zend/zend_language_scanner.l"
        !          5035:                {
        !          5036:        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
        !          5037:        return T_OBJECT_OPERATOR;
        !          5038: }
        !          5039: #line 5040 "Zend/zend_language_scanner.c"
        !          5040: yy483:
        !          5041:                YYDEBUG(483, *YYCURSOR);
        !          5042:                yych = *++YYCURSOR;
        !          5043:                if (yych <= 'O') {
        !          5044:                        if (yych == 'I') goto yy490;
        !          5045:                        if (yych <= 'N') goto yy186;
        !          5046:                        goto yy491;
        !          5047:                } else {
        !          5048:                        if (yych <= 'i') {
        !          5049:                                if (yych <= 'h') goto yy186;
        !          5050:                                goto yy490;
        !          5051:                        } else {
        !          5052:                                if (yych == 'o') goto yy491;
        !          5053:                                goto yy186;
        !          5054:                        }
        !          5055:                }
        !          5056: yy484:
        !          5057:                YYDEBUG(484, *YYCURSOR);
        !          5058:                yych = *++YYCURSOR;
        !          5059:                if (yych == 'B') goto yy485;
        !          5060:                if (yych != 'b') goto yy186;
        !          5061: yy485:
        !          5062:                YYDEBUG(485, *YYCURSOR);
        !          5063:                yych = *++YYCURSOR;
        !          5064:                if (yych == 'L') goto yy486;
        !          5065:                if (yych != 'l') goto yy186;
        !          5066: yy486:
        !          5067:                YYDEBUG(486, *YYCURSOR);
        !          5068:                yych = *++YYCURSOR;
        !          5069:                if (yych == 'I') goto yy487;
        !          5070:                if (yych != 'i') goto yy186;
        !          5071: yy487:
        !          5072:                YYDEBUG(487, *YYCURSOR);
        !          5073:                yych = *++YYCURSOR;
        !          5074:                if (yych == 'C') goto yy488;
        !          5075:                if (yych != 'c') goto yy186;
        !          5076: yy488:
        !          5077:                YYDEBUG(488, *YYCURSOR);
        !          5078:                ++YYCURSOR;
        !          5079:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5080:                        goto yy185;
        !          5081:                }
        !          5082:                YYDEBUG(489, *YYCURSOR);
        !          5083:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5084: #line 1165 "Zend/zend_language_scanner.l"
        !          5085:                {
        !          5086:        return T_PUBLIC;
        !          5087: }
        !          5088: #line 5089 "Zend/zend_language_scanner.c"
        !          5089: yy490:
        !          5090:                YYDEBUG(490, *YYCURSOR);
        !          5091:                yych = *++YYCURSOR;
        !          5092:                if (yych <= 'V') {
        !          5093:                        if (yych == 'N') goto yy499;
        !          5094:                        if (yych <= 'U') goto yy186;
        !          5095:                        goto yy500;
        !          5096:                } else {
        !          5097:                        if (yych <= 'n') {
        !          5098:                                if (yych <= 'm') goto yy186;
        !          5099:                                goto yy499;
        !          5100:                        } else {
        !          5101:                                if (yych == 'v') goto yy500;
        !          5102:                                goto yy186;
        !          5103:                        }
        !          5104:                }
        !          5105: yy491:
        !          5106:                YYDEBUG(491, *YYCURSOR);
        !          5107:                yych = *++YYCURSOR;
        !          5108:                if (yych == 'T') goto yy492;
        !          5109:                if (yych != 't') goto yy186;
        !          5110: yy492:
        !          5111:                YYDEBUG(492, *YYCURSOR);
        !          5112:                yych = *++YYCURSOR;
        !          5113:                if (yych == 'E') goto yy493;
        !          5114:                if (yych != 'e') goto yy186;
        !          5115: yy493:
        !          5116:                YYDEBUG(493, *YYCURSOR);
        !          5117:                yych = *++YYCURSOR;
        !          5118:                if (yych == 'C') goto yy494;
        !          5119:                if (yych != 'c') goto yy186;
        !          5120: yy494:
        !          5121:                YYDEBUG(494, *YYCURSOR);
        !          5122:                yych = *++YYCURSOR;
        !          5123:                if (yych == 'T') goto yy495;
        !          5124:                if (yych != 't') goto yy186;
        !          5125: yy495:
        !          5126:                YYDEBUG(495, *YYCURSOR);
        !          5127:                yych = *++YYCURSOR;
        !          5128:                if (yych == 'E') goto yy496;
        !          5129:                if (yych != 'e') goto yy186;
        !          5130: yy496:
        !          5131:                YYDEBUG(496, *YYCURSOR);
        !          5132:                yych = *++YYCURSOR;
        !          5133:                if (yych == 'D') goto yy497;
        !          5134:                if (yych != 'd') goto yy186;
        !          5135: yy497:
        !          5136:                YYDEBUG(497, *YYCURSOR);
        !          5137:                ++YYCURSOR;
        !          5138:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5139:                        goto yy185;
        !          5140:                }
        !          5141:                YYDEBUG(498, *YYCURSOR);
        !          5142:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5143: #line 1161 "Zend/zend_language_scanner.l"
        !          5144:                {
        !          5145:        return T_PROTECTED;
        !          5146: }
        !          5147: #line 5148 "Zend/zend_language_scanner.c"
        !          5148: yy499:
        !          5149:                YYDEBUG(499, *YYCURSOR);
        !          5150:                yych = *++YYCURSOR;
        !          5151:                if (yych == 'T') goto yy505;
        !          5152:                if (yych == 't') goto yy505;
        !          5153:                goto yy186;
        !          5154: yy500:
        !          5155:                YYDEBUG(500, *YYCURSOR);
        !          5156:                yych = *++YYCURSOR;
        !          5157:                if (yych == 'A') goto yy501;
        !          5158:                if (yych != 'a') goto yy186;
        !          5159: yy501:
        !          5160:                YYDEBUG(501, *YYCURSOR);
        !          5161:                yych = *++YYCURSOR;
        !          5162:                if (yych == 'T') goto yy502;
        !          5163:                if (yych != 't') goto yy186;
        !          5164: yy502:
        !          5165:                YYDEBUG(502, *YYCURSOR);
        !          5166:                yych = *++YYCURSOR;
        !          5167:                if (yych == 'E') goto yy503;
        !          5168:                if (yych != 'e') goto yy186;
        !          5169: yy503:
        !          5170:                YYDEBUG(503, *YYCURSOR);
        !          5171:                ++YYCURSOR;
        !          5172:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5173:                        goto yy185;
        !          5174:                }
        !          5175:                YYDEBUG(504, *YYCURSOR);
        !          5176:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5177: #line 1157 "Zend/zend_language_scanner.l"
        !          5178:                {
        !          5179:        return T_PRIVATE;
        !          5180: }
        !          5181: #line 5182 "Zend/zend_language_scanner.c"
        !          5182: yy505:
        !          5183:                YYDEBUG(505, *YYCURSOR);
        !          5184:                ++YYCURSOR;
        !          5185:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5186:                        goto yy185;
        !          5187:                }
        !          5188:                YYDEBUG(506, *YYCURSOR);
        !          5189:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5190: #line 999 "Zend/zend_language_scanner.l"
        !          5191:                {
        !          5192:        return T_PRINT;
        !          5193: }
        !          5194: #line 5195 "Zend/zend_language_scanner.c"
        !          5195: yy507:
        !          5196:                YYDEBUG(507, *YYCURSOR);
        !          5197:                yych = *++YYCURSOR;
        !          5198:                if (yych == 'O') goto yy512;
        !          5199:                if (yych == 'o') goto yy512;
        !          5200:                goto yy186;
        !          5201: yy508:
        !          5202:                YYDEBUG(508, *YYCURSOR);
        !          5203:                yych = *++YYCURSOR;
        !          5204:                if (yych == 'T') goto yy509;
        !          5205:                if (yych != 't') goto yy186;
        !          5206: yy509:
        !          5207:                YYDEBUG(509, *YYCURSOR);
        !          5208:                yych = *++YYCURSOR;
        !          5209:                if (yych == 'O') goto yy510;
        !          5210:                if (yych != 'o') goto yy186;
        !          5211: yy510:
        !          5212:                YYDEBUG(510, *YYCURSOR);
        !          5213:                ++YYCURSOR;
        !          5214:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5215:                        goto yy185;
        !          5216:                }
        !          5217:                YYDEBUG(511, *YYCURSOR);
        !          5218:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5219: #line 991 "Zend/zend_language_scanner.l"
        !          5220:                {
        !          5221:        return T_GOTO;
        !          5222: }
        !          5223: #line 5224 "Zend/zend_language_scanner.c"
        !          5224: yy512:
        !          5225:                YYDEBUG(512, *YYCURSOR);
        !          5226:                yych = *++YYCURSOR;
        !          5227:                if (yych == 'B') goto yy513;
        !          5228:                if (yych != 'b') goto yy186;
        !          5229: yy513:
        !          5230:                YYDEBUG(513, *YYCURSOR);
        !          5231:                yych = *++YYCURSOR;
        !          5232:                if (yych == 'A') goto yy514;
        !          5233:                if (yych != 'a') goto yy186;
        !          5234: yy514:
        !          5235:                YYDEBUG(514, *YYCURSOR);
        !          5236:                yych = *++YYCURSOR;
        !          5237:                if (yych == 'L') goto yy515;
        !          5238:                if (yych != 'l') goto yy186;
        !          5239: yy515:
        !          5240:                YYDEBUG(515, *YYCURSOR);
        !          5241:                ++YYCURSOR;
        !          5242:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5243:                        goto yy185;
        !          5244:                }
        !          5245:                YYDEBUG(516, *YYCURSOR);
        !          5246:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5247: #line 1129 "Zend/zend_language_scanner.l"
        !          5248:                {
        !          5249:        return T_GLOBAL;
        !          5250: }
        !          5251: #line 5252 "Zend/zend_language_scanner.c"
        !          5252: yy517:
        !          5253:                YYDEBUG(517, *YYCURSOR);
        !          5254:                yych = *++YYCURSOR;
        !          5255:                if (yych == '<') goto yy525;
        !          5256:                goto yy193;
        !          5257: yy518:
        !          5258:                YYDEBUG(518, *YYCURSOR);
        !          5259:                yych = *++YYCURSOR;
        !          5260:                goto yy180;
        !          5261: yy519:
        !          5262:                YYDEBUG(519, *YYCURSOR);
        !          5263:                yych = *++YYCURSOR;
        !          5264:                goto yy178;
        !          5265: yy520:
        !          5266:                YYDEBUG(520, *YYCURSOR);
        !          5267:                yych = *++YYCURSOR;
        !          5268:                if (yych == 'E') goto yy521;
        !          5269:                if (yych != 'e') goto yy186;
        !          5270: yy521:
        !          5271:                YYDEBUG(521, *YYCURSOR);
        !          5272:                yych = *++YYCURSOR;
        !          5273:                if (yych == 'A') goto yy522;
        !          5274:                if (yych != 'a') goto yy186;
        !          5275: yy522:
        !          5276:                YYDEBUG(522, *YYCURSOR);
        !          5277:                yych = *++YYCURSOR;
        !          5278:                if (yych == 'K') goto yy523;
        !          5279:                if (yych != 'k') goto yy186;
        !          5280: yy523:
        !          5281:                YYDEBUG(523, *YYCURSOR);
        !          5282:                ++YYCURSOR;
        !          5283:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5284:                        goto yy185;
        !          5285:                }
        !          5286:                YYDEBUG(524, *YYCURSOR);
        !          5287:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5288: #line 983 "Zend/zend_language_scanner.l"
        !          5289:                {
        !          5290:        return T_BREAK;
        !          5291: }
        !          5292: #line 5293 "Zend/zend_language_scanner.c"
        !          5293: yy525:
        !          5294:                YYDEBUG(525, *YYCURSOR);
        !          5295:                yych = *++YYCURSOR;
        !          5296:                if (yych == '<') goto yy265;
        !          5297:                goto yy193;
        !          5298: yy526:
        !          5299:                YYDEBUG(526, *YYCURSOR);
        !          5300:                yych = *++YYCURSOR;
        !          5301:                if (yych == 'A') goto yy533;
        !          5302:                if (yych == 'a') goto yy533;
        !          5303:                goto yy186;
        !          5304: yy527:
        !          5305:                YYDEBUG(527, *YYCURSOR);
        !          5306:                yych = *++YYCURSOR;
        !          5307:                if (yych == 'I') goto yy528;
        !          5308:                if (yych != 'i') goto yy186;
        !          5309: yy528:
        !          5310:                YYDEBUG(528, *YYCURSOR);
        !          5311:                yych = *++YYCURSOR;
        !          5312:                if (yych == 'T') goto yy529;
        !          5313:                if (yych != 't') goto yy186;
        !          5314: yy529:
        !          5315:                YYDEBUG(529, *YYCURSOR);
        !          5316:                yych = *++YYCURSOR;
        !          5317:                if (yych == 'C') goto yy530;
        !          5318:                if (yych != 'c') goto yy186;
        !          5319: yy530:
        !          5320:                YYDEBUG(530, *YYCURSOR);
        !          5321:                yych = *++YYCURSOR;
        !          5322:                if (yych == 'H') goto yy531;
        !          5323:                if (yych != 'h') goto yy186;
        !          5324: yy531:
        !          5325:                YYDEBUG(531, *YYCURSOR);
        !          5326:                ++YYCURSOR;
        !          5327:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5328:                        goto yy185;
        !          5329:                }
        !          5330:                YYDEBUG(532, *YYCURSOR);
        !          5331:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5332: #line 967 "Zend/zend_language_scanner.l"
        !          5333:                {
        !          5334:        return T_SWITCH;
        !          5335: }
        !          5336: #line 5337 "Zend/zend_language_scanner.c"
        !          5337: yy533:
        !          5338:                YYDEBUG(533, *YYCURSOR);
        !          5339:                yych = *++YYCURSOR;
        !          5340:                if (yych == 'T') goto yy534;
        !          5341:                if (yych != 't') goto yy186;
        !          5342: yy534:
        !          5343:                YYDEBUG(534, *YYCURSOR);
        !          5344:                yych = *++YYCURSOR;
        !          5345:                if (yych == 'I') goto yy535;
        !          5346:                if (yych != 'i') goto yy186;
        !          5347: yy535:
        !          5348:                YYDEBUG(535, *YYCURSOR);
        !          5349:                yych = *++YYCURSOR;
        !          5350:                if (yych == 'C') goto yy536;
        !          5351:                if (yych != 'c') goto yy186;
        !          5352: yy536:
        !          5353:                YYDEBUG(536, *YYCURSOR);
        !          5354:                ++YYCURSOR;
        !          5355:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5356:                        goto yy185;
        !          5357:                }
        !          5358:                YYDEBUG(537, *YYCURSOR);
        !          5359:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5360: #line 1145 "Zend/zend_language_scanner.l"
        !          5361:                {
        !          5362:        return T_STATIC;
        !          5363: }
        !          5364: #line 5365 "Zend/zend_language_scanner.c"
        !          5365: yy538:
        !          5366:                YYDEBUG(538, *YYCURSOR);
        !          5367:                yych = *++YYCURSOR;
        !          5368:                if (yych == 'S') goto yy549;
        !          5369:                if (yych == 's') goto yy549;
        !          5370:                goto yy186;
        !          5371: yy539:
        !          5372:                YYDEBUG(539, *YYCURSOR);
        !          5373:                yych = *++YYCURSOR;
        !          5374:                if (yych == 'D') goto yy547;
        !          5375:                if (yych == 'd') goto yy547;
        !          5376:                goto yy186;
        !          5377: yy540:
        !          5378:                YYDEBUG(540, *YYCURSOR);
        !          5379:                yych = *++YYCURSOR;
        !          5380:                if (yych == 'R') goto yy543;
        !          5381:                if (yych == 'r') goto yy543;
        !          5382:                goto yy186;
        !          5383: yy541:
        !          5384:                YYDEBUG(541, *YYCURSOR);
        !          5385:                ++YYCURSOR;
        !          5386:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5387:                        goto yy185;
        !          5388:                }
        !          5389:                YYDEBUG(542, *YYCURSOR);
        !          5390:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5391: #line 963 "Zend/zend_language_scanner.l"
        !          5392:                {
        !          5393:        return T_AS;
        !          5394: }
        !          5395: #line 5396 "Zend/zend_language_scanner.c"
        !          5396: yy543:
        !          5397:                YYDEBUG(543, *YYCURSOR);
        !          5398:                yych = *++YYCURSOR;
        !          5399:                if (yych == 'A') goto yy544;
        !          5400:                if (yych != 'a') goto yy186;
        !          5401: yy544:
        !          5402:                YYDEBUG(544, *YYCURSOR);
        !          5403:                yych = *++YYCURSOR;
        !          5404:                if (yych == 'Y') goto yy545;
        !          5405:                if (yych != 'y') goto yy186;
        !          5406: yy545:
        !          5407:                YYDEBUG(545, *YYCURSOR);
        !          5408:                ++YYCURSOR;
        !          5409:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5410:                        goto yy185;
        !          5411:                }
        !          5412:                YYDEBUG(546, *YYCURSOR);
        !          5413:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5414: #line 1181 "Zend/zend_language_scanner.l"
        !          5415:                {
        !          5416:        return T_ARRAY;
        !          5417: }
        !          5418: #line 5419 "Zend/zend_language_scanner.c"
        !          5419: yy547:
        !          5420:                YYDEBUG(547, *YYCURSOR);
        !          5421:                ++YYCURSOR;
        !          5422:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5423:                        goto yy185;
        !          5424:                }
        !          5425:                YYDEBUG(548, *YYCURSOR);
        !          5426:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5427: #line 1273 "Zend/zend_language_scanner.l"
        !          5428:                {
        !          5429:        return T_LOGICAL_AND;
        !          5430: }
        !          5431: #line 5432 "Zend/zend_language_scanner.c"
        !          5432: yy549:
        !          5433:                YYDEBUG(549, *YYCURSOR);
        !          5434:                yych = *++YYCURSOR;
        !          5435:                if (yych == 'T') goto yy550;
        !          5436:                if (yych != 't') goto yy186;
        !          5437: yy550:
        !          5438:                YYDEBUG(550, *YYCURSOR);
        !          5439:                yych = *++YYCURSOR;
        !          5440:                if (yych == 'R') goto yy551;
        !          5441:                if (yych != 'r') goto yy186;
        !          5442: yy551:
        !          5443:                YYDEBUG(551, *YYCURSOR);
        !          5444:                yych = *++YYCURSOR;
        !          5445:                if (yych == 'A') goto yy552;
        !          5446:                if (yych != 'a') goto yy186;
        !          5447: yy552:
        !          5448:                YYDEBUG(552, *YYCURSOR);
        !          5449:                yych = *++YYCURSOR;
        !          5450:                if (yych == 'C') goto yy553;
        !          5451:                if (yych != 'c') goto yy186;
        !          5452: yy553:
        !          5453:                YYDEBUG(553, *YYCURSOR);
        !          5454:                yych = *++YYCURSOR;
        !          5455:                if (yych == 'T') goto yy554;
        !          5456:                if (yych != 't') goto yy186;
        !          5457: yy554:
        !          5458:                YYDEBUG(554, *YYCURSOR);
        !          5459:                ++YYCURSOR;
        !          5460:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5461:                        goto yy185;
        !          5462:                }
        !          5463:                YYDEBUG(555, *YYCURSOR);
        !          5464:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5465: #line 1149 "Zend/zend_language_scanner.l"
        !          5466:                {
        !          5467:        return T_ABSTRACT;
        !          5468: }
        !          5469: #line 5470 "Zend/zend_language_scanner.c"
        !          5470: yy556:
        !          5471:                YYDEBUG(556, *YYCURSOR);
        !          5472:                yych = *++YYCURSOR;
        !          5473:                if (yych == 'I') goto yy557;
        !          5474:                if (yych != 'i') goto yy186;
        !          5475: yy557:
        !          5476:                YYDEBUG(557, *YYCURSOR);
        !          5477:                yych = *++YYCURSOR;
        !          5478:                if (yych == 'L') goto yy558;
        !          5479:                if (yych != 'l') goto yy186;
        !          5480: yy558:
        !          5481:                YYDEBUG(558, *YYCURSOR);
        !          5482:                yych = *++YYCURSOR;
        !          5483:                if (yych == 'E') goto yy559;
        !          5484:                if (yych != 'e') goto yy186;
        !          5485: yy559:
        !          5486:                YYDEBUG(559, *YYCURSOR);
        !          5487:                ++YYCURSOR;
        !          5488:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5489:                        goto yy185;
        !          5490:                }
        !          5491:                YYDEBUG(560, *YYCURSOR);
        !          5492:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5493: #line 923 "Zend/zend_language_scanner.l"
        !          5494:                {
        !          5495:        return T_WHILE;
        !          5496: }
        !          5497: #line 5498 "Zend/zend_language_scanner.c"
        !          5498: yy561:
        !          5499:                YYDEBUG(561, *YYCURSOR);
        !          5500:                ++YYCURSOR;
        !          5501:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5502:                        goto yy185;
        !          5503:                }
        !          5504:                YYDEBUG(562, *YYCURSOR);
        !          5505:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5506: #line 907 "Zend/zend_language_scanner.l"
        !          5507:                {
        !          5508:        return T_IF;
        !          5509: }
        !          5510: #line 5511 "Zend/zend_language_scanner.c"
        !          5511: yy563:
        !          5512:                YYDEBUG(563, *YYCURSOR);
        !          5513:                yych = *++YYCURSOR;
        !          5514:                if (yych == 'P') goto yy599;
        !          5515:                if (yych == 'p') goto yy599;
        !          5516:                goto yy186;
        !          5517: yy564:
        !          5518:                YYDEBUG(564, *YYCURSOR);
        !          5519:                yych = *++YYCURSOR;
        !          5520:                if (yych <= 'T') {
        !          5521:                        if (yych <= 'C') {
        !          5522:                                if (yych <= 'B') goto yy186;
        !          5523:                                goto yy572;
        !          5524:                        } else {
        !          5525:                                if (yych <= 'R') goto yy186;
        !          5526:                                if (yych <= 'S') goto yy570;
        !          5527:                                goto yy571;
        !          5528:                        }
        !          5529:                } else {
        !          5530:                        if (yych <= 'r') {
        !          5531:                                if (yych == 'c') goto yy572;
        !          5532:                                goto yy186;
        !          5533:                        } else {
        !          5534:                                if (yych <= 's') goto yy570;
        !          5535:                                if (yych <= 't') goto yy571;
        !          5536:                                goto yy186;
        !          5537:                        }
        !          5538:                }
        !          5539: yy565:
        !          5540:                YYDEBUG(565, *YYCURSOR);
        !          5541:                yych = *++YYCURSOR;
        !          5542:                if (yych == 'S') goto yy566;
        !          5543:                if (yych != 's') goto yy186;
        !          5544: yy566:
        !          5545:                YYDEBUG(566, *YYCURSOR);
        !          5546:                yych = *++YYCURSOR;
        !          5547:                if (yych == 'E') goto yy567;
        !          5548:                if (yych != 'e') goto yy186;
        !          5549: yy567:
        !          5550:                YYDEBUG(567, *YYCURSOR);
        !          5551:                yych = *++YYCURSOR;
        !          5552:                if (yych == 'T') goto yy568;
        !          5553:                if (yych != 't') goto yy186;
        !          5554: yy568:
        !          5555:                YYDEBUG(568, *YYCURSOR);
        !          5556:                ++YYCURSOR;
        !          5557:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5558:                        goto yy185;
        !          5559:                }
        !          5560:                YYDEBUG(569, *YYCURSOR);
        !          5561:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5562: #line 1133 "Zend/zend_language_scanner.l"
        !          5563:                {
        !          5564:        return T_ISSET;
        !          5565: }
        !          5566: #line 5567 "Zend/zend_language_scanner.c"
        !          5567: yy570:
        !          5568:                YYDEBUG(570, *YYCURSOR);
        !          5569:                yych = *++YYCURSOR;
        !          5570:                if (yych == 'T') goto yy591;
        !          5571:                if (yych == 't') goto yy591;
        !          5572:                goto yy186;
        !          5573: yy571:
        !          5574:                YYDEBUG(571, *YYCURSOR);
        !          5575:                yych = *++YYCURSOR;
        !          5576:                if (yych == 'E') goto yy584;
        !          5577:                if (yych == 'e') goto yy584;
        !          5578:                goto yy186;
        !          5579: yy572:
        !          5580:                YYDEBUG(572, *YYCURSOR);
        !          5581:                yych = *++YYCURSOR;
        !          5582:                if (yych == 'L') goto yy573;
        !          5583:                if (yych != 'l') goto yy186;
        !          5584: yy573:
        !          5585:                YYDEBUG(573, *YYCURSOR);
        !          5586:                yych = *++YYCURSOR;
        !          5587:                if (yych == 'U') goto yy574;
        !          5588:                if (yych != 'u') goto yy186;
        !          5589: yy574:
        !          5590:                YYDEBUG(574, *YYCURSOR);
        !          5591:                yych = *++YYCURSOR;
        !          5592:                if (yych == 'D') goto yy575;
        !          5593:                if (yych != 'd') goto yy186;
        !          5594: yy575:
        !          5595:                YYDEBUG(575, *YYCURSOR);
        !          5596:                yych = *++YYCURSOR;
        !          5597:                if (yych == 'E') goto yy576;
        !          5598:                if (yych != 'e') goto yy186;
        !          5599: yy576:
        !          5600:                YYDEBUG(576, *YYCURSOR);
        !          5601:                ++YYCURSOR;
        !          5602:                if ((yych = *YYCURSOR) <= '^') {
        !          5603:                        if (yych <= '9') {
        !          5604:                                if (yych >= '0') goto yy185;
        !          5605:                        } else {
        !          5606:                                if (yych <= '@') goto yy577;
        !          5607:                                if (yych <= 'Z') goto yy185;
        !          5608:                        }
        !          5609:                } else {
        !          5610:                        if (yych <= '`') {
        !          5611:                                if (yych <= '_') goto yy578;
        !          5612:                        } else {
        !          5613:                                if (yych <= 'z') goto yy185;
        !          5614:                                if (yych >= 0x7F) goto yy185;
        !          5615:                        }
        !          5616:                }
        !          5617: yy577:
        !          5618:                YYDEBUG(577, *YYCURSOR);
        !          5619:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5620: #line 1105 "Zend/zend_language_scanner.l"
        !          5621:                {
        !          5622:        return T_INCLUDE;
        !          5623: }
        !          5624: #line 5625 "Zend/zend_language_scanner.c"
        !          5625: yy578:
        !          5626:                YYDEBUG(578, *YYCURSOR);
        !          5627:                yych = *++YYCURSOR;
        !          5628:                if (yych == 'O') goto yy579;
        !          5629:                if (yych != 'o') goto yy186;
        !          5630: yy579:
        !          5631:                YYDEBUG(579, *YYCURSOR);
        !          5632:                yych = *++YYCURSOR;
        !          5633:                if (yych == 'N') goto yy580;
        !          5634:                if (yych != 'n') goto yy186;
        !          5635: yy580:
        !          5636:                YYDEBUG(580, *YYCURSOR);
        !          5637:                yych = *++YYCURSOR;
        !          5638:                if (yych == 'C') goto yy581;
        !          5639:                if (yych != 'c') goto yy186;
        !          5640: yy581:
        !          5641:                YYDEBUG(581, *YYCURSOR);
        !          5642:                yych = *++YYCURSOR;
        !          5643:                if (yych == 'E') goto yy582;
        !          5644:                if (yych != 'e') goto yy186;
        !          5645: yy582:
        !          5646:                YYDEBUG(582, *YYCURSOR);
        !          5647:                ++YYCURSOR;
        !          5648:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5649:                        goto yy185;
        !          5650:                }
        !          5651:                YYDEBUG(583, *YYCURSOR);
        !          5652:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5653: #line 1109 "Zend/zend_language_scanner.l"
        !          5654:                {
        !          5655:        return T_INCLUDE_ONCE;
        !          5656: }
        !          5657: #line 5658 "Zend/zend_language_scanner.c"
        !          5658: yy584:
        !          5659:                YYDEBUG(584, *YYCURSOR);
        !          5660:                yych = *++YYCURSOR;
        !          5661:                if (yych == 'R') goto yy585;
        !          5662:                if (yych != 'r') goto yy186;
        !          5663: yy585:
        !          5664:                YYDEBUG(585, *YYCURSOR);
        !          5665:                yych = *++YYCURSOR;
        !          5666:                if (yych == 'F') goto yy586;
        !          5667:                if (yych != 'f') goto yy186;
        !          5668: yy586:
        !          5669:                YYDEBUG(586, *YYCURSOR);
        !          5670:                yych = *++YYCURSOR;
        !          5671:                if (yych == 'A') goto yy587;
        !          5672:                if (yych != 'a') goto yy186;
        !          5673: yy587:
        !          5674:                YYDEBUG(587, *YYCURSOR);
        !          5675:                yych = *++YYCURSOR;
        !          5676:                if (yych == 'C') goto yy588;
        !          5677:                if (yych != 'c') goto yy186;
        !          5678: yy588:
        !          5679:                YYDEBUG(588, *YYCURSOR);
        !          5680:                yych = *++YYCURSOR;
        !          5681:                if (yych == 'E') goto yy589;
        !          5682:                if (yych != 'e') goto yy186;
        !          5683: yy589:
        !          5684:                YYDEBUG(589, *YYCURSOR);
        !          5685:                ++YYCURSOR;
        !          5686:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5687:                        goto yy185;
        !          5688:                }
        !          5689:                YYDEBUG(590, *YYCURSOR);
        !          5690:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5691: #line 1007 "Zend/zend_language_scanner.l"
        !          5692:                {
        !          5693:        return T_INTERFACE;
        !          5694: }
        !          5695: #line 5696 "Zend/zend_language_scanner.c"
        !          5696: yy591:
        !          5697:                YYDEBUG(591, *YYCURSOR);
        !          5698:                yych = *++YYCURSOR;
        !          5699:                if (yych == 'A') goto yy592;
        !          5700:                if (yych != 'a') goto yy186;
        !          5701: yy592:
        !          5702:                YYDEBUG(592, *YYCURSOR);
        !          5703:                yych = *++YYCURSOR;
        !          5704:                if (yych == 'N') goto yy593;
        !          5705:                if (yych != 'n') goto yy186;
        !          5706: yy593:
        !          5707:                YYDEBUG(593, *YYCURSOR);
        !          5708:                yych = *++YYCURSOR;
        !          5709:                if (yych == 'C') goto yy594;
        !          5710:                if (yych != 'c') goto yy186;
        !          5711: yy594:
        !          5712:                YYDEBUG(594, *YYCURSOR);
        !          5713:                yych = *++YYCURSOR;
        !          5714:                if (yych == 'E') goto yy595;
        !          5715:                if (yych != 'e') goto yy186;
        !          5716: yy595:
        !          5717:                YYDEBUG(595, *YYCURSOR);
        !          5718:                yych = *++YYCURSOR;
        !          5719:                if (yych == 'O') goto yy596;
        !          5720:                if (yych != 'o') goto yy186;
        !          5721: yy596:
        !          5722:                YYDEBUG(596, *YYCURSOR);
        !          5723:                yych = *++YYCURSOR;
        !          5724:                if (yych == 'F') goto yy597;
        !          5725:                if (yych != 'f') goto yy186;
        !          5726: yy597:
        !          5727:                YYDEBUG(597, *YYCURSOR);
        !          5728:                ++YYCURSOR;
        !          5729:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5730:                        goto yy185;
        !          5731:                }
        !          5732:                YYDEBUG(598, *YYCURSOR);
        !          5733:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5734: #line 959 "Zend/zend_language_scanner.l"
        !          5735:                {
        !          5736:        return T_INSTANCEOF;
        !          5737: }
        !          5738: #line 5739 "Zend/zend_language_scanner.c"
        !          5739: yy599:
        !          5740:                YYDEBUG(599, *YYCURSOR);
        !          5741:                yych = *++YYCURSOR;
        !          5742:                if (yych == 'L') goto yy600;
        !          5743:                if (yych != 'l') goto yy186;
        !          5744: yy600:
        !          5745:                YYDEBUG(600, *YYCURSOR);
        !          5746:                yych = *++YYCURSOR;
        !          5747:                if (yych == 'E') goto yy601;
        !          5748:                if (yych != 'e') goto yy186;
        !          5749: yy601:
        !          5750:                YYDEBUG(601, *YYCURSOR);
        !          5751:                yych = *++YYCURSOR;
        !          5752:                if (yych == 'M') goto yy602;
        !          5753:                if (yych != 'm') goto yy186;
        !          5754: yy602:
        !          5755:                YYDEBUG(602, *YYCURSOR);
        !          5756:                yych = *++YYCURSOR;
        !          5757:                if (yych == 'E') goto yy603;
        !          5758:                if (yych != 'e') goto yy186;
        !          5759: yy603:
        !          5760:                YYDEBUG(603, *YYCURSOR);
        !          5761:                yych = *++YYCURSOR;
        !          5762:                if (yych == 'N') goto yy604;
        !          5763:                if (yych != 'n') goto yy186;
        !          5764: yy604:
        !          5765:                YYDEBUG(604, *YYCURSOR);
        !          5766:                yych = *++YYCURSOR;
        !          5767:                if (yych == 'T') goto yy605;
        !          5768:                if (yych != 't') goto yy186;
        !          5769: yy605:
        !          5770:                YYDEBUG(605, *YYCURSOR);
        !          5771:                yych = *++YYCURSOR;
        !          5772:                if (yych == 'S') goto yy606;
        !          5773:                if (yych != 's') goto yy186;
        !          5774: yy606:
        !          5775:                YYDEBUG(606, *YYCURSOR);
        !          5776:                ++YYCURSOR;
        !          5777:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5778:                        goto yy185;
        !          5779:                }
        !          5780:                YYDEBUG(607, *YYCURSOR);
        !          5781:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5782: #line 1015 "Zend/zend_language_scanner.l"
        !          5783:                {
        !          5784:        return T_IMPLEMENTS;
        !          5785: }
        !          5786: #line 5787 "Zend/zend_language_scanner.c"
        !          5787: yy608:
        !          5788:                YYDEBUG(608, *YYCURSOR);
        !          5789:                yych = *++YYCURSOR;
        !          5790:                if (yych == 'R') goto yy612;
        !          5791:                if (yych == 'r') goto yy612;
        !          5792:                goto yy186;
        !          5793: yy609:
        !          5794:                YYDEBUG(609, *YYCURSOR);
        !          5795:                yych = *++YYCURSOR;
        !          5796:                if (yych == 'Y') goto yy610;
        !          5797:                if (yych != 'y') goto yy186;
        !          5798: yy610:
        !          5799:                YYDEBUG(610, *YYCURSOR);
        !          5800:                ++YYCURSOR;
        !          5801:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5802:                        goto yy185;
        !          5803:                }
        !          5804:                YYDEBUG(611, *YYCURSOR);
        !          5805:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5806: #line 895 "Zend/zend_language_scanner.l"
        !          5807:                {
        !          5808:        return T_TRY;
        !          5809: }
        !          5810: #line 5811 "Zend/zend_language_scanner.c"
        !          5811: yy612:
        !          5812:                YYDEBUG(612, *YYCURSOR);
        !          5813:                yych = *++YYCURSOR;
        !          5814:                if (yych == 'O') goto yy613;
        !          5815:                if (yych != 'o') goto yy186;
        !          5816: yy613:
        !          5817:                YYDEBUG(613, *YYCURSOR);
        !          5818:                yych = *++YYCURSOR;
        !          5819:                if (yych == 'W') goto yy614;
        !          5820:                if (yych != 'w') goto yy186;
        !          5821: yy614:
        !          5822:                YYDEBUG(614, *YYCURSOR);
        !          5823:                ++YYCURSOR;
        !          5824:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5825:                        goto yy185;
        !          5826:                }
        !          5827:                YYDEBUG(615, *YYCURSOR);
        !          5828:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5829: #line 903 "Zend/zend_language_scanner.l"
        !          5830:                {
        !          5831:        return T_THROW;
        !          5832: }
        !          5833: #line 5834 "Zend/zend_language_scanner.c"
        !          5834: yy616:
        !          5835:                YYDEBUG(616, *YYCURSOR);
        !          5836:                yych = *++YYCURSOR;
        !          5837:                if (yych <= 'T') {
        !          5838:                        if (yych == 'Q') goto yy618;
        !          5839:                        if (yych <= 'S') goto yy186;
        !          5840:                } else {
        !          5841:                        if (yych <= 'q') {
        !          5842:                                if (yych <= 'p') goto yy186;
        !          5843:                                goto yy618;
        !          5844:                        } else {
        !          5845:                                if (yych != 't') goto yy186;
        !          5846:                        }
        !          5847:                }
        !          5848:                YYDEBUG(617, *YYCURSOR);
        !          5849:                yych = *++YYCURSOR;
        !          5850:                if (yych == 'U') goto yy630;
        !          5851:                if (yych == 'u') goto yy630;
        !          5852:                goto yy186;
        !          5853: yy618:
        !          5854:                YYDEBUG(618, *YYCURSOR);
        !          5855:                yych = *++YYCURSOR;
        !          5856:                if (yych == 'U') goto yy619;
        !          5857:                if (yych != 'u') goto yy186;
        !          5858: yy619:
        !          5859:                YYDEBUG(619, *YYCURSOR);
        !          5860:                yych = *++YYCURSOR;
        !          5861:                if (yych == 'I') goto yy620;
        !          5862:                if (yych != 'i') goto yy186;
        !          5863: yy620:
        !          5864:                YYDEBUG(620, *YYCURSOR);
        !          5865:                yych = *++YYCURSOR;
        !          5866:                if (yych == 'R') goto yy621;
        !          5867:                if (yych != 'r') goto yy186;
        !          5868: yy621:
        !          5869:                YYDEBUG(621, *YYCURSOR);
        !          5870:                yych = *++YYCURSOR;
        !          5871:                if (yych == 'E') goto yy622;
        !          5872:                if (yych != 'e') goto yy186;
        !          5873: yy622:
        !          5874:                YYDEBUG(622, *YYCURSOR);
        !          5875:                ++YYCURSOR;
        !          5876:                if ((yych = *YYCURSOR) <= '^') {
        !          5877:                        if (yych <= '9') {
        !          5878:                                if (yych >= '0') goto yy185;
        !          5879:                        } else {
        !          5880:                                if (yych <= '@') goto yy623;
        !          5881:                                if (yych <= 'Z') goto yy185;
        !          5882:                        }
        !          5883:                } else {
        !          5884:                        if (yych <= '`') {
        !          5885:                                if (yych <= '_') goto yy624;
        !          5886:                        } else {
        !          5887:                                if (yych <= 'z') goto yy185;
        !          5888:                                if (yych >= 0x7F) goto yy185;
        !          5889:                        }
        !          5890:                }
        !          5891: yy623:
        !          5892:                YYDEBUG(623, *YYCURSOR);
        !          5893:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5894: #line 1113 "Zend/zend_language_scanner.l"
        !          5895:                {
        !          5896:        return T_REQUIRE;
        !          5897: }
        !          5898: #line 5899 "Zend/zend_language_scanner.c"
        !          5899: yy624:
        !          5900:                YYDEBUG(624, *YYCURSOR);
        !          5901:                yych = *++YYCURSOR;
        !          5902:                if (yych == 'O') goto yy625;
        !          5903:                if (yych != 'o') goto yy186;
        !          5904: yy625:
        !          5905:                YYDEBUG(625, *YYCURSOR);
        !          5906:                yych = *++YYCURSOR;
        !          5907:                if (yych == 'N') goto yy626;
        !          5908:                if (yych != 'n') goto yy186;
        !          5909: yy626:
        !          5910:                YYDEBUG(626, *YYCURSOR);
        !          5911:                yych = *++YYCURSOR;
        !          5912:                if (yych == 'C') goto yy627;
        !          5913:                if (yych != 'c') goto yy186;
        !          5914: yy627:
        !          5915:                YYDEBUG(627, *YYCURSOR);
        !          5916:                yych = *++YYCURSOR;
        !          5917:                if (yych == 'E') goto yy628;
        !          5918:                if (yych != 'e') goto yy186;
        !          5919: yy628:
        !          5920:                YYDEBUG(628, *YYCURSOR);
        !          5921:                ++YYCURSOR;
        !          5922:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5923:                        goto yy185;
        !          5924:                }
        !          5925:                YYDEBUG(629, *YYCURSOR);
        !          5926:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5927: #line 1117 "Zend/zend_language_scanner.l"
        !          5928:                {
        !          5929:        return T_REQUIRE_ONCE;
        !          5930: }
        !          5931: #line 5932 "Zend/zend_language_scanner.c"
        !          5932: yy630:
        !          5933:                YYDEBUG(630, *YYCURSOR);
        !          5934:                yych = *++YYCURSOR;
        !          5935:                if (yych == 'R') goto yy631;
        !          5936:                if (yych != 'r') goto yy186;
        !          5937: yy631:
        !          5938:                YYDEBUG(631, *YYCURSOR);
        !          5939:                yych = *++YYCURSOR;
        !          5940:                if (yych == 'N') goto yy632;
        !          5941:                if (yych != 'n') goto yy186;
        !          5942: yy632:
        !          5943:                YYDEBUG(632, *YYCURSOR);
        !          5944:                ++YYCURSOR;
        !          5945:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          5946:                        goto yy185;
        !          5947:                }
        !          5948:                YYDEBUG(633, *YYCURSOR);
        !          5949:                yyleng = YYCURSOR - SCNG(yy_text);
        !          5950: #line 891 "Zend/zend_language_scanner.l"
        !          5951:                {
        !          5952:        return T_RETURN;
        !          5953: }
        !          5954: #line 5955 "Zend/zend_language_scanner.c"
        !          5955: yy634:
        !          5956:                YYDEBUG(634, *YYCURSOR);
        !          5957:                yych = *++YYCURSOR;
        !          5958:                if (yych <= 'T') {
        !          5959:                        if (yych <= 'R') goto yy186;
        !          5960:                        if (yych <= 'S') goto yy656;
        !          5961:                        goto yy655;
        !          5962:                } else {
        !          5963:                        if (yych <= 'r') goto yy186;
        !          5964:                        if (yych <= 's') goto yy656;
        !          5965:                        if (yych <= 't') goto yy655;
        !          5966:                        goto yy186;
        !          5967:                }
        !          5968: yy635:
        !          5969:                YYDEBUG(635, *YYCURSOR);
        !          5970:                yych = *++YYCURSOR;
        !          5971:                if (yych <= 'O') {
        !          5972:                        if (yych == 'A') goto yy647;
        !          5973:                        if (yych <= 'N') goto yy186;
        !          5974:                        goto yy648;
        !          5975:                } else {
        !          5976:                        if (yych <= 'a') {
        !          5977:                                if (yych <= '`') goto yy186;
        !          5978:                                goto yy647;
        !          5979:                        } else {
        !          5980:                                if (yych == 'o') goto yy648;
        !          5981:                                goto yy186;
        !          5982:                        }
        !          5983:                }
        !          5984: yy636:
        !          5985:                YYDEBUG(636, *YYCURSOR);
        !          5986:                yych = *++YYCURSOR;
        !          5987:                if (yych == 'N') goto yy637;
        !          5988:                if (yych != 'n') goto yy186;
        !          5989: yy637:
        !          5990:                YYDEBUG(637, *YYCURSOR);
        !          5991:                yych = *++YYCURSOR;
        !          5992:                if (yych <= 'T') {
        !          5993:                        if (yych <= 'R') goto yy186;
        !          5994:                        if (yych >= 'T') goto yy639;
        !          5995:                } else {
        !          5996:                        if (yych <= 'r') goto yy186;
        !          5997:                        if (yych <= 's') goto yy638;
        !          5998:                        if (yych <= 't') goto yy639;
        !          5999:                        goto yy186;
        !          6000:                }
        !          6001: yy638:
        !          6002:                YYDEBUG(638, *YYCURSOR);
        !          6003:                yych = *++YYCURSOR;
        !          6004:                if (yych == 'T') goto yy645;
        !          6005:                if (yych == 't') goto yy645;
        !          6006:                goto yy186;
        !          6007: yy639:
        !          6008:                YYDEBUG(639, *YYCURSOR);
        !          6009:                yych = *++YYCURSOR;
        !          6010:                if (yych == 'I') goto yy640;
        !          6011:                if (yych != 'i') goto yy186;
        !          6012: yy640:
        !          6013:                YYDEBUG(640, *YYCURSOR);
        !          6014:                yych = *++YYCURSOR;
        !          6015:                if (yych == 'N') goto yy641;
        !          6016:                if (yych != 'n') goto yy186;
        !          6017: yy641:
        !          6018:                YYDEBUG(641, *YYCURSOR);
        !          6019:                yych = *++YYCURSOR;
        !          6020:                if (yych == 'U') goto yy642;
        !          6021:                if (yych != 'u') goto yy186;
        !          6022: yy642:
        !          6023:                YYDEBUG(642, *YYCURSOR);
        !          6024:                yych = *++YYCURSOR;
        !          6025:                if (yych == 'E') goto yy643;
        !          6026:                if (yych != 'e') goto yy186;
        !          6027: yy643:
        !          6028:                YYDEBUG(643, *YYCURSOR);
        !          6029:                ++YYCURSOR;
        !          6030:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6031:                        goto yy185;
        !          6032:                }
        !          6033:                YYDEBUG(644, *YYCURSOR);
        !          6034:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6035: #line 987 "Zend/zend_language_scanner.l"
        !          6036:                {
        !          6037:        return T_CONTINUE;
        !          6038: }
        !          6039: #line 6040 "Zend/zend_language_scanner.c"
        !          6040: yy645:
        !          6041:                YYDEBUG(645, *YYCURSOR);
        !          6042:                ++YYCURSOR;
        !          6043:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6044:                        goto yy185;
        !          6045:                }
        !          6046:                YYDEBUG(646, *YYCURSOR);
        !          6047:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6048: #line 887 "Zend/zend_language_scanner.l"
        !          6049:                {
        !          6050:        return T_CONST;
        !          6051: }
        !          6052: #line 6053 "Zend/zend_language_scanner.c"
        !          6053: yy647:
        !          6054:                YYDEBUG(647, *YYCURSOR);
        !          6055:                yych = *++YYCURSOR;
        !          6056:                if (yych == 'S') goto yy652;
        !          6057:                if (yych == 's') goto yy652;
        !          6058:                goto yy186;
        !          6059: yy648:
        !          6060:                YYDEBUG(648, *YYCURSOR);
        !          6061:                yych = *++YYCURSOR;
        !          6062:                if (yych == 'N') goto yy649;
        !          6063:                if (yych != 'n') goto yy186;
        !          6064: yy649:
        !          6065:                YYDEBUG(649, *YYCURSOR);
        !          6066:                yych = *++YYCURSOR;
        !          6067:                if (yych == 'E') goto yy650;
        !          6068:                if (yych != 'e') goto yy186;
        !          6069: yy650:
        !          6070:                YYDEBUG(650, *YYCURSOR);
        !          6071:                ++YYCURSOR;
        !          6072:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6073:                        goto yy185;
        !          6074:                }
        !          6075:                YYDEBUG(651, *YYCURSOR);
        !          6076:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6077: #line 1061 "Zend/zend_language_scanner.l"
        !          6078:                {
        !          6079:        return T_CLONE;
        !          6080: }
        !          6081: #line 6082 "Zend/zend_language_scanner.c"
        !          6082: yy652:
        !          6083:                YYDEBUG(652, *YYCURSOR);
        !          6084:                yych = *++YYCURSOR;
        !          6085:                if (yych == 'S') goto yy653;
        !          6086:                if (yych != 's') goto yy186;
        !          6087: yy653:
        !          6088:                YYDEBUG(653, *YYCURSOR);
        !          6089:                ++YYCURSOR;
        !          6090:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6091:                        goto yy185;
        !          6092:                }
        !          6093:                YYDEBUG(654, *YYCURSOR);
        !          6094:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6095: #line 1003 "Zend/zend_language_scanner.l"
        !          6096:                {
        !          6097:        return T_CLASS;
        !          6098: }
        !          6099: #line 6100 "Zend/zend_language_scanner.c"
        !          6100: yy655:
        !          6101:                YYDEBUG(655, *YYCURSOR);
        !          6102:                yych = *++YYCURSOR;
        !          6103:                if (yych == 'C') goto yy659;
        !          6104:                if (yych == 'c') goto yy659;
        !          6105:                goto yy186;
        !          6106: yy656:
        !          6107:                YYDEBUG(656, *YYCURSOR);
        !          6108:                yych = *++YYCURSOR;
        !          6109:                if (yych == 'E') goto yy657;
        !          6110:                if (yych != 'e') goto yy186;
        !          6111: yy657:
        !          6112:                YYDEBUG(657, *YYCURSOR);
        !          6113:                ++YYCURSOR;
        !          6114:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6115:                        goto yy185;
        !          6116:                }
        !          6117:                YYDEBUG(658, *YYCURSOR);
        !          6118:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6119: #line 975 "Zend/zend_language_scanner.l"
        !          6120:                {
        !          6121:        return T_CASE;
        !          6122: }
        !          6123: #line 6124 "Zend/zend_language_scanner.c"
        !          6124: yy659:
        !          6125:                YYDEBUG(659, *YYCURSOR);
        !          6126:                yych = *++YYCURSOR;
        !          6127:                if (yych == 'H') goto yy660;
        !          6128:                if (yych != 'h') goto yy186;
        !          6129: yy660:
        !          6130:                YYDEBUG(660, *YYCURSOR);
        !          6131:                ++YYCURSOR;
        !          6132:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6133:                        goto yy185;
        !          6134:                }
        !          6135:                YYDEBUG(661, *YYCURSOR);
        !          6136:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6137: #line 899 "Zend/zend_language_scanner.l"
        !          6138:                {
        !          6139:        return T_CATCH;
        !          6140: }
        !          6141: #line 6142 "Zend/zend_language_scanner.c"
        !          6142: yy662:
        !          6143:                YYDEBUG(662, *YYCURSOR);
        !          6144:                yych = *++YYCURSOR;
        !          6145:                if (yych == 'N') goto yy679;
        !          6146:                if (yych == 'n') goto yy679;
        !          6147:                goto yy186;
        !          6148: yy663:
        !          6149:                YYDEBUG(663, *YYCURSOR);
        !          6150:                yych = *++YYCURSOR;
        !          6151:                if (yych == 'R') goto yy672;
        !          6152:                if (yych == 'r') goto yy672;
        !          6153:                goto yy186;
        !          6154: yy664:
        !          6155:                YYDEBUG(664, *YYCURSOR);
        !          6156:                yych = *++YYCURSOR;
        !          6157:                if (yych == 'N') goto yy665;
        !          6158:                if (yych != 'n') goto yy186;
        !          6159: yy665:
        !          6160:                YYDEBUG(665, *YYCURSOR);
        !          6161:                yych = *++YYCURSOR;
        !          6162:                if (yych == 'C') goto yy666;
        !          6163:                if (yych != 'c') goto yy186;
        !          6164: yy666:
        !          6165:                YYDEBUG(666, *YYCURSOR);
        !          6166:                yych = *++YYCURSOR;
        !          6167:                if (yych == 'T') goto yy667;
        !          6168:                if (yych != 't') goto yy186;
        !          6169: yy667:
        !          6170:                YYDEBUG(667, *YYCURSOR);
        !          6171:                yych = *++YYCURSOR;
        !          6172:                if (yych == 'I') goto yy668;
        !          6173:                if (yych != 'i') goto yy186;
        !          6174: yy668:
        !          6175:                YYDEBUG(668, *YYCURSOR);
        !          6176:                yych = *++YYCURSOR;
        !          6177:                if (yych == 'O') goto yy669;
        !          6178:                if (yych != 'o') goto yy186;
        !          6179: yy669:
        !          6180:                YYDEBUG(669, *YYCURSOR);
        !          6181:                yych = *++YYCURSOR;
        !          6182:                if (yych == 'N') goto yy670;
        !          6183:                if (yych != 'n') goto yy186;
        !          6184: yy670:
        !          6185:                YYDEBUG(670, *YYCURSOR);
        !          6186:                ++YYCURSOR;
        !          6187:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6188:                        goto yy185;
        !          6189:                }
        !          6190:                YYDEBUG(671, *YYCURSOR);
        !          6191:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6192: #line 883 "Zend/zend_language_scanner.l"
        !          6193:                {
        !          6194:        return T_FUNCTION;
        !          6195: }
        !          6196: #line 6197 "Zend/zend_language_scanner.c"
        !          6197: yy672:
        !          6198:                YYDEBUG(672, *YYCURSOR);
        !          6199:                ++YYCURSOR;
        !          6200:                if ((yych = *YYCURSOR) <= '^') {
        !          6201:                        if (yych <= '@') {
        !          6202:                                if (yych <= '/') goto yy673;
        !          6203:                                if (yych <= '9') goto yy185;
        !          6204:                        } else {
        !          6205:                                if (yych == 'E') goto yy674;
        !          6206:                                if (yych <= 'Z') goto yy185;
        !          6207:                        }
        !          6208:                } else {
        !          6209:                        if (yych <= 'd') {
        !          6210:                                if (yych != '`') goto yy185;
        !          6211:                        } else {
        !          6212:                                if (yych <= 'e') goto yy674;
        !          6213:                                if (yych <= 'z') goto yy185;
        !          6214:                                if (yych >= 0x7F) goto yy185;
        !          6215:                        }
        !          6216:                }
        !          6217: yy673:
        !          6218:                YYDEBUG(673, *YYCURSOR);
        !          6219:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6220: #line 935 "Zend/zend_language_scanner.l"
        !          6221:                {
        !          6222:        return T_FOR;
        !          6223: }
        !          6224: #line 6225 "Zend/zend_language_scanner.c"
        !          6225: yy674:
        !          6226:                YYDEBUG(674, *YYCURSOR);
        !          6227:                yych = *++YYCURSOR;
        !          6228:                if (yych == 'A') goto yy675;
        !          6229:                if (yych != 'a') goto yy186;
        !          6230: yy675:
        !          6231:                YYDEBUG(675, *YYCURSOR);
        !          6232:                yych = *++YYCURSOR;
        !          6233:                if (yych == 'C') goto yy676;
        !          6234:                if (yych != 'c') goto yy186;
        !          6235: yy676:
        !          6236:                YYDEBUG(676, *YYCURSOR);
        !          6237:                yych = *++YYCURSOR;
        !          6238:                if (yych == 'H') goto yy677;
        !          6239:                if (yych != 'h') goto yy186;
        !          6240: yy677:
        !          6241:                YYDEBUG(677, *YYCURSOR);
        !          6242:                ++YYCURSOR;
        !          6243:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6244:                        goto yy185;
        !          6245:                }
        !          6246:                YYDEBUG(678, *YYCURSOR);
        !          6247:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6248: #line 943 "Zend/zend_language_scanner.l"
        !          6249:                {
        !          6250:        return T_FOREACH;
        !          6251: }
        !          6252: #line 6253 "Zend/zend_language_scanner.c"
        !          6253: yy679:
        !          6254:                YYDEBUG(679, *YYCURSOR);
        !          6255:                yych = *++YYCURSOR;
        !          6256:                if (yych == 'A') goto yy680;
        !          6257:                if (yych != 'a') goto yy186;
        !          6258: yy680:
        !          6259:                YYDEBUG(680, *YYCURSOR);
        !          6260:                yych = *++YYCURSOR;
        !          6261:                if (yych == 'L') goto yy681;
        !          6262:                if (yych != 'l') goto yy186;
        !          6263: yy681:
        !          6264:                YYDEBUG(681, *YYCURSOR);
        !          6265:                ++YYCURSOR;
        !          6266:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6267:                        goto yy185;
        !          6268:                }
        !          6269:                YYDEBUG(682, *YYCURSOR);
        !          6270:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6271: #line 1153 "Zend/zend_language_scanner.l"
        !          6272:                {
        !          6273:        return T_FINAL;
        !          6274: }
        !          6275: #line 6276 "Zend/zend_language_scanner.c"
        !          6276: yy683:
        !          6277:                YYDEBUG(683, *YYCURSOR);
        !          6278:                yych = *++YYCURSOR;
        !          6279:                if (yych <= 'F') {
        !          6280:                        if (yych == 'C') goto yy689;
        !          6281:                        if (yych <= 'E') goto yy186;
        !          6282:                        goto yy690;
        !          6283:                } else {
        !          6284:                        if (yych <= 'c') {
        !          6285:                                if (yych <= 'b') goto yy186;
        !          6286:                                goto yy689;
        !          6287:                        } else {
        !          6288:                                if (yych == 'f') goto yy690;
        !          6289:                                goto yy186;
        !          6290:                        }
        !          6291:                }
        !          6292: yy684:
        !          6293:                YYDEBUG(684, *YYCURSOR);
        !          6294:                yych = *++YYCURSOR;
        !          6295:                if (yych == 'E') goto yy687;
        !          6296:                if (yych == 'e') goto yy687;
        !          6297:                goto yy186;
        !          6298: yy685:
        !          6299:                YYDEBUG(685, *YYCURSOR);
        !          6300:                ++YYCURSOR;
        !          6301:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6302:                        goto yy185;
        !          6303:                }
        !          6304:                YYDEBUG(686, *YYCURSOR);
        !          6305:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6306: #line 931 "Zend/zend_language_scanner.l"
        !          6307:                {
        !          6308:        return T_DO;
        !          6309: }
        !          6310: #line 6311 "Zend/zend_language_scanner.c"
        !          6311: yy687:
        !          6312:                YYDEBUG(687, *YYCURSOR);
        !          6313:                ++YYCURSOR;
        !          6314:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6315:                        goto yy185;
        !          6316:                }
        !          6317:                YYDEBUG(688, *YYCURSOR);
        !          6318:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6319: #line 879 "Zend/zend_language_scanner.l"
        !          6320:                {
        !          6321:        return T_EXIT;
        !          6322: }
        !          6323: #line 6324 "Zend/zend_language_scanner.c"
        !          6324: yy689:
        !          6325:                YYDEBUG(689, *YYCURSOR);
        !          6326:                yych = *++YYCURSOR;
        !          6327:                if (yych == 'L') goto yy696;
        !          6328:                if (yych == 'l') goto yy696;
        !          6329:                goto yy186;
        !          6330: yy690:
        !          6331:                YYDEBUG(690, *YYCURSOR);
        !          6332:                yych = *++YYCURSOR;
        !          6333:                if (yych == 'A') goto yy691;
        !          6334:                if (yych != 'a') goto yy186;
        !          6335: yy691:
        !          6336:                YYDEBUG(691, *YYCURSOR);
        !          6337:                yych = *++YYCURSOR;
        !          6338:                if (yych == 'U') goto yy692;
        !          6339:                if (yych != 'u') goto yy186;
        !          6340: yy692:
        !          6341:                YYDEBUG(692, *YYCURSOR);
        !          6342:                yych = *++YYCURSOR;
        !          6343:                if (yych == 'L') goto yy693;
        !          6344:                if (yych != 'l') goto yy186;
        !          6345: yy693:
        !          6346:                YYDEBUG(693, *YYCURSOR);
        !          6347:                yych = *++YYCURSOR;
        !          6348:                if (yych == 'T') goto yy694;
        !          6349:                if (yych != 't') goto yy186;
        !          6350: yy694:
        !          6351:                YYDEBUG(694, *YYCURSOR);
        !          6352:                ++YYCURSOR;
        !          6353:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6354:                        goto yy185;
        !          6355:                }
        !          6356:                YYDEBUG(695, *YYCURSOR);
        !          6357:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6358: #line 979 "Zend/zend_language_scanner.l"
        !          6359:                {
        !          6360:        return T_DEFAULT;
        !          6361: }
        !          6362: #line 6363 "Zend/zend_language_scanner.c"
        !          6363: yy696:
        !          6364:                YYDEBUG(696, *YYCURSOR);
        !          6365:                yych = *++YYCURSOR;
        !          6366:                if (yych == 'A') goto yy697;
        !          6367:                if (yych != 'a') goto yy186;
        !          6368: yy697:
        !          6369:                YYDEBUG(697, *YYCURSOR);
        !          6370:                yych = *++YYCURSOR;
        !          6371:                if (yych == 'R') goto yy698;
        !          6372:                if (yych != 'r') goto yy186;
        !          6373: yy698:
        !          6374:                YYDEBUG(698, *YYCURSOR);
        !          6375:                yych = *++YYCURSOR;
        !          6376:                if (yych == 'E') goto yy699;
        !          6377:                if (yych != 'e') goto yy186;
        !          6378: yy699:
        !          6379:                YYDEBUG(699, *YYCURSOR);
        !          6380:                ++YYCURSOR;
        !          6381:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6382:                        goto yy185;
        !          6383:                }
        !          6384:                YYDEBUG(700, *YYCURSOR);
        !          6385:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6386: #line 951 "Zend/zend_language_scanner.l"
        !          6387:                {
        !          6388:        return T_DECLARE;
        !          6389: }
        !          6390: #line 6391 "Zend/zend_language_scanner.c"
        !          6391: yy701:
        !          6392:                YYDEBUG(701, *YYCURSOR);
        !          6393:                yych = *++YYCURSOR;
        !          6394:                if (yych == 'H') goto yy763;
        !          6395:                if (yych == 'h') goto yy763;
        !          6396:                goto yy186;
        !          6397: yy702:
        !          6398:                YYDEBUG(702, *YYCURSOR);
        !          6399:                yych = *++YYCURSOR;
        !          6400:                if (yych == 'S') goto yy757;
        !          6401:                if (yych == 's') goto yy757;
        !          6402:                goto yy186;
        !          6403: yy703:
        !          6404:                YYDEBUG(703, *YYCURSOR);
        !          6405:                yych = *++YYCURSOR;
        !          6406:                if (yych == 'P') goto yy753;
        !          6407:                if (yych == 'p') goto yy753;
        !          6408:                goto yy186;
        !          6409: yy704:
        !          6410:                YYDEBUG(704, *YYCURSOR);
        !          6411:                yych = *++YYCURSOR;
        !          6412:                if (yych == 'D') goto yy719;
        !          6413:                if (yych == 'd') goto yy719;
        !          6414:                goto yy186;
        !          6415: yy705:
        !          6416:                YYDEBUG(705, *YYCURSOR);
        !          6417:                yych = *++YYCURSOR;
        !          6418:                if (yych == 'A') goto yy716;
        !          6419:                if (yych == 'a') goto yy716;
        !          6420:                goto yy186;
        !          6421: yy706:
        !          6422:                YYDEBUG(706, *YYCURSOR);
        !          6423:                yych = *++YYCURSOR;
        !          6424:                if (yych <= 'T') {
        !          6425:                        if (yych == 'I') goto yy707;
        !          6426:                        if (yych <= 'S') goto yy186;
        !          6427:                        goto yy708;
        !          6428:                } else {
        !          6429:                        if (yych <= 'i') {
        !          6430:                                if (yych <= 'h') goto yy186;
        !          6431:                        } else {
        !          6432:                                if (yych == 't') goto yy708;
        !          6433:                                goto yy186;
        !          6434:                        }
        !          6435:                }
        !          6436: yy707:
        !          6437:                YYDEBUG(707, *YYCURSOR);
        !          6438:                yych = *++YYCURSOR;
        !          6439:                if (yych == 'T') goto yy714;
        !          6440:                if (yych == 't') goto yy714;
        !          6441:                goto yy186;
        !          6442: yy708:
        !          6443:                YYDEBUG(708, *YYCURSOR);
        !          6444:                yych = *++YYCURSOR;
        !          6445:                if (yych == 'E') goto yy709;
        !          6446:                if (yych != 'e') goto yy186;
        !          6447: yy709:
        !          6448:                YYDEBUG(709, *YYCURSOR);
        !          6449:                yych = *++YYCURSOR;
        !          6450:                if (yych == 'N') goto yy710;
        !          6451:                if (yych != 'n') goto yy186;
        !          6452: yy710:
        !          6453:                YYDEBUG(710, *YYCURSOR);
        !          6454:                yych = *++YYCURSOR;
        !          6455:                if (yych == 'D') goto yy711;
        !          6456:                if (yych != 'd') goto yy186;
        !          6457: yy711:
        !          6458:                YYDEBUG(711, *YYCURSOR);
        !          6459:                yych = *++YYCURSOR;
        !          6460:                if (yych == 'S') goto yy712;
        !          6461:                if (yych != 's') goto yy186;
        !          6462: yy712:
        !          6463:                YYDEBUG(712, *YYCURSOR);
        !          6464:                ++YYCURSOR;
        !          6465:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6466:                        goto yy185;
        !          6467:                }
        !          6468:                YYDEBUG(713, *YYCURSOR);
        !          6469:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6470: #line 1011 "Zend/zend_language_scanner.l"
        !          6471:                {
        !          6472:        return T_EXTENDS;
        !          6473: }
        !          6474: #line 6475 "Zend/zend_language_scanner.c"
        !          6475: yy714:
        !          6476:                YYDEBUG(714, *YYCURSOR);
        !          6477:                ++YYCURSOR;
        !          6478:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6479:                        goto yy185;
        !          6480:                }
        !          6481:                YYDEBUG(715, *YYCURSOR);
        !          6482:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6483: #line 875 "Zend/zend_language_scanner.l"
        !          6484:                {
        !          6485:        return T_EXIT;
        !          6486: }
        !          6487: #line 6488 "Zend/zend_language_scanner.c"
        !          6488: yy716:
        !          6489:                YYDEBUG(716, *YYCURSOR);
        !          6490:                yych = *++YYCURSOR;
        !          6491:                if (yych == 'L') goto yy717;
        !          6492:                if (yych != 'l') goto yy186;
        !          6493: yy717:
        !          6494:                YYDEBUG(717, *YYCURSOR);
        !          6495:                ++YYCURSOR;
        !          6496:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6497:                        goto yy185;
        !          6498:                }
        !          6499:                YYDEBUG(718, *YYCURSOR);
        !          6500:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6501: #line 1101 "Zend/zend_language_scanner.l"
        !          6502:                {
        !          6503:        return T_EVAL;
        !          6504: }
        !          6505: #line 6506 "Zend/zend_language_scanner.c"
        !          6506: yy719:
        !          6507:                YYDEBUG(719, *YYCURSOR);
        !          6508:                yych = *++YYCURSOR;
        !          6509:                YYDEBUG(-1, yych);
        !          6510:                switch (yych) {
        !          6511:                case 'D':
        !          6512:                case 'd':       goto yy720;
        !          6513:                case 'F':
        !          6514:                case 'f':       goto yy721;
        !          6515:                case 'I':
        !          6516:                case 'i':       goto yy722;
        !          6517:                case 'S':
        !          6518:                case 's':       goto yy723;
        !          6519:                case 'W':
        !          6520:                case 'w':       goto yy724;
        !          6521:                default:        goto yy186;
        !          6522:                }
        !          6523: yy720:
        !          6524:                YYDEBUG(720, *YYCURSOR);
        !          6525:                yych = *++YYCURSOR;
        !          6526:                if (yych == 'E') goto yy746;
        !          6527:                if (yych == 'e') goto yy746;
        !          6528:                goto yy186;
        !          6529: yy721:
        !          6530:                YYDEBUG(721, *YYCURSOR);
        !          6531:                yych = *++YYCURSOR;
        !          6532:                if (yych == 'O') goto yy738;
        !          6533:                if (yych == 'o') goto yy738;
        !          6534:                goto yy186;
        !          6535: yy722:
        !          6536:                YYDEBUG(722, *YYCURSOR);
        !          6537:                yych = *++YYCURSOR;
        !          6538:                if (yych == 'F') goto yy736;
        !          6539:                if (yych == 'f') goto yy736;
        !          6540:                goto yy186;
        !          6541: yy723:
        !          6542:                YYDEBUG(723, *YYCURSOR);
        !          6543:                yych = *++YYCURSOR;
        !          6544:                if (yych == 'W') goto yy730;
        !          6545:                if (yych == 'w') goto yy730;
        !          6546:                goto yy186;
        !          6547: yy724:
        !          6548:                YYDEBUG(724, *YYCURSOR);
        !          6549:                yych = *++YYCURSOR;
        !          6550:                if (yych == 'H') goto yy725;
        !          6551:                if (yych != 'h') goto yy186;
        !          6552: yy725:
        !          6553:                YYDEBUG(725, *YYCURSOR);
        !          6554:                yych = *++YYCURSOR;
        !          6555:                if (yych == 'I') goto yy726;
        !          6556:                if (yych != 'i') goto yy186;
        !          6557: yy726:
        !          6558:                YYDEBUG(726, *YYCURSOR);
        !          6559:                yych = *++YYCURSOR;
        !          6560:                if (yych == 'L') goto yy727;
        !          6561:                if (yych != 'l') goto yy186;
        !          6562: yy727:
        !          6563:                YYDEBUG(727, *YYCURSOR);
        !          6564:                yych = *++YYCURSOR;
        !          6565:                if (yych == 'E') goto yy728;
        !          6566:                if (yych != 'e') goto yy186;
        !          6567: yy728:
        !          6568:                YYDEBUG(728, *YYCURSOR);
        !          6569:                ++YYCURSOR;
        !          6570:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6571:                        goto yy185;
        !          6572:                }
        !          6573:                YYDEBUG(729, *YYCURSOR);
        !          6574:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6575: #line 927 "Zend/zend_language_scanner.l"
        !          6576:                {
        !          6577:        return T_ENDWHILE;
        !          6578: }
        !          6579: #line 6580 "Zend/zend_language_scanner.c"
        !          6580: yy730:
        !          6581:                YYDEBUG(730, *YYCURSOR);
        !          6582:                yych = *++YYCURSOR;
        !          6583:                if (yych == 'I') goto yy731;
        !          6584:                if (yych != 'i') goto yy186;
        !          6585: yy731:
        !          6586:                YYDEBUG(731, *YYCURSOR);
        !          6587:                yych = *++YYCURSOR;
        !          6588:                if (yych == 'T') goto yy732;
        !          6589:                if (yych != 't') goto yy186;
        !          6590: yy732:
        !          6591:                YYDEBUG(732, *YYCURSOR);
        !          6592:                yych = *++YYCURSOR;
        !          6593:                if (yych == 'C') goto yy733;
        !          6594:                if (yych != 'c') goto yy186;
        !          6595: yy733:
        !          6596:                YYDEBUG(733, *YYCURSOR);
        !          6597:                yych = *++YYCURSOR;
        !          6598:                if (yych == 'H') goto yy734;
        !          6599:                if (yych != 'h') goto yy186;
        !          6600: yy734:
        !          6601:                YYDEBUG(734, *YYCURSOR);
        !          6602:                ++YYCURSOR;
        !          6603:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6604:                        goto yy185;
        !          6605:                }
        !          6606:                YYDEBUG(735, *YYCURSOR);
        !          6607:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6608: #line 971 "Zend/zend_language_scanner.l"
        !          6609:                {
        !          6610:        return T_ENDSWITCH;
        !          6611: }
        !          6612: #line 6613 "Zend/zend_language_scanner.c"
        !          6613: yy736:
        !          6614:                YYDEBUG(736, *YYCURSOR);
        !          6615:                ++YYCURSOR;
        !          6616:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6617:                        goto yy185;
        !          6618:                }
        !          6619:                YYDEBUG(737, *YYCURSOR);
        !          6620:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6621: #line 915 "Zend/zend_language_scanner.l"
        !          6622:                {
        !          6623:        return T_ENDIF;
        !          6624: }
        !          6625: #line 6626 "Zend/zend_language_scanner.c"
        !          6626: yy738:
        !          6627:                YYDEBUG(738, *YYCURSOR);
        !          6628:                yych = *++YYCURSOR;
        !          6629:                if (yych == 'R') goto yy739;
        !          6630:                if (yych != 'r') goto yy186;
        !          6631: yy739:
        !          6632:                YYDEBUG(739, *YYCURSOR);
        !          6633:                ++YYCURSOR;
        !          6634:                if ((yych = *YYCURSOR) <= '^') {
        !          6635:                        if (yych <= '@') {
        !          6636:                                if (yych <= '/') goto yy740;
        !          6637:                                if (yych <= '9') goto yy185;
        !          6638:                        } else {
        !          6639:                                if (yych == 'E') goto yy741;
        !          6640:                                if (yych <= 'Z') goto yy185;
        !          6641:                        }
        !          6642:                } else {
        !          6643:                        if (yych <= 'd') {
        !          6644:                                if (yych != '`') goto yy185;
        !          6645:                        } else {
        !          6646:                                if (yych <= 'e') goto yy741;
        !          6647:                                if (yych <= 'z') goto yy185;
        !          6648:                                if (yych >= 0x7F) goto yy185;
        !          6649:                        }
        !          6650:                }
        !          6651: yy740:
        !          6652:                YYDEBUG(740, *YYCURSOR);
        !          6653:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6654: #line 939 "Zend/zend_language_scanner.l"
        !          6655:                {
        !          6656:        return T_ENDFOR;
        !          6657: }
        !          6658: #line 6659 "Zend/zend_language_scanner.c"
        !          6659: yy741:
        !          6660:                YYDEBUG(741, *YYCURSOR);
        !          6661:                yych = *++YYCURSOR;
        !          6662:                if (yych == 'A') goto yy742;
        !          6663:                if (yych != 'a') goto yy186;
        !          6664: yy742:
        !          6665:                YYDEBUG(742, *YYCURSOR);
        !          6666:                yych = *++YYCURSOR;
        !          6667:                if (yych == 'C') goto yy743;
        !          6668:                if (yych != 'c') goto yy186;
        !          6669: yy743:
        !          6670:                YYDEBUG(743, *YYCURSOR);
        !          6671:                yych = *++YYCURSOR;
        !          6672:                if (yych == 'H') goto yy744;
        !          6673:                if (yych != 'h') goto yy186;
        !          6674: yy744:
        !          6675:                YYDEBUG(744, *YYCURSOR);
        !          6676:                ++YYCURSOR;
        !          6677:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6678:                        goto yy185;
        !          6679:                }
        !          6680:                YYDEBUG(745, *YYCURSOR);
        !          6681:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6682: #line 947 "Zend/zend_language_scanner.l"
        !          6683:                {
        !          6684:        return T_ENDFOREACH;
        !          6685: }
        !          6686: #line 6687 "Zend/zend_language_scanner.c"
        !          6687: yy746:
        !          6688:                YYDEBUG(746, *YYCURSOR);
        !          6689:                yych = *++YYCURSOR;
        !          6690:                if (yych == 'C') goto yy747;
        !          6691:                if (yych != 'c') goto yy186;
        !          6692: yy747:
        !          6693:                YYDEBUG(747, *YYCURSOR);
        !          6694:                yych = *++YYCURSOR;
        !          6695:                if (yych == 'L') goto yy748;
        !          6696:                if (yych != 'l') goto yy186;
        !          6697: yy748:
        !          6698:                YYDEBUG(748, *YYCURSOR);
        !          6699:                yych = *++YYCURSOR;
        !          6700:                if (yych == 'A') goto yy749;
        !          6701:                if (yych != 'a') goto yy186;
        !          6702: yy749:
        !          6703:                YYDEBUG(749, *YYCURSOR);
        !          6704:                yych = *++YYCURSOR;
        !          6705:                if (yych == 'R') goto yy750;
        !          6706:                if (yych != 'r') goto yy186;
        !          6707: yy750:
        !          6708:                YYDEBUG(750, *YYCURSOR);
        !          6709:                yych = *++YYCURSOR;
        !          6710:                if (yych == 'E') goto yy751;
        !          6711:                if (yych != 'e') goto yy186;
        !          6712: yy751:
        !          6713:                YYDEBUG(751, *YYCURSOR);
        !          6714:                ++YYCURSOR;
        !          6715:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6716:                        goto yy185;
        !          6717:                }
        !          6718:                YYDEBUG(752, *YYCURSOR);
        !          6719:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6720: #line 955 "Zend/zend_language_scanner.l"
        !          6721:                {
        !          6722:        return T_ENDDECLARE;
        !          6723: }
        !          6724: #line 6725 "Zend/zend_language_scanner.c"
        !          6725: yy753:
        !          6726:                YYDEBUG(753, *YYCURSOR);
        !          6727:                yych = *++YYCURSOR;
        !          6728:                if (yych == 'T') goto yy754;
        !          6729:                if (yych != 't') goto yy186;
        !          6730: yy754:
        !          6731:                YYDEBUG(754, *YYCURSOR);
        !          6732:                yych = *++YYCURSOR;
        !          6733:                if (yych == 'Y') goto yy755;
        !          6734:                if (yych != 'y') goto yy186;
        !          6735: yy755:
        !          6736:                YYDEBUG(755, *YYCURSOR);
        !          6737:                ++YYCURSOR;
        !          6738:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6739:                        goto yy185;
        !          6740:                }
        !          6741:                YYDEBUG(756, *YYCURSOR);
        !          6742:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6743: #line 1137 "Zend/zend_language_scanner.l"
        !          6744:                {
        !          6745:        return T_EMPTY;
        !          6746: }
        !          6747: #line 6748 "Zend/zend_language_scanner.c"
        !          6748: yy757:
        !          6749:                YYDEBUG(757, *YYCURSOR);
        !          6750:                yych = *++YYCURSOR;
        !          6751:                if (yych == 'E') goto yy758;
        !          6752:                if (yych != 'e') goto yy186;
        !          6753: yy758:
        !          6754:                YYDEBUG(758, *YYCURSOR);
        !          6755:                ++YYCURSOR;
        !          6756:                if ((yych = *YYCURSOR) <= '^') {
        !          6757:                        if (yych <= '@') {
        !          6758:                                if (yych <= '/') goto yy759;
        !          6759:                                if (yych <= '9') goto yy185;
        !          6760:                        } else {
        !          6761:                                if (yych == 'I') goto yy760;
        !          6762:                                if (yych <= 'Z') goto yy185;
        !          6763:                        }
        !          6764:                } else {
        !          6765:                        if (yych <= 'h') {
        !          6766:                                if (yych != '`') goto yy185;
        !          6767:                        } else {
        !          6768:                                if (yych <= 'i') goto yy760;
        !          6769:                                if (yych <= 'z') goto yy185;
        !          6770:                                if (yych >= 0x7F) goto yy185;
        !          6771:                        }
        !          6772:                }
        !          6773: yy759:
        !          6774:                YYDEBUG(759, *YYCURSOR);
        !          6775:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6776: #line 919 "Zend/zend_language_scanner.l"
        !          6777:                {
        !          6778:        return T_ELSE;
        !          6779: }
        !          6780: #line 6781 "Zend/zend_language_scanner.c"
        !          6781: yy760:
        !          6782:                YYDEBUG(760, *YYCURSOR);
        !          6783:                yych = *++YYCURSOR;
        !          6784:                if (yych == 'F') goto yy761;
        !          6785:                if (yych != 'f') goto yy186;
        !          6786: yy761:
        !          6787:                YYDEBUG(761, *YYCURSOR);
        !          6788:                ++YYCURSOR;
        !          6789:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6790:                        goto yy185;
        !          6791:                }
        !          6792:                YYDEBUG(762, *YYCURSOR);
        !          6793:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6794: #line 911 "Zend/zend_language_scanner.l"
        !          6795:                {
        !          6796:        return T_ELSEIF;
        !          6797: }
        !          6798: #line 6799 "Zend/zend_language_scanner.c"
        !          6799: yy763:
        !          6800:                YYDEBUG(763, *YYCURSOR);
        !          6801:                yych = *++YYCURSOR;
        !          6802:                if (yych == 'O') goto yy764;
        !          6803:                if (yych != 'o') goto yy186;
        !          6804: yy764:
        !          6805:                YYDEBUG(764, *YYCURSOR);
        !          6806:                ++YYCURSOR;
        !          6807:                if (yybm[0+(yych = *YYCURSOR)] & 8) {
        !          6808:                        goto yy185;
        !          6809:                }
        !          6810:                YYDEBUG(765, *YYCURSOR);
        !          6811:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6812: #line 995 "Zend/zend_language_scanner.l"
        !          6813:                {
        !          6814:        return T_ECHO;
        !          6815: }
        !          6816: #line 6817 "Zend/zend_language_scanner.c"
        !          6817:        }
        !          6818: /* *********************************** */
        !          6819: yyc_ST_LOOKING_FOR_PROPERTY:
        !          6820:        {
        !          6821:                static const unsigned char yybm[] = {
        !          6822:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          6823:                          0, 128, 128,   0,   0, 128,   0,   0, 
        !          6824:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          6825:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          6826:                        128,   0,   0,   0,   0,   0,   0,   0, 
        !          6827:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          6828:                         64,  64,  64,  64,  64,  64,  64,  64, 
        !          6829:                         64,  64,   0,   0,   0,   0,   0,   0, 
        !          6830:                          0,  64,  64,  64,  64,  64,  64,  64, 
        !          6831:                         64,  64,  64,  64,  64,  64,  64,  64, 
        !          6832:                         64,  64,  64,  64,  64,  64,  64,  64, 
        !          6833:                         64,  64,  64,   0,   0,   0,   0,  64, 
        !          6834:                          0,  64,  64,  64,  64,  64,  64,  64, 
        !          6835:                         64,  64,  64,  64,  64,  64,  64,  64, 
        !          6836:                         64,  64,  64,  64,  64,  64,  64,  64, 
        !          6837:                         64,  64,  64,   0,   0,   0,   0,  64, 
        !          6838:                         64,  64,  64,  64,  64,  64,  64,  64, 
        !          6839:                         64,  64,  64,  64,  64,  64,  64,  64, 
        !          6840:                         64,  64,  64,  64,  64,  64,  64,  64, 
        !          6841:                         64,  64,  64,  64,  64,  64,  64,  64, 
        !          6842:                         64,  64,  64,  64,  64,  64,  64,  64, 
        !          6843:                         64,  64,  64,  64,  64,  64,  64,  64, 
        !          6844:                         64,  64,  64,  64,  64,  64,  64,  64, 
        !          6845:                         64,  64,  64,  64,  64,  64,  64,  64, 
        !          6846:                         64,  64,  64,  64,  64,  64,  64,  64, 
        !          6847:                         64,  64,  64,  64,  64,  64,  64,  64, 
        !          6848:                         64,  64,  64,  64,  64,  64,  64,  64, 
        !          6849:                         64,  64,  64,  64,  64,  64,  64,  64, 
        !          6850:                         64,  64,  64,  64,  64,  64,  64,  64, 
        !          6851:                         64,  64,  64,  64,  64,  64,  64,  64, 
        !          6852:                         64,  64,  64,  64,  64,  64,  64,  64, 
        !          6853:                         64,  64,  64,  64,  64,  64,  64,  64, 
        !          6854:                };
        !          6855:                YYDEBUG(766, *YYCURSOR);
        !          6856:                YYFILL(2);
        !          6857:                yych = *YYCURSOR;
        !          6858:                if (yych <= '-') {
        !          6859:                        if (yych <= '\r') {
        !          6860:                                if (yych <= 0x08) goto yy774;
        !          6861:                                if (yych <= '\n') goto yy768;
        !          6862:                                if (yych <= '\f') goto yy774;
        !          6863:                        } else {
        !          6864:                                if (yych == ' ') goto yy768;
        !          6865:                                if (yych <= ',') goto yy774;
        !          6866:                                goto yy770;
        !          6867:                        }
        !          6868:                } else {
        !          6869:                        if (yych <= '_') {
        !          6870:                                if (yych <= '@') goto yy774;
        !          6871:                                if (yych <= 'Z') goto yy772;
        !          6872:                                if (yych <= '^') goto yy774;
        !          6873:                                goto yy772;
        !          6874:                        } else {
        !          6875:                                if (yych <= '`') goto yy774;
        !          6876:                                if (yych <= 'z') goto yy772;
        !          6877:                                if (yych <= '~') goto yy774;
        !          6878:                                goto yy772;
        !          6879:                        }
        !          6880:                }
        !          6881: yy768:
        !          6882:                YYDEBUG(768, *YYCURSOR);
        !          6883:                ++YYCURSOR;
        !          6884:                yych = *YYCURSOR;
        !          6885:                goto yy780;
        !          6886: yy769:
        !          6887:                YYDEBUG(769, *YYCURSOR);
        !          6888:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6889: #line 1024 "Zend/zend_language_scanner.l"
        !          6890:                {
        !          6891:        zendlval->value.str.val = yytext; /* no copying - intentional */
        !          6892:        zendlval->value.str.len = yyleng;
        !          6893:        zendlval->type = IS_STRING;
        !          6894:        HANDLE_NEWLINES(yytext, yyleng);
        !          6895:        return T_WHITESPACE;
        !          6896: }
        !          6897: #line 6898 "Zend/zend_language_scanner.c"
        !          6898: yy770:
        !          6899:                YYDEBUG(770, *YYCURSOR);
        !          6900:                ++YYCURSOR;
        !          6901:                if ((yych = *YYCURSOR) == '>') goto yy777;
        !          6902: yy771:
        !          6903:                YYDEBUG(771, *YYCURSOR);
        !          6904:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6905: #line 1043 "Zend/zend_language_scanner.l"
        !          6906:                {
        !          6907:        yyless(0);
        !          6908:        yy_pop_state(TSRMLS_C);
        !          6909:        goto restart;
        !          6910: }
        !          6911: #line 6912 "Zend/zend_language_scanner.c"
        !          6912: yy772:
        !          6913:                YYDEBUG(772, *YYCURSOR);
        !          6914:                ++YYCURSOR;
        !          6915:                yych = *YYCURSOR;
        !          6916:                goto yy776;
        !          6917: yy773:
        !          6918:                YYDEBUG(773, *YYCURSOR);
        !          6919:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6920: #line 1036 "Zend/zend_language_scanner.l"
        !          6921:                {
        !          6922:        yy_pop_state(TSRMLS_C);
        !          6923:        zend_copy_value(zendlval, yytext, yyleng);
        !          6924:        zendlval->type = IS_STRING;
        !          6925:        return T_STRING;
        !          6926: }
        !          6927: #line 6928 "Zend/zend_language_scanner.c"
        !          6928: yy774:
        !          6929:                YYDEBUG(774, *YYCURSOR);
        !          6930:                yych = *++YYCURSOR;
        !          6931:                goto yy771;
        !          6932: yy775:
        !          6933:                YYDEBUG(775, *YYCURSOR);
        !          6934:                ++YYCURSOR;
        !          6935:                YYFILL(1);
        !          6936:                yych = *YYCURSOR;
        !          6937: yy776:
        !          6938:                YYDEBUG(776, *YYCURSOR);
        !          6939:                if (yybm[0+yych] & 64) {
        !          6940:                        goto yy775;
        !          6941:                }
        !          6942:                goto yy773;
        !          6943: yy777:
        !          6944:                YYDEBUG(777, *YYCURSOR);
        !          6945:                ++YYCURSOR;
        !          6946:                YYDEBUG(778, *YYCURSOR);
        !          6947:                yyleng = YYCURSOR - SCNG(yy_text);
        !          6948: #line 1032 "Zend/zend_language_scanner.l"
        !          6949:                {
        !          6950:        return T_OBJECT_OPERATOR;
        !          6951: }
        !          6952: #line 6953 "Zend/zend_language_scanner.c"
        !          6953: yy779:
        !          6954:                YYDEBUG(779, *YYCURSOR);
        !          6955:                ++YYCURSOR;
        !          6956:                YYFILL(1);
        !          6957:                yych = *YYCURSOR;
        !          6958: yy780:
        !          6959:                YYDEBUG(780, *YYCURSOR);
        !          6960:                if (yybm[0+yych] & 128) {
        !          6961:                        goto yy779;
        !          6962:                }
        !          6963:                goto yy769;
        !          6964:        }
        !          6965: /* *********************************** */
        !          6966: yyc_ST_LOOKING_FOR_VARNAME:
        !          6967:        {
        !          6968:                static const unsigned char yybm[] = {
        !          6969:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          6970:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          6971:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          6972:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          6973:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          6974:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          6975:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          6976:                        128, 128,   0,   0,   0,   0,   0,   0, 
        !          6977:                          0, 128, 128, 128, 128, 128, 128, 128, 
        !          6978:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          6979:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          6980:                        128, 128, 128,   0,   0,   0,   0, 128, 
        !          6981:                          0, 128, 128, 128, 128, 128, 128, 128, 
        !          6982:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          6983:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          6984:                        128, 128, 128,   0,   0,   0,   0, 128, 
        !          6985:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          6986:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          6987:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          6988:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          6989:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          6990:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          6991:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          6992:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          6993:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          6994:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          6995:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          6996:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          6997:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          6998:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          6999:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          7000:                        128, 128, 128, 128, 128, 128, 128, 128, 
        !          7001:                };
        !          7002:                YYDEBUG(781, *YYCURSOR);
        !          7003:                YYFILL(2);
        !          7004:                yych = *YYCURSOR;
        !          7005:                if (yych <= '_') {
        !          7006:                        if (yych <= '@') goto yy785;
        !          7007:                        if (yych <= 'Z') goto yy783;
        !          7008:                        if (yych <= '^') goto yy785;
        !          7009:                } else {
        !          7010:                        if (yych <= '`') goto yy785;
        !          7011:                        if (yych <= 'z') goto yy783;
        !          7012:                        if (yych <= '~') goto yy785;
        !          7013:                }
        !          7014: yy783:
        !          7015:                YYDEBUG(783, *YYCURSOR);
        !          7016:                ++YYCURSOR;
        !          7017:                yych = *YYCURSOR;
        !          7018:                goto yy788;
        !          7019: yy784:
        !          7020:                YYDEBUG(784, *YYCURSOR);
        !          7021:                yyleng = YYCURSOR - SCNG(yy_text);
        !          7022: #line 1315 "Zend/zend_language_scanner.l"
        !          7023:                {
        !          7024:        zend_copy_value(zendlval, yytext, yyleng);
        !          7025:        zendlval->type = IS_STRING;
        !          7026:        yy_pop_state(TSRMLS_C);
        !          7027:        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        !          7028:        return T_STRING_VARNAME;
        !          7029: }
        !          7030: #line 7031 "Zend/zend_language_scanner.c"
        !          7031: yy785:
        !          7032:                YYDEBUG(785, *YYCURSOR);
        !          7033:                ++YYCURSOR;
        !          7034:                YYDEBUG(786, *YYCURSOR);
        !          7035:                yyleng = YYCURSOR - SCNG(yy_text);
        !          7036: #line 1324 "Zend/zend_language_scanner.l"
        !          7037:                {
        !          7038:        yyless(0);
        !          7039:        yy_pop_state(TSRMLS_C);
        !          7040:        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        !          7041:        goto restart;
        !          7042: }
        !          7043: #line 7044 "Zend/zend_language_scanner.c"
        !          7044: yy787:
        !          7045:                YYDEBUG(787, *YYCURSOR);
        !          7046:                ++YYCURSOR;
        !          7047:                YYFILL(1);
        !          7048:                yych = *YYCURSOR;
        !          7049: yy788:
        !          7050:                YYDEBUG(788, *YYCURSOR);
        !          7051:                if (yybm[0+yych] & 128) {
        !          7052:                        goto yy787;
        !          7053:                }
        !          7054:                goto yy784;
        !          7055:        }
        !          7056: /* *********************************** */
        !          7057: yyc_ST_NOWDOC:
        !          7058:        YYDEBUG(789, *YYCURSOR);
        !          7059:        YYFILL(1);
        !          7060:        yych = *YYCURSOR;
        !          7061:        YYDEBUG(791, *YYCURSOR);
        !          7062:        ++YYCURSOR;
        !          7063:        YYDEBUG(792, *YYCURSOR);
        !          7064:        yyleng = YYCURSOR - SCNG(yy_text);
        !          7065: #line 2158 "Zend/zend_language_scanner.l"
        !          7066:        {
        !          7067:        int newline = 0;
        !          7068: 
        !          7069:        if (YYCURSOR > YYLIMIT) {
        !          7070:                return 0;
        !          7071:        }
        !          7072: 
        !          7073:        YYCURSOR--;
        !          7074: 
        !          7075:        while (YYCURSOR < YYLIMIT) {
        !          7076:                switch (*YYCURSOR++) {
        !          7077:                        case '\r':
        !          7078:                                if (*YYCURSOR == '\n') {
        !          7079:                                        YYCURSOR++;
        !          7080:                                }
        !          7081:                                /* fall through */
        !          7082:                        case '\n':
        !          7083:                                /* Check for ending label on the next line */
        !          7084:                                if (IS_LABEL_START(*YYCURSOR) && CG(heredoc_len) < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, CG(heredoc), CG(heredoc_len))) {
        !          7085:                                        YYCTYPE *end = YYCURSOR + CG(heredoc_len);
        !          7086: 
        !          7087:                                        if (*end == ';') {
        !          7088:                                                end++;
        !          7089:                                        }
        !          7090: 
        !          7091:                                        if (*end == '\n' || *end == '\r') {
        !          7092:                                                /* newline before label will be subtracted from returned text, but
        !          7093:                                                 * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */
        !          7094:                                                if (YYCURSOR[-2] == '\r' && YYCURSOR[-1] == '\n') {
        !          7095:                                                        newline = 2; /* Windows newline */
        !          7096:                                                } else {
        !          7097:                                                        newline = 1;
        !          7098:                                                }
        !          7099: 
        !          7100:                                                CG(increment_lineno) = 1; /* For newline before label */
        !          7101:                                                BEGIN(ST_END_HEREDOC);
        !          7102: 
        !          7103:                                                goto nowdoc_scan_done;
        !          7104:                                        }
        !          7105:                                }
        !          7106:                                /* fall through */
        !          7107:                        default:
        !          7108:                                continue;
        !          7109:                }
        !          7110:        }
        !          7111: 
        !          7112: nowdoc_scan_done:
        !          7113:        yyleng = YYCURSOR - SCNG(yy_text);
        !          7114: 
        !          7115:        zend_copy_value(zendlval, yytext, yyleng - newline);
        !          7116:        zendlval->type = IS_STRING;
        !          7117:        HANDLE_NEWLINES(yytext, yyleng - newline);
        !          7118:        return T_ENCAPSED_AND_WHITESPACE;
        !          7119: }
        !          7120: #line 7121 "Zend/zend_language_scanner.c"
        !          7121: /* *********************************** */
        !          7122: yyc_ST_VAR_OFFSET:
        !          7123:        {
        !          7124:                static const unsigned char yybm[] = {
        !          7125:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          7126:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          7127:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          7128:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          7129:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          7130:                          0,   0,   0,   0,   0,   0,   0,   0, 
        !          7131:                        224, 224, 224, 224, 224, 224, 224, 224, 
        !          7132:                        224, 224,   0,   0,   0,   0,   0,   0, 
        !          7133:                          0, 160, 160, 160, 160, 160, 160,  32, 
        !          7134:                         32,  32,  32,  32,  32,  32,  32,  32, 
        !          7135:                         32,  32,  32,  32,  32,  32,  32,  32, 
        !          7136:                         32,  32,  32,   0,   0,   0,   0,  32, 
        !          7137:                          0, 160, 160, 160, 160, 160, 160,  32, 
        !          7138:                         32,  32,  32,  32,  32,  32,  32,  32, 
        !          7139:                         32,  32,  32,  32,  32,  32,  32,  32, 
        !          7140:                         32,  32,  32,   0,   0,   0,   0,  32, 
        !          7141:                         32,  32,  32,  32,  32,  32,  32,  32, 
        !          7142:                         32,  32,  32,  32,  32,  32,  32,  32, 
        !          7143:                         32,  32,  32,  32,  32,  32,  32,  32, 
        !          7144:                         32,  32,  32,  32,  32,  32,  32,  32, 
        !          7145:                         32,  32,  32,  32,  32,  32,  32,  32, 
        !          7146:                         32,  32,  32,  32,  32,  32,  32,  32, 
        !          7147:                         32,  32,  32,  32,  32,  32,  32,  32, 
        !          7148:                         32,  32,  32,  32,  32,  32,  32,  32, 
        !          7149:                         32,  32,  32,  32,  32,  32,  32,  32, 
        !          7150:                         32,  32,  32,  32,  32,  32,  32,  32, 
        !          7151:                         32,  32,  32,  32,  32,  32,  32,  32, 
        !          7152:                         32,  32,  32,  32,  32,  32,  32,  32, 
        !          7153:                         32,  32,  32,  32,  32,  32,  32,  32, 
        !          7154:                         32,  32,  32,  32,  32,  32,  32,  32, 
        !          7155:                         32,  32,  32,  32,  32,  32,  32,  32, 
        !          7156:                         32,  32,  32,  32,  32,  32,  32,  32, 
        !          7157:                };
        !          7158:                YYDEBUG(793, *YYCURSOR);
        !          7159:                YYFILL(3);
        !          7160:                yych = *YYCURSOR;
        !          7161:                if (yych <= '/') {
        !          7162:                        if (yych <= ' ') {
        !          7163:                                if (yych <= '\f') {
        !          7164:                                        if (yych <= 0x08) goto yy807;
        !          7165:                                        if (yych <= '\n') goto yy803;
        !          7166:                                        goto yy807;
        !          7167:                                } else {
        !          7168:                                        if (yych <= '\r') goto yy803;
        !          7169:                                        if (yych <= 0x1F) goto yy807;
        !          7170:                                        goto yy803;
        !          7171:                                }
        !          7172:                        } else {
        !          7173:                                if (yych <= '$') {
        !          7174:                                        if (yych <= '"') goto yy802;
        !          7175:                                        if (yych <= '#') goto yy803;
        !          7176:                                        goto yy798;
        !          7177:                                } else {
        !          7178:                                        if (yych == '\'') goto yy803;
        !          7179:                                        goto yy802;
        !          7180:                                }
        !          7181:                        }
        !          7182:                } else {
        !          7183:                        if (yych <= '\\') {
        !          7184:                                if (yych <= '@') {
        !          7185:                                        if (yych <= '0') goto yy795;
        !          7186:                                        if (yych <= '9') goto yy797;
        !          7187:                                        goto yy802;
        !          7188:                                } else {
        !          7189:                                        if (yych <= 'Z') goto yy805;
        !          7190:                                        if (yych <= '[') goto yy802;
        !          7191:                                        goto yy803;
        !          7192:                                }
        !          7193:                        } else {
        !          7194:                                if (yych <= '_') {
        !          7195:                                        if (yych <= ']') goto yy800;
        !          7196:                                        if (yych <= '^') goto yy802;
        !          7197:                                        goto yy805;
        !          7198:                                } else {
        !          7199:                                        if (yych <= '`') goto yy802;
        !          7200:                                        if (yych <= 'z') goto yy805;
        !          7201:                                        if (yych <= '~') goto yy802;
        !          7202:                                        goto yy805;
        !          7203:                                }
        !          7204:                        }
        !          7205:                }
        !          7206: yy795:
        !          7207:                YYDEBUG(795, *YYCURSOR);
        !          7208:                yyaccept = 0;
        !          7209:                yych = *(YYMARKER = ++YYCURSOR);
        !          7210:                if (yych <= 'W') {
        !          7211:                        if (yych <= '/') goto yy796;
        !          7212:                        if (yych <= '9') goto yy818;
        !          7213:                } else {
        !          7214:                        if (yych <= 'X') goto yy816;
        !          7215:                        if (yych == 'x') goto yy816;
        !          7216:                }
        !          7217: yy796:
        !          7218:                YYDEBUG(796, *YYCURSOR);
        !          7219:                yyleng = YYCURSOR - SCNG(yy_text);
        !          7220: #line 1374 "Zend/zend_language_scanner.l"
        !          7221:                { /* Offset could be treated as a long */
        !          7222:        if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {
        !          7223:                zendlval->value.lval = strtol(yytext, NULL, 10);
        !          7224:                zendlval->type = IS_LONG;
        !          7225:        } else {
        !          7226:                zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
        !          7227:                zendlval->value.str.len = yyleng;
        !          7228:                zendlval->type = IS_STRING;
        !          7229:        }
        !          7230:        return T_NUM_STRING;
        !          7231: }
        !          7232: #line 7233 "Zend/zend_language_scanner.c"
        !          7233: yy797:
        !          7234:                YYDEBUG(797, *YYCURSOR);
        !          7235:                yych = *++YYCURSOR;
        !          7236:                goto yy815;
        !          7237: yy798:
        !          7238:                YYDEBUG(798, *YYCURSOR);
        !          7239:                ++YYCURSOR;
        !          7240:                if ((yych = *YYCURSOR) <= '_') {
        !          7241:                        if (yych <= '@') goto yy799;
        !          7242:                        if (yych <= 'Z') goto yy811;
        !          7243:                        if (yych >= '_') goto yy811;
        !          7244:                } else {
        !          7245:                        if (yych <= '`') goto yy799;
        !          7246:                        if (yych <= 'z') goto yy811;
        !          7247:                        if (yych >= 0x7F) goto yy811;
        !          7248:                }
        !          7249: yy799:
        !          7250:                YYDEBUG(799, *YYCURSOR);
        !          7251:                yyleng = YYCURSOR - SCNG(yy_text);
        !          7252: #line 1684 "Zend/zend_language_scanner.l"
        !          7253:                {
        !          7254:        /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
        !          7255:        return yytext[0];
        !          7256: }
        !          7257: #line 7258 "Zend/zend_language_scanner.c"
        !          7258: yy800:
        !          7259:                YYDEBUG(800, *YYCURSOR);
        !          7260:                ++YYCURSOR;
        !          7261:                YYDEBUG(801, *YYCURSOR);
        !          7262:                yyleng = YYCURSOR - SCNG(yy_text);
        !          7263: #line 1679 "Zend/zend_language_scanner.l"
        !          7264:                {
        !          7265:        yy_pop_state(TSRMLS_C);
        !          7266:        return ']';
        !          7267: }
        !          7268: #line 7269 "Zend/zend_language_scanner.c"
        !          7269: yy802:
        !          7270:                YYDEBUG(802, *YYCURSOR);
        !          7271:                yych = *++YYCURSOR;
        !          7272:                goto yy799;
        !          7273: yy803:
        !          7274:                YYDEBUG(803, *YYCURSOR);
        !          7275:                ++YYCURSOR;
        !          7276:                YYDEBUG(804, *YYCURSOR);
        !          7277:                yyleng = YYCURSOR - SCNG(yy_text);
        !          7278: #line 1689 "Zend/zend_language_scanner.l"
        !          7279:                {
        !          7280:        /* Invalid rule to return a more explicit parse error with proper line number */
        !          7281:        yyless(0);
        !          7282:        yy_pop_state(TSRMLS_C);
        !          7283:        return T_ENCAPSED_AND_WHITESPACE;
        !          7284: }
        !          7285: #line 7286 "Zend/zend_language_scanner.c"
        !          7286: yy805:
        !          7287:                YYDEBUG(805, *YYCURSOR);
        !          7288:                ++YYCURSOR;
        !          7289:                yych = *YYCURSOR;
        !          7290:                goto yy810;
        !          7291: yy806:
        !          7292:                YYDEBUG(806, *YYCURSOR);
        !          7293:                yyleng = YYCURSOR - SCNG(yy_text);
        !          7294: #line 1696 "Zend/zend_language_scanner.l"
        !          7295:                {
        !          7296:        zend_copy_value(zendlval, yytext, yyleng);
        !          7297:        zendlval->type = IS_STRING;
        !          7298:        return T_STRING;
        !          7299: }
        !          7300: #line 7301 "Zend/zend_language_scanner.c"
        !          7301: yy807:
        !          7302:                YYDEBUG(807, *YYCURSOR);
        !          7303:                ++YYCURSOR;
        !          7304:                YYDEBUG(808, *YYCURSOR);
        !          7305:                yyleng = YYCURSOR - SCNG(yy_text);
        !          7306: #line 2214 "Zend/zend_language_scanner.l"
        !          7307:                {
        !          7308:        if (YYCURSOR > YYLIMIT) {
        !          7309:                return 0;
        !          7310:        }
        !          7311: 
        !          7312:        zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
        !          7313:        goto restart;
        !          7314: }
        !          7315: #line 7316 "Zend/zend_language_scanner.c"
        !          7316: yy809:
        !          7317:                YYDEBUG(809, *YYCURSOR);
        !          7318:                ++YYCURSOR;
        !          7319:                YYFILL(1);
        !          7320:                yych = *YYCURSOR;
        !          7321: yy810:
        !          7322:                YYDEBUG(810, *YYCURSOR);
        !          7323:                if (yybm[0+yych] & 32) {
        !          7324:                        goto yy809;
        !          7325:                }
        !          7326:                goto yy806;
        !          7327: yy811:
        !          7328:                YYDEBUG(811, *YYCURSOR);
        !          7329:                ++YYCURSOR;
        !          7330:                YYFILL(1);
        !          7331:                yych = *YYCURSOR;
        !          7332:                YYDEBUG(812, *YYCURSOR);
        !          7333:                if (yych <= '^') {
        !          7334:                        if (yych <= '9') {
        !          7335:                                if (yych >= '0') goto yy811;
        !          7336:                        } else {
        !          7337:                                if (yych <= '@') goto yy813;
        !          7338:                                if (yych <= 'Z') goto yy811;
        !          7339:                        }
        !          7340:                } else {
        !          7341:                        if (yych <= '`') {
        !          7342:                                if (yych <= '_') goto yy811;
        !          7343:                        } else {
        !          7344:                                if (yych <= 'z') goto yy811;
        !          7345:                                if (yych >= 0x7F) goto yy811;
        !          7346:                        }
        !          7347:                }
        !          7348: yy813:
        !          7349:                YYDEBUG(813, *YYCURSOR);
        !          7350:                yyleng = YYCURSOR - SCNG(yy_text);
        !          7351: #line 1673 "Zend/zend_language_scanner.l"
        !          7352:                {
        !          7353:        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        !          7354:        zendlval->type = IS_STRING;
        !          7355:        return T_VARIABLE;
        !          7356: }
        !          7357: #line 7358 "Zend/zend_language_scanner.c"
        !          7358: yy814:
        !          7359:                YYDEBUG(814, *YYCURSOR);
        !          7360:                ++YYCURSOR;
        !          7361:                YYFILL(1);
        !          7362:                yych = *YYCURSOR;
        !          7363: yy815:
        !          7364:                YYDEBUG(815, *YYCURSOR);
        !          7365:                if (yybm[0+yych] & 64) {
        !          7366:                        goto yy814;
        !          7367:                }
        !          7368:                goto yy796;
        !          7369: yy816:
        !          7370:                YYDEBUG(816, *YYCURSOR);
        !          7371:                yych = *++YYCURSOR;
        !          7372:                if (yybm[0+yych] & 128) {
        !          7373:                        goto yy821;
        !          7374:                }
        !          7375:                YYDEBUG(817, *YYCURSOR);
        !          7376:                YYCURSOR = YYMARKER;
        !          7377:                goto yy796;
        !          7378: yy818:
        !          7379:                YYDEBUG(818, *YYCURSOR);
        !          7380:                ++YYCURSOR;
        !          7381:                YYFILL(1);
        !          7382:                yych = *YYCURSOR;
        !          7383:                YYDEBUG(819, *YYCURSOR);
        !          7384:                if (yych <= '/') goto yy820;
        !          7385:                if (yych <= '9') goto yy818;
        !          7386: yy820:
        !          7387:                YYDEBUG(820, *YYCURSOR);
        !          7388:                yyleng = YYCURSOR - SCNG(yy_text);
        !          7389: #line 1386 "Zend/zend_language_scanner.l"
        !          7390:                { /* Offset must be treated as a string */
        !          7391:        zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
        !          7392:        zendlval->value.str.len = yyleng;
        !          7393:        zendlval->type = IS_STRING;
        !          7394:        return T_NUM_STRING;
        !          7395: }
        !          7396: #line 7397 "Zend/zend_language_scanner.c"
        !          7397: yy821:
        !          7398:                YYDEBUG(821, *YYCURSOR);
        !          7399:                ++YYCURSOR;
        !          7400:                YYFILL(1);
        !          7401:                yych = *YYCURSOR;
        !          7402:                YYDEBUG(822, *YYCURSOR);
        !          7403:                if (yybm[0+yych] & 128) {
        !          7404:                        goto yy821;
        !          7405:                }
        !          7406:                goto yy820;
        !          7407:        }
        !          7408: }
        !          7409: #line 2223 "Zend/zend_language_scanner.l"
        !          7410: 
        !          7411: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>