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

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

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