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

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

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