Annotation of embedaddon/php/Zend/zend_language_scanner.c, revision 1.1.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>