From: Nikita Popov Date: Fri, 28 Feb 2020 16:25:47 +0000 (+0100) Subject: Remove generated lexer X-Git-Tag: php-7.4.7RC1~164 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=533633deda78301c58b360841d02c061f2a6106e;p=php Remove generated lexer Accidentially committed this when merging from 7.3. --- diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c deleted file mode 100644 index 46bafe5e52..0000000000 --- a/Zend/zend_language_scanner.c +++ /dev/null @@ -1,8488 +0,0 @@ -/* Generated by re2c 1.0.1 */ -#line 1 "Zend/zend_language_scanner.l" -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Marcus Boerger | - | Nuno Lopes | - | Scott MacVicar | - | Flex version authors: | - | Andi Gutmans | - | Zeev Suraski | - +----------------------------------------------------------------------+ -*/ - -#if 0 -# define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c) -#else -# define YYDEBUG(s, c) -#endif - -#include "zend_language_scanner_defs.h" - -#include -#include "zend.h" -#ifdef ZEND_WIN32 -# include -#endif -#include "zend_alloc.h" -#include -#include "zend_compile.h" -#include "zend_language_scanner.h" -#include "zend_highlight.h" -#include "zend_constants.h" -#include "zend_variables.h" -#include "zend_operators.h" -#include "zend_API.h" -#include "zend_strtod.h" -#include "zend_exceptions.h" -#include "zend_virtual_cwd.h" - -#define YYCTYPE unsigned char -#define YYFILL(n) { if ((YYCURSOR + n) >= (YYLIMIT + ZEND_MMAP_AHEAD)) { return 0; } } -#define YYCURSOR SCNG(yy_cursor) -#define YYLIMIT SCNG(yy_limit) -#define YYMARKER SCNG(yy_marker) - -#define YYGETCONDITION() SCNG(yy_state) -#define YYSETCONDITION(s) SCNG(yy_state) = s - -#define STATE(name) yyc##name - -/* emulate flex constructs */ -#define BEGIN(state) YYSETCONDITION(STATE(state)) -#define YYSTATE YYGETCONDITION() -#define yytext ((char*)SCNG(yy_text)) -#define yyleng SCNG(yy_leng) -#define yyless(x) do { YYCURSOR = (unsigned char*)yytext + x; \ - yyleng = (unsigned int)x; } while(0) -#define yymore() goto yymore_restart - -/* perform sanity check. If this message is triggered you should - increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */ -#define YYMAXFILL 16 - -#if ZEND_MMAP_AHEAD < YYMAXFILL -# error ZEND_MMAP_AHEAD should be greater than or equal to YYMAXFILL -#endif - -#include - -#ifdef HAVE_UNISTD_H -# include -#endif - -/* Globals Macros */ -#define SCNG LANG_SCNG -#ifdef ZTS -ZEND_API ts_rsrc_id language_scanner_globals_id; -ZEND_API size_t language_scanner_globals_offset; -#else -ZEND_API zend_php_scanner_globals language_scanner_globals; -#endif - -#define HANDLE_NEWLINES(s, l) \ -do { \ - char *p = (s), *boundary = p+(l); \ - \ - while (p= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || (c) == '_' || (c) >= 0x80) -#define IS_LABEL_SUCCESSOR(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || ((c) >= '0' && (c) <= '9') || (c) == '_' || (c) >= 0x80) - -#define ZEND_IS_OCT(c) ((c)>='0' && (c)<='7') -#define ZEND_IS_HEX(c) (((c)>='0' && (c)<='9') || ((c)>='a' && (c)<='f') || ((c)>='A' && (c)<='F')) - -BEGIN_EXTERN_C() - -static void strip_underscores(char *str, size_t *len) -{ - char *src = str, *dest = str; - while (*src != '\0') { - if (*src != '_') { - *dest = *src; - dest++; - } else { - --(*len); - } - src++; - } - *dest = '\0'; -} - -static size_t encoding_filter_script_to_internal(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length) -{ - const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding(); - ZEND_ASSERT(internal_encoding); - return zend_multibyte_encoding_converter(to, to_length, from, from_length, internal_encoding, LANG_SCNG(script_encoding)); -} - -static size_t encoding_filter_script_to_intermediate(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length) -{ - return zend_multibyte_encoding_converter(to, to_length, from, from_length, zend_multibyte_encoding_utf8, LANG_SCNG(script_encoding)); -} - -static size_t encoding_filter_intermediate_to_script(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length) -{ - return zend_multibyte_encoding_converter(to, to_length, from, from_length, -LANG_SCNG(script_encoding), zend_multibyte_encoding_utf8); -} - -static size_t encoding_filter_intermediate_to_internal(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length) -{ - const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding(); - ZEND_ASSERT(internal_encoding); - return zend_multibyte_encoding_converter(to, to_length, from, from_length, -internal_encoding, zend_multibyte_encoding_utf8); -} - - -static void _yy_push_state(int new_state) -{ - zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION()); - YYSETCONDITION(new_state); -} - -#define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm) - -static void yy_pop_state(void) -{ - int *stack_state = zend_stack_top(&SCNG(state_stack)); - YYSETCONDITION(*stack_state); - zend_stack_del_top(&SCNG(state_stack)); -} - -static void yy_scan_buffer(char *str, unsigned int len) -{ - YYCURSOR = (YYCTYPE*)str; - YYLIMIT = YYCURSOR + len; - if (!SCNG(yy_start)) { - SCNG(yy_start) = YYCURSOR; - } -} - -void startup_scanner(void) -{ - CG(parse_error) = 0; - CG(doc_comment) = NULL; - CG(extra_fn_flags) = 0; - zend_stack_init(&SCNG(state_stack), sizeof(int)); - zend_ptr_stack_init(&SCNG(heredoc_label_stack)); - SCNG(heredoc_scan_ahead) = 0; -} - -static void heredoc_label_dtor(zend_heredoc_label *heredoc_label) { - efree(heredoc_label->label); -} - -void shutdown_scanner(void) -{ - CG(parse_error) = 0; - RESET_DOC_COMMENT(); - zend_stack_destroy(&SCNG(state_stack)); - zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1); - zend_ptr_stack_destroy(&SCNG(heredoc_label_stack)); - SCNG(heredoc_scan_ahead) = 0; - SCNG(on_event) = NULL; -} - -ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state) -{ - lex_state->yy_leng = SCNG(yy_leng); - lex_state->yy_start = SCNG(yy_start); - lex_state->yy_text = SCNG(yy_text); - lex_state->yy_cursor = SCNG(yy_cursor); - lex_state->yy_marker = SCNG(yy_marker); - lex_state->yy_limit = SCNG(yy_limit); - - lex_state->state_stack = SCNG(state_stack); - zend_stack_init(&SCNG(state_stack), sizeof(int)); - - lex_state->heredoc_label_stack = SCNG(heredoc_label_stack); - zend_ptr_stack_init(&SCNG(heredoc_label_stack)); - - lex_state->in = SCNG(yy_in); - lex_state->yy_state = YYSTATE; - lex_state->filename = zend_get_compiled_filename(); - lex_state->lineno = CG(zend_lineno); - - lex_state->script_org = SCNG(script_org); - lex_state->script_org_size = SCNG(script_org_size); - lex_state->script_filtered = SCNG(script_filtered); - lex_state->script_filtered_size = SCNG(script_filtered_size); - lex_state->input_filter = SCNG(input_filter); - lex_state->output_filter = SCNG(output_filter); - lex_state->script_encoding = SCNG(script_encoding); - - lex_state->on_event = SCNG(on_event); - lex_state->on_event_context = SCNG(on_event_context); - - lex_state->ast = CG(ast); - lex_state->ast_arena = CG(ast_arena); -} - -ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state) -{ - SCNG(yy_leng) = lex_state->yy_leng; - SCNG(yy_start) = lex_state->yy_start; - SCNG(yy_text) = lex_state->yy_text; - SCNG(yy_cursor) = lex_state->yy_cursor; - SCNG(yy_marker) = lex_state->yy_marker; - SCNG(yy_limit) = lex_state->yy_limit; - - zend_stack_destroy(&SCNG(state_stack)); - SCNG(state_stack) = lex_state->state_stack; - - zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1); - zend_ptr_stack_destroy(&SCNG(heredoc_label_stack)); - SCNG(heredoc_label_stack) = lex_state->heredoc_label_stack; - - SCNG(yy_in) = lex_state->in; - YYSETCONDITION(lex_state->yy_state); - CG(zend_lineno) = lex_state->lineno; - zend_restore_compiled_filename(lex_state->filename); - - if (SCNG(script_filtered)) { - efree(SCNG(script_filtered)); - SCNG(script_filtered) = NULL; - } - SCNG(script_org) = lex_state->script_org; - SCNG(script_org_size) = lex_state->script_org_size; - SCNG(script_filtered) = lex_state->script_filtered; - SCNG(script_filtered_size) = lex_state->script_filtered_size; - SCNG(input_filter) = lex_state->input_filter; - SCNG(output_filter) = lex_state->output_filter; - SCNG(script_encoding) = lex_state->script_encoding; - - SCNG(on_event) = lex_state->on_event; - SCNG(on_event_context) = lex_state->on_event_context; - - CG(ast) = lex_state->ast; - CG(ast_arena) = lex_state->ast_arena; - - RESET_DOC_COMMENT(); -} - -ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle) -{ - zend_llist_del_element(&CG(open_files), file_handle, (int (*)(void *, void *)) zend_compare_file_handles); - /* zend_file_handle_dtor() operates on the copy, so we have to NULLify the original here */ - file_handle->opened_path = NULL; - if (file_handle->free_filename) { - file_handle->filename = NULL; - } -} - -ZEND_API void zend_lex_tstring(zval *zv) -{ - if (SCNG(on_event)) { - SCNG(on_event)(ON_FEEDBACK, T_STRING, 0, SCNG(on_event_context)); - } - - ZVAL_STRINGL(zv, (char*)SCNG(yy_text), SCNG(yy_leng)); -} - -#define BOM_UTF32_BE "\x00\x00\xfe\xff" -#define BOM_UTF32_LE "\xff\xfe\x00\x00" -#define BOM_UTF16_BE "\xfe\xff" -#define BOM_UTF16_LE "\xff\xfe" -#define BOM_UTF8 "\xef\xbb\xbf" - -static const zend_encoding *zend_multibyte_detect_utf_encoding(const unsigned char *script, size_t script_size) -{ - const unsigned char *p; - int wchar_size = 2; - int le = 0; - - /* utf-16 or utf-32? */ - p = script; - assert(p >= script); - while ((size_t)(p-script) < script_size) { - p = memchr(p, 0, script_size-(p-script)-2); - if (!p) { - break; - } - if (*(p+1) == '\0' && *(p+2) == '\0') { - wchar_size = 4; - break; - } - - /* searching for UTF-32 specific byte orders, so this will do */ - p += 4; - } - - /* BE or LE? */ - p = script; - assert(p >= script); - while ((size_t)(p-script) < script_size) { - if (*p == '\0' && *(p+wchar_size-1) != '\0') { - /* BE */ - le = 0; - break; - } else if (*p != '\0' && *(p+wchar_size-1) == '\0') { - /* LE* */ - le = 1; - break; - } - p += wchar_size; - } - - if (wchar_size == 2) { - return le ? zend_multibyte_encoding_utf16le : zend_multibyte_encoding_utf16be; - } else { - return le ? zend_multibyte_encoding_utf32le : zend_multibyte_encoding_utf32be; - } - - return NULL; -} - -static const zend_encoding* zend_multibyte_detect_unicode(void) -{ - const zend_encoding *script_encoding = NULL; - int bom_size; - unsigned char *pos1, *pos2; - - if (LANG_SCNG(script_org_size) < sizeof(BOM_UTF32_LE)-1) { - return NULL; - } - - /* check out BOM */ - if (!memcmp(LANG_SCNG(script_org), BOM_UTF32_BE, sizeof(BOM_UTF32_BE)-1)) { - script_encoding = zend_multibyte_encoding_utf32be; - bom_size = sizeof(BOM_UTF32_BE)-1; - } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF32_LE, sizeof(BOM_UTF32_LE)-1)) { - script_encoding = zend_multibyte_encoding_utf32le; - bom_size = sizeof(BOM_UTF32_LE)-1; - } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF16_BE, sizeof(BOM_UTF16_BE)-1)) { - script_encoding = zend_multibyte_encoding_utf16be; - bom_size = sizeof(BOM_UTF16_BE)-1; - } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF16_LE, sizeof(BOM_UTF16_LE)-1)) { - script_encoding = zend_multibyte_encoding_utf16le; - bom_size = sizeof(BOM_UTF16_LE)-1; - } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF8, sizeof(BOM_UTF8)-1)) { - script_encoding = zend_multibyte_encoding_utf8; - bom_size = sizeof(BOM_UTF8)-1; - } - - if (script_encoding) { - /* remove BOM */ - LANG_SCNG(script_org) += bom_size; - LANG_SCNG(script_org_size) -= bom_size; - - return script_encoding; - } - - /* script contains NULL bytes -> auto-detection */ - if ((pos1 = memchr(LANG_SCNG(script_org), 0, LANG_SCNG(script_org_size)))) { - /* check if the NULL byte is after the __HALT_COMPILER(); */ - pos2 = LANG_SCNG(script_org); - - while ((size_t)(pos1 - pos2) >= sizeof("__HALT_COMPILER();")-1) { - pos2 = memchr(pos2, '_', pos1 - pos2); - if (!pos2) break; - pos2++; - if (strncasecmp((char*)pos2, "_HALT_COMPILER", sizeof("_HALT_COMPILER")-1) == 0) { - pos2 += sizeof("_HALT_COMPILER")-1; - while (*pos2 == ' ' || - *pos2 == '\t' || - *pos2 == '\r' || - *pos2 == '\n') { - pos2++; - } - if (*pos2 == '(') { - pos2++; - while (*pos2 == ' ' || - *pos2 == '\t' || - *pos2 == '\r' || - *pos2 == '\n') { - pos2++; - } - if (*pos2 == ')') { - pos2++; - while (*pos2 == ' ' || - *pos2 == '\t' || - *pos2 == '\r' || - *pos2 == '\n') { - pos2++; - } - if (*pos2 == ';') { - return NULL; - } - } - } - } - } - /* make best effort if BOM is missing */ - return zend_multibyte_detect_utf_encoding(LANG_SCNG(script_org), LANG_SCNG(script_org_size)); - } - - return NULL; -} - -static const zend_encoding* zend_multibyte_find_script_encoding(void) -{ - const zend_encoding *script_encoding; - - if (CG(detect_unicode)) { - /* check out bom(byte order mark) and see if containing wchars */ - script_encoding = zend_multibyte_detect_unicode(); - if (script_encoding != NULL) { - /* bom or wchar detection is prior to 'script_encoding' option */ - return script_encoding; - } - } - - /* if no script_encoding specified, just leave alone */ - if (!CG(script_encoding_list) || !CG(script_encoding_list_size)) { - return NULL; - } - - /* if multiple encodings specified, detect automagically */ - if (CG(script_encoding_list_size) > 1) { - return zend_multibyte_encoding_detector(LANG_SCNG(script_org), LANG_SCNG(script_org_size), CG(script_encoding_list), CG(script_encoding_list_size)); - } - - return CG(script_encoding_list)[0]; -} - -ZEND_API int zend_multibyte_set_filter(const zend_encoding *onetime_encoding) -{ - const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding(); - const zend_encoding *script_encoding = onetime_encoding ? onetime_encoding: zend_multibyte_find_script_encoding(); - - if (!script_encoding) { - return FAILURE; - } - - /* judge input/output filter */ - LANG_SCNG(script_encoding) = script_encoding; - LANG_SCNG(input_filter) = NULL; - LANG_SCNG(output_filter) = NULL; - - if (!internal_encoding || LANG_SCNG(script_encoding) == internal_encoding) { - if (!zend_multibyte_check_lexer_compatibility(LANG_SCNG(script_encoding))) { - /* and if not, work around w/ script_encoding -> utf-8 -> script_encoding conversion */ - LANG_SCNG(input_filter) = encoding_filter_script_to_intermediate; - LANG_SCNG(output_filter) = encoding_filter_intermediate_to_script; - } else { - LANG_SCNG(input_filter) = NULL; - LANG_SCNG(output_filter) = NULL; - } - return SUCCESS; - } - - if (zend_multibyte_check_lexer_compatibility(internal_encoding)) { - LANG_SCNG(input_filter) = encoding_filter_script_to_internal; - LANG_SCNG(output_filter) = NULL; - } else if (zend_multibyte_check_lexer_compatibility(LANG_SCNG(script_encoding))) { - LANG_SCNG(input_filter) = NULL; - LANG_SCNG(output_filter) = encoding_filter_script_to_internal; - } else { - /* both script and internal encodings are incompatible w/ flex */ - LANG_SCNG(input_filter) = encoding_filter_script_to_intermediate; - LANG_SCNG(output_filter) = encoding_filter_intermediate_to_internal; - } - - return 0; -} - -ZEND_API int open_file_for_scanning(zend_file_handle *file_handle) -{ - char *buf; - size_t size; - zend_string *compiled_filename; - - if (zend_stream_fixup(file_handle, &buf, &size) == FAILURE) { - /* Still add it to open_files to make destroy_file_handle work */ - zend_llist_add_element(&CG(open_files), file_handle); - return FAILURE; - } - - ZEND_ASSERT(!EG(exception) && "stream_fixup() should have failed"); - zend_llist_add_element(&CG(open_files), file_handle); - if (file_handle->handle.stream.handle >= (void*)file_handle && file_handle->handle.stream.handle <= (void*)(file_handle+1)) { - zend_file_handle *fh = (zend_file_handle*)zend_llist_get_last(&CG(open_files)); - size_t diff = (char*)file_handle->handle.stream.handle - (char*)file_handle; - fh->handle.stream.handle = (void*)(((char*)fh) + diff); - file_handle->handle.stream.handle = fh->handle.stream.handle; - } - - /* Reset the scanner for scanning the new file */ - SCNG(yy_in) = file_handle; - SCNG(yy_start) = NULL; - - if (size != (size_t)-1) { - if (CG(multibyte)) { - SCNG(script_org) = (unsigned char*)buf; - SCNG(script_org_size) = size; - SCNG(script_filtered) = NULL; - - zend_multibyte_set_filter(NULL); - - if (SCNG(input_filter)) { - if ((size_t)-1 == SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size))) { - zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected " - "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding))); - } - buf = (char*)SCNG(script_filtered); - size = SCNG(script_filtered_size); - } - } - SCNG(yy_start) = (unsigned char *)buf; - yy_scan_buffer(buf, (unsigned int)size); - } else { - zend_error_noreturn(E_COMPILE_ERROR, "zend_stream_mmap() failed"); - } - - if (CG(skip_shebang)) { - CG(skip_shebang) = 0; - BEGIN(SHEBANG); - } else { - BEGIN(INITIAL); - } - - if (file_handle->opened_path) { - compiled_filename = zend_string_copy(file_handle->opened_path); - } else { - compiled_filename = zend_string_init(file_handle->filename, strlen(file_handle->filename), 0); - } - - zend_set_compiled_filename(compiled_filename); - zend_string_release_ex(compiled_filename, 0); - - RESET_DOC_COMMENT(); - CG(zend_lineno) = 1; - CG(increment_lineno) = 0; - return SUCCESS; -} -END_EXTERN_C() - -static zend_op_array *zend_compile(int type) -{ - zend_op_array *op_array = NULL; - zend_bool original_in_compilation = CG(in_compilation); - - CG(in_compilation) = 1; - CG(ast) = NULL; - CG(ast_arena) = zend_arena_create(1024 * 32); - - if (!zendparse()) { - int last_lineno = CG(zend_lineno); - zend_file_context original_file_context; - zend_oparray_context original_oparray_context; - zend_op_array *original_active_op_array = CG(active_op_array); - - op_array = emalloc(sizeof(zend_op_array)); - init_op_array(op_array, type, INITIAL_OP_ARRAY_SIZE); - CG(active_op_array) = op_array; - - /* Use heap to not waste arena memory */ - op_array->fn_flags |= ZEND_ACC_HEAP_RT_CACHE; - - if (zend_ast_process) { - zend_ast_process(CG(ast)); - } - - zend_file_context_begin(&original_file_context); - zend_oparray_context_begin(&original_oparray_context); - zend_compile_top_stmt(CG(ast)); - CG(zend_lineno) = last_lineno; - zend_emit_final_return(type == ZEND_USER_FUNCTION); - op_array->line_start = 1; - op_array->line_end = last_lineno; - pass_two(op_array); - zend_oparray_context_end(&original_oparray_context); - zend_file_context_end(&original_file_context); - - CG(active_op_array) = original_active_op_array; - } - - zend_ast_destroy(CG(ast)); - zend_arena_destroy(CG(ast_arena)); - - CG(in_compilation) = original_in_compilation; - - return op_array; -} - -ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type) -{ - zend_lex_state original_lex_state; - zend_op_array *op_array = NULL; - zend_save_lexical_state(&original_lex_state); - - if (open_file_for_scanning(file_handle)==FAILURE) { - if (!EG(exception)) { - if (type==ZEND_REQUIRE) { - zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, file_handle->filename); - zend_bailout(); - } else { - zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, file_handle->filename); - } - } - } else { - op_array = zend_compile(ZEND_USER_FUNCTION); - } - - zend_restore_lexical_state(&original_lex_state); - return op_array; -} - - -zend_op_array *compile_filename(int type, zval *filename) -{ - zend_file_handle file_handle; - zval tmp; - zend_op_array *retval; - zend_string *opened_path = NULL; - - if (Z_TYPE_P(filename) != IS_STRING) { - ZVAL_STR(&tmp, zval_get_string(filename)); - filename = &tmp; - } - zend_stream_init_filename(&file_handle, Z_STRVAL_P(filename)); - - retval = zend_compile_file(&file_handle, type); - if (retval && file_handle.handle.stream.handle) { - if (!file_handle.opened_path) { - file_handle.opened_path = opened_path = zend_string_copy(Z_STR_P(filename)); - } - - zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path); - - if (opened_path) { - zend_string_release_ex(opened_path, 0); - } - } - zend_destroy_file_handle(&file_handle); - - if (UNEXPECTED(filename == &tmp)) { - zval_ptr_dtor(&tmp); - } - return retval; -} - -ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename) -{ - char *buf; - size_t size, old_len; - zend_string *new_compiled_filename; - - /* enforce ZEND_MMAP_AHEAD trailing NULLs for flex... */ - old_len = Z_STRLEN_P(str); - Z_STR_P(str) = zend_string_extend(Z_STR_P(str), old_len + ZEND_MMAP_AHEAD, 0); - Z_TYPE_INFO_P(str) = IS_STRING_EX; - memset(Z_STRVAL_P(str) + old_len, 0, ZEND_MMAP_AHEAD + 1); - - SCNG(yy_in) = NULL; - SCNG(yy_start) = NULL; - - buf = Z_STRVAL_P(str); - size = old_len; - - if (CG(multibyte)) { - SCNG(script_org) = (unsigned char*)buf; - SCNG(script_org_size) = size; - SCNG(script_filtered) = NULL; - - zend_multibyte_set_filter(zend_multibyte_get_internal_encoding()); - - if (SCNG(input_filter)) { - if ((size_t)-1 == SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size))) { - zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected " - "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding))); - } - buf = (char*)SCNG(script_filtered); - size = SCNG(script_filtered_size); - } - } - - yy_scan_buffer(buf, (unsigned int)size); - - new_compiled_filename = zend_string_init(filename, strlen(filename), 0); - zend_set_compiled_filename(new_compiled_filename); - zend_string_release_ex(new_compiled_filename, 0); - CG(zend_lineno) = 1; - CG(increment_lineno) = 0; - RESET_DOC_COMMENT(); - return SUCCESS; -} - - -ZEND_API size_t zend_get_scanned_file_offset(void) -{ - size_t offset = SCNG(yy_cursor) - SCNG(yy_start); - if (SCNG(input_filter)) { - size_t original_offset = offset, length = 0; - do { - unsigned char *p = NULL; - if ((size_t)-1 == SCNG(input_filter)(&p, &length, SCNG(script_org), offset)) { - return (size_t)-1; - } - efree(p); - if (length > original_offset) { - offset--; - } else if (length < original_offset) { - offset++; - } - } while (original_offset != length); - } - return offset; -} - -zend_op_array *compile_string(zval *source_string, char *filename) -{ - zend_lex_state original_lex_state; - zend_op_array *op_array = NULL; - zval tmp; - - if (UNEXPECTED(Z_TYPE_P(source_string) != IS_STRING)) { - ZVAL_STR(&tmp, zval_get_string_func(source_string)); - } else { - ZVAL_COPY(&tmp, source_string); - } - - if (Z_STRLEN(tmp)==0) { - zval_ptr_dtor(&tmp); - return NULL; - } - - zend_save_lexical_state(&original_lex_state); - if (zend_prepare_string_for_scanning(&tmp, filename) == SUCCESS) { - BEGIN(ST_IN_SCRIPTING); - op_array = zend_compile(ZEND_EVAL_CODE); - } - - zend_restore_lexical_state(&original_lex_state); - zval_ptr_dtor(&tmp); - - return op_array; -} - - -BEGIN_EXTERN_C() -int highlight_file(char *filename, zend_syntax_highlighter_ini *syntax_highlighter_ini) -{ - zend_lex_state original_lex_state; - zend_file_handle file_handle; - - zend_stream_init_filename(&file_handle, filename); - zend_save_lexical_state(&original_lex_state); - if (open_file_for_scanning(&file_handle)==FAILURE) { - zend_message_dispatcher(ZMSG_FAILED_HIGHLIGHT_FOPEN, filename); - zend_restore_lexical_state(&original_lex_state); - return FAILURE; - } - zend_highlight(syntax_highlighter_ini); - if (SCNG(script_filtered)) { - efree(SCNG(script_filtered)); - SCNG(script_filtered) = NULL; - } - zend_destroy_file_handle(&file_handle); - zend_restore_lexical_state(&original_lex_state); - return SUCCESS; -} - -int highlight_string(zval *str, zend_syntax_highlighter_ini *syntax_highlighter_ini, char *str_name) -{ - zend_lex_state original_lex_state; - zval tmp; - - if (UNEXPECTED(Z_TYPE_P(str) != IS_STRING)) { - ZVAL_STR(&tmp, zval_get_string_func(str)); - str = &tmp; - } - zend_save_lexical_state(&original_lex_state); - if (zend_prepare_string_for_scanning(str, str_name)==FAILURE) { - zend_restore_lexical_state(&original_lex_state); - if (UNEXPECTED(str == &tmp)) { - zval_ptr_dtor(&tmp); - } - return FAILURE; - } - BEGIN(INITIAL); - zend_highlight(syntax_highlighter_ini); - if (SCNG(script_filtered)) { - efree(SCNG(script_filtered)); - SCNG(script_filtered) = NULL; - } - zend_restore_lexical_state(&original_lex_state); - if (UNEXPECTED(str == &tmp)) { - zval_ptr_dtor(&tmp); - } - return SUCCESS; -} - -ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter, const zend_encoding *old_encoding) -{ - size_t length; - unsigned char *new_yy_start; - - /* convert and set */ - if (!SCNG(input_filter)) { - if (SCNG(script_filtered)) { - efree(SCNG(script_filtered)); - SCNG(script_filtered) = NULL; - } - SCNG(script_filtered_size) = 0; - length = SCNG(script_org_size); - new_yy_start = SCNG(script_org); - } else { - if ((size_t)-1 == SCNG(input_filter)(&new_yy_start, &length, SCNG(script_org), SCNG(script_org_size))) { - zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected " - "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding))); - } - if (SCNG(script_filtered)) { - efree(SCNG(script_filtered)); - } - SCNG(script_filtered) = new_yy_start; - SCNG(script_filtered_size) = length; - } - - SCNG(yy_cursor) = new_yy_start + (SCNG(yy_cursor) - SCNG(yy_start)); - SCNG(yy_marker) = new_yy_start + (SCNG(yy_marker) - SCNG(yy_start)); - SCNG(yy_text) = new_yy_start + (SCNG(yy_text) - SCNG(yy_start)); - SCNG(yy_limit) = new_yy_start + length; - - SCNG(yy_start) = new_yy_start; -} - - -// TODO: avoid reallocation ??? -# define zend_copy_value(zendlval, yytext, yyleng) \ - if (SCNG(output_filter)) { \ - size_t sz = 0; \ - char *s = NULL; \ - SCNG(output_filter)((unsigned char **)&s, &sz, (unsigned char *)yytext, (size_t)yyleng); \ - ZVAL_STRINGL(zendlval, s, sz); \ - efree(s); \ - } else if (yyleng == 1) { \ - ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext))); \ - } else { \ - ZVAL_STRINGL(zendlval, yytext, yyleng); \ - } - -static int zend_scan_escape_string(zval *zendlval, char *str, int len, char quote_type) -{ - register char *s, *t; - char *end; - - if (len <= 1) { - if (len < 1) { - ZVAL_EMPTY_STRING(zendlval); - } else { - zend_uchar c = (zend_uchar)*str; - if (c == '\n' || c == '\r') { - CG(zend_lineno)++; - } - ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c)); - } - goto skip_escape_conversion; - } - - ZVAL_STRINGL(zendlval, str, len); - - /* convert escape sequences */ - s = Z_STRVAL_P(zendlval); - end = s+Z_STRLEN_P(zendlval); - while (1) { - if (UNEXPECTED(*s=='\\')) { - break; - } - if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) { - CG(zend_lineno)++; - } - s++; - if (s == end) { - goto skip_escape_conversion; - } - } - - t = s; - while (s= end) { - *t++ = '\\'; - break; - } - - switch(*s) { - case 'n': - *t++ = '\n'; - break; - case 'r': - *t++ = '\r'; - break; - case 't': - *t++ = '\t'; - break; - case 'f': - *t++ = '\f'; - break; - case 'v': - *t++ = '\v'; - break; - case 'e': -#ifdef ZEND_WIN32 - *t++ = VK_ESCAPE; -#else - *t++ = '\e'; -#endif - break; - case '"': - case '`': - if (*s != quote_type) { - *t++ = '\\'; - *t++ = *s; - break; - } - case '\\': - case '$': - *t++ = *s; - break; - case 'x': - case 'X': - if (ZEND_IS_HEX(*(s+1))) { - char hex_buf[3] = { 0, 0, 0 }; - - hex_buf[0] = *(++s); - if (ZEND_IS_HEX(*(s+1))) { - hex_buf[1] = *(++s); - } - *t++ = (char) ZEND_STRTOL(hex_buf, NULL, 16); - } else { - *t++ = '\\'; - *t++ = *s; - } - break; - /* UTF-8 codepoint escape, format: /\\u\{\x+\}/ */ - case 'u': - { - /* cache where we started so we can parse after validating */ - char *start = s + 1; - size_t len = 0; - zend_bool valid = 1; - unsigned long codepoint; - - if (*start != '{') { - /* we silently let this pass to avoid breaking code - * with JSON in string literals (e.g. "\"\u202e\"" - */ - *t++ = '\\'; - *t++ = 'u'; - break; - } else { - /* on the other hand, invalid \u{blah} errors */ - s++; - len++; - s++; - while (*s != '}') { - if (!ZEND_IS_HEX(*s)) { - valid = 0; - break; - } else { - len++; - } - s++; - } - if (*s == '}') { - valid = 1; - len++; - } - } - - /* \u{} is invalid */ - if (len <= 2) { - valid = 0; - } - - if (!valid) { - zend_throw_exception(zend_ce_parse_error, - "Invalid UTF-8 codepoint escape sequence", 0); - zval_ptr_dtor(zendlval); - ZVAL_UNDEF(zendlval); - return FAILURE; - } - - errno = 0; - codepoint = strtoul(start + 1, NULL, 16); - - /* per RFC 3629, UTF-8 can only represent 21 bits */ - if (codepoint > 0x10FFFF || errno) { - zend_throw_exception(zend_ce_parse_error, - "Invalid UTF-8 codepoint escape sequence: Codepoint too large", 0); - zval_ptr_dtor(zendlval); - ZVAL_UNDEF(zendlval); - return FAILURE; - } - - /* based on https://en.wikipedia.org/wiki/UTF-8#Sample_code */ - if (codepoint < 0x80) { - *t++ = codepoint; - } else if (codepoint <= 0x7FF) { - *t++ = (codepoint >> 6) + 0xC0; - *t++ = (codepoint & 0x3F) + 0x80; - } else if (codepoint <= 0xFFFF) { - *t++ = (codepoint >> 12) + 0xE0; - *t++ = ((codepoint >> 6) & 0x3F) + 0x80; - *t++ = (codepoint & 0x3F) + 0x80; - } else if (codepoint <= 0x10FFFF) { - *t++ = (codepoint >> 18) + 0xF0; - *t++ = ((codepoint >> 12) & 0x3F) + 0x80; - *t++ = ((codepoint >> 6) & 0x3F) + 0x80; - *t++ = (codepoint & 0x3F) + 0x80; - } - } - break; - default: - /* check for an octal */ - if (ZEND_IS_OCT(*s)) { - char octal_buf[4] = { 0, 0, 0, 0 }; - - octal_buf[0] = *s; - if (ZEND_IS_OCT(*(s+1))) { - octal_buf[1] = *(++s); - if (ZEND_IS_OCT(*(s+1))) { - octal_buf[2] = *(++s); - } - } - if (octal_buf[2] && - (octal_buf[0] > '3')) { - /* 3 octit values must not overflow 0xFF (\377) */ - zend_error(E_COMPILE_WARNING, "Octal escape sequence overflow \\%s is greater than \\377", octal_buf); - } - - *t++ = (char) ZEND_STRTOL(octal_buf, NULL, 8); - } else { - *t++ = '\\'; - *t++ = *s; - } - break; - } - } else { - *t++ = *s; - } - - if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) { - CG(zend_lineno)++; - } - s++; - } - *t = 0; - Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval); - -skip_escape_conversion: - if (SCNG(output_filter)) { - size_t sz = 0; - unsigned char *str; - // TODO: avoid realocation ??? - s = Z_STRVAL_P(zendlval); - SCNG(output_filter)(&str, &sz, (unsigned char *)s, (size_t)Z_STRLEN_P(zendlval)); - zval_ptr_dtor(zendlval); - ZVAL_STRINGL(zendlval, (char *) str, sz); - efree(str); - } - return SUCCESS; -} - -#define HEREDOC_USING_SPACES 1 -#define HEREDOC_USING_TABS 2 - -static const char *next_newline(const char *str, const char *end, size_t *newline_len) { - for (; str < end; str++) { - if (*str == '\r') { - *newline_len = str + 1 < end && *(str + 1) == '\n' ? 2 : 1; - } else if (*str == '\n') { - *newline_len = 1; - return str; - } - } - *newline_len = 0; - return NULL; -} - -static zend_bool strip_multiline_string_indentation( - zval *zendlval, int indentation, zend_bool using_spaces, - zend_bool newline_at_start, zend_bool newline_at_end) -{ - const char *str = Z_STRVAL_P(zendlval), *end = str + Z_STRLEN_P(zendlval); - char *copy = Z_STRVAL_P(zendlval); - - int newline_count = 0; - size_t newline_len; - const char *nl; - - if (!newline_at_start) { - nl = next_newline(str, end, &newline_len); - if (!nl) { - return 1; - } - - str = nl + newline_len; - copy = (char *) nl + newline_len; - newline_count++; - } else { - nl = str; - } - - /* <= intentional */ - while (str <= end && nl) { - size_t skip; - nl = next_newline(str, end, &newline_len); - if (!nl && newline_at_end) { - nl = end; - } - - /* Try to skip indentation */ - for (skip = 0; skip < indentation; skip++, str++) { - if (str == nl) { - /* Don't require full indentation on whitespace-only lines */ - break; - } - - if (str == end || (*str != ' ' && *str != '\t')) { - CG(zend_lineno) += newline_count; - zend_throw_exception_ex(zend_ce_parse_error, 0, - "Invalid body indentation level (expecting an indentation level of at least %d)", indentation); - goto error; - } - - if ((!using_spaces && *str == ' ') || (using_spaces && *str == '\t')) { - CG(zend_lineno) += newline_count; - zend_throw_exception(zend_ce_parse_error, - "Invalid indentation - tabs and spaces cannot be mixed", 0); - goto error; - } - } - - if (str == end) { - break; - } - - size_t len = nl ? (nl - str + newline_len) : (end - str); - memmove(copy, str, len); - str += len; - copy += len; - newline_count++; - } - - *copy = '\0'; - Z_STRLEN_P(zendlval) = copy - Z_STRVAL_P(zendlval); - return 1; - -error: - zval_ptr_dtor_str(zendlval); - ZVAL_UNDEF(zendlval); - - return 0; -} - -static void copy_heredoc_label_stack(void *void_heredoc_label) -{ - zend_heredoc_label *heredoc_label = void_heredoc_label; - zend_heredoc_label *new_heredoc_label = emalloc(sizeof(zend_heredoc_label)); - - *new_heredoc_label = *heredoc_label; - new_heredoc_label->label = estrndup(heredoc_label->label, heredoc_label->length); - - zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) new_heredoc_label); -} - -#define PARSER_MODE() \ - EXPECTED(elem != NULL) - -#define RETURN_TOKEN(_token) do { \ - token = _token; \ - goto emit_token; \ - } while (0) - -#define RETURN_TOKEN_WITH_VAL(_token) do { \ - token = _token; \ - goto emit_token_with_val; \ - } while (0) - -#define RETURN_TOKEN_WITH_STR(_token, _offset) do { \ - token = _token; \ - offset = _offset; \ - goto emit_token_with_str; \ - } while (0) - -#define RETURN_OR_SKIP_TOKEN(_token) do { \ - token = _token; \ - if (PARSER_MODE()) { \ - goto skip_token; \ - } \ - goto emit_token; \ - } while (0) - -int ZEND_FASTCALL lex_scan(zval *zendlval, zend_parser_stack_elem *elem) -{ -int token; -int offset; -int start_line = CG(zend_lineno); - - ZVAL_UNDEF(zendlval); -restart: - SCNG(yy_text) = YYCURSOR; - - -#line 1259 "Zend/zend_language_scanner.c" -{ - YYCTYPE yych; - unsigned int yyaccept = 0; - if (YYGETCONDITION() < 5) { - if (YYGETCONDITION() < 2) { - if (YYGETCONDITION() < 1) { - goto yyc_ST_IN_SCRIPTING; - } else { - goto yyc_ST_LOOKING_FOR_PROPERTY; - } - } else { - if (YYGETCONDITION() < 3) { - goto yyc_ST_BACKQUOTE; - } else { - if (YYGETCONDITION() < 4) { - goto yyc_ST_DOUBLE_QUOTES; - } else { - goto yyc_ST_HEREDOC; - } - } - } - } else { - if (YYGETCONDITION() < 8) { - if (YYGETCONDITION() < 6) { - goto yyc_ST_LOOKING_FOR_VARNAME; - } else { - if (YYGETCONDITION() < 7) { - goto yyc_ST_VAR_OFFSET; - } else { - goto yyc_SHEBANG; - } - } - } else { - if (YYGETCONDITION() < 9) { - goto yyc_INITIAL; - } else { - if (YYGETCONDITION() < 10) { - goto yyc_ST_END_HEREDOC; - } else { - goto yyc_ST_NOWDOC; - } - } - } - } -/* *********************************** */ -yyc_ST_IN_SCRIPTING: - { - static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 36, 4, 0, 0, 4, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 36, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 216, 216, 152, 152, 152, 152, 152, 152, - 152, 152, 0, 0, 0, 0, 0, 0, - 0, 144, 144, 144, 144, 144, 144, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 0, 0, 0, 0, 16, - 0, 144, 144, 144, 144, 144, 144, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 0, 0, 0, 0, 0, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - }; - YYDEBUG(1, *YYCURSOR); - YYFILL(16); - yych = *YYCURSOR; - if (yybm[0+yych] & 4) { - goto yy5; - } - switch (yych) { - case 0x00: - case 0x01: - case 0x02: - case 0x03: - case 0x04: - case 0x05: - case 0x06: - case 0x07: - case 0x08: - case '\t': - case '\n': - case '\v': - case '\f': - case '\r': - case 0x0E: - case 0x0F: - case 0x10: - case 0x11: - case 0x12: - case 0x13: - case 0x14: - case 0x15: - case 0x16: - case 0x17: - case 0x18: - case 0x19: - case 0x1A: - case 0x1B: - case 0x1C: - case 0x1D: - case 0x1E: - case 0x1F: - case 0x7F: goto yy3; - case ' ': - case '!': goto yy8; - case '"': goto yy10; - case '#': goto yy12; - case '$': goto yy14; - case '%': goto yy15; - case '&': goto yy16; - case '\'': goto yy17; - case '(': goto yy19; - case ')': - case ',': - case ';': - case '@': - case '[': - case ']': - case '~': goto yy20; - case '*': goto yy21; - case '+': goto yy22; - case '-': goto yy23; - case '.': goto yy24; - case '/': goto yy25; - case '0': goto yy26; - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy28; - case ':': goto yy30; - case '<': goto yy31; - case '=': goto yy32; - case '>': goto yy33; - case '?': goto yy34; - case 'A': - case 'a': goto yy35; - case 'B': - case 'b': goto yy37; - case 'C': - case 'c': goto yy38; - case 'D': - case 'd': goto yy39; - case 'E': - case 'e': goto yy40; - case 'F': - case 'f': goto yy41; - case 'G': - case 'g': goto yy42; - case 'I': - case 'i': goto yy45; - case 'L': - case 'l': goto yy46; - case 'N': - case 'n': goto yy47; - case 'O': - case 'o': goto yy48; - case 'P': - case 'p': goto yy49; - case 'R': - case 'r': goto yy50; - case 'S': - case 's': goto yy51; - case 'T': - case 't': goto yy52; - case 'U': - case 'u': goto yy53; - case 'V': - case 'v': goto yy54; - case 'W': - case 'w': goto yy55; - case 'X': - case 'x': goto yy56; - case 'Y': - case 'y': goto yy57; - case '\\': goto yy58; - case '^': goto yy60; - case '_': goto yy61; - case '`': goto yy62; - case '{': goto yy64; - case '|': goto yy66; - case '}': goto yy67; - default: goto yy43; - } -yy3: - YYDEBUG(3, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(4, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2862 "Zend/zend_language_scanner.l" - { - if (YYCURSOR > YYLIMIT) { - RETURN_TOKEN(END); - } - - if (!SCNG(heredoc_scan_ahead)) { - zend_error(E_COMPILE_WARNING, "Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); - } - if (PARSER_MODE()) { - goto restart; - } else { - RETURN_TOKEN(T_BAD_CHARACTER); - } -} -#line 1486 "Zend/zend_language_scanner.c" -yy5: - YYDEBUG(5, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(6, *YYCURSOR); - if (yybm[0+yych] & 4) { - goto yy5; - } - YYDEBUG(7, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1442 "Zend/zend_language_scanner.l" - { - goto return_whitespace; -} -#line 1502 "Zend/zend_language_scanner.c" -yy8: - YYDEBUG(8, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '=') goto yy69; -yy9: - YYDEBUG(9, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1736 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(yytext[0]); -} -#line 1514 "Zend/zend_language_scanner.c" -yy10: - YYDEBUG(10, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(11, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2318 "Zend/zend_language_scanner.l" - { - int bprefix = (yytext[0] != '"') ? 1 : 0; - - while (YYCURSOR < YYLIMIT) { - switch (*YYCURSOR++) { - case '"': - yyleng = YYCURSOR - SCNG(yy_text); - if (EXPECTED(zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"') == SUCCESS) - || !PARSER_MODE()) { - RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING); - } else { - RETURN_TOKEN(T_ERROR); - } - case '$': - if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') { - break; - } - continue; - case '{': - if (*YYCURSOR == '$') { - break; - } - continue; - case '\\': - if (YYCURSOR < YYLIMIT) { - YYCURSOR++; - } - /* fall through */ - default: - continue; - } - - YYCURSOR--; - break; - } - - /* Remember how much was scanned to save rescanning */ - SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng); - - YYCURSOR = SCNG(yy_text) + yyleng; - - BEGIN(ST_DOUBLE_QUOTES); - RETURN_TOKEN('"'); -} -#line 1565 "Zend/zend_language_scanner.c" -yy12: - YYDEBUG(12, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(13, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2149 "Zend/zend_language_scanner.l" - { - while (YYCURSOR < YYLIMIT) { - switch (*YYCURSOR++) { - case '\r': - if (*YYCURSOR == '\n') { - YYCURSOR++; - } - /* fall through */ - case '\n': - CG(zend_lineno)++; - break; - case '?': - if (*YYCURSOR == '>') { - YYCURSOR--; - break; - } - /* fall through */ - default: - continue; - } - - break; - } - - yyleng = YYCURSOR - SCNG(yy_text); - RETURN_OR_SKIP_TOKEN(T_COMMENT); -} -#line 1599 "Zend/zend_language_scanner.c" -yy14: - YYDEBUG(14, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy9; - if (yych <= 'Z') goto yy71; - if (yych <= '^') goto yy9; - goto yy71; - } else { - if (yych <= '`') goto yy9; - if (yych <= 'z') goto yy71; - if (yych <= 0x7F) goto yy9; - goto yy71; - } -yy15: - YYDEBUG(15, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '=') goto yy74; - goto yy9; -yy16: - YYDEBUG(16, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '&') goto yy76; - if (yych == '=') goto yy78; - goto yy9; -yy17: - YYDEBUG(17, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(18, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2222 "Zend/zend_language_scanner.l" - { - register char *s, *t; - char *end; - int bprefix = (yytext[0] != '\'') ? 1 : 0; - - while (1) { - if (YYCURSOR < YYLIMIT) { - if (*YYCURSOR == '\'') { - YYCURSOR++; - yyleng = YYCURSOR - SCNG(yy_text); - - break; - } else if (*YYCURSOR++ == '\\' && YYCURSOR < YYLIMIT) { - YYCURSOR++; - } - } else { - yyleng = YYLIMIT - SCNG(yy_text); - - /* Unclosed single quotes; treat similar to double quotes, but without a separate token - * for ' (unrecognized by parser), instead of old flex fallback to "Unexpected character..." - * rule, which continued in ST_IN_SCRIPTING state after the quote */ - ZVAL_NULL(zendlval); - RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE); - } - } - - if (yyleng-bprefix-2 <= 1) { - if (yyleng-bprefix-2 < 1) { - ZVAL_EMPTY_STRING(zendlval); - } else { - zend_uchar c = (zend_uchar)*(yytext+bprefix+1); - if (c == '\n' || c == '\r') { - CG(zend_lineno)++; - } - ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c)); - } - goto skip_escape_conversion; - } - ZVAL_STRINGL(zendlval, yytext+bprefix+1, yyleng-bprefix-2); - - /* convert escape sequences */ - s = Z_STRVAL_P(zendlval); - end = s+Z_STRLEN_P(zendlval); - while (1) { - if (UNEXPECTED(*s=='\\')) { - break; - } - if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) { - CG(zend_lineno)++; - } - s++; - if (s == end) { - goto skip_escape_conversion; - } - } - - t = s; - while (s= '0') goto yy71; - } else { - if (yych <= '@') goto yy73; - if (yych <= 'Z') goto yy71; - } - } else { - if (yych <= '`') { - if (yych <= '_') goto yy71; - } else { - if (yych <= 'z') goto yy71; - if (yych >= 0x80) goto yy71; - } - } -yy73: - YYDEBUG(73, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2122 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); -} -#line 2387 "Zend/zend_language_scanner.c" -yy74: - YYDEBUG(74, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(75, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1680 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_MOD_EQUAL); -} -#line 2397 "Zend/zend_language_scanner.c" -yy76: - YYDEBUG(76, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(77, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1712 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_BOOLEAN_AND); -} -#line 2407 "Zend/zend_language_scanner.c" -yy78: - YYDEBUG(78, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(79, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1692 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_AND_EQUAL); -} -#line 2417 "Zend/zend_language_scanner.c" -yy80: - YYDEBUG(80, *YYCURSOR); - ++YYCURSOR; - YYFILL(7); - yych = *YYCURSOR; -yy81: - YYDEBUG(81, *YYCURSOR); - if (yybm[0+yych] & 32) { - goto yy80; - } - switch (yych) { - case 'A': - case 'a': goto yy83; - case 'B': - case 'b': goto yy84; - case 'D': - case 'd': goto yy85; - case 'F': - case 'f': goto yy86; - case 'I': - case 'i': goto yy87; - case 'O': - case 'o': goto yy88; - case 'R': - case 'r': goto yy89; - case 'S': - case 's': goto yy90; - case 'U': - case 'u': goto yy91; - default: goto yy82; - } -yy82: - YYDEBUG(82, *YYCURSOR); - YYCURSOR = YYMARKER; - if (yyaccept <= 4) { - if (yyaccept <= 2) { - if (yyaccept <= 1) { - if (yyaccept == 0) { - goto yy9; - } else { - goto yy27; - } - } else { - goto yy36; - } - } else { - if (yyaccept == 3) { - goto yy109; - } else { - goto yy113; - } - } - } else { - if (yyaccept <= 6) { - if (yyaccept == 5) { - goto yy124; - } else { - goto yy217; - } - } else { - if (yyaccept == 7) { - goto yy223; - } else { - goto yy464; - } - } - } -yy83: - YYDEBUG(83, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy199; - if (yych == 'r') goto yy199; - goto yy82; -yy84: - YYDEBUG(84, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych == 'I') goto yy200; - if (yych <= 'N') goto yy82; - goto yy201; - } else { - if (yych <= 'i') { - if (yych <= 'h') goto yy82; - goto yy200; - } else { - if (yych == 'o') goto yy201; - goto yy82; - } - } -yy85: - YYDEBUG(85, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy202; - if (yych == 'o') goto yy202; - goto yy82; -yy86: - YYDEBUG(86, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy203; - if (yych == 'l') goto yy203; - goto yy82; -yy87: - YYDEBUG(87, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy204; - if (yych == 'n') goto yy204; - goto yy82; -yy88: - YYDEBUG(88, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy205; - if (yych == 'b') goto yy205; - goto yy82; -yy89: - YYDEBUG(89, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy206; - if (yych == 'e') goto yy206; - goto yy82; -yy90: - YYDEBUG(90, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy207; - if (yych == 't') goto yy207; - goto yy82; -yy91: - YYDEBUG(91, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy208; - if (yych == 'n') goto yy208; - goto yy82; -yy92: - YYDEBUG(92, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '=') goto yy209; - YYDEBUG(93, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1664 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_POW); -} -#line 2559 "Zend/zend_language_scanner.c" -yy94: - YYDEBUG(94, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(95, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1660 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_MUL_EQUAL); -} -#line 2569 "Zend/zend_language_scanner.c" -yy96: - YYDEBUG(96, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(97, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1616 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_INC); -} -#line 2579 "Zend/zend_language_scanner.c" -yy98: - YYDEBUG(98, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(99, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1652 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_PLUS_EQUAL); -} -#line 2589 "Zend/zend_language_scanner.c" -yy100: - YYDEBUG(100, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(101, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1620 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DEC); -} -#line 2599 "Zend/zend_language_scanner.c" -yy102: - YYDEBUG(102, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(103, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1656 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_MINUS_EQUAL); -} -#line 2609 "Zend/zend_language_scanner.c" -yy104: - YYDEBUG(104, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(105, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1437 "Zend/zend_language_scanner.l" - { - yy_push_state(ST_LOOKING_FOR_PROPERTY); - RETURN_TOKEN(T_OBJECT_OPERATOR); -} -#line 2620 "Zend/zend_language_scanner.c" -yy106: - YYDEBUG(106, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '.') goto yy211; - goto yy82; -yy107: - YYDEBUG(107, *YYCURSOR); - yyaccept = 3; - YYMARKER = ++YYCURSOR; - YYFILL(2); - yych = *YYCURSOR; -yy108: - YYDEBUG(108, *YYCURSOR); - if (yych <= 'E') { - if (yych <= '/') goto yy109; - if (yych <= '9') goto yy107; - if (yych >= 'E') goto yy118; - } else { - if (yych <= '_') { - if (yych >= '_') goto yy213; - } else { - if (yych == 'e') goto yy118; - } - } -yy109: - YYDEBUG(109, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1949 "Zend/zend_language_scanner.l" - { - const char *end; - size_t len = yyleng; - char *dnum = yytext; - zend_bool contains_underscores = (memchr(dnum, '_', len) != NULL); - - if (contains_underscores) { - dnum = estrndup(dnum, len); - strip_underscores(dnum, &len); - } - - ZVAL_DOUBLE(zendlval, zend_strtod(dnum, &end)); - /* errno isn't checked since we allow HUGE_VAL/INF overflow */ - ZEND_ASSERT(end == dnum + len); - if (contains_underscores) { - efree(dnum); - } - RETURN_TOKEN_WITH_VAL(T_DNUMBER); -} -#line 2668 "Zend/zend_language_scanner.c" -yy110: - YYDEBUG(110, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(111, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1676 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CONCAT_EQUAL); -} -#line 2678 "Zend/zend_language_scanner.c" -yy112: - YYDEBUG(112, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '*') goto yy214; -yy113: - YYDEBUG(113, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2177 "Zend/zend_language_scanner.l" - { - int doc_com; - - if (yyleng > 2) { - doc_com = 1; - RESET_DOC_COMMENT(); - } else { - doc_com = 0; - } - - while (YYCURSOR < YYLIMIT) { - if (*YYCURSOR++ == '*' && *YYCURSOR == '/') { - break; - } - } - - if (YYCURSOR < YYLIMIT) { - YYCURSOR++; - } else if (!SCNG(heredoc_scan_ahead)) { - zend_error(E_COMPILE_WARNING, "Unterminated comment starting line %d", CG(zend_lineno)); - } - - yyleng = YYCURSOR - SCNG(yy_text); - HANDLE_NEWLINES(yytext, yyleng); - - if (doc_com) { - CG(doc_comment) = zend_string_init(yytext, yyleng, 0); - RETURN_OR_SKIP_TOKEN(T_DOC_COMMENT); - } - - RETURN_OR_SKIP_TOKEN(T_COMMENT); -} -#line 2720 "Zend/zend_language_scanner.c" -yy114: - YYDEBUG(114, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(115, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1672 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DIV_EQUAL); -} -#line 2730 "Zend/zend_language_scanner.c" -yy116: - YYDEBUG(116, *YYCURSOR); - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '_') goto yy109; - goto yy108; -yy117: - YYDEBUG(117, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yybm[0+yych] & 64) { - goto yy215; - } - goto yy82; -yy118: - YYDEBUG(118, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= ',') { - if (yych == '+') goto yy218; - goto yy82; - } else { - if (yych <= '-') goto yy218; - if (yych <= '/') goto yy82; - if (yych <= '9') goto yy219; - goto yy82; - } -yy119: - YYDEBUG(119, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yybm[0+yych] & 128) { - goto yy221; - } - goto yy82; -yy120: - YYDEBUG(120, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yybm[0+yych] & 8) { - goto yy28; - } - goto yy82; -yy121: - YYDEBUG(121, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(122, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1461 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM); -} -#line 2785 "Zend/zend_language_scanner.c" -yy123: - YYDEBUG(123, *YYCURSOR); - yyaccept = 5; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ';') goto yy124; - if (yych <= '<') goto yy224; - if (yych <= '=') goto yy226; -yy124: - YYDEBUG(124, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1728 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_SL); -} -#line 2800 "Zend/zend_language_scanner.c" -yy125: - YYDEBUG(125, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '>') goto yy228; - YYDEBUG(126, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1644 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL); -} -#line 2811 "Zend/zend_language_scanner.c" -yy127: - YYDEBUG(127, *YYCURSOR); - ++YYCURSOR; - goto yy70; -yy128: - YYDEBUG(128, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '=') goto yy230; - YYDEBUG(129, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1632 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_IS_EQUAL); -} -#line 2826 "Zend/zend_language_scanner.c" -yy130: - YYDEBUG(130, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(131, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1600 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DOUBLE_ARROW); -} -#line 2836 "Zend/zend_language_scanner.c" -yy132: - YYDEBUG(132, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(133, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1648 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_IS_GREATER_OR_EQUAL); -} -#line 2846 "Zend/zend_language_scanner.c" -yy134: - YYDEBUG(134, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '=') goto yy232; - YYDEBUG(135, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1732 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_SR); -} -#line 2857 "Zend/zend_language_scanner.c" -yy136: - YYDEBUG(136, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy234; - if (yych == '\r') goto yy235; -yy137: - YYDEBUG(137, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2210 "Zend/zend_language_scanner.l" - { - BEGIN(INITIAL); - if (yytext[yyleng-1] != '>') { - CG(increment_lineno) = 1; - } - if (PARSER_MODE()) { - RETURN_TOKEN(';'); /* implicit ';' at php-end tag */ - } - RETURN_TOKEN(T_CLOSE_TAG); -} -#line 2877 "Zend/zend_language_scanner.c" -yy138: - YYDEBUG(138, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '=') goto yy236; - YYDEBUG(139, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1473 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_COALESCE); -} -#line 2888 "Zend/zend_language_scanner.c" -yy140: - YYDEBUG(140, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy238; - if (yych == 's') goto yy238; - goto yy44; -yy141: - YYDEBUG(141, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy239; - if (yych == 'd') goto yy239; - goto yy44; -yy142: - YYDEBUG(142, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy241; - if (yych == 'r') goto yy241; - goto yy44; -yy143: - YYDEBUG(143, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(144, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1377 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_AS); -} -#line 2919 "Zend/zend_language_scanner.c" -yy145: - YYDEBUG(145, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '<') goto yy242; - goto yy82; -yy146: - YYDEBUG(146, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy243; - if (yych == 'e') goto yy243; - goto yy44; -yy147: - YYDEBUG(147, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= 'L') { - if (yych <= 'K') goto yy44; - goto yy244; - } else { - if (yych <= 'R') goto yy44; - if (yych <= 'S') goto yy245; - goto yy246; - } - } else { - if (yych <= 'r') { - if (yych == 'l') goto yy244; - goto yy44; - } else { - if (yych <= 's') goto yy245; - if (yych <= 't') goto yy246; - goto yy44; - } - } -yy148: - YYDEBUG(148, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych == 'A') goto yy247; - if (yych <= 'N') goto yy44; - goto yy248; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy44; - goto yy247; - } else { - if (yych == 'o') goto yy248; - goto yy44; - } - } -yy149: - YYDEBUG(149, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy249; - if (yych == 'n') goto yy249; - goto yy44; -yy150: - YYDEBUG(150, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'F') { - if (yych == 'C') goto yy250; - if (yych <= 'E') goto yy44; - goto yy251; - } else { - if (yych <= 'c') { - if (yych <= 'b') goto yy44; - goto yy250; - } else { - if (yych == 'f') goto yy251; - goto yy44; - } - } -yy151: - YYDEBUG(151, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy252; - if (yych == 'e') goto yy252; - goto yy44; -yy152: - YYDEBUG(152, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(153, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1345 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DO); -} -#line 3009 "Zend/zend_language_scanner.c" -yy154: - YYDEBUG(154, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy254; - if (yych == 'h') goto yy254; - goto yy44; -yy155: - YYDEBUG(155, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy255; - if (yych == 's') goto yy255; - goto yy44; -yy156: - YYDEBUG(156, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy256; - if (yych == 'p') goto yy256; - goto yy44; -yy157: - YYDEBUG(157, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy257; - if (yych == 'd') goto yy257; - goto yy44; -yy158: - YYDEBUG(158, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy258; - if (yych == 'a') goto yy258; - goto yy44; -yy159: - YYDEBUG(159, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych == 'I') goto yy259; - if (yych <= 'S') goto yy44; - goto yy260; - } else { - if (yych <= 'i') { - if (yych <= 'h') goto yy44; - goto yy259; - } else { - if (yych == 't') goto yy260; - goto yy44; - } - } -yy160: - YYDEBUG(160, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy261; - if (yych == 'n') goto yy261; - goto yy44; -yy161: - YYDEBUG(161, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(162, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1279 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_FN); -} -#line 3074 "Zend/zend_language_scanner.c" -yy163: - YYDEBUG(163, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy262; - if (yych == 'r') goto yy262; - goto yy44; -yy164: - YYDEBUG(164, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy264; - if (yych == 'n') goto yy264; - goto yy44; -yy165: - YYDEBUG(165, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy265; - if (yych == 'o') goto yy265; - goto yy44; -yy166: - YYDEBUG(166, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy266; - if (yych == 't') goto yy266; - goto yy44; -yy167: - YYDEBUG(167, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(168, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1321 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_IF); -} -#line 3111 "Zend/zend_language_scanner.c" -yy169: - YYDEBUG(169, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy267; - if (yych == 'p') goto yy267; - goto yy44; -yy170: - YYDEBUG(170, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= 'C') { - if (yych <= 'B') goto yy44; - goto yy268; - } else { - if (yych <= 'R') goto yy44; - if (yych <= 'S') goto yy269; - goto yy270; - } - } else { - if (yych <= 'r') { - if (yych == 'c') goto yy268; - goto yy44; - } else { - if (yych <= 's') goto yy269; - if (yych <= 't') goto yy270; - goto yy44; - } - } -yy171: - YYDEBUG(171, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy271; - if (yych == 's') goto yy271; - goto yy44; -yy172: - YYDEBUG(172, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy272; - if (yych == 's') goto yy272; - goto yy44; -yy173: - YYDEBUG(173, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy273; - if (yych == 'm') goto yy273; - goto yy44; -yy174: - YYDEBUG(174, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'W') goto yy274; - if (yych == 'w') goto yy274; - goto yy44; -yy175: - YYDEBUG(175, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(176, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1716 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_LOGICAL_OR); -} -#line 3176 "Zend/zend_language_scanner.c" -yy177: - YYDEBUG(177, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'O') { - if (yych == 'I') goto yy276; - if (yych <= 'N') goto yy44; - goto yy277; - } else { - if (yych <= 'i') { - if (yych <= 'h') goto yy44; - goto yy276; - } else { - if (yych == 'o') goto yy277; - goto yy44; - } - } -yy178: - YYDEBUG(178, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy278; - if (yych == 'b') goto yy278; - goto yy44; -yy179: - YYDEBUG(179, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych == 'Q') goto yy279; - if (yych <= 'S') goto yy44; - goto yy280; - } else { - if (yych <= 'q') { - if (yych <= 'p') goto yy44; - goto yy279; - } else { - if (yych == 't') goto yy280; - goto yy44; - } - } -yy180: - YYDEBUG(180, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy281; - if (yych == 'a') goto yy281; - goto yy44; -yy181: - YYDEBUG(181, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy282; - if (yych == 'i') goto yy282; - goto yy44; -yy182: - YYDEBUG(182, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy283; - if (yych == 'r') goto yy283; - goto yy44; -yy183: - YYDEBUG(183, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'Y') { - if (yych == 'A') goto yy284; - if (yych <= 'X') goto yy44; - goto yy285; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy44; - goto yy284; - } else { - if (yych == 'y') goto yy285; - goto yy44; - } - } -yy184: - YYDEBUG(184, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy287; - if (yych == 's') goto yy287; - goto yy44; -yy185: - YYDEBUG(185, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy288; - if (yych == 'e') goto yy288; - goto yy44; -yy186: - YYDEBUG(186, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy290; - if (yych == 'r') goto yy290; - goto yy44; -yy187: - YYDEBUG(187, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy292; - if (yych == 'i') goto yy292; - goto yy44; -yy188: - YYDEBUG(188, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy293; - if (yych == 'r') goto yy293; - goto yy44; -yy189: - YYDEBUG(189, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy295; - if (yych == 'e') goto yy295; - goto yy44; -yy190: - YYDEBUG(190, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(191, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1700 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_XOR_EQUAL); -} -#line 3294 "Zend/zend_language_scanner.c" -yy192: - YYDEBUG(192, *YYCURSOR); - yych = *++YYCURSOR; - switch (yych) { - case 'C': - case 'c': goto yy296; - case 'D': - case 'd': goto yy297; - case 'F': - case 'f': goto yy298; - case 'H': - case 'h': goto yy299; - case 'L': - case 'l': goto yy300; - case 'M': - case 'm': goto yy301; - case 'N': - case 'n': goto yy302; - case 'T': - case 't': goto yy303; - default: goto yy44; - } -yy193: - YYDEBUG(193, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(194, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1696 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_OR_EQUAL); -} -#line 3326 "Zend/zend_language_scanner.c" -yy195: - YYDEBUG(195, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(196, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1708 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_BOOLEAN_OR); -} -#line 3336 "Zend/zend_language_scanner.c" -yy197: - YYDEBUG(197, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(198, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1628 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_IS_NOT_IDENTICAL); -} -#line 3346 "Zend/zend_language_scanner.c" -yy199: - YYDEBUG(199, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy304; - if (yych == 'r') goto yy304; - goto yy82; -yy200: - YYDEBUG(200, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy305; - if (yych == 'n') goto yy305; - goto yy82; -yy201: - YYDEBUG(201, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy306; - if (yych == 'o') goto yy306; - goto yy82; -yy202: - YYDEBUG(202, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy307; - if (yych == 'u') goto yy307; - goto yy82; -yy203: - YYDEBUG(203, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy308; - if (yych == 'o') goto yy308; - goto yy82; -yy204: - YYDEBUG(204, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy309; - if (yych == 't') goto yy309; - goto yy82; -yy205: - YYDEBUG(205, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'J') goto yy310; - if (yych == 'j') goto yy310; - goto yy82; -yy206: - YYDEBUG(206, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy311; - if (yych == 'a') goto yy311; - goto yy82; -yy207: - YYDEBUG(207, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy312; - if (yych == 'r') goto yy312; - goto yy82; -yy208: - YYDEBUG(208, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy313; - if (yych == 's') goto yy313; - goto yy82; -yy209: - YYDEBUG(209, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(210, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1668 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_POW_EQUAL); -} -#line 3416 "Zend/zend_language_scanner.c" -yy211: - YYDEBUG(211, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(212, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1469 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ELLIPSIS); -} -#line 3426 "Zend/zend_language_scanner.c" -yy213: - YYDEBUG(213, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yych <= '/') goto yy82; - if (yych <= '9') goto yy107; - goto yy82; -yy214: - YYDEBUG(214, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '\f') { - if (yych <= 0x08) goto yy82; - if (yych <= '\n') goto yy314; - goto yy82; - } else { - if (yych <= '\r') goto yy314; - if (yych == ' ') goto yy314; - goto yy82; - } -yy215: - YYDEBUG(215, *YYCURSOR); - yyaccept = 6; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(216, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy215; - } - if (yych == '_') goto yy117; -yy217: - YYDEBUG(217, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1777 "Zend/zend_language_scanner.l" - { - /* The +/- 2 skips "0b" */ - size_t len = yyleng - 2; - char *end, *bin = yytext + 2; - zend_bool contains_underscores; - - /* Skip any leading 0s */ - while (len > 0 && (*bin == '0' || *bin == '_')) { - ++bin; - --len; - } - - contains_underscores = (memchr(bin, '_', len) != NULL); - - if (contains_underscores) { - bin = estrndup(bin, len); - strip_underscores(bin, &len); - } - - if (len < SIZEOF_ZEND_LONG * 8) { - if (len == 0) { - ZVAL_LONG(zendlval, 0); - } else { - errno = 0; - ZVAL_LONG(zendlval, ZEND_STRTOL(bin, &end, 2)); - ZEND_ASSERT(!errno && end == bin + len); - } - if (contains_underscores) { - efree(bin); - } - RETURN_TOKEN_WITH_VAL(T_LNUMBER); - } else { - ZVAL_DOUBLE(zendlval, zend_bin_strtod(bin, (const char **)&end)); - /* errno isn't checked since we allow HUGE_VAL/INF overflow */ - ZEND_ASSERT(end == bin + len); - if (contains_underscores) { - efree(bin); - } - RETURN_TOKEN_WITH_VAL(T_DNUMBER); - } -} -#line 3503 "Zend/zend_language_scanner.c" -yy218: - YYDEBUG(218, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yych <= '/') goto yy82; - if (yych >= ':') goto yy82; -yy219: - YYDEBUG(219, *YYCURSOR); - yyaccept = 3; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(220, *YYCURSOR); - if (yych <= '/') goto yy109; - if (yych <= '9') goto yy219; - if (yych == '_') goto yy218; - goto yy109; -yy221: - YYDEBUG(221, *YYCURSOR); - yyaccept = 7; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(222, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy221; - } - if (yych == '_') goto yy119; -yy223: - YYDEBUG(223, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1882 "Zend/zend_language_scanner.l" - { - /* The +/- 2 skips "0x" */ - size_t len = yyleng - 2; - char *end, *hex = yytext + 2; - zend_bool contains_underscores; - - /* Skip any leading 0s */ - while (len > 0 && (*hex == '0' || *hex == '_')) { - ++hex; - --len; - } - - contains_underscores = (memchr(hex, '_', len) != NULL); - - if (contains_underscores) { - hex = estrndup(hex, len); - strip_underscores(hex, &len); - } - - if (len < SIZEOF_ZEND_LONG * 2 || (len == SIZEOF_ZEND_LONG * 2 && *hex <= '7')) { - if (len == 0) { - ZVAL_LONG(zendlval, 0); - } else { - errno = 0; - ZVAL_LONG(zendlval, ZEND_STRTOL(hex, &end, 16)); - ZEND_ASSERT(!errno && end == hex + len); - } - if (contains_underscores) { - efree(hex); - } - RETURN_TOKEN_WITH_VAL(T_LNUMBER); - } else { - ZVAL_DOUBLE(zendlval, zend_hex_strtod(hex, (const char **)&end)); - /* errno isn't checked since we allow HUGE_VAL/INF overflow */ - ZEND_ASSERT(end == hex + len); - if (contains_underscores) { - efree(hex); - } - RETURN_TOKEN_WITH_VAL(T_DNUMBER); - } -} -#line 3578 "Zend/zend_language_scanner.c" -yy224: - YYDEBUG(224, *YYCURSOR); - ++YYCURSOR; - YYFILL(2); - yych = *YYCURSOR; - YYDEBUG(225, *YYCURSOR); - if (yych <= '\'') { - if (yych <= ' ') { - if (yych == '\t') goto yy224; - if (yych <= 0x1F) goto yy82; - goto yy224; - } else { - if (yych == '"') goto yy316; - if (yych <= '&') goto yy82; - goto yy317; - } - } else { - if (yych <= '_') { - if (yych <= '@') goto yy82; - if (yych <= 'Z') goto yy318; - if (yych <= '^') goto yy82; - goto yy318; - } else { - if (yych <= '`') goto yy82; - if (yych <= 'z') goto yy318; - if (yych <= 0x7F) goto yy82; - goto yy318; - } - } -yy226: - YYDEBUG(226, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(227, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1684 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_SL_EQUAL); -} -#line 3617 "Zend/zend_language_scanner.c" -yy228: - YYDEBUG(228, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(229, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1640 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_SPACESHIP); -} -#line 3627 "Zend/zend_language_scanner.c" -yy230: - YYDEBUG(230, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(231, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1624 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_IS_IDENTICAL); -} -#line 3637 "Zend/zend_language_scanner.c" -yy232: - YYDEBUG(232, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(233, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1688 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_SR_EQUAL); -} -#line 3647 "Zend/zend_language_scanner.c" -yy234: - YYDEBUG(234, *YYCURSOR); - ++YYCURSOR; - goto yy137; -yy235: - YYDEBUG(235, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy234; - goto yy137; -yy236: - YYDEBUG(236, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(237, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1704 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_COALESCE_EQUAL); -} -#line 3666 "Zend/zend_language_scanner.c" -yy238: - YYDEBUG(238, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy320; - if (yych == 't') goto yy320; - goto yy44; -yy239: - YYDEBUG(239, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(240, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1720 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_LOGICAL_AND); -} -#line 3685 "Zend/zend_language_scanner.c" -yy241: - YYDEBUG(241, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy321; - if (yych == 'a') goto yy321; - goto yy44; -yy242: - YYDEBUG(242, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '<') goto yy224; - goto yy82; -yy243: - YYDEBUG(243, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy322; - if (yych == 'a') goto yy322; - goto yy44; -yy244: - YYDEBUG(244, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy323; - if (yych == 'l') goto yy323; - goto yy44; -yy245: - YYDEBUG(245, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy324; - if (yych == 'e') goto yy324; - goto yy44; -yy246: - YYDEBUG(246, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy326; - if (yych == 'c') goto yy326; - goto yy44; -yy247: - YYDEBUG(247, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy327; - if (yych == 's') goto yy327; - goto yy44; -yy248: - YYDEBUG(248, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy328; - if (yych == 'n') goto yy328; - goto yy44; -yy249: - YYDEBUG(249, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'T') { - if (yych <= 'R') goto yy44; - if (yych <= 'S') goto yy329; - goto yy330; - } else { - if (yych <= 'r') goto yy44; - if (yych <= 's') goto yy329; - if (yych <= 't') goto yy330; - goto yy44; - } -yy250: - YYDEBUG(250, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy331; - if (yych == 'l') goto yy331; - goto yy44; -yy251: - YYDEBUG(251, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy332; - if (yych == 'a') goto yy332; - goto yy44; -yy252: - YYDEBUG(252, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(253, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1275 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_EXIT); -} -#line 3770 "Zend/zend_language_scanner.c" -yy254: - YYDEBUG(254, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy333; - if (yych == 'o') goto yy333; - goto yy44; -yy255: - YYDEBUG(255, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy335; - if (yych == 'e') goto yy335; - goto yy44; -yy256: - YYDEBUG(256, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy337; - if (yych == 't') goto yy337; - goto yy44; -yy257: - YYDEBUG(257, *YYCURSOR); - yych = *++YYCURSOR; - switch (yych) { - case 'D': - case 'd': goto yy338; - case 'F': - case 'f': goto yy339; - case 'I': - case 'i': goto yy340; - case 'S': - case 's': goto yy341; - case 'W': - case 'w': goto yy342; - default: goto yy44; - } -yy258: - YYDEBUG(258, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy343; - if (yych == 'l') goto yy343; - goto yy44; -yy259: - YYDEBUG(259, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy345; - if (yych == 't') goto yy345; - goto yy44; -yy260: - YYDEBUG(260, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy347; - if (yych == 'e') goto yy347; - goto yy44; -yy261: - YYDEBUG(261, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy348; - if (yych == 'a') goto yy348; - goto yy44; -yy262: - YYDEBUG(262, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '^') { - if (yych <= '@') { - if (yych <= '/') goto yy263; - if (yych <= '9') goto yy43; - } else { - if (yych == 'E') goto yy349; - if (yych <= 'Z') goto yy43; - } - } else { - if (yych <= 'd') { - if (yych != '`') goto yy43; - } else { - if (yych <= 'e') goto yy349; - if (yych <= 'z') goto yy43; - if (yych >= 0x80) goto yy43; - } - } -yy263: - YYDEBUG(263, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1349 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_FOR); -} -#line 3856 "Zend/zend_language_scanner.c" -yy264: - YYDEBUG(264, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy350; - if (yych == 'c') goto yy350; - goto yy44; -yy265: - YYDEBUG(265, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy351; - if (yych == 'b') goto yy351; - goto yy44; -yy266: - YYDEBUG(266, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy352; - if (yych == 'o') goto yy352; - goto yy44; -yy267: - YYDEBUG(267, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy354; - if (yych == 'l') goto yy354; - goto yy44; -yy268: - YYDEBUG(268, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy355; - if (yych == 'l') goto yy355; - goto yy44; -yy269: - YYDEBUG(269, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy356; - if (yych == 't') goto yy356; - goto yy44; -yy270: - YYDEBUG(270, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy357; - if (yych == 'e') goto yy357; - goto yy44; -yy271: - YYDEBUG(271, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy358; - if (yych == 'e') goto yy358; - goto yy44; -yy272: - YYDEBUG(272, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy359; - if (yych == 't') goto yy359; - goto yy44; -yy273: - YYDEBUG(273, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy361; - if (yych == 'e') goto yy361; - goto yy44; -yy274: - YYDEBUG(274, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(275, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1477 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_NEW); -} -#line 3929 "Zend/zend_language_scanner.c" -yy276: - YYDEBUG(276, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'V') { - if (yych == 'N') goto yy362; - if (yych <= 'U') goto yy44; - goto yy363; - } else { - if (yych <= 'n') { - if (yych <= 'm') goto yy44; - goto yy362; - } else { - if (yych == 'v') goto yy363; - goto yy44; - } - } -yy277: - YYDEBUG(277, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy364; - if (yych == 't') goto yy364; - goto yy44; -yy278: - YYDEBUG(278, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy365; - if (yych == 'l') goto yy365; - goto yy44; -yy279: - YYDEBUG(279, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy366; - if (yych == 'u') goto yy366; - goto yy44; -yy280: - YYDEBUG(280, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy367; - if (yych == 'u') goto yy367; - goto yy44; -yy281: - YYDEBUG(281, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy368; - if (yych == 't') goto yy368; - goto yy44; -yy282: - YYDEBUG(282, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy369; - if (yych == 't') goto yy369; - goto yy44; -yy283: - YYDEBUG(283, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy370; - if (yych == 'o') goto yy370; - goto yy44; -yy284: - YYDEBUG(284, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy371; - if (yych == 'i') goto yy371; - goto yy44; -yy285: - YYDEBUG(285, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(286, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1305 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_TRY); -} -#line 4006 "Zend/zend_language_scanner.c" -yy287: - YYDEBUG(287, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy372; - if (yych == 'e') goto yy372; - goto yy44; -yy288: - YYDEBUG(288, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(289, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1548 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_USE); -} -#line 4025 "Zend/zend_language_scanner.c" -yy290: - YYDEBUG(290, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(291, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1485 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_VAR); -} -#line 4038 "Zend/zend_language_scanner.c" -yy292: - YYDEBUG(292, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy373; - if (yych == 'l') goto yy373; - goto yy44; -yy293: - YYDEBUG(293, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(294, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1724 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_LOGICAL_XOR); -} -#line 4057 "Zend/zend_language_scanner.c" -yy295: - YYDEBUG(295, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy374; - if (yych == 'l') goto yy374; - goto yy44; -yy296: - YYDEBUG(296, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy375; - if (yych == 'l') goto yy375; - goto yy44; -yy297: - YYDEBUG(297, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy376; - if (yych == 'i') goto yy376; - goto yy44; -yy298: - YYDEBUG(298, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'I') goto yy377; - if (yych <= 'T') goto yy44; - goto yy378; - } else { - if (yych <= 'i') { - if (yych <= 'h') goto yy44; - goto yy377; - } else { - if (yych == 'u') goto yy378; - goto yy44; - } - } -yy299: - YYDEBUG(299, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy379; - if (yych == 'a') goto yy379; - goto yy44; -yy300: - YYDEBUG(300, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy380; - if (yych == 'i') goto yy380; - goto yy44; -yy301: - YYDEBUG(301, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy381; - if (yych == 'e') goto yy381; - goto yy44; -yy302: - YYDEBUG(302, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy382; - if (yych == 'a') goto yy382; - goto yy44; -yy303: - YYDEBUG(303, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy383; - if (yych == 'r') goto yy383; - goto yy44; -yy304: - YYDEBUG(304, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy384; - if (yych == 'a') goto yy384; - goto yy82; -yy305: - YYDEBUG(305, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy385; - if (yych == 'a') goto yy385; - goto yy82; -yy306: - YYDEBUG(306, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy386; - if (yych == 'l') goto yy386; - goto yy82; -yy307: - YYDEBUG(307, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy387; - if (yych == 'b') goto yy387; - goto yy82; -yy308: - YYDEBUG(308, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy388; - if (yych == 'a') goto yy388; - goto yy82; -yy309: - YYDEBUG(309, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy393; - if (yych == 'e') goto yy393; - goto yy390; -yy310: - YYDEBUG(310, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy394; - if (yych == 'e') goto yy394; - goto yy82; -yy311: - YYDEBUG(311, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy395; - if (yych == 'l') goto yy395; - goto yy82; -yy312: - YYDEBUG(312, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy397; - if (yych == 'i') goto yy397; - goto yy82; -yy313: - YYDEBUG(313, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy398; - if (yych == 'e') goto yy398; - goto yy82; -yy314: - YYDEBUG(314, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(315, *YYCURSOR); - if (yych <= '\f') { - if (yych <= 0x08) goto yy113; - if (yych <= '\n') goto yy314; - goto yy113; - } else { - if (yych <= '\r') goto yy314; - if (yych == ' ') goto yy314; - goto yy113; - } -yy316: - YYDEBUG(316, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '"') goto yy82; - if (yych <= '/') goto yy400; - if (yych <= '9') goto yy82; - goto yy400; -yy317: - YYDEBUG(317, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\'') goto yy82; - if (yych <= '/') goto yy402; - if (yych <= '9') goto yy82; - goto yy402; -yy318: - YYDEBUG(318, *YYCURSOR); - ++YYCURSOR; - YYFILL(2); - yych = *YYCURSOR; - YYDEBUG(319, *YYCURSOR); - if (yych <= '@') { - if (yych <= '\f') { - if (yych == '\n') goto yy403; - goto yy82; - } else { - if (yych <= '\r') goto yy405; - if (yych <= '/') goto yy82; - if (yych <= '9') goto yy318; - goto yy82; - } - } else { - if (yych <= '_') { - if (yych <= 'Z') goto yy318; - if (yych <= '^') goto yy82; - goto yy318; - } else { - if (yych <= '`') goto yy82; - if (yych <= 'z') goto yy318; - if (yych <= 0x7F) goto yy82; - goto yy318; - } - } -yy320: - YYDEBUG(320, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy406; - if (yych == 'r') goto yy406; - goto yy44; -yy321: - YYDEBUG(321, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy407; - if (yych == 'y') goto yy407; - goto yy44; -yy322: - YYDEBUG(322, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'K') goto yy409; - if (yych == 'k') goto yy409; - goto yy44; -yy323: - YYDEBUG(323, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy411; - if (yych == 'a') goto yy411; - goto yy44; -yy324: - YYDEBUG(324, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(325, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1389 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CASE); -} -#line 4275 "Zend/zend_language_scanner.c" -yy326: - YYDEBUG(326, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy412; - if (yych == 'h') goto yy412; - goto yy44; -yy327: - YYDEBUG(327, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy414; - if (yych == 's') goto yy414; - goto yy44; -yy328: - YYDEBUG(328, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy416; - if (yych == 'e') goto yy416; - goto yy44; -yy329: - YYDEBUG(329, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy418; - if (yych == 't') goto yy418; - goto yy44; -yy330: - YYDEBUG(330, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy420; - if (yych == 'i') goto yy420; - goto yy44; -yy331: - YYDEBUG(331, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy421; - if (yych == 'a') goto yy421; - goto yy44; -yy332: - YYDEBUG(332, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy422; - if (yych == 'u') goto yy422; - goto yy44; -yy333: - YYDEBUG(333, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(334, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1409 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ECHO); -} -#line 4330 "Zend/zend_language_scanner.c" -yy335: - YYDEBUG(335, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '^') { - if (yych <= '@') { - if (yych <= '/') goto yy336; - if (yych <= '9') goto yy43; - } else { - if (yych == 'I') goto yy423; - if (yych <= 'Z') goto yy43; - } - } else { - if (yych <= 'h') { - if (yych != '`') goto yy43; - } else { - if (yych <= 'i') goto yy423; - if (yych <= 'z') goto yy43; - if (yych >= 0x80) goto yy43; - } - } -yy336: - YYDEBUG(336, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1333 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ELSE); -} -#line 4358 "Zend/zend_language_scanner.c" -yy337: - YYDEBUG(337, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy424; - if (yych == 'y') goto yy424; - goto yy44; -yy338: - YYDEBUG(338, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy426; - if (yych == 'e') goto yy426; - goto yy44; -yy339: - YYDEBUG(339, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy427; - if (yych == 'o') goto yy427; - goto yy44; -yy340: - YYDEBUG(340, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy428; - if (yych == 'f') goto yy428; - goto yy44; -yy341: - YYDEBUG(341, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'W') goto yy430; - if (yych == 'w') goto yy430; - goto yy44; -yy342: - YYDEBUG(342, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy431; - if (yych == 'h') goto yy431; - goto yy44; -yy343: - YYDEBUG(343, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(344, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1524 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_EVAL); -} -#line 4407 "Zend/zend_language_scanner.c" -yy345: - YYDEBUG(345, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(346, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1271 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_EXIT); -} -#line 4420 "Zend/zend_language_scanner.c" -yy347: - YYDEBUG(347, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy432; - if (yych == 'n') goto yy432; - goto yy44; -yy348: - YYDEBUG(348, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy433; - if (yych == 'l') goto yy433; - goto yy44; -yy349: - YYDEBUG(349, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy435; - if (yych == 'a') goto yy435; - goto yy44; -yy350: - YYDEBUG(350, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy436; - if (yych == 't') goto yy436; - goto yy44; -yy351: - YYDEBUG(351, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy437; - if (yych == 'a') goto yy437; - goto yy44; -yy352: - YYDEBUG(352, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(353, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1405 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_GOTO); -} -#line 4463 "Zend/zend_language_scanner.c" -yy354: - YYDEBUG(354, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy438; - if (yych == 'e') goto yy438; - goto yy44; -yy355: - YYDEBUG(355, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy439; - if (yych == 'u') goto yy439; - goto yy44; -yy356: - YYDEBUG(356, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'E') { - if (yych == 'A') goto yy440; - if (yych <= 'D') goto yy44; - goto yy441; - } else { - if (yych <= 'a') { - if (yych <= '`') goto yy44; - goto yy440; - } else { - if (yych == 'e') goto yy441; - goto yy44; - } - } -yy357: - YYDEBUG(357, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy442; - if (yych == 'r') goto yy442; - goto yy44; -yy358: - YYDEBUG(358, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy443; - if (yych == 't') goto yy443; - goto yy44; -yy359: - YYDEBUG(359, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(360, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1604 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_LIST); -} -#line 4516 "Zend/zend_language_scanner.c" -yy361: - YYDEBUG(361, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy445; - if (yych == 's') goto yy445; - goto yy44; -yy362: - YYDEBUG(362, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy446; - if (yych == 't') goto yy446; - goto yy44; -yy363: - YYDEBUG(363, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy448; - if (yych == 'a') goto yy448; - goto yy44; -yy364: - YYDEBUG(364, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy449; - if (yych == 'e') goto yy449; - goto yy44; -yy365: - YYDEBUG(365, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy450; - if (yych == 'i') goto yy450; - goto yy44; -yy366: - YYDEBUG(366, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy451; - if (yych == 'i') goto yy451; - goto yy44; -yy367: - YYDEBUG(367, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy452; - if (yych == 'r') goto yy452; - goto yy44; -yy368: - YYDEBUG(368, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy453; - if (yych == 'i') goto yy453; - goto yy44; -yy369: - YYDEBUG(369, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy454; - if (yych == 'c') goto yy454; - goto yy44; -yy370: - YYDEBUG(370, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'W') goto yy455; - if (yych == 'w') goto yy455; - goto yy44; -yy371: - YYDEBUG(371, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy457; - if (yych == 't') goto yy457; - goto yy44; -yy372: - YYDEBUG(372, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy459; - if (yych == 't') goto yy459; - goto yy44; -yy373: - YYDEBUG(373, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy461; - if (yych == 'e') goto yy461; - goto yy44; -yy374: - YYDEBUG(374, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy463; - if (yych == 'd') goto yy463; - goto yy44; -yy375: - YYDEBUG(375, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy465; - if (yych == 'a') goto yy465; - goto yy44; -yy376: - YYDEBUG(376, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy466; - if (yych == 'r') goto yy466; - goto yy44; -yy377: - YYDEBUG(377, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy467; - if (yych == 'l') goto yy467; - goto yy44; -yy378: - YYDEBUG(378, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy468; - if (yych == 'n') goto yy468; - goto yy44; -yy379: - YYDEBUG(379, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy469; - if (yych == 'l') goto yy469; - goto yy44; -yy380: - YYDEBUG(380, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy470; - if (yych == 'n') goto yy470; - goto yy44; -yy381: - YYDEBUG(381, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy471; - if (yych == 't') goto yy471; - goto yy44; -yy382: - YYDEBUG(382, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy472; - if (yych == 'm') goto yy472; - goto yy44; -yy383: - YYDEBUG(383, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy473; - if (yych == 'a') goto yy473; - goto yy44; -yy384: - YYDEBUG(384, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy474; - if (yych == 'y') goto yy474; - goto yy82; -yy385: - YYDEBUG(385, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy476; - if (yych == 'r') goto yy476; - goto yy82; -yy386: - YYDEBUG(386, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy481; - if (yych == 'e') goto yy481; - goto yy478; -yy387: - YYDEBUG(387, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy482; - if (yych == 'l') goto yy482; - goto yy82; -yy388: - YYDEBUG(388, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy483; - if (yych == 't') goto yy483; - goto yy82; -yy389: - YYDEBUG(389, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; -yy390: - YYDEBUG(390, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy389; - goto yy82; - } else { - if (yych <= ' ') goto yy389; - if (yych != ')') goto yy82; - } - YYDEBUG(391, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(392, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1489 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_INT_CAST); -} -#line 4707 "Zend/zend_language_scanner.c" -yy393: - YYDEBUG(393, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'G') goto yy485; - if (yych == 'g') goto yy485; - goto yy82; -yy394: - YYDEBUG(394, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy486; - if (yych == 'c') goto yy486; - goto yy82; -yy395: - YYDEBUG(395, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(396, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy395; - goto yy82; - } else { - if (yych <= ' ') goto yy395; - if (yych == ')') goto yy487; - goto yy82; - } -yy397: - YYDEBUG(397, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy489; - if (yych == 'n') goto yy489; - goto yy82; -yy398: - YYDEBUG(398, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy490; - if (yych == 't') goto yy490; - goto yy82; -yy399: - YYDEBUG(399, *YYCURSOR); - ++YYCURSOR; - YYFILL(3); - yych = *YYCURSOR; -yy400: - YYDEBUG(400, *YYCURSOR); - if (yych <= 'Z') { - if (yych <= '/') { - if (yych == '"') goto yy492; - goto yy82; - } else { - if (yych <= '9') goto yy399; - if (yych <= '@') goto yy82; - goto yy399; - } - } else { - if (yych <= '`') { - if (yych == '_') goto yy399; - goto yy82; - } else { - if (yych <= 'z') goto yy399; - if (yych <= 0x7F) goto yy82; - goto yy399; - } - } -yy401: - YYDEBUG(401, *YYCURSOR); - ++YYCURSOR; - YYFILL(3); - yych = *YYCURSOR; -yy402: - YYDEBUG(402, *YYCURSOR); - if (yych <= 'Z') { - if (yych <= '/') { - if (yych == '\'') goto yy492; - goto yy82; - } else { - if (yych <= '9') goto yy401; - if (yych <= '@') goto yy82; - goto yy401; - } - } else { - if (yych <= '`') { - if (yych == '_') goto yy401; - goto yy82; - } else { - if (yych <= 'z') goto yy401; - if (yych <= 0x7F) goto yy82; - goto yy401; - } - } -yy403: - YYDEBUG(403, *YYCURSOR); - ++YYCURSOR; -yy404: - YYDEBUG(404, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2364 "Zend/zend_language_scanner.l" - { - char *s; - unsigned char *saved_cursor; - int bprefix = (yytext[0] != '<') ? 1 : 0, spacing = 0, indentation = 0; - zend_heredoc_label *heredoc_label = emalloc(sizeof(zend_heredoc_label)); - zend_bool is_heredoc = 1; - - CG(zend_lineno)++; - heredoc_label->length = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0); - s = yytext+bprefix+3; - while ((*s == ' ') || (*s == '\t')) { - s++; - heredoc_label->length--; - } - - if (*s == '\'') { - s++; - heredoc_label->length -= 2; - is_heredoc = 0; - - BEGIN(ST_NOWDOC); - } else { - if (*s == '"') { - s++; - heredoc_label->length -= 2; - } - - BEGIN(ST_HEREDOC); - } - - heredoc_label->label = estrndup(s, heredoc_label->length); - heredoc_label->indentation = 0; - saved_cursor = YYCURSOR; - - zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) heredoc_label); - - while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) { - if (*YYCURSOR == '\t') { - spacing |= HEREDOC_USING_TABS; - } else { - spacing |= HEREDOC_USING_SPACES; - } - ++YYCURSOR; - ++indentation; - } - - if (YYCURSOR == YYLIMIT) { - YYCURSOR = saved_cursor; - RETURN_TOKEN(T_START_HEREDOC); - } - - /* Check for ending label on the next line */ - if (heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, heredoc_label->length)) { - if (!IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) { - if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) { - zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0); - if (PARSER_MODE()) { - RETURN_TOKEN(T_ERROR); - } - } - - YYCURSOR = saved_cursor; - heredoc_label->indentation = indentation; - - BEGIN(ST_END_HEREDOC); - RETURN_TOKEN(T_START_HEREDOC); - } - } - - YYCURSOR = saved_cursor; - - if (is_heredoc && !SCNG(heredoc_scan_ahead)) { - zend_lex_state current_state; - zend_string *saved_doc_comment = CG(doc_comment); - int heredoc_nesting_level = 1; - int first_token = 0; - int error = 0; - - zend_save_lexical_state(¤t_state); - - SCNG(heredoc_scan_ahead) = 1; - SCNG(heredoc_indentation) = 0; - SCNG(heredoc_indentation_uses_spaces) = 0; - LANG_SCNG(on_event) = NULL; - CG(doc_comment) = NULL; - - zend_ptr_stack_reverse_apply(¤t_state.heredoc_label_stack, copy_heredoc_label_stack); - - zend_exception_save(); - while (heredoc_nesting_level) { - zval zv; - int retval; - - ZVAL_UNDEF(&zv); - retval = lex_scan(&zv, NULL); - zval_ptr_dtor_nogc(&zv); - - if (EG(exception)) { - zend_clear_exception(); - break; - } - - if (!first_token) { - first_token = retval; - } - - switch (retval) { - case T_START_HEREDOC: - ++heredoc_nesting_level; - break; - case T_END_HEREDOC: - --heredoc_nesting_level; - break; - case END: - heredoc_nesting_level = 0; - } - } - zend_exception_restore(); - - if ( - (first_token == T_VARIABLE - || first_token == T_DOLLAR_OPEN_CURLY_BRACES - || first_token == T_CURLY_OPEN - ) && SCNG(heredoc_indentation)) { - zend_throw_exception_ex(zend_ce_parse_error, 0, "Invalid body indentation level (expecting an indentation level of at least %d)", SCNG(heredoc_indentation)); - error = 1; - } - - heredoc_label->indentation = SCNG(heredoc_indentation); - heredoc_label->indentation_uses_spaces = SCNG(heredoc_indentation_uses_spaces); - - zend_restore_lexical_state(¤t_state); - SCNG(heredoc_scan_ahead) = 0; - CG(increment_lineno) = 0; - CG(doc_comment) = saved_doc_comment; - - if (PARSER_MODE() && error) { - RETURN_TOKEN(T_ERROR); - } - } - - RETURN_TOKEN(T_START_HEREDOC); -} -#line 4948 "Zend/zend_language_scanner.c" -yy405: - YYDEBUG(405, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy403; - goto yy404; -yy406: - YYDEBUG(406, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy493; - if (yych == 'a') goto yy493; - goto yy44; -yy407: - YYDEBUG(407, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(408, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1608 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ARRAY); -} -#line 4972 "Zend/zend_language_scanner.c" -yy409: - YYDEBUG(409, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(410, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1397 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_BREAK); -} -#line 4985 "Zend/zend_language_scanner.c" -yy411: - YYDEBUG(411, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'B') goto yy494; - if (yych == 'b') goto yy494; - goto yy44; -yy412: - YYDEBUG(412, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(413, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1309 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CATCH); -} -#line 5004 "Zend/zend_language_scanner.c" -yy414: - YYDEBUG(414, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(415, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1417 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CLASS); -} -#line 5017 "Zend/zend_language_scanner.c" -yy416: - YYDEBUG(416, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(417, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1481 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CLONE); -} -#line 5030 "Zend/zend_language_scanner.c" -yy418: - YYDEBUG(418, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(419, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1287 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CONST); -} -#line 5043 "Zend/zend_language_scanner.c" -yy420: - YYDEBUG(420, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy495; - if (yych == 'n') goto yy495; - goto yy44; -yy421: - YYDEBUG(421, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy496; - if (yych == 'r') goto yy496; - goto yy44; -yy422: - YYDEBUG(422, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy497; - if (yych == 'l') goto yy497; - goto yy44; -yy423: - YYDEBUG(423, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy498; - if (yych == 'f') goto yy498; - goto yy44; -yy424: - YYDEBUG(424, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(425, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1564 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_EMPTY); -} -#line 5080 "Zend/zend_language_scanner.c" -yy426: - YYDEBUG(426, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy500; - if (yych == 'c') goto yy500; - goto yy44; -yy427: - YYDEBUG(427, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy501; - if (yych == 'r') goto yy501; - goto yy44; -yy428: - YYDEBUG(428, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(429, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1329 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ENDIF); -} -#line 5105 "Zend/zend_language_scanner.c" -yy430: - YYDEBUG(430, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy503; - if (yych == 'i') goto yy503; - goto yy44; -yy431: - YYDEBUG(431, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy504; - if (yych == 'i') goto yy504; - goto yy44; -yy432: - YYDEBUG(432, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy505; - if (yych == 'd') goto yy505; - goto yy44; -yy433: - YYDEBUG(433, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '^') { - if (yych <= '@') { - if (yych <= '/') goto yy434; - if (yych <= '9') goto yy43; - } else { - if (yych == 'L') goto yy506; - if (yych <= 'Z') goto yy43; - } - } else { - if (yych <= 'k') { - if (yych != '`') goto yy43; - } else { - if (yych <= 'l') goto yy506; - if (yych <= 'z') goto yy43; - if (yych >= 0x80) goto yy43; - } - } -yy434: - YYDEBUG(434, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1580 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_FINAL); -} -#line 5151 "Zend/zend_language_scanner.c" -yy435: - YYDEBUG(435, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy507; - if (yych == 'c') goto yy507; - goto yy44; -yy436: - YYDEBUG(436, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy508; - if (yych == 'i') goto yy508; - goto yy44; -yy437: - YYDEBUG(437, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy509; - if (yych == 'l') goto yy509; - goto yy44; -yy438: - YYDEBUG(438, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy511; - if (yych == 'm') goto yy511; - goto yy44; -yy439: - YYDEBUG(439, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy512; - if (yych == 'd') goto yy512; - goto yy44; -yy440: - YYDEBUG(440, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy513; - if (yych == 'n') goto yy513; - goto yy44; -yy441: - YYDEBUG(441, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy514; - if (yych == 'a') goto yy514; - goto yy44; -yy442: - YYDEBUG(442, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy515; - if (yych == 'f') goto yy515; - goto yy44; -yy443: - YYDEBUG(443, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(444, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1560 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ISSET); -} -#line 5212 "Zend/zend_language_scanner.c" -yy445: - YYDEBUG(445, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy516; - if (yych == 'p') goto yy516; - goto yy44; -yy446: - YYDEBUG(446, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(447, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1413 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_PRINT); -} -#line 5231 "Zend/zend_language_scanner.c" -yy448: - YYDEBUG(448, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy517; - if (yych == 't') goto yy517; - goto yy44; -yy449: - YYDEBUG(449, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy518; - if (yych == 'c') goto yy518; - goto yy44; -yy450: - YYDEBUG(450, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy519; - if (yych == 'c') goto yy519; - goto yy44; -yy451: - YYDEBUG(451, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy521; - if (yych == 'r') goto yy521; - goto yy44; -yy452: - YYDEBUG(452, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy522; - if (yych == 'n') goto yy522; - goto yy44; -yy453: - YYDEBUG(453, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy524; - if (yych == 'c') goto yy524; - goto yy44; -yy454: - YYDEBUG(454, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy526; - if (yych == 'h') goto yy526; - goto yy44; -yy455: - YYDEBUG(455, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(456, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1317 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_THROW); -} -#line 5286 "Zend/zend_language_scanner.c" -yy457: - YYDEBUG(457, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(458, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1425 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_TRAIT); -} -#line 5299 "Zend/zend_language_scanner.c" -yy459: - YYDEBUG(459, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(460, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1596 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_UNSET); -} -#line 5312 "Zend/zend_language_scanner.c" -yy461: - YYDEBUG(461, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(462, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1337 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_WHILE); -} -#line 5325 "Zend/zend_language_scanner.c" -yy463: - YYDEBUG(463, *YYCURSOR); - yyaccept = 8; - yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 16) { - goto yy43; - } - if (yych <= '\f') { - if (yych <= 0x08) goto yy464; - if (yych <= '\n') goto yy528; - } else { - if (yych <= '\r') goto yy528; - if (yych == ' ') goto yy528; - } -yy464: - YYDEBUG(464, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1301 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_YIELD); -} -#line 5347 "Zend/zend_language_scanner.c" -yy465: - YYDEBUG(465, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy530; - if (yych == 's') goto yy530; - goto yy44; -yy466: - YYDEBUG(466, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy531; - goto yy44; -yy467: - YYDEBUG(467, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy532; - if (yych == 'e') goto yy532; - goto yy44; -yy468: - YYDEBUG(468, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy533; - if (yych == 'c') goto yy533; - goto yy44; -yy469: - YYDEBUG(469, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy534; - if (yych == 't') goto yy534; - goto yy44; -yy470: - YYDEBUG(470, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy535; - if (yych == 'e') goto yy535; - goto yy44; -yy471: - YYDEBUG(471, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy536; - if (yych == 'h') goto yy536; - goto yy44; -yy472: - YYDEBUG(472, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy537; - if (yych == 'e') goto yy537; - goto yy44; -yy473: - YYDEBUG(473, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy538; - if (yych == 'i') goto yy538; - goto yy44; -yy474: - YYDEBUG(474, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(475, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy474; - goto yy82; - } else { - if (yych <= ' ') goto yy474; - if (yych == ')') goto yy539; - goto yy82; - } -yy476: - YYDEBUG(476, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy541; - if (yych == 'y') goto yy541; - goto yy82; -yy477: - YYDEBUG(477, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; -yy478: - YYDEBUG(478, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy477; - goto yy82; - } else { - if (yych <= ' ') goto yy477; - if (yych != ')') goto yy82; - } - YYDEBUG(479, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(480, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1516 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_BOOL_CAST); -} -#line 5443 "Zend/zend_language_scanner.c" -yy481: - YYDEBUG(481, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy543; - if (yych == 'a') goto yy543; - goto yy82; -yy482: - YYDEBUG(482, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy483; - if (yych != 'e') goto yy82; -yy483: - YYDEBUG(483, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(484, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy483; - goto yy82; - } else { - if (yych <= ' ') goto yy483; - if (yych == ')') goto yy544; - goto yy82; - } -yy485: - YYDEBUG(485, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy546; - if (yych == 'e') goto yy546; - goto yy82; -yy486: - YYDEBUG(486, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy547; - if (yych == 't') goto yy547; - goto yy82; -yy487: - YYDEBUG(487, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(488, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1497 "Zend/zend_language_scanner.l" - { - if (PARSER_MODE()) { - zend_error(E_DEPRECATED, "The (real) cast is deprecated, use (float) instead"); - } - RETURN_TOKEN(T_DOUBLE_CAST); -} -#line 5493 "Zend/zend_language_scanner.c" -yy489: - YYDEBUG(489, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'G') goto yy541; - if (yych == 'g') goto yy541; - goto yy82; -yy490: - YYDEBUG(490, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(491, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy490; - goto yy82; - } else { - if (yych <= ' ') goto yy490; - if (yych == ')') goto yy549; - goto yy82; - } -yy492: - YYDEBUG(492, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy403; - if (yych == '\r') goto yy405; - goto yy82; -yy493: - YYDEBUG(493, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy551; - if (yych == 'c') goto yy551; - goto yy44; -yy494: - YYDEBUG(494, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy552; - if (yych == 'l') goto yy552; - goto yy44; -yy495: - YYDEBUG(495, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy553; - if (yych == 'u') goto yy553; - goto yy44; -yy496: - YYDEBUG(496, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy554; - if (yych == 'e') goto yy554; - goto yy44; -yy497: - YYDEBUG(497, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy556; - if (yych == 't') goto yy556; - goto yy44; -yy498: - YYDEBUG(498, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(499, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1325 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ELSEIF); -} -#line 5562 "Zend/zend_language_scanner.c" -yy500: - YYDEBUG(500, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy558; - if (yych == 'l') goto yy558; - goto yy44; -yy501: - YYDEBUG(501, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '^') { - if (yych <= '@') { - if (yych <= '/') goto yy502; - if (yych <= '9') goto yy43; - } else { - if (yych == 'E') goto yy559; - if (yych <= 'Z') goto yy43; - } - } else { - if (yych <= 'd') { - if (yych != '`') goto yy43; - } else { - if (yych <= 'e') goto yy559; - if (yych <= 'z') goto yy43; - if (yych >= 0x80) goto yy43; - } - } -yy502: - YYDEBUG(502, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1353 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ENDFOR); -} -#line 5596 "Zend/zend_language_scanner.c" -yy503: - YYDEBUG(503, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy560; - if (yych == 't') goto yy560; - goto yy44; -yy504: - YYDEBUG(504, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy561; - if (yych == 'l') goto yy561; - goto yy44; -yy505: - YYDEBUG(505, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy562; - if (yych == 's') goto yy562; - goto yy44; -yy506: - YYDEBUG(506, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'Y') goto yy564; - if (yych == 'y') goto yy564; - goto yy44; -yy507: - YYDEBUG(507, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy566; - if (yych == 'h') goto yy566; - goto yy44; -yy508: - YYDEBUG(508, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy568; - if (yych == 'o') goto yy568; - goto yy44; -yy509: - YYDEBUG(509, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(510, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1556 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_GLOBAL); -} -#line 5645 "Zend/zend_language_scanner.c" -yy511: - YYDEBUG(511, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy569; - if (yych == 'e') goto yy569; - goto yy44; -yy512: - YYDEBUG(512, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy570; - if (yych == 'e') goto yy570; - goto yy44; -yy513: - YYDEBUG(513, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy572; - if (yych == 'c') goto yy572; - goto yy44; -yy514: - YYDEBUG(514, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy573; - if (yych == 'd') goto yy573; - goto yy44; -yy515: - YYDEBUG(515, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy574; - if (yych == 'a') goto yy574; - goto yy44; -yy516: - YYDEBUG(516, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy575; - if (yych == 'a') goto yy575; - goto yy44; -yy517: - YYDEBUG(517, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy576; - if (yych == 'e') goto yy576; - goto yy44; -yy518: - YYDEBUG(518, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy578; - if (yych == 't') goto yy578; - goto yy44; -yy519: - YYDEBUG(519, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(520, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1592 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_PUBLIC); -} -#line 5706 "Zend/zend_language_scanner.c" -yy521: - YYDEBUG(521, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy579; - if (yych == 'e') goto yy579; - goto yy44; -yy522: - YYDEBUG(522, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(523, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1291 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_RETURN); -} -#line 5725 "Zend/zend_language_scanner.c" -yy524: - YYDEBUG(524, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(525, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1572 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_STATIC); -} -#line 5738 "Zend/zend_language_scanner.c" -yy526: - YYDEBUG(526, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(527, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1381 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_SWITCH); -} -#line 5751 "Zend/zend_language_scanner.c" -yy528: - YYDEBUG(528, *YYCURSOR); - ++YYCURSOR; - YYFILL(5); - yych = *YYCURSOR; - YYDEBUG(529, *YYCURSOR); - if (yych <= 0x1F) { - if (yych <= '\n') { - if (yych <= 0x08) goto yy82; - goto yy528; - } else { - if (yych == '\r') goto yy528; - goto yy82; - } - } else { - if (yych <= 'F') { - if (yych <= ' ') goto yy528; - if (yych <= 'E') goto yy82; - goto yy581; - } else { - if (yych == 'f') goto yy581; - goto yy82; - } - } -yy530: - YYDEBUG(530, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy582; - if (yych == 's') goto yy582; - goto yy44; -yy531: - YYDEBUG(531, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy583; - goto yy44; -yy532: - YYDEBUG(532, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy585; - goto yy44; -yy533: - YYDEBUG(533, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy586; - if (yych == 't') goto yy586; - goto yy44; -yy534: - YYDEBUG(534, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy587; - goto yy44; -yy535: - YYDEBUG(535, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy588; - goto yy44; -yy536: - YYDEBUG(536, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy589; - if (yych == 'o') goto yy589; - goto yy44; -yy537: - YYDEBUG(537, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy590; - if (yych == 's') goto yy590; - goto yy44; -yy538: - YYDEBUG(538, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy591; - if (yych == 't') goto yy591; - goto yy44; -yy539: - YYDEBUG(539, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(540, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1508 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ARRAY_CAST); -} -#line 5835 "Zend/zend_language_scanner.c" -yy541: - YYDEBUG(541, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(542, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy541; - goto yy82; - } else { - if (yych <= ' ') goto yy541; - if (yych == ')') goto yy592; - goto yy82; - } -yy543: - YYDEBUG(543, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy477; - if (yych == 'n') goto yy477; - goto yy82; -yy544: - YYDEBUG(544, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(545, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1493 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DOUBLE_CAST); -} -#line 5865 "Zend/zend_language_scanner.c" -yy546: - YYDEBUG(546, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy389; - if (yych == 'r') goto yy389; - goto yy82; -yy547: - YYDEBUG(547, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(548, *YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy547; - goto yy82; - } else { - if (yych <= ' ') goto yy547; - if (yych == ')') goto yy594; - goto yy82; - } -yy549: - YYDEBUG(549, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(550, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1520 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_UNSET_CAST); -} -#line 5895 "Zend/zend_language_scanner.c" -yy551: - YYDEBUG(551, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy596; - if (yych == 't') goto yy596; - goto yy44; -yy552: - YYDEBUG(552, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy598; - if (yych == 'e') goto yy598; - goto yy44; -yy553: - YYDEBUG(553, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy600; - if (yych == 'e') goto yy600; - goto yy44; -yy554: - YYDEBUG(554, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(555, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1365 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DECLARE); -} -#line 5926 "Zend/zend_language_scanner.c" -yy556: - YYDEBUG(556, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(557, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1393 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DEFAULT); -} -#line 5939 "Zend/zend_language_scanner.c" -yy558: - YYDEBUG(558, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy602; - if (yych == 'a') goto yy602; - goto yy44; -yy559: - YYDEBUG(559, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy603; - if (yych == 'a') goto yy603; - goto yy44; -yy560: - YYDEBUG(560, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy604; - if (yych == 'c') goto yy604; - goto yy44; -yy561: - YYDEBUG(561, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy605; - if (yych == 'e') goto yy605; - goto yy44; -yy562: - YYDEBUG(562, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(563, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1429 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_EXTENDS); -} -#line 5976 "Zend/zend_language_scanner.c" -yy564: - YYDEBUG(564, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(565, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1313 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_FINALLY); -} -#line 5989 "Zend/zend_language_scanner.c" -yy566: - YYDEBUG(566, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(567, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1357 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_FOREACH); -} -#line 6002 "Zend/zend_language_scanner.c" -yy568: - YYDEBUG(568, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy607; - if (yych == 'n') goto yy607; - goto yy44; -yy569: - YYDEBUG(569, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy609; - if (yych == 'n') goto yy609; - goto yy44; -yy570: - YYDEBUG(570, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '^') { - if (yych <= '9') { - if (yych >= '0') goto yy43; - } else { - if (yych <= '@') goto yy571; - if (yych <= 'Z') goto yy43; - } - } else { - if (yych <= '`') { - if (yych <= '_') goto yy610; - } else { - if (yych <= 'z') goto yy43; - if (yych >= 0x80) goto yy43; - } - } -yy571: - YYDEBUG(571, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1528 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_INCLUDE); -} -#line 6040 "Zend/zend_language_scanner.c" -yy572: - YYDEBUG(572, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy611; - if (yych == 'e') goto yy611; - goto yy44; -yy573: - YYDEBUG(573, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy612; - if (yych == 'o') goto yy612; - goto yy44; -yy574: - YYDEBUG(574, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy613; - if (yych == 'c') goto yy613; - goto yy44; -yy575: - YYDEBUG(575, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy614; - if (yych == 'c') goto yy614; - goto yy44; -yy576: - YYDEBUG(576, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(577, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1584 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_PRIVATE); -} -#line 6077 "Zend/zend_language_scanner.c" -yy578: - YYDEBUG(578, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy615; - if (yych == 'e') goto yy615; - goto yy44; -yy579: - YYDEBUG(579, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '^') { - if (yych <= '9') { - if (yych >= '0') goto yy43; - } else { - if (yych <= '@') goto yy580; - if (yych <= 'Z') goto yy43; - } - } else { - if (yych <= '`') { - if (yych <= '_') goto yy616; - } else { - if (yych <= 'z') goto yy43; - if (yych >= 0x80) goto yy43; - } - } -yy580: - YYDEBUG(580, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1536 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_REQUIRE); -} -#line 6109 "Zend/zend_language_scanner.c" -yy581: - YYDEBUG(581, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy617; - if (yych == 'r') goto yy617; - goto yy82; -yy582: - YYDEBUG(582, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy618; - goto yy44; -yy583: - YYDEBUG(583, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(584, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1993 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_DIR); -} -#line 6133 "Zend/zend_language_scanner.c" -yy585: - YYDEBUG(585, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy619; - goto yy44; -yy586: - YYDEBUG(586, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy621; - if (yych == 'i') goto yy621; - goto yy44; -yy587: - YYDEBUG(587, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy622; - if (yych == 'c') goto yy622; - goto yy44; -yy588: - YYDEBUG(588, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy623; - goto yy44; -yy589: - YYDEBUG(589, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy625; - if (yych == 'd') goto yy625; - goto yy44; -yy590: - YYDEBUG(590, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy626; - if (yych == 'p') goto yy626; - goto yy44; -yy591: - YYDEBUG(591, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy627; - goto yy44; -yy592: - YYDEBUG(592, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(593, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1504 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_STRING_CAST); -} -#line 6182 "Zend/zend_language_scanner.c" -yy594: - YYDEBUG(594, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(595, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1512 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_OBJECT_CAST); -} -#line 6192 "Zend/zend_language_scanner.c" -yy596: - YYDEBUG(596, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(597, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1576 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ABSTRACT); -} -#line 6205 "Zend/zend_language_scanner.c" -yy598: - YYDEBUG(598, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(599, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1612 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CALLABLE); -} -#line 6218 "Zend/zend_language_scanner.c" -yy600: - YYDEBUG(600, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(601, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1401 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CONTINUE); -} -#line 6231 "Zend/zend_language_scanner.c" -yy602: - YYDEBUG(602, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy628; - if (yych == 'r') goto yy628; - goto yy44; -yy603: - YYDEBUG(603, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy629; - if (yych == 'c') goto yy629; - goto yy44; -yy604: - YYDEBUG(604, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy630; - if (yych == 'h') goto yy630; - goto yy44; -yy605: - YYDEBUG(605, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(606, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1341 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ENDWHILE); -} -#line 6262 "Zend/zend_language_scanner.c" -yy607: - YYDEBUG(607, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(608, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1283 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_FUNCTION); -} -#line 6275 "Zend/zend_language_scanner.c" -yy609: - YYDEBUG(609, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'T') goto yy632; - if (yych == 't') goto yy632; - goto yy44; -yy610: - YYDEBUG(610, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy633; - if (yych == 'o') goto yy633; - goto yy44; -yy611: - YYDEBUG(611, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy634; - if (yych == 'o') goto yy634; - goto yy44; -yy612: - YYDEBUG(612, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy635; - if (yych == 'f') goto yy635; - goto yy44; -yy613: - YYDEBUG(613, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy637; - if (yych == 'e') goto yy637; - goto yy44; -yy614: - YYDEBUG(614, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy639; - if (yych == 'e') goto yy639; - goto yy44; -yy615: - YYDEBUG(615, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'D') goto yy641; - if (yych == 'd') goto yy641; - goto yy44; -yy616: - YYDEBUG(616, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy643; - if (yych == 'o') goto yy643; - goto yy44; -yy617: - YYDEBUG(617, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy644; - if (yych == 'o') goto yy644; - goto yy82; -yy618: - YYDEBUG(618, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy645; - goto yy44; -yy619: - YYDEBUG(619, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(620, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1989 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_FILE); -} -#line 6347 "Zend/zend_language_scanner.c" -yy621: - YYDEBUG(621, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy647; - if (yych == 'o') goto yy647; - goto yy44; -yy622: - YYDEBUG(622, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'O') goto yy648; - if (yych == 'o') goto yy648; - goto yy44; -yy623: - YYDEBUG(623, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(624, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1985 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_LINE); -} -#line 6372 "Zend/zend_language_scanner.c" -yy625: - YYDEBUG(625, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy649; - goto yy44; -yy626: - YYDEBUG(626, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy650; - if (yych == 'a') goto yy650; - goto yy44; -yy627: - YYDEBUG(627, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy651; - goto yy44; -yy628: - YYDEBUG(628, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy653; - if (yych == 'e') goto yy653; - goto yy44; -yy629: - YYDEBUG(629, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'H') goto yy655; - if (yych == 'h') goto yy655; - goto yy44; -yy630: - YYDEBUG(630, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(631, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1385 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ENDSWITCH); -} -#line 6413 "Zend/zend_language_scanner.c" -yy632: - YYDEBUG(632, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy657; - if (yych == 's') goto yy657; - goto yy44; -yy633: - YYDEBUG(633, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy659; - if (yych == 'n') goto yy659; - goto yy44; -yy634: - YYDEBUG(634, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy660; - if (yych == 'f') goto yy660; - goto yy44; -yy635: - YYDEBUG(635, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(636, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1552 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_INSTEADOF); -} -#line 6444 "Zend/zend_language_scanner.c" -yy637: - YYDEBUG(637, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(638, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1421 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_INTERFACE); -} -#line 6457 "Zend/zend_language_scanner.c" -yy639: - YYDEBUG(639, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(640, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1544 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_NAMESPACE); -} -#line 6470 "Zend/zend_language_scanner.c" -yy641: - YYDEBUG(641, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(642, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1588 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_PROTECTED); -} -#line 6483 "Zend/zend_language_scanner.c" -yy643: - YYDEBUG(643, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy662; - if (yych == 'n') goto yy662; - goto yy44; -yy644: - YYDEBUG(644, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy663; - if (yych == 'm') goto yy663; - goto yy82; -yy645: - YYDEBUG(645, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(646, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1969 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_CLASS_C); -} -#line 6508 "Zend/zend_language_scanner.c" -yy647: - YYDEBUG(647, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy664; - if (yych == 'n') goto yy664; - goto yy44; -yy648: - YYDEBUG(648, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'M') goto yy665; - if (yych == 'm') goto yy665; - goto yy44; -yy649: - YYDEBUG(649, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy666; - goto yy44; -yy650: - YYDEBUG(650, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy668; - if (yych == 'c') goto yy668; - goto yy44; -yy651: - YYDEBUG(651, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(652, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1973 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_TRAIT_C); -} -#line 6544 "Zend/zend_language_scanner.c" -yy653: - YYDEBUG(653, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(654, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1369 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ENDDECLARE); -} -#line 6557 "Zend/zend_language_scanner.c" -yy655: - YYDEBUG(655, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(656, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1361 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_ENDFOREACH); -} -#line 6570 "Zend/zend_language_scanner.c" -yy657: - YYDEBUG(657, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(658, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1433 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_IMPLEMENTS); -} -#line 6583 "Zend/zend_language_scanner.c" -yy659: - YYDEBUG(659, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy669; - if (yych == 'c') goto yy669; - goto yy44; -yy660: - YYDEBUG(660, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(661, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1373 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_INSTANCEOF); -} -#line 6602 "Zend/zend_language_scanner.c" -yy662: - YYDEBUG(662, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'C') goto yy670; - if (yych == 'c') goto yy670; - goto yy44; -yy663: - YYDEBUG(663, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '^') { - if (yych <= '9') { - if (yych <= '/') goto yy671; - goto yy82; - } else { - if (yych <= '@') goto yy671; - if (yych <= 'Z') goto yy82; - goto yy671; - } - } else { - if (yych <= '`') { - if (yych <= '_') goto yy82; - goto yy671; - } else { - if (yych <= 'z') goto yy82; - if (yych <= 0x7F) goto yy671; - goto yy82; - } - } -yy664: - YYDEBUG(664, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy673; - goto yy44; -yy665: - YYDEBUG(665, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'P') goto yy674; - if (yych == 'p') goto yy674; - goto yy44; -yy666: - YYDEBUG(666, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(667, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1981 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_METHOD_C); -} -#line 6654 "Zend/zend_language_scanner.c" -yy668: - YYDEBUG(668, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy675; - if (yych == 'e') goto yy675; - goto yy44; -yy669: - YYDEBUG(669, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy676; - if (yych == 'e') goto yy676; - goto yy44; -yy670: - YYDEBUG(670, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy678; - if (yych == 'e') goto yy678; - goto yy44; -yy671: - YYDEBUG(671, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(672, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1295 "Zend/zend_language_scanner.l" - { - yyless(yyleng - 1); - HANDLE_NEWLINES(yytext, yyleng); - RETURN_TOKEN(T_YIELD_FROM); -} -#line 6684 "Zend/zend_language_scanner.c" -yy673: - YYDEBUG(673, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy680; - goto yy44; -yy674: - YYDEBUG(674, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'I') goto yy682; - if (yych == 'i') goto yy682; - goto yy44; -yy675: - YYDEBUG(675, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy683; - goto yy44; -yy676: - YYDEBUG(676, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(677, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1532 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_INCLUDE_ONCE); -} -#line 6713 "Zend/zend_language_scanner.c" -yy678: - YYDEBUG(678, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(679, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1540 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_REQUIRE_ONCE); -} -#line 6726 "Zend/zend_language_scanner.c" -yy680: - YYDEBUG(680, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(681, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1977 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_FUNC_C); -} -#line 6739 "Zend/zend_language_scanner.c" -yy682: - YYDEBUG(682, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy684; - if (yych == 'l') goto yy684; - goto yy44; -yy683: - YYDEBUG(683, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '_') goto yy685; - goto yy44; -yy684: - YYDEBUG(684, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy687; - if (yych == 'e') goto yy687; - goto yy44; -yy685: - YYDEBUG(685, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(686, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1997 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_NS_C); -} -#line 6769 "Zend/zend_language_scanner.c" -yy687: - YYDEBUG(687, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy688; - if (yych != 'r') goto yy44; -yy688: - YYDEBUG(688, *YYCURSOR); - yych = *++YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy43; - } - YYDEBUG(689, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1568 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_HALT_COMPILER); -} -#line 6787 "Zend/zend_language_scanner.c" - } -/* *********************************** */ -yyc_ST_LOOKING_FOR_PROPERTY: - { - static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64, 64, 0, 0, 64, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 64, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 0, 0, 0, 0, 0, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 128, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - }; - YYDEBUG(690, *YYCURSOR); - YYFILL(2); - yych = *YYCURSOR; - if (yybm[0+yych] & 64) { - goto yy694; - } - if (yych <= '^') { - if (yych <= '-') { - if (yych >= '-') goto yy697; - } else { - if (yych <= '@') goto yy692; - if (yych <= 'Z') goto yy698; - } - } else { - if (yych <= '`') { - if (yych <= '_') goto yy698; - } else { - if (yych <= 'z') goto yy698; - if (yych >= 0x80) goto yy698; - } - } -yy692: - YYDEBUG(692, *YYCURSOR); - ++YYCURSOR; -yy693: - YYDEBUG(693, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1455 "Zend/zend_language_scanner.l" - { - yyless(0); - yy_pop_state(); - goto restart; -} -#line 6859 "Zend/zend_language_scanner.c" -yy694: - YYDEBUG(694, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(695, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy694; - } - YYDEBUG(696, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1442 "Zend/zend_language_scanner.l" - { - goto return_whitespace; -} -#line 6875 "Zend/zend_language_scanner.c" -yy697: - YYDEBUG(697, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '>') goto yy701; - goto yy693; -yy698: - YYDEBUG(698, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(699, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy698; - } - YYDEBUG(700, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1450 "Zend/zend_language_scanner.l" - { - yy_pop_state(); - RETURN_TOKEN_WITH_STR(T_STRING, 0); -} -#line 6897 "Zend/zend_language_scanner.c" -yy701: - YYDEBUG(701, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(702, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1446 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN(T_OBJECT_OPERATOR); -} -#line 6907 "Zend/zend_language_scanner.c" - } -/* *********************************** */ -yyc_ST_BACKQUOTE: - { - static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 0, 0, 0, 0, 0, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 128, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - }; - YYDEBUG(703, *YYCURSOR); - YYFILL(2); - yych = *YYCURSOR; - if (yych <= '_') { - if (yych == '$') goto yy707; - } else { - if (yych <= '`') goto yy708; - if (yych == '{') goto yy710; - } - YYDEBUG(705, *YYCURSOR); - ++YYCURSOR; -yy706: - YYDEBUG(706, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2601 "Zend/zend_language_scanner.l" - { - if (YYCURSOR > YYLIMIT) { - RETURN_TOKEN(END); - } - if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) { - YYCURSOR++; - } - - while (YYCURSOR < YYLIMIT) { - switch (*YYCURSOR++) { - case '`': - break; - case '$': - if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') { - break; - } - continue; - case '{': - if (*YYCURSOR == '$') { - break; - } - continue; - case '\\': - if (YYCURSOR < YYLIMIT) { - YYCURSOR++; - } - /* fall through */ - default: - continue; - } - - YYCURSOR--; - break; - } - - yyleng = YYCURSOR - SCNG(yy_text); - - if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '`') == SUCCESS) - || !PARSER_MODE()) { - RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE); - } else { - RETURN_TOKEN(T_ERROR); - } -} -#line 7005 "Zend/zend_language_scanner.c" -yy707: - YYDEBUG(707, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy706; - if (yych <= 'Z') goto yy711; - if (yych <= '^') goto yy706; - goto yy711; - } else { - if (yych <= 'z') { - if (yych <= '`') goto yy706; - goto yy711; - } else { - if (yych <= '{') goto yy714; - if (yych <= 0x7F) goto yy706; - goto yy711; - } - } -yy708: - YYDEBUG(708, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(709, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2541 "Zend/zend_language_scanner.l" - { - BEGIN(ST_IN_SCRIPTING); - RETURN_TOKEN('`'); -} -#line 7034 "Zend/zend_language_scanner.c" -yy710: - YYDEBUG(710, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '$') goto yy716; - goto yy706; -yy711: - YYDEBUG(711, *YYCURSOR); - YYMARKER = ++YYCURSOR; - YYFILL(3); - yych = *YYCURSOR; - YYDEBUG(712, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy711; - } - if (yych == '-') goto yy718; - if (yych <= '@') goto yy713; - if (yych <= '[') goto yy720; -yy713: - YYDEBUG(713, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2122 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); -} -#line 7059 "Zend/zend_language_scanner.c" -yy714: - YYDEBUG(714, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(715, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1747 "Zend/zend_language_scanner.l" - { - yy_push_state(ST_LOOKING_FOR_VARNAME); - RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES); -} -#line 7070 "Zend/zend_language_scanner.c" -yy716: - YYDEBUG(716, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(717, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2529 "Zend/zend_language_scanner.l" - { - yy_push_state(ST_IN_SCRIPTING); - yyless(1); - RETURN_TOKEN(T_CURLY_OPEN); -} -#line 7082 "Zend/zend_language_scanner.c" -yy718: - YYDEBUG(718, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '>') goto yy722; -yy719: - YYDEBUG(719, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy713; -yy720: - YYDEBUG(720, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(721, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2116 "Zend/zend_language_scanner.l" - { - yyless(yyleng - 1); - yy_push_state(ST_VAR_OFFSET); - RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); -} -#line 7102 "Zend/zend_language_scanner.c" -yy722: - YYDEBUG(722, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy719; - if (yych <= 'Z') goto yy723; - if (yych <= '^') goto yy719; - } else { - if (yych <= '`') goto yy719; - if (yych <= 'z') goto yy723; - if (yych <= 0x7F) goto yy719; - } -yy723: - YYDEBUG(723, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(724, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2108 "Zend/zend_language_scanner.l" - { - yyless(yyleng - 3); - yy_push_state(ST_LOOKING_FOR_PROPERTY); - RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); -} -#line 7126 "Zend/zend_language_scanner.c" - } -/* *********************************** */ -yyc_ST_DOUBLE_QUOTES: - { - static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 0, 0, 0, 0, 0, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 128, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - }; - YYDEBUG(725, *YYCURSOR); - YYFILL(2); - yych = *YYCURSOR; - if (yych <= '#') { - if (yych == '"') goto yy729; - } else { - if (yych <= '$') goto yy731; - if (yych == '{') goto yy732; - } - YYDEBUG(727, *YYCURSOR); - ++YYCURSOR; -yy728: - YYDEBUG(728, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2547 "Zend/zend_language_scanner.l" - { - if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) { - YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1; - SET_DOUBLE_QUOTES_SCANNED_LENGTH(0); - - goto double_quotes_scan_done; - } - - if (YYCURSOR > YYLIMIT) { - RETURN_TOKEN(END); - } - if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) { - YYCURSOR++; - } - - while (YYCURSOR < YYLIMIT) { - switch (*YYCURSOR++) { - case '"': - break; - case '$': - if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') { - break; - } - continue; - case '{': - if (*YYCURSOR == '$') { - break; - } - continue; - case '\\': - if (YYCURSOR < YYLIMIT) { - YYCURSOR++; - } - /* fall through */ - default: - continue; - } - - YYCURSOR--; - break; - } - -double_quotes_scan_done: - yyleng = YYCURSOR - SCNG(yy_text); - - if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '"') == SUCCESS) - || !PARSER_MODE()) { - RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE); - } else { - RETURN_TOKEN(T_ERROR); - } -} -#line 7232 "Zend/zend_language_scanner.c" -yy729: - YYDEBUG(729, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(730, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2536 "Zend/zend_language_scanner.l" - { - BEGIN(ST_IN_SCRIPTING); - RETURN_TOKEN('"'); -} -#line 7243 "Zend/zend_language_scanner.c" -yy731: - YYDEBUG(731, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy728; - if (yych <= 'Z') goto yy733; - if (yych <= '^') goto yy728; - goto yy733; - } else { - if (yych <= 'z') { - if (yych <= '`') goto yy728; - goto yy733; - } else { - if (yych <= '{') goto yy736; - if (yych <= 0x7F) goto yy728; - goto yy733; - } - } -yy732: - YYDEBUG(732, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '$') goto yy738; - goto yy728; -yy733: - YYDEBUG(733, *YYCURSOR); - YYMARKER = ++YYCURSOR; - YYFILL(3); - yych = *YYCURSOR; - YYDEBUG(734, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy733; - } - if (yych == '-') goto yy740; - if (yych <= '@') goto yy735; - if (yych <= '[') goto yy742; -yy735: - YYDEBUG(735, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2122 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); -} -#line 7286 "Zend/zend_language_scanner.c" -yy736: - YYDEBUG(736, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(737, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1747 "Zend/zend_language_scanner.l" - { - yy_push_state(ST_LOOKING_FOR_VARNAME); - RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES); -} -#line 7297 "Zend/zend_language_scanner.c" -yy738: - YYDEBUG(738, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(739, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2529 "Zend/zend_language_scanner.l" - { - yy_push_state(ST_IN_SCRIPTING); - yyless(1); - RETURN_TOKEN(T_CURLY_OPEN); -} -#line 7309 "Zend/zend_language_scanner.c" -yy740: - YYDEBUG(740, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '>') goto yy744; -yy741: - YYDEBUG(741, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy735; -yy742: - YYDEBUG(742, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(743, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2116 "Zend/zend_language_scanner.l" - { - yyless(yyleng - 1); - yy_push_state(ST_VAR_OFFSET); - RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); -} -#line 7329 "Zend/zend_language_scanner.c" -yy744: - YYDEBUG(744, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy741; - if (yych <= 'Z') goto yy745; - if (yych <= '^') goto yy741; - } else { - if (yych <= '`') goto yy741; - if (yych <= 'z') goto yy745; - if (yych <= 0x7F) goto yy741; - } -yy745: - YYDEBUG(745, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(746, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2108 "Zend/zend_language_scanner.l" - { - yyless(yyleng - 3); - yy_push_state(ST_LOOKING_FOR_PROPERTY); - RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); -} -#line 7353 "Zend/zend_language_scanner.c" - } -/* *********************************** */ -yyc_ST_HEREDOC: - { - static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 0, 0, 0, 0, 0, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 128, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - }; - YYDEBUG(747, *YYCURSOR); - YYFILL(2); - yych = *YYCURSOR; - if (yych == '$') goto yy751; - if (yych == '{') goto yy752; - YYDEBUG(749, *YYCURSOR); - ++YYCURSOR; -yy750: - YYDEBUG(750, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2647 "Zend/zend_language_scanner.l" - { - zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack)); - int newline = 0, indentation = 0, spacing = 0; - - if (YYCURSOR > YYLIMIT) { - RETURN_TOKEN(END); - } - - YYCURSOR--; - - while (YYCURSOR < YYLIMIT) { - switch (*YYCURSOR++) { - case '\r': - if (*YYCURSOR == '\n') { - YYCURSOR++; - } - /* fall through */ - case '\n': - indentation = spacing = 0; - - while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) { - if (*YYCURSOR == '\t') { - spacing |= HEREDOC_USING_TABS; - } else { - spacing |= HEREDOC_USING_SPACES; - } - ++YYCURSOR; - ++indentation; - } - - if (YYCURSOR == YYLIMIT) { - yyleng = YYCURSOR - SCNG(yy_text); - HANDLE_NEWLINES(yytext, yyleng); - ZVAL_NULL(zendlval); - RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE); - } - - /* Check for ending label on the next line */ - if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) { - if (IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) { - continue; - } - - if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) { - zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0); - if (PARSER_MODE()) { - RETURN_TOKEN(T_ERROR); - } - } - - /* newline before label will be subtracted from returned text, but - * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */ - if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') { - newline = 2; /* Windows newline */ - } else { - newline = 1; - } - - CG(increment_lineno) = 1; /* For newline before label */ - - if (SCNG(heredoc_scan_ahead)) { - SCNG(heredoc_indentation) = indentation; - SCNG(heredoc_indentation_uses_spaces) = (spacing == HEREDOC_USING_SPACES); - } else { - YYCURSOR -= indentation; - } - - BEGIN(ST_END_HEREDOC); - - goto heredoc_scan_done; - } - continue; - case '$': - if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') { - break; - } - continue; - case '{': - if (*YYCURSOR == '$') { - break; - } - continue; - case '\\': - if (YYCURSOR < YYLIMIT && *YYCURSOR != '\n' && *YYCURSOR != '\r') { - YYCURSOR++; - } - /* fall through */ - default: - continue; - } - - YYCURSOR--; - break; - } - -heredoc_scan_done: - - yyleng = YYCURSOR - SCNG(yy_text); - ZVAL_STRINGL(zendlval, yytext, yyleng - newline); - - if (!SCNG(heredoc_scan_ahead) && !EG(exception) && PARSER_MODE()) { - zend_bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r'; - zend_string *copy = Z_STR_P(zendlval); - - if (!strip_multiline_string_indentation( - zendlval, heredoc_label->indentation, heredoc_label->indentation_uses_spaces, - newline_at_start, newline != 0)) { - RETURN_TOKEN(T_ERROR); - } - - if (UNEXPECTED(zend_scan_escape_string(zendlval, ZSTR_VAL(copy), ZSTR_LEN(copy), 0) != SUCCESS)) { - zend_string_efree(copy); - RETURN_TOKEN(T_ERROR); - } - - zend_string_efree(copy); - } else { - HANDLE_NEWLINES(yytext, yyleng - newline); - } - - RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE); -} -#line 7525 "Zend/zend_language_scanner.c" -yy751: - YYDEBUG(751, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy750; - if (yych <= 'Z') goto yy753; - if (yych <= '^') goto yy750; - goto yy753; - } else { - if (yych <= 'z') { - if (yych <= '`') goto yy750; - goto yy753; - } else { - if (yych <= '{') goto yy756; - if (yych <= 0x7F) goto yy750; - goto yy753; - } - } -yy752: - YYDEBUG(752, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '$') goto yy758; - goto yy750; -yy753: - YYDEBUG(753, *YYCURSOR); - YYMARKER = ++YYCURSOR; - YYFILL(3); - yych = *YYCURSOR; - YYDEBUG(754, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy753; - } - if (yych == '-') goto yy760; - if (yych <= '@') goto yy755; - if (yych <= '[') goto yy762; -yy755: - YYDEBUG(755, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2122 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); -} -#line 7568 "Zend/zend_language_scanner.c" -yy756: - YYDEBUG(756, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(757, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1747 "Zend/zend_language_scanner.l" - { - yy_push_state(ST_LOOKING_FOR_VARNAME); - RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES); -} -#line 7579 "Zend/zend_language_scanner.c" -yy758: - YYDEBUG(758, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(759, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2529 "Zend/zend_language_scanner.l" - { - yy_push_state(ST_IN_SCRIPTING); - yyless(1); - RETURN_TOKEN(T_CURLY_OPEN); -} -#line 7591 "Zend/zend_language_scanner.c" -yy760: - YYDEBUG(760, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '>') goto yy764; -yy761: - YYDEBUG(761, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy755; -yy762: - YYDEBUG(762, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(763, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2116 "Zend/zend_language_scanner.l" - { - yyless(yyleng - 1); - yy_push_state(ST_VAR_OFFSET); - RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); -} -#line 7611 "Zend/zend_language_scanner.c" -yy764: - YYDEBUG(764, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy761; - if (yych <= 'Z') goto yy765; - if (yych <= '^') goto yy761; - } else { - if (yych <= '`') goto yy761; - if (yych <= 'z') goto yy765; - if (yych <= 0x7F) goto yy761; - } -yy765: - YYDEBUG(765, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(766, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2108 "Zend/zend_language_scanner.l" - { - yyless(yyleng - 3); - yy_push_state(ST_LOOKING_FOR_PROPERTY); - RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); -} -#line 7635 "Zend/zend_language_scanner.c" - } -/* *********************************** */ -yyc_ST_LOOKING_FOR_VARNAME: - { - static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 0, 0, 0, 0, 0, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 128, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - }; - YYDEBUG(767, *YYCURSOR); - YYFILL(2); - yych = *YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy769; - if (yych <= 'Z') goto yy771; - if (yych >= '_') goto yy771; - } else { - if (yych <= '`') goto yy769; - if (yych <= 'z') goto yy771; - if (yych >= 0x80) goto yy771; - } -yy769: - YYDEBUG(769, *YYCURSOR); - ++YYCURSOR; -yy770: - YYDEBUG(770, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1770 "Zend/zend_language_scanner.l" - { - yyless(0); - yy_pop_state(); - yy_push_state(ST_IN_SCRIPTING); - goto restart; -} -#line 7699 "Zend/zend_language_scanner.c" -yy771: - YYDEBUG(771, *YYCURSOR); - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '_') { - if (yych <= '@') { - if (yych <= '/') goto yy770; - if (yych <= '9') goto yy773; - goto yy770; - } else { - if (yych <= '[') goto yy773; - if (yych <= '^') goto yy770; - goto yy773; - } - } else { - if (yych <= '|') { - if (yych <= '`') goto yy770; - if (yych <= 'z') goto yy773; - goto yy770; - } else { - if (yych <= '}') goto yy773; - if (yych <= 0x7F) goto yy770; - goto yy773; - } - } -yy772: - YYDEBUG(772, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; -yy773: - YYDEBUG(773, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy772; - } - if (yych <= '@') goto yy774; - if (yych <= '[') goto yy775; - if (yych == '}') goto yy775; -yy774: - YYDEBUG(774, *YYCURSOR); - YYCURSOR = YYMARKER; - goto yy770; -yy775: - YYDEBUG(775, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(776, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1762 "Zend/zend_language_scanner.l" - { - yyless(yyleng - 1); - yy_pop_state(); - yy_push_state(ST_IN_SCRIPTING); - RETURN_TOKEN_WITH_STR(T_STRING_VARNAME, 0); -} -#line 7753 "Zend/zend_language_scanner.c" - } -/* *********************************** */ -yyc_ST_VAR_OFFSET: - { - static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 240, 240, 176, 176, 176, 176, 176, 176, - 176, 176, 0, 0, 0, 0, 0, 0, - 0, 160, 160, 160, 160, 160, 160, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 0, 0, 0, 0, 32, - 0, 160, 160, 160, 160, 160, 160, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 0, 0, 0, 0, 0, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - }; - YYDEBUG(777, *YYCURSOR); - YYFILL(2); - yych = *YYCURSOR; - if (yych <= '0') { - if (yych <= ' ') { - if (yych <= '\f') { - if (yych <= 0x08) goto yy779; - if (yych <= '\n') goto yy781; - } else { - if (yych <= '\r') goto yy781; - if (yych >= ' ') goto yy781; - } - } else { - if (yych <= '$') { - if (yych <= '"') goto yy783; - if (yych <= '#') goto yy781; - goto yy785; - } else { - if (yych == '\'') goto yy781; - if (yych <= '/') goto yy783; - goto yy786; - } - } - } else { - if (yych <= ']') { - if (yych <= 'Z') { - if (yych <= '9') goto yy788; - if (yych <= '@') goto yy783; - goto yy790; - } else { - if (yych <= '[') goto yy783; - if (yych <= '\\') goto yy781; - goto yy793; - } - } else { - if (yych <= '`') { - if (yych == '_') goto yy790; - goto yy783; - } else { - if (yych <= 'z') goto yy790; - if (yych <= '~') goto yy783; - if (yych >= 0x80) goto yy790; - } - } - } -yy779: - YYDEBUG(779, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(780, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2862 "Zend/zend_language_scanner.l" - { - if (YYCURSOR > YYLIMIT) { - RETURN_TOKEN(END); - } - - if (!SCNG(heredoc_scan_ahead)) { - zend_error(E_COMPILE_WARNING, "Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); - } - if (PARSER_MODE()) { - goto restart; - } else { - RETURN_TOKEN(T_BAD_CHARACTER); - } -} -#line 7857 "Zend/zend_language_scanner.c" -yy781: - YYDEBUG(781, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(782, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2136 "Zend/zend_language_scanner.l" - { - /* Invalid rule to return a more explicit parse error with proper line number */ - yyless(0); - yy_pop_state(); - ZVAL_NULL(zendlval); - RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE); -} -#line 7871 "Zend/zend_language_scanner.c" -yy783: - YYDEBUG(783, *YYCURSOR); - ++YYCURSOR; -yy784: - YYDEBUG(784, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2131 "Zend/zend_language_scanner.l" - { - /* Only '[' or '-' can be valid, but returning other tokens will allow a more explicit parse error */ - RETURN_TOKEN(yytext[0]); -} -#line 7883 "Zend/zend_language_scanner.c" -yy785: - YYDEBUG(785, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '_') { - if (yych <= '@') goto yy784; - if (yych <= 'Z') goto yy795; - if (yych <= '^') goto yy784; - goto yy795; - } else { - if (yych <= '`') goto yy784; - if (yych <= 'z') goto yy795; - if (yych <= 0x7F) goto yy784; - goto yy795; - } -yy786: - YYDEBUG(786, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'X') { - if (yych <= 'A') { - if (yych <= '/') goto yy787; - if (yych <= '9') goto yy798; - } else { - if (yych <= 'B') goto yy801; - if (yych >= 'X') goto yy803; - } - } else { - if (yych <= 'a') { - if (yych == '_') goto yy804; - } else { - if (yych <= 'b') goto yy801; - if (yych == 'x') goto yy803; - } - } -yy787: - YYDEBUG(787, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1924 "Zend/zend_language_scanner.l" - { /* Offset could be treated as a long */ - if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) { - char *end; - errno = 0; - ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 10)); - if (errno == ERANGE) { - goto string; - } - ZEND_ASSERT(end == yytext + yyleng); - } else { -string: - ZVAL_STRINGL(zendlval, yytext, yyleng); - } - RETURN_TOKEN_WITH_VAL(T_NUM_STRING); -} -#line 7937 "Zend/zend_language_scanner.c" -yy788: - YYDEBUG(788, *YYCURSOR); - yyaccept = 0; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(789, *YYCURSOR); - if (yybm[0+yych] & 16) { - goto yy788; - } - if (yych == '_') goto yy804; - goto yy787; -yy790: - YYDEBUG(790, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(791, *YYCURSOR); - if (yybm[0+yych] & 32) { - goto yy790; - } - YYDEBUG(792, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2144 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN_WITH_STR(T_STRING, 0); -} -#line 7965 "Zend/zend_language_scanner.c" -yy793: - YYDEBUG(793, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(794, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2126 "Zend/zend_language_scanner.l" - { - yy_pop_state(); - RETURN_TOKEN(']'); -} -#line 7976 "Zend/zend_language_scanner.c" -yy795: - YYDEBUG(795, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(796, *YYCURSOR); - if (yych <= '^') { - if (yych <= '9') { - if (yych >= '0') goto yy795; - } else { - if (yych <= '@') goto yy797; - if (yych <= 'Z') goto yy795; - } - } else { - if (yych <= '`') { - if (yych <= '_') goto yy795; - } else { - if (yych <= 'z') goto yy795; - if (yych >= 0x80) goto yy795; - } - } -yy797: - YYDEBUG(797, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2122 "Zend/zend_language_scanner.l" - { - RETURN_TOKEN_WITH_STR(T_VARIABLE, 1); -} -#line 8005 "Zend/zend_language_scanner.c" -yy798: - YYDEBUG(798, *YYCURSOR); - yyaccept = 1; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(799, *YYCURSOR); - if (yych <= '/') goto yy800; - if (yych <= '9') goto yy798; - if (yych == '_') goto yy804; -yy800: - YYDEBUG(800, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 1940 "Zend/zend_language_scanner.l" - { /* Offset must be treated as a string */ - if (yyleng == 1) { - ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext))); - } else { - ZVAL_STRINGL(zendlval, yytext, yyleng); - } - RETURN_TOKEN_WITH_VAL(T_NUM_STRING); -} -#line 8028 "Zend/zend_language_scanner.c" -yy801: - YYDEBUG(801, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yybm[0+yych] & 64) { - goto yy805; - } -yy802: - YYDEBUG(802, *YYCURSOR); - YYCURSOR = YYMARKER; - if (yyaccept == 0) { - goto yy787; - } else { - goto yy800; - } -yy803: - YYDEBUG(803, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yybm[0+yych] & 128) { - goto yy807; - } - goto yy802; -yy804: - YYDEBUG(804, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yych <= '/') goto yy802; - if (yych <= '9') goto yy798; - goto yy802; -yy805: - YYDEBUG(805, *YYCURSOR); - yyaccept = 1; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(806, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy805; - } - if (yych == '_') goto yy801; - goto yy800; -yy807: - YYDEBUG(807, *YYCURSOR); - yyaccept = 1; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(808, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy807; - } - if (yych == '_') goto yy803; - goto yy800; - } -/* *********************************** */ -yyc_SHEBANG: - { - static const unsigned char yybm[] = { - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - }; - YYDEBUG(809, *YYCURSOR); - YYFILL(2); - yych = *YYCURSOR; - if (yych == '#') goto yy813; - YYDEBUG(811, *YYCURSOR); - ++YYCURSOR; -yy812: - YYDEBUG(812, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2007 "Zend/zend_language_scanner.l" - { - yyless(0); - BEGIN(INITIAL); - goto restart; -} -#line 8139 "Zend/zend_language_scanner.c" -yy813: - YYDEBUG(813, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '!') goto yy812; -yy814: - YYDEBUG(814, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(815, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy814; - } - YYDEBUG(816, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(817, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2001 "Zend/zend_language_scanner.l" - { - CG(zend_lineno)++; - BEGIN(INITIAL); - goto restart; -} -#line 8163 "Zend/zend_language_scanner.c" - } -/* *********************************** */ -yyc_INITIAL: - YYDEBUG(818, *YYCURSOR); - YYFILL(7); - yych = *YYCURSOR; - if (yych == '<') goto yy822; - YYDEBUG(820, *YYCURSOR); - ++YYCURSOR; -yy821: - YYDEBUG(821, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2052 "Zend/zend_language_scanner.l" - { - if (YYCURSOR > YYLIMIT) { - RETURN_TOKEN(END); - } - -inline_char_handler: - - while (1) { - YYCTYPE *ptr = memchr(YYCURSOR, '<', YYLIMIT - YYCURSOR); - - YYCURSOR = ptr ? ptr + 1 : YYLIMIT; - - if (YYCURSOR >= YYLIMIT) { - break; - } - - if (*YYCURSOR == '?') { - if (CG(short_tags) /* indentation + heredoc_label->length; - YYCURSOR += yyleng - 1; - - heredoc_label_dtor(heredoc_label); - efree(heredoc_label); - - BEGIN(ST_IN_SCRIPTING); - RETURN_TOKEN(T_END_HEREDOC); -} -#line 8351 "Zend/zend_language_scanner.c" -/* *********************************** */ -yyc_ST_NOWDOC: - YYDEBUG(839, *YYCURSOR); - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(841, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(842, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 2771 "Zend/zend_language_scanner.l" - { - zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack)); - int newline = 0, indentation = 0, spacing = -1; - - if (YYCURSOR > YYLIMIT) { - RETURN_TOKEN(END); - } - - YYCURSOR--; - - while (YYCURSOR < YYLIMIT) { - switch (*YYCURSOR++) { - case '\r': - if (*YYCURSOR == '\n') { - YYCURSOR++; - } - /* fall through */ - case '\n': - indentation = spacing = 0; - - while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) { - if (*YYCURSOR == '\t') { - spacing |= HEREDOC_USING_TABS; - } else { - spacing |= HEREDOC_USING_SPACES; - } - ++YYCURSOR; - ++indentation; - } - - if (YYCURSOR == YYLIMIT) { - yyleng = YYCURSOR - SCNG(yy_text); - HANDLE_NEWLINES(yytext, yyleng); - ZVAL_NULL(zendlval); - RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE); - } - - /* Check for ending label on the next line */ - if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) { - if (IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) { - continue; - } - - if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) { - zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0); - if (PARSER_MODE()) { - RETURN_TOKEN(T_ERROR); - } - } - - /* newline before label will be subtracted from returned text, but - * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */ - if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') { - newline = 2; /* Windows newline */ - } else { - newline = 1; - } - - CG(increment_lineno) = 1; /* For newline before label */ - - YYCURSOR -= indentation; - heredoc_label->indentation = indentation; - - BEGIN(ST_END_HEREDOC); - - goto nowdoc_scan_done; - } - /* fall through */ - default: - continue; - } - } - -nowdoc_scan_done: - yyleng = YYCURSOR - SCNG(yy_text); - ZVAL_STRINGL(zendlval, yytext, yyleng - newline); - - if (!EG(exception) && spacing != -1 && PARSER_MODE()) { - zend_bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r'; - if (!strip_multiline_string_indentation( - zendlval, indentation, spacing == HEREDOC_USING_SPACES, - newline_at_start, newline != 0)) { - RETURN_TOKEN(T_ERROR); - } - } - - HANDLE_NEWLINES(yytext, yyleng - newline); - RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE); -} -#line 8451 "Zend/zend_language_scanner.c" -} -#line 2877 "Zend/zend_language_scanner.l" - - -emit_token_with_str: - zend_copy_value(zendlval, (yytext + offset), (yyleng - offset)); - -emit_token_with_val: - if (PARSER_MODE()) { - ZEND_ASSERT(Z_TYPE_P(zendlval) != IS_UNDEF); - elem->ast = zend_ast_create_zval_with_lineno(zendlval, start_line); - } - -emit_token: - if (SCNG(on_event)) { - SCNG(on_event)(ON_TOKEN, token, start_line, SCNG(on_event_context)); - } - return token; - -return_whitespace: - HANDLE_NEWLINES(yytext, yyleng); - if (SCNG(on_event)) { - SCNG(on_event)(ON_TOKEN, T_WHITESPACE, start_line, SCNG(on_event_context)); - } - if (PARSER_MODE()) { - start_line = CG(zend_lineno); - goto restart; - } else { - return T_WHITESPACE; - } - -skip_token: - if (SCNG(on_event)) { - SCNG(on_event)(ON_TOKEN, token, start_line, SCNG(on_event_context)); - } - start_line = CG(zend_lineno); - goto restart; -}