From 0381c1b79e9491e68c9ca85a21e0a5bd68f3840f Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Mon, 20 Apr 2015 17:39:32 +0200 Subject: [PATCH] Fixed bug #69388 Renamed compiler_context to oparray_context. Introduced per-file file_context. Moved import tables into the file_context. context_stack no longer exists, instead keeping backups of contexts on C stack. Same for file contexts. TODO: Move more things out of CG into file_context. There should be a number of other things that we should not try to reuse in nested compilations. --- Zend/zend.c | 3 - Zend/zend_compile.c | 153 ++++---- Zend/zend_compile.h | 23 +- Zend/zend_globals.h | 7 +- Zend/zend_language_scanner.c | 716 ++++++++++++++++++----------------- Zend/zend_language_scanner.l | 20 +- 6 files changed, 477 insertions(+), 445 deletions(-) diff --git a/Zend/zend.c b/Zend/zend.c index cf87b2620c..f262f8b5d7 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -1047,7 +1047,6 @@ static void zend_error_va_list(int type, const char *format, va_list args) zend_class_entry *saved_class_entry; zend_stack loop_var_stack; zend_stack delayed_oplines_stack; - zend_stack context_stack; zend_array *symbol_table; if (type & E_EXCEPTION) { @@ -1234,7 +1233,6 @@ static void zend_error_va_list(int type, const char *format, va_list args) CG(active_class_entry) = NULL; SAVE_STACK(loop_var_stack); SAVE_STACK(delayed_oplines_stack); - SAVE_STACK(context_stack); CG(in_compilation) = 0; } @@ -1254,7 +1252,6 @@ static void zend_error_va_list(int type, const char *format, va_list args) CG(active_class_entry) = saved_class_entry; RESTORE_STACK(loop_var_stack); RESTORE_STACK(delayed_oplines_stack); - RESTORE_STACK(context_stack); CG(in_compilation) = 1; } diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index ea9c900e3b..75349343a2 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -225,8 +225,9 @@ static void init_compiler_declarables(void) /* {{{ */ } /* }}} */ -void zend_init_compiler_context(void) /* {{{ */ +void zend_oparray_context_begin(zend_oparray_context *prev_context) /* {{{ */ { + *prev_context = CG(context); CG(context).opcodes_size = INITIAL_OP_ARRAY_SIZE; CG(context).vars_size = 0; CG(context).literals_size = 0; @@ -238,6 +239,56 @@ void zend_init_compiler_context(void) /* {{{ */ } /* }}} */ +void zend_oparray_context_end(zend_oparray_context *prev_context) /* {{{ */ +{ + if (CG(context).labels) { + zend_hash_destroy(CG(context).labels); + FREE_HASHTABLE(CG(context).labels); + CG(context).labels = NULL; + } + CG(context) = *prev_context; +} +/* }}} */ + +static void zend_reset_import_tables(void) /* {{{ */ +{ + zend_file_context *ctx = &CG(file_context); + if (ctx->imports) { + zend_hash_destroy(ctx->imports); + efree(ctx->imports); + ctx->imports = NULL; + } + + if (ctx->imports_function) { + zend_hash_destroy(ctx->imports_function); + efree(ctx->imports_function); + ctx->imports_function = NULL; + } + + if (ctx->imports_const) { + zend_hash_destroy(ctx->imports_const); + efree(ctx->imports_const); + ctx->imports_const = NULL; + } +} +/* }}} */ + +void zend_file_context_begin(zend_file_context *prev_context) /* {{{ */ +{ + *prev_context = CG(file_context); + CG(file_context).imports = NULL; + CG(file_context).imports_function = NULL; + CG(file_context).imports_const = NULL; +} +/* }}} */ + +void zend_file_context_end(zend_file_context *prev_context) /* {{{ */ +{ + zend_reset_import_tables(); + CG(file_context) = *prev_context; +} +/* }}} */ + void zend_init_compiler_data_structures(void) /* {{{ */ { zend_stack_init(&CG(loop_var_stack), sizeof(znode)); @@ -248,12 +299,8 @@ void zend_init_compiler_data_structures(void) /* {{{ */ CG(current_namespace) = NULL; CG(in_namespace) = 0; CG(has_bracketed_namespaces) = 0; - CG(current_import) = NULL; - CG(current_import_function) = NULL; - CG(current_import_const) = NULL; zend_hash_init(&CG(const_filenames), 8, NULL, NULL, 0); init_compiler_declarables(); - zend_stack_init(&CG(context_stack), sizeof(CG(context))); CG(encoding_declared) = 0; } @@ -285,7 +332,6 @@ void shutdown_compiler(void) /* {{{ */ zend_stack_destroy(&CG(delayed_oplines_stack)); zend_hash_destroy(&CG(filenames_table)); zend_hash_destroy(&CG(const_filenames)); - zend_stack_destroy(&CG(context_stack)); zend_arena_destroy(CG(arena)); } /* }}} */ @@ -731,10 +777,10 @@ zend_string *zend_resolve_non_class_name( *is_fully_qualified = 1; } - if (compound && CG(current_import)) { + if (compound && CG(file_context).imports) { /* If the first part of a qualified name is an alias, substitute it. */ size_t len = compound - name->val; - zend_string *import_name = zend_hash_find_ptr_lc(CG(current_import), name->val, len); + zend_string *import_name = zend_hash_find_ptr_lc(CG(file_context).imports, name->val, len); if (import_name) { return zend_concat_names( @@ -749,13 +795,13 @@ zend_string *zend_resolve_non_class_name( zend_string *zend_resolve_function_name(zend_string *name, uint32_t type, zend_bool *is_fully_qualified) /* {{{ */ { return zend_resolve_non_class_name( - name, type, is_fully_qualified, 0, CG(current_import_function)); + name, type, is_fully_qualified, 0, CG(file_context).imports_function); } /* }}} */ zend_string *zend_resolve_const_name(zend_string *name, uint32_t type, zend_bool *is_fully_qualified) /* {{{ */ { return zend_resolve_non_class_name( - name, type, is_fully_qualified, 1, CG(current_import_const)); + name, type, is_fully_qualified, 1, CG(file_context).imports_const); } /* }}} */ @@ -781,12 +827,13 @@ zend_string *zend_resolve_class_name(zend_string *name, uint32_t type) /* {{{ */ return name; } - if (CG(current_import)) { + if (CG(file_context).imports) { compound = memchr(name->val, '\\', name->len); if (compound) { /* If the first part of a qualified name is an alias, substitute it. */ size_t len = compound - name->val; - zend_string *import_name = zend_hash_find_ptr_lc(CG(current_import), name->val, len); + zend_string *import_name = + zend_hash_find_ptr_lc(CG(file_context).imports, name->val, len); if (import_name) { return zend_concat_names( @@ -795,7 +842,7 @@ zend_string *zend_resolve_class_name(zend_string *name, uint32_t type) /* {{{ */ } else { /* If an unqualified name is an alias, replace it. */ zend_string *import_name - = zend_hash_find_ptr_lc(CG(current_import), name->val, name->len); + = zend_hash_find_ptr_lc(CG(file_context).imports, name->val, name->len); if (import_name) { return zend_string_copy(import_name); @@ -881,21 +928,6 @@ void zend_resolve_goto_label(zend_op_array *op_array, zend_op *opline, int pass2 } /* }}} */ -void zend_release_labels(int temporary) /* {{{ */ -{ - if (CG(context).labels) { - zend_hash_destroy(CG(context).labels); - FREE_HASHTABLE(CG(context).labels); - CG(context).labels = NULL; - } - if (!temporary && !zend_stack_is_empty(&CG(context_stack))) { - zend_compiler_context *ctx = zend_stack_top(&CG(context_stack)); - CG(context) = *ctx; - zend_stack_del_top(&CG(context_stack)); - } -} -/* }}} */ - static zend_bool zend_is_call(zend_ast *ast); static int generate_free_loop_var(znode *var) /* {{{ */ @@ -1621,28 +1653,6 @@ void zend_verify_namespace(void) /* {{{ */ } /* }}} */ -static void zend_reset_import_tables(void) /* {{{ */ -{ - if (CG(current_import)) { - zend_hash_destroy(CG(current_import)); - efree(CG(current_import)); - CG(current_import) = NULL; - } - - if (CG(current_import_function)) { - zend_hash_destroy(CG(current_import_function)); - efree(CG(current_import_function)); - CG(current_import_function) = NULL; - } - - if (CG(current_import_const)) { - zend_hash_destroy(CG(current_import_const)); - efree(CG(current_import_const)); - CG(current_import_const) = NULL; - } -} -/* }}} */ - static void zend_end_namespace(void) /* {{{ */ { CG(in_namespace) = 0; zend_reset_import_tables(); @@ -4503,8 +4513,8 @@ static void zend_begin_func_decl(znode *result, zend_op_array *op_array, zend_as lcname = zend_string_tolower(name); - if (CG(current_import_function)) { - zend_string *import_name = zend_hash_find_ptr(CG(current_import_function), lcname); + if (CG(file_context).imports_function) { + zend_string *import_name = zend_hash_find_ptr(CG(file_context).imports_function, lcname); if (import_name && !zend_string_equals_ci(lcname, import_name)) { zend_error_noreturn(E_COMPILE_ERROR, "Cannot declare function %s " "because the name is already in use", name->val); @@ -4551,6 +4561,7 @@ void zend_compile_func_decl(znode *result, zend_ast *ast) /* {{{ */ zend_op_array *orig_op_array = CG(active_op_array); zend_op_array *op_array = zend_arena_alloc(&CG(arena), sizeof(zend_op_array)); + zend_oparray_context orig_oparray_context; // TODO.AST interactive (not just here - also bpc etc!) @@ -4575,8 +4586,7 @@ void zend_compile_func_decl(znode *result, zend_ast *ast) /* {{{ */ } CG(active_op_array) = op_array; - zend_stack_push(&CG(context_stack), (void *) &CG(context)); - zend_init_compiler_context(); + zend_oparray_context_begin(&orig_oparray_context); if (CG(compiler_options) & ZEND_COMPILE_EXTENDED_INFO) { zend_op *opline_ext = zend_emit_op(NULL, ZEND_EXT_NOP, NULL, NULL); @@ -4606,7 +4616,7 @@ void zend_compile_func_decl(znode *result, zend_ast *ast) /* {{{ */ zend_emit_final_return(NULL); pass_two(CG(active_op_array)); - zend_release_labels(0); + zend_oparray_context_end(&orig_oparray_context); /* Pop the loop variable stack separator */ zend_stack_del_top(&CG(loop_var_stack)); @@ -4884,8 +4894,8 @@ void zend_compile_class_decl(zend_ast *ast) /* {{{ */ lcname = zend_string_tolower(name); - if (CG(current_import)) { - import_name = zend_hash_find_ptr(CG(current_import), lcname); + if (CG(file_context).imports) { + import_name = zend_hash_find_ptr(CG(file_context).imports, lcname); } if (CG(current_namespace)) { @@ -5036,25 +5046,26 @@ void zend_compile_class_decl(zend_ast *ast) /* {{{ */ static HashTable *zend_get_import_ht(uint32_t type) /* {{{ */ { + zend_file_context *ctx = &CG(file_context); switch (type) { case T_CLASS: - if (!CG(current_import)) { - CG(current_import) = emalloc(sizeof(HashTable)); - zend_hash_init(CG(current_import), 8, NULL, str_dtor, 0); + if (!ctx->imports) { + ctx->imports = emalloc(sizeof(HashTable)); + zend_hash_init(ctx->imports, 8, NULL, str_dtor, 0); } - return CG(current_import); + return ctx->imports; case T_FUNCTION: - if (!CG(current_import_function)) { - CG(current_import_function) = emalloc(sizeof(HashTable)); - zend_hash_init(CG(current_import_function), 8, NULL, str_dtor, 0); + if (!ctx->imports_function) { + ctx->imports_function = emalloc(sizeof(HashTable)); + zend_hash_init(ctx->imports_function, 8, NULL, str_dtor, 0); } - return CG(current_import_function); + return ctx->imports_function; case T_CONST: - if (!CG(current_import_const)) { - CG(current_import_const) = emalloc(sizeof(HashTable)); - zend_hash_init(CG(current_import_const), 8, NULL, str_dtor, 0); + if (!ctx->imports_const) { + ctx->imports_const = emalloc(sizeof(HashTable)); + zend_hash_init(ctx->imports_const, 8, NULL, str_dtor, 0); } - return CG(current_import_const); + return ctx->imports_const; EMPTY_SWITCH_DEFAULT_CASE() } @@ -5241,8 +5252,8 @@ void zend_compile_const_decl(zend_ast *ast) /* {{{ */ name = zend_prefix_with_ns(name); name = zend_new_interned_string(name); - if (CG(current_import_const) - && (import_name = zend_hash_find_ptr(CG(current_import_const), name)) + if (CG(file_context).imports_const + && (import_name = zend_hash_find_ptr(CG(file_context).imports_const, name)) ) { if (!zend_string_equals(import_name, name)) { zend_error_noreturn(E_COMPILE_ERROR, "Cannot declare const %s because " diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h index 754b786695..2037d98eb3 100644 --- a/Zend/zend_compile.h +++ b/Zend/zend_compile.h @@ -53,8 +53,9 @@ typedef struct _zend_op_array zend_op_array; typedef struct _zend_op zend_op; -typedef struct _zend_compiler_context { - uint32_t opcodes_size; +/* Compilation context that is different for each op array. */ +typedef struct _zend_oparray_context { + uint32_t opcodes_size; int vars_size; int literals_size; int current_brk_cont; @@ -62,9 +63,16 @@ typedef struct _zend_compiler_context { int in_finally; uint32_t fast_call_var; HashTable *labels; -} zend_compiler_context; +} zend_oparray_context; -/* On 64-bi systems less optimal, but more compact VM code leads to better +/* Compilation context that is different for each file, but shared between op arrays. */ +typedef struct _zend_file_context { + HashTable *imports; + HashTable *imports_function; + HashTable *imports_const; +} zend_file_context; + +/* On 64-bit systems less optimal, but more compact VM code leads to better * performance. So on 32-bit systems we use absolute addresses for jump * targets and constants, but on 64-bit systems realtive 32-bit offsets */ #if SIZEOF_SIZE_T == 4 @@ -637,7 +645,11 @@ BEGIN_EXTERN_C() void init_compiler(void); void shutdown_compiler(void); void zend_init_compiler_data_structures(void); -void zend_init_compiler_context(void); + +void zend_oparray_context_begin(zend_oparray_context *prev_context); +void zend_oparray_context_end(zend_oparray_context *prev_context); +void zend_file_context_begin(zend_file_context *prev_context); +void zend_file_context_end(zend_file_context *prev_context); extern ZEND_API zend_op_array *(*zend_compile_file)(zend_file_handle *file_handle, int type); extern ZEND_API zend_op_array *(*zend_compile_string)(zval *source_string, char *filename); @@ -693,7 +705,6 @@ void zend_verify_namespace(void); void zend_do_end_compilation(void); void zend_resolve_goto_label(zend_op_array *op_array, zend_op *opline, int pass2); -void zend_release_labels(int temporary); ZEND_API void function_add_ref(zend_function *function); diff --git a/Zend/zend_globals.h b/Zend/zend_globals.h index c1b1531eab..f2ab02804e 100644 --- a/Zend/zend_globals.h +++ b/Zend/zend_globals.h @@ -113,16 +113,13 @@ struct _zend_compiler_globals { uint32_t compiler_options; /* set of ZEND_COMPILE_* constants */ zend_string *current_namespace; - HashTable *current_import; - HashTable *current_import_function; - HashTable *current_import_const; zend_bool in_namespace; zend_bool has_bracketed_namespaces; HashTable const_filenames; - zend_compiler_context context; - zend_stack context_stack; + zend_oparray_context context; + zend_file_context file_context; zend_arena *arena; diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c index 37bfceef76..6e7852c4c5 100644 --- a/Zend/zend_language_scanner.c +++ b/Zend/zend_language_scanner.c @@ -580,22 +580,26 @@ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type) CG(ast_arena) = zend_arena_create(1024 * 32); if (!zendparse()) { zval retval_zv; + 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, ZEND_USER_FUNCTION, INITIAL_OP_ARRAY_SIZE); CG(active_op_array) = op_array; ZVAL_LONG(&retval_zv, 1); - zend_stack_push(&CG(context_stack), (void *) &CG(context)); - zend_init_compiler_context(); 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)); zend_do_end_compilation(); zend_emit_final_return(&retval_zv); pass_two(op_array); - zend_release_labels(0); + zend_oparray_context_end(&original_oparray_context); + zend_file_context_end(&original_file_context); CG(active_op_array) = original_active_op_array; } @@ -741,21 +745,25 @@ zend_op_array *compile_string(zval *source_string, char *filename) BEGIN(ST_IN_SCRIPTING); if (!zendparse()) { + 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, ZEND_EVAL_CODE, INITIAL_OP_ARRAY_SIZE); CG(active_op_array) = op_array; - zend_stack_push(&CG(context_stack), (void *) &CG(context)); - zend_init_compiler_context(); 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)); zend_do_end_compilation(); zend_emit_final_return(NULL); pass_two(op_array); - zend_release_labels(0); + zend_oparray_context_end(&original_oparray_context); + zend_file_context_end(&original_file_context); CG(active_op_array) = original_active_op_array; } @@ -1082,7 +1090,7 @@ restart: SCNG(yy_text) = YYCURSOR; -#line 1086 "Zend/zend_language_scanner.c" +#line 1094 "Zend/zend_language_scanner.c" { YYCTYPE yych; unsigned int yyaccept = 0; @@ -1136,7 +1144,7 @@ yyc_INITIAL: yy3: YYDEBUG(3, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1774 "Zend/zend_language_scanner.l" +#line 1782 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -1181,7 +1189,7 @@ inline_char_handler: HANDLE_NEWLINES(yytext, yyleng); return T_INLINE_HTML; } -#line 1185 "Zend/zend_language_scanner.c" +#line 1193 "Zend/zend_language_scanner.c" yy4: YYDEBUG(4, *YYCURSOR); yych = *++YYCURSOR; @@ -1199,7 +1207,7 @@ yy5: yy6: YYDEBUG(6, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1765 "Zend/zend_language_scanner.l" +#line 1773 "Zend/zend_language_scanner.l" { if (CG(short_tags)) { BEGIN(ST_IN_SCRIPTING); @@ -1208,18 +1216,18 @@ yy6: goto inline_char_handler; } } -#line 1212 "Zend/zend_language_scanner.c" +#line 1220 "Zend/zend_language_scanner.c" yy7: YYDEBUG(7, *YYCURSOR); ++YYCURSOR; YYDEBUG(8, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1752 "Zend/zend_language_scanner.l" +#line 1760 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return T_OPEN_TAG_WITH_ECHO; } -#line 1223 "Zend/zend_language_scanner.c" +#line 1231 "Zend/zend_language_scanner.c" yy9: YYDEBUG(9, *YYCURSOR); yych = *++YYCURSOR; @@ -1250,13 +1258,13 @@ yy13: yy14: YYDEBUG(14, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1758 "Zend/zend_language_scanner.l" +#line 1766 "Zend/zend_language_scanner.l" { HANDLE_NEWLINE(yytext[yyleng-1]); BEGIN(ST_IN_SCRIPTING); return T_OPEN_TAG; } -#line 1260 "Zend/zend_language_scanner.c" +#line 1268 "Zend/zend_language_scanner.c" yy15: YYDEBUG(15, *YYCURSOR); ++YYCURSOR; @@ -1326,7 +1334,7 @@ yyc_ST_BACKQUOTE: yy19: YYDEBUG(19, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2188 "Zend/zend_language_scanner.l" +#line 2196 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -1369,7 +1377,7 @@ yy19: } return T_ENCAPSED_AND_WHITESPACE; } -#line 1373 "Zend/zend_language_scanner.c" +#line 1381 "Zend/zend_language_scanner.c" yy20: YYDEBUG(20, *YYCURSOR); yych = *++YYCURSOR; @@ -1380,12 +1388,12 @@ yy21: ++YYCURSOR; YYDEBUG(22, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2130 "Zend/zend_language_scanner.l" +#line 2138 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '`'; } -#line 1389 "Zend/zend_language_scanner.c" +#line 1397 "Zend/zend_language_scanner.c" yy23: YYDEBUG(23, *YYCURSOR); yych = *++YYCURSOR; @@ -1395,14 +1403,14 @@ yy24: ++YYCURSOR; YYDEBUG(25, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2117 "Zend/zend_language_scanner.l" +#line 2125 "Zend/zend_language_scanner.l" { Z_LVAL_P(zendlval) = (zend_long) '{'; yy_push_state(ST_IN_SCRIPTING); yyless(1); return T_CURLY_OPEN; } -#line 1406 "Zend/zend_language_scanner.c" +#line 1414 "Zend/zend_language_scanner.c" yy26: YYDEBUG(26, *YYCURSOR); yyaccept = 0; @@ -1418,23 +1426,23 @@ yy26: yy28: YYDEBUG(28, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1839 "Zend/zend_language_scanner.l" +#line 1847 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1427 "Zend/zend_language_scanner.c" +#line 1435 "Zend/zend_language_scanner.c" yy29: YYDEBUG(29, *YYCURSOR); ++YYCURSOR; YYDEBUG(30, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1560 "Zend/zend_language_scanner.l" +#line 1568 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_VARNAME); return T_DOLLAR_OPEN_CURLY_BRACES; } -#line 1438 "Zend/zend_language_scanner.c" +#line 1446 "Zend/zend_language_scanner.c" yy31: YYDEBUG(31, *YYCURSOR); yych = *++YYCURSOR; @@ -1448,14 +1456,14 @@ yy33: ++YYCURSOR; YYDEBUG(34, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1832 "Zend/zend_language_scanner.l" +#line 1840 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET); zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1459 "Zend/zend_language_scanner.c" +#line 1467 "Zend/zend_language_scanner.c" yy35: YYDEBUG(35, *YYCURSOR); yych = *++YYCURSOR; @@ -1473,14 +1481,14 @@ yy36: ++YYCURSOR; YYDEBUG(37, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1823 "Zend/zend_language_scanner.l" +#line 1831 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY); zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1484 "Zend/zend_language_scanner.c" +#line 1492 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_DOUBLE_QUOTES: @@ -1548,7 +1556,7 @@ yy40: yy41: YYDEBUG(41, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2136 "Zend/zend_language_scanner.l" +#line 2144 "Zend/zend_language_scanner.l" { if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) { YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1; @@ -1599,7 +1607,7 @@ double_quotes_scan_done: } return T_ENCAPSED_AND_WHITESPACE; } -#line 1603 "Zend/zend_language_scanner.c" +#line 1611 "Zend/zend_language_scanner.c" yy42: YYDEBUG(42, *YYCURSOR); yych = *++YYCURSOR; @@ -1610,12 +1618,12 @@ yy43: ++YYCURSOR; YYDEBUG(44, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2125 "Zend/zend_language_scanner.l" +#line 2133 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '"'; } -#line 1619 "Zend/zend_language_scanner.c" +#line 1627 "Zend/zend_language_scanner.c" yy45: YYDEBUG(45, *YYCURSOR); yych = *++YYCURSOR; @@ -1625,14 +1633,14 @@ yy46: ++YYCURSOR; YYDEBUG(47, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2117 "Zend/zend_language_scanner.l" +#line 2125 "Zend/zend_language_scanner.l" { Z_LVAL_P(zendlval) = (zend_long) '{'; yy_push_state(ST_IN_SCRIPTING); yyless(1); return T_CURLY_OPEN; } -#line 1636 "Zend/zend_language_scanner.c" +#line 1644 "Zend/zend_language_scanner.c" yy48: YYDEBUG(48, *YYCURSOR); yyaccept = 0; @@ -1648,23 +1656,23 @@ yy48: yy50: YYDEBUG(50, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1839 "Zend/zend_language_scanner.l" +#line 1847 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1657 "Zend/zend_language_scanner.c" +#line 1665 "Zend/zend_language_scanner.c" yy51: YYDEBUG(51, *YYCURSOR); ++YYCURSOR; YYDEBUG(52, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1560 "Zend/zend_language_scanner.l" +#line 1568 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_VARNAME); return T_DOLLAR_OPEN_CURLY_BRACES; } -#line 1668 "Zend/zend_language_scanner.c" +#line 1676 "Zend/zend_language_scanner.c" yy53: YYDEBUG(53, *YYCURSOR); yych = *++YYCURSOR; @@ -1678,14 +1686,14 @@ yy55: ++YYCURSOR; YYDEBUG(56, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1832 "Zend/zend_language_scanner.l" +#line 1840 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET); zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1689 "Zend/zend_language_scanner.c" +#line 1697 "Zend/zend_language_scanner.c" yy57: YYDEBUG(57, *YYCURSOR); yych = *++YYCURSOR; @@ -1703,14 +1711,14 @@ yy58: ++YYCURSOR; YYDEBUG(59, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1823 "Zend/zend_language_scanner.l" +#line 1831 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY); zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1714 "Zend/zend_language_scanner.c" +#line 1722 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_END_HEREDOC: @@ -1721,7 +1729,7 @@ yyc_ST_END_HEREDOC: ++YYCURSOR; YYDEBUG(63, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2103 "Zend/zend_language_scanner.l" +#line 2111 "Zend/zend_language_scanner.l" { zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack)); @@ -1734,7 +1742,7 @@ yyc_ST_END_HEREDOC: BEGIN(ST_IN_SCRIPTING); return T_END_HEREDOC; } -#line 1738 "Zend/zend_language_scanner.c" +#line 1746 "Zend/zend_language_scanner.c" /* *********************************** */ yyc_ST_HEREDOC: { @@ -1796,7 +1804,7 @@ yy66: yy67: YYDEBUG(67, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2232 "Zend/zend_language_scanner.l" +#line 2240 "Zend/zend_language_scanner.l" { int newline = 0; @@ -1871,7 +1879,7 @@ heredoc_scan_done: } return T_ENCAPSED_AND_WHITESPACE; } -#line 1875 "Zend/zend_language_scanner.c" +#line 1883 "Zend/zend_language_scanner.c" yy68: YYDEBUG(68, *YYCURSOR); yych = *++YYCURSOR; @@ -1886,14 +1894,14 @@ yy70: ++YYCURSOR; YYDEBUG(71, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2117 "Zend/zend_language_scanner.l" +#line 2125 "Zend/zend_language_scanner.l" { Z_LVAL_P(zendlval) = (zend_long) '{'; yy_push_state(ST_IN_SCRIPTING); yyless(1); return T_CURLY_OPEN; } -#line 1897 "Zend/zend_language_scanner.c" +#line 1905 "Zend/zend_language_scanner.c" yy72: YYDEBUG(72, *YYCURSOR); yyaccept = 0; @@ -1909,23 +1917,23 @@ yy72: yy74: YYDEBUG(74, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1839 "Zend/zend_language_scanner.l" +#line 1847 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1918 "Zend/zend_language_scanner.c" +#line 1926 "Zend/zend_language_scanner.c" yy75: YYDEBUG(75, *YYCURSOR); ++YYCURSOR; YYDEBUG(76, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1560 "Zend/zend_language_scanner.l" +#line 1568 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_VARNAME); return T_DOLLAR_OPEN_CURLY_BRACES; } -#line 1929 "Zend/zend_language_scanner.c" +#line 1937 "Zend/zend_language_scanner.c" yy77: YYDEBUG(77, *YYCURSOR); yych = *++YYCURSOR; @@ -1939,14 +1947,14 @@ yy79: ++YYCURSOR; YYDEBUG(80, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1832 "Zend/zend_language_scanner.l" +#line 1840 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET); zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1950 "Zend/zend_language_scanner.c" +#line 1958 "Zend/zend_language_scanner.c" yy81: YYDEBUG(81, *YYCURSOR); yych = *++YYCURSOR; @@ -1964,14 +1972,14 @@ yy82: ++YYCURSOR; YYDEBUG(83, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1823 "Zend/zend_language_scanner.l" +#line 1831 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY); zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 1975 "Zend/zend_language_scanner.c" +#line 1983 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_IN_SCRIPTING: @@ -2154,12 +2162,12 @@ yy86: yy87: YYDEBUG(87, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1862 "Zend/zend_language_scanner.l" +#line 1870 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); return T_STRING; } -#line 2163 "Zend/zend_language_scanner.c" +#line 2171 "Zend/zend_language_scanner.c" yy88: YYDEBUG(88, *YYCURSOR); yych = *++YYCURSOR; @@ -2391,11 +2399,11 @@ yy101: yy102: YYDEBUG(102, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1549 "Zend/zend_language_scanner.l" +#line 1557 "Zend/zend_language_scanner.l" { return yytext[0]; } -#line 2399 "Zend/zend_language_scanner.c" +#line 2407 "Zend/zend_language_scanner.c" yy103: YYDEBUG(103, *YYCURSOR); ++YYCURSOR; @@ -2404,12 +2412,12 @@ yy103: yy104: YYDEBUG(104, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1264 "Zend/zend_language_scanner.l" +#line 1272 "Zend/zend_language_scanner.l" { HANDLE_NEWLINES(yytext, yyleng); return T_WHITESPACE; } -#line 2413 "Zend/zend_language_scanner.c" +#line 2421 "Zend/zend_language_scanner.c" yy105: YYDEBUG(105, *YYCURSOR); yych = *++YYCURSOR; @@ -2420,11 +2428,11 @@ yy106: ++YYCURSOR; YYDEBUG(107, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1289 "Zend/zend_language_scanner.l" +#line 1297 "Zend/zend_language_scanner.l" { return T_NS_SEPARATOR; } -#line 2428 "Zend/zend_language_scanner.c" +#line 2436 "Zend/zend_language_scanner.c" yy108: YYDEBUG(108, *YYCURSOR); yyaccept = 1; @@ -2653,18 +2661,18 @@ yy131: ++YYCURSOR; YYDEBUG(132, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1554 "Zend/zend_language_scanner.l" +#line 1562 "Zend/zend_language_scanner.l" { yy_push_state(ST_IN_SCRIPTING); return '{'; } -#line 2662 "Zend/zend_language_scanner.c" +#line 2670 "Zend/zend_language_scanner.c" yy133: YYDEBUG(133, *YYCURSOR); ++YYCURSOR; YYDEBUG(134, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1566 "Zend/zend_language_scanner.l" +#line 1574 "Zend/zend_language_scanner.l" { RESET_DOC_COMMENT(); if (!zend_stack_is_empty(&SCNG(state_stack))) { @@ -2672,7 +2680,7 @@ yy133: } return '}'; } -#line 2676 "Zend/zend_language_scanner.c" +#line 2684 "Zend/zend_language_scanner.c" yy135: YYDEBUG(135, *YYCURSOR); yyaccept = 2; @@ -2700,7 +2708,7 @@ yy135: yy136: YYDEBUG(136, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1619 "Zend/zend_language_scanner.l" +#line 1627 "Zend/zend_language_scanner.l" { char *end; if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */ @@ -2742,7 +2750,7 @@ yy136: ZEND_ASSERT(!errno); return T_LNUMBER; } -#line 2746 "Zend/zend_language_scanner.c" +#line 2754 "Zend/zend_language_scanner.c" yy137: YYDEBUG(137, *YYCURSOR); yyaccept = 2; @@ -2770,7 +2778,7 @@ yy139: yy140: YYDEBUG(140, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1868 "Zend/zend_language_scanner.l" +#line 1876 "Zend/zend_language_scanner.l" { while (YYCURSOR < YYLIMIT) { switch (*YYCURSOR++) { @@ -2799,14 +2807,14 @@ yy140: return T_COMMENT; } -#line 2803 "Zend/zend_language_scanner.c" +#line 2811 "Zend/zend_language_scanner.c" yy141: YYDEBUG(141, *YYCURSOR); ++YYCURSOR; yy142: YYDEBUG(142, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1936 "Zend/zend_language_scanner.l" +#line 1944 "Zend/zend_language_scanner.l" { register char *s, *t; char *end; @@ -2874,14 +2882,14 @@ yy142: } return T_CONSTANT_ENCAPSED_STRING; } -#line 2878 "Zend/zend_language_scanner.c" +#line 2886 "Zend/zend_language_scanner.c" yy143: YYDEBUG(143, *YYCURSOR); ++YYCURSOR; yy144: YYDEBUG(144, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2005 "Zend/zend_language_scanner.l" +#line 2013 "Zend/zend_language_scanner.l" { int bprefix = (yytext[0] != '"') ? 1 : 0; @@ -2924,24 +2932,24 @@ yy144: BEGIN(ST_DOUBLE_QUOTES); return '"'; } -#line 2928 "Zend/zend_language_scanner.c" +#line 2936 "Zend/zend_language_scanner.c" yy145: YYDEBUG(145, *YYCURSOR); ++YYCURSOR; YYDEBUG(146, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2097 "Zend/zend_language_scanner.l" +#line 2105 "Zend/zend_language_scanner.l" { BEGIN(ST_BACKQUOTE); return '`'; } -#line 2939 "Zend/zend_language_scanner.c" +#line 2947 "Zend/zend_language_scanner.c" yy147: YYDEBUG(147, *YYCURSOR); ++YYCURSOR; YYDEBUG(148, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2365 "Zend/zend_language_scanner.l" +#line 2373 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -2950,7 +2958,7 @@ yy147: zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); goto restart; } -#line 2954 "Zend/zend_language_scanner.c" +#line 2962 "Zend/zend_language_scanner.c" yy149: YYDEBUG(149, *YYCURSOR); ++YYCURSOR; @@ -2977,7 +2985,7 @@ yy151: yy153: YYDEBUG(153, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1710 "Zend/zend_language_scanner.l" +#line 1718 "Zend/zend_language_scanner.l" { const char *end; @@ -2986,7 +2994,7 @@ yy153: ZEND_ASSERT(end == yytext + yyleng); return T_DNUMBER; } -#line 2990 "Zend/zend_language_scanner.c" +#line 2998 "Zend/zend_language_scanner.c" yy154: YYDEBUG(154, *YYCURSOR); yyaccept = 2; @@ -3082,7 +3090,7 @@ yy163: } YYDEBUG(165, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1591 "Zend/zend_language_scanner.l" +#line 1599 "Zend/zend_language_scanner.l" { char *bin = yytext + 2; /* Skip "0b" */ int len = yyleng - 2; @@ -3110,7 +3118,7 @@ yy163: return T_DNUMBER; } } -#line 3114 "Zend/zend_language_scanner.c" +#line 3122 "Zend/zend_language_scanner.c" yy166: YYDEBUG(166, *YYCURSOR); ++YYCURSOR; @@ -3122,7 +3130,7 @@ yy166: } YYDEBUG(168, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1661 "Zend/zend_language_scanner.l" +#line 1669 "Zend/zend_language_scanner.l" { char *hex = yytext + 2; /* Skip "0x" */ int len = yyleng - 2; @@ -3150,7 +3158,7 @@ yy166: return T_DNUMBER; } } -#line 3154 "Zend/zend_language_scanner.c" +#line 3162 "Zend/zend_language_scanner.c" yy169: YYDEBUG(169, *YYCURSOR); ++YYCURSOR; @@ -3175,12 +3183,12 @@ yy169: yy171: YYDEBUG(171, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1839 "Zend/zend_language_scanner.l" +#line 1847 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 3184 "Zend/zend_language_scanner.c" +#line 3192 "Zend/zend_language_scanner.c" yy172: YYDEBUG(172, *YYCURSOR); yych = *++YYCURSOR; @@ -3194,11 +3202,11 @@ yy173: } YYDEBUG(174, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1537 "Zend/zend_language_scanner.l" +#line 1545 "Zend/zend_language_scanner.l" { return T_LOGICAL_XOR; } -#line 3202 "Zend/zend_language_scanner.c" +#line 3210 "Zend/zend_language_scanner.c" yy175: YYDEBUG(175, *YYCURSOR); ++YYCURSOR; @@ -3207,71 +3215,71 @@ yy175: } YYDEBUG(176, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1529 "Zend/zend_language_scanner.l" +#line 1537 "Zend/zend_language_scanner.l" { return T_LOGICAL_OR; } -#line 3215 "Zend/zend_language_scanner.c" +#line 3223 "Zend/zend_language_scanner.c" yy177: YYDEBUG(177, *YYCURSOR); ++YYCURSOR; YYDEBUG(178, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1517 "Zend/zend_language_scanner.l" +#line 1525 "Zend/zend_language_scanner.l" { return T_XOR_EQUAL; } -#line 3225 "Zend/zend_language_scanner.c" +#line 3233 "Zend/zend_language_scanner.c" yy179: YYDEBUG(179, *YYCURSOR); ++YYCURSOR; YYDEBUG(180, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1521 "Zend/zend_language_scanner.l" +#line 1529 "Zend/zend_language_scanner.l" { return T_BOOLEAN_OR; } -#line 3235 "Zend/zend_language_scanner.c" +#line 3243 "Zend/zend_language_scanner.c" yy181: YYDEBUG(181, *YYCURSOR); ++YYCURSOR; YYDEBUG(182, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1513 "Zend/zend_language_scanner.l" +#line 1521 "Zend/zend_language_scanner.l" { return T_OR_EQUAL; } -#line 3245 "Zend/zend_language_scanner.c" +#line 3253 "Zend/zend_language_scanner.c" yy183: YYDEBUG(183, *YYCURSOR); ++YYCURSOR; YYDEBUG(184, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1525 "Zend/zend_language_scanner.l" +#line 1533 "Zend/zend_language_scanner.l" { return T_BOOLEAN_AND; } -#line 3255 "Zend/zend_language_scanner.c" +#line 3263 "Zend/zend_language_scanner.c" yy185: YYDEBUG(185, *YYCURSOR); ++YYCURSOR; YYDEBUG(186, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1509 "Zend/zend_language_scanner.l" +#line 1517 "Zend/zend_language_scanner.l" { return T_AND_EQUAL; } -#line 3265 "Zend/zend_language_scanner.c" +#line 3273 "Zend/zend_language_scanner.c" yy187: YYDEBUG(187, *YYCURSOR); ++YYCURSOR; YYDEBUG(188, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1497 "Zend/zend_language_scanner.l" +#line 1505 "Zend/zend_language_scanner.l" { return T_MOD_EQUAL; } -#line 3275 "Zend/zend_language_scanner.c" +#line 3283 "Zend/zend_language_scanner.c" yy189: YYDEBUG(189, *YYCURSOR); yyaccept = 4; @@ -3280,7 +3288,7 @@ yy189: yy190: YYDEBUG(190, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1897 "Zend/zend_language_scanner.l" +#line 1905 "Zend/zend_language_scanner.l" { int doc_com; @@ -3313,7 +3321,7 @@ yy190: return T_COMMENT; } -#line 3317 "Zend/zend_language_scanner.c" +#line 3325 "Zend/zend_language_scanner.c" yy191: YYDEBUG(191, *YYCURSOR); yych = *++YYCURSOR; @@ -3323,11 +3331,11 @@ yy192: ++YYCURSOR; YYDEBUG(193, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1489 "Zend/zend_language_scanner.l" +#line 1497 "Zend/zend_language_scanner.l" { return T_DIV_EQUAL; } -#line 3331 "Zend/zend_language_scanner.c" +#line 3339 "Zend/zend_language_scanner.c" yy194: YYDEBUG(194, *YYCURSOR); yych = *++YYCURSOR; @@ -3351,62 +3359,62 @@ yy197: if ((yych = *YYCURSOR) == '=') goto yy201; YYDEBUG(198, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1481 "Zend/zend_language_scanner.l" +#line 1489 "Zend/zend_language_scanner.l" { return T_POW; } -#line 3359 "Zend/zend_language_scanner.c" +#line 3367 "Zend/zend_language_scanner.c" yy199: YYDEBUG(199, *YYCURSOR); ++YYCURSOR; YYDEBUG(200, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1477 "Zend/zend_language_scanner.l" +#line 1485 "Zend/zend_language_scanner.l" { return T_MUL_EQUAL; } -#line 3369 "Zend/zend_language_scanner.c" +#line 3377 "Zend/zend_language_scanner.c" yy201: YYDEBUG(201, *YYCURSOR); ++YYCURSOR; YYDEBUG(202, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1485 "Zend/zend_language_scanner.l" +#line 1493 "Zend/zend_language_scanner.l" { return T_POW_EQUAL; } -#line 3379 "Zend/zend_language_scanner.c" +#line 3387 "Zend/zend_language_scanner.c" yy203: YYDEBUG(203, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) == '=') goto yy207; YYDEBUG(204, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1545 "Zend/zend_language_scanner.l" +#line 1553 "Zend/zend_language_scanner.l" { return T_SR; } -#line 3390 "Zend/zend_language_scanner.c" +#line 3398 "Zend/zend_language_scanner.c" yy205: YYDEBUG(205, *YYCURSOR); ++YYCURSOR; YYDEBUG(206, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1465 "Zend/zend_language_scanner.l" +#line 1473 "Zend/zend_language_scanner.l" { return T_IS_GREATER_OR_EQUAL; } -#line 3400 "Zend/zend_language_scanner.c" +#line 3408 "Zend/zend_language_scanner.c" yy207: YYDEBUG(207, *YYCURSOR); ++YYCURSOR; YYDEBUG(208, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1505 "Zend/zend_language_scanner.l" +#line 1513 "Zend/zend_language_scanner.l" { return T_SR_EQUAL; } -#line 3410 "Zend/zend_language_scanner.c" +#line 3418 "Zend/zend_language_scanner.c" yy209: YYDEBUG(209, *YYCURSOR); yyaccept = 5; @@ -3417,53 +3425,53 @@ yy209: yy210: YYDEBUG(210, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1541 "Zend/zend_language_scanner.l" +#line 1549 "Zend/zend_language_scanner.l" { return T_SL; } -#line 3425 "Zend/zend_language_scanner.c" +#line 3433 "Zend/zend_language_scanner.c" yy211: YYDEBUG(211, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) == '>') goto yy215; YYDEBUG(212, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1461 "Zend/zend_language_scanner.l" +#line 1469 "Zend/zend_language_scanner.l" { return T_IS_SMALLER_OR_EQUAL; } -#line 3436 "Zend/zend_language_scanner.c" +#line 3444 "Zend/zend_language_scanner.c" yy213: YYDEBUG(213, *YYCURSOR); ++YYCURSOR; yy214: YYDEBUG(214, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1453 "Zend/zend_language_scanner.l" +#line 1461 "Zend/zend_language_scanner.l" { return T_IS_NOT_EQUAL; } -#line 3447 "Zend/zend_language_scanner.c" +#line 3455 "Zend/zend_language_scanner.c" yy215: YYDEBUG(215, *YYCURSOR); ++YYCURSOR; YYDEBUG(216, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1457 "Zend/zend_language_scanner.l" +#line 1465 "Zend/zend_language_scanner.l" { return T_SPACESHIP; } -#line 3457 "Zend/zend_language_scanner.c" +#line 3465 "Zend/zend_language_scanner.c" yy217: YYDEBUG(217, *YYCURSOR); ++YYCURSOR; YYDEBUG(218, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1501 "Zend/zend_language_scanner.l" +#line 1509 "Zend/zend_language_scanner.l" { return T_SL_EQUAL; } -#line 3467 "Zend/zend_language_scanner.c" +#line 3475 "Zend/zend_language_scanner.c" yy219: YYDEBUG(219, *YYCURSOR); ++YYCURSOR; @@ -3568,7 +3576,7 @@ yy228: yy229: YYDEBUG(229, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2049 "Zend/zend_language_scanner.l" +#line 2057 "Zend/zend_language_scanner.l" { char *s; int bprefix = (yytext[0] != '<') ? 1 : 0; @@ -3615,7 +3623,7 @@ yy229: return T_START_HEREDOC; } -#line 3619 "Zend/zend_language_scanner.c" +#line 3627 "Zend/zend_language_scanner.c" yy230: YYDEBUG(230, *YYCURSOR); yych = *++YYCURSOR; @@ -3655,31 +3663,31 @@ yy233: ++YYCURSOR; YYDEBUG(235, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1445 "Zend/zend_language_scanner.l" +#line 1453 "Zend/zend_language_scanner.l" { return T_IS_NOT_IDENTICAL; } -#line 3663 "Zend/zend_language_scanner.c" +#line 3671 "Zend/zend_language_scanner.c" yy236: YYDEBUG(236, *YYCURSOR); ++YYCURSOR; YYDEBUG(237, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1469 "Zend/zend_language_scanner.l" +#line 1477 "Zend/zend_language_scanner.l" { return T_PLUS_EQUAL; } -#line 3673 "Zend/zend_language_scanner.c" +#line 3681 "Zend/zend_language_scanner.c" yy238: YYDEBUG(238, *YYCURSOR); ++YYCURSOR; YYDEBUG(239, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1433 "Zend/zend_language_scanner.l" +#line 1441 "Zend/zend_language_scanner.l" { return T_INC; } -#line 3683 "Zend/zend_language_scanner.c" +#line 3691 "Zend/zend_language_scanner.c" yy240: YYDEBUG(240, *YYCURSOR); yych = *++YYCURSOR; @@ -3698,42 +3706,42 @@ yy242: } YYDEBUG(243, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1421 "Zend/zend_language_scanner.l" +#line 1429 "Zend/zend_language_scanner.l" { return T_LIST; } -#line 3706 "Zend/zend_language_scanner.c" +#line 3714 "Zend/zend_language_scanner.c" yy244: YYDEBUG(244, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) == '=') goto yy248; YYDEBUG(245, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1449 "Zend/zend_language_scanner.l" +#line 1457 "Zend/zend_language_scanner.l" { return T_IS_EQUAL; } -#line 3717 "Zend/zend_language_scanner.c" +#line 3725 "Zend/zend_language_scanner.c" yy246: YYDEBUG(246, *YYCURSOR); ++YYCURSOR; YYDEBUG(247, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1417 "Zend/zend_language_scanner.l" +#line 1425 "Zend/zend_language_scanner.l" { return T_DOUBLE_ARROW; } -#line 3727 "Zend/zend_language_scanner.c" +#line 3735 "Zend/zend_language_scanner.c" yy248: YYDEBUG(248, *YYCURSOR); ++YYCURSOR; YYDEBUG(249, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1441 "Zend/zend_language_scanner.l" +#line 1449 "Zend/zend_language_scanner.l" { return T_IS_IDENTICAL; } -#line 3737 "Zend/zend_language_scanner.c" +#line 3745 "Zend/zend_language_scanner.c" yy250: YYDEBUG(250, *YYCURSOR); yych = *++YYCURSOR; @@ -3863,11 +3871,11 @@ yy266: } YYDEBUG(269, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1747 "Zend/zend_language_scanner.l" +#line 1755 "Zend/zend_language_scanner.l" { return T_NS_C; } -#line 3871 "Zend/zend_language_scanner.c" +#line 3879 "Zend/zend_language_scanner.c" yy270: YYDEBUG(270, *YYCURSOR); yych = *++YYCURSOR; @@ -3887,11 +3895,11 @@ yy271: } YYDEBUG(274, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1743 "Zend/zend_language_scanner.l" +#line 1751 "Zend/zend_language_scanner.l" { return T_DIR; } -#line 3895 "Zend/zend_language_scanner.c" +#line 3903 "Zend/zend_language_scanner.c" yy275: YYDEBUG(275, *YYCURSOR); yych = *++YYCURSOR; @@ -3916,11 +3924,11 @@ yy277: } YYDEBUG(280, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1735 "Zend/zend_language_scanner.l" +#line 1743 "Zend/zend_language_scanner.l" { return T_LINE; } -#line 3924 "Zend/zend_language_scanner.c" +#line 3932 "Zend/zend_language_scanner.c" yy281: YYDEBUG(281, *YYCURSOR); yych = *++YYCURSOR; @@ -3955,11 +3963,11 @@ yy285: } YYDEBUG(288, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1731 "Zend/zend_language_scanner.l" +#line 1739 "Zend/zend_language_scanner.l" { return T_METHOD_C; } -#line 3963 "Zend/zend_language_scanner.c" +#line 3971 "Zend/zend_language_scanner.c" yy289: YYDEBUG(289, *YYCURSOR); yych = *++YYCURSOR; @@ -4010,11 +4018,11 @@ yy296: } YYDEBUG(299, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1727 "Zend/zend_language_scanner.l" +#line 1735 "Zend/zend_language_scanner.l" { return T_FUNC_C; } -#line 4018 "Zend/zend_language_scanner.c" +#line 4026 "Zend/zend_language_scanner.c" yy300: YYDEBUG(300, *YYCURSOR); yych = *++YYCURSOR; @@ -4034,11 +4042,11 @@ yy301: } YYDEBUG(304, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1739 "Zend/zend_language_scanner.l" +#line 1747 "Zend/zend_language_scanner.l" { return T_FILE; } -#line 4042 "Zend/zend_language_scanner.c" +#line 4050 "Zend/zend_language_scanner.c" yy305: YYDEBUG(305, *YYCURSOR); yych = *++YYCURSOR; @@ -4068,11 +4076,11 @@ yy308: } YYDEBUG(311, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1723 "Zend/zend_language_scanner.l" +#line 1731 "Zend/zend_language_scanner.l" { return T_TRAIT_C; } -#line 4076 "Zend/zend_language_scanner.c" +#line 4084 "Zend/zend_language_scanner.c" yy312: YYDEBUG(312, *YYCURSOR); yych = *++YYCURSOR; @@ -4102,11 +4110,11 @@ yy315: } YYDEBUG(318, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1719 "Zend/zend_language_scanner.l" +#line 1727 "Zend/zend_language_scanner.l" { return T_CLASS_C; } -#line 4110 "Zend/zend_language_scanner.c" +#line 4118 "Zend/zend_language_scanner.c" yy319: YYDEBUG(319, *YYCURSOR); yych = *++YYCURSOR; @@ -4168,11 +4176,11 @@ yy330: } YYDEBUG(331, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1385 "Zend/zend_language_scanner.l" +#line 1393 "Zend/zend_language_scanner.l" { return T_HALT_COMPILER; } -#line 4176 "Zend/zend_language_scanner.c" +#line 4184 "Zend/zend_language_scanner.c" yy332: YYDEBUG(332, *YYCURSOR); yych = *++YYCURSOR; @@ -4192,11 +4200,11 @@ yy334: } YYDEBUG(335, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1365 "Zend/zend_language_scanner.l" +#line 1373 "Zend/zend_language_scanner.l" { return T_USE; } -#line 4200 "Zend/zend_language_scanner.c" +#line 4208 "Zend/zend_language_scanner.c" yy336: YYDEBUG(336, *YYCURSOR); yych = *++YYCURSOR; @@ -4215,11 +4223,11 @@ yy338: } YYDEBUG(339, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1413 "Zend/zend_language_scanner.l" +#line 1421 "Zend/zend_language_scanner.l" { return T_UNSET; } -#line 4223 "Zend/zend_language_scanner.c" +#line 4231 "Zend/zend_language_scanner.c" yy340: YYDEBUG(340, *YYCURSOR); ++YYCURSOR; @@ -4391,11 +4399,11 @@ yy355: ++YYCURSOR; YYDEBUG(357, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1313 "Zend/zend_language_scanner.l" +#line 1321 "Zend/zend_language_scanner.l" { return T_INT_CAST; } -#line 4399 "Zend/zend_language_scanner.c" +#line 4407 "Zend/zend_language_scanner.c" yy358: YYDEBUG(358, *YYCURSOR); yych = *++YYCURSOR; @@ -4439,11 +4447,11 @@ yy363: ++YYCURSOR; YYDEBUG(366, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1317 "Zend/zend_language_scanner.l" +#line 1325 "Zend/zend_language_scanner.l" { return T_DOUBLE_CAST; } -#line 4447 "Zend/zend_language_scanner.c" +#line 4455 "Zend/zend_language_scanner.c" yy367: YYDEBUG(367, *YYCURSOR); yych = *++YYCURSOR; @@ -4513,11 +4521,11 @@ yy377: ++YYCURSOR; YYDEBUG(380, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1321 "Zend/zend_language_scanner.l" +#line 1329 "Zend/zend_language_scanner.l" { return T_STRING_CAST; } -#line 4521 "Zend/zend_language_scanner.c" +#line 4529 "Zend/zend_language_scanner.c" yy381: YYDEBUG(381, *YYCURSOR); yych = *++YYCURSOR; @@ -4550,11 +4558,11 @@ yy384: ++YYCURSOR; YYDEBUG(387, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1325 "Zend/zend_language_scanner.l" +#line 1333 "Zend/zend_language_scanner.l" { return T_ARRAY_CAST; } -#line 4558 "Zend/zend_language_scanner.c" +#line 4566 "Zend/zend_language_scanner.c" yy388: YYDEBUG(388, *YYCURSOR); yych = *++YYCURSOR; @@ -4592,11 +4600,11 @@ yy392: ++YYCURSOR; YYDEBUG(395, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1329 "Zend/zend_language_scanner.l" +#line 1337 "Zend/zend_language_scanner.l" { return T_OBJECT_CAST; } -#line 4600 "Zend/zend_language_scanner.c" +#line 4608 "Zend/zend_language_scanner.c" yy396: YYDEBUG(396, *YYCURSOR); yych = *++YYCURSOR; @@ -4637,11 +4645,11 @@ yy401: ++YYCURSOR; YYDEBUG(403, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1333 "Zend/zend_language_scanner.l" +#line 1341 "Zend/zend_language_scanner.l" { return T_BOOL_CAST; } -#line 4645 "Zend/zend_language_scanner.c" +#line 4653 "Zend/zend_language_scanner.c" yy404: YYDEBUG(404, *YYCURSOR); yych = *++YYCURSOR; @@ -4701,11 +4709,11 @@ yy412: ++YYCURSOR; YYDEBUG(415, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1337 "Zend/zend_language_scanner.l" +#line 1345 "Zend/zend_language_scanner.l" { return T_UNSET_CAST; } -#line 4709 "Zend/zend_language_scanner.c" +#line 4717 "Zend/zend_language_scanner.c" yy416: YYDEBUG(416, *YYCURSOR); yych = *++YYCURSOR; @@ -4719,11 +4727,11 @@ yy417: } YYDEBUG(418, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1309 "Zend/zend_language_scanner.l" +#line 1317 "Zend/zend_language_scanner.l" { return T_VAR; } -#line 4727 "Zend/zend_language_scanner.c" +#line 4735 "Zend/zend_language_scanner.c" yy419: YYDEBUG(419, *YYCURSOR); yych = *++YYCURSOR; @@ -4743,11 +4751,11 @@ yy421: } YYDEBUG(422, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1301 "Zend/zend_language_scanner.l" +#line 1309 "Zend/zend_language_scanner.l" { return T_NEW; } -#line 4751 "Zend/zend_language_scanner.c" +#line 4759 "Zend/zend_language_scanner.c" yy423: YYDEBUG(423, *YYCURSOR); yych = *++YYCURSOR; @@ -4786,11 +4794,11 @@ yy429: } YYDEBUG(430, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1361 "Zend/zend_language_scanner.l" +#line 1369 "Zend/zend_language_scanner.l" { return T_NAMESPACE; } -#line 4794 "Zend/zend_language_scanner.c" +#line 4802 "Zend/zend_language_scanner.c" yy431: YYDEBUG(431, *YYCURSOR); ++YYCURSOR; @@ -4799,22 +4807,22 @@ yy431: yy432: YYDEBUG(432, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1930 "Zend/zend_language_scanner.l" +#line 1938 "Zend/zend_language_scanner.l" { BEGIN(INITIAL); return T_CLOSE_TAG; /* implicit ';' at php-end tag */ } -#line 4808 "Zend/zend_language_scanner.c" +#line 4816 "Zend/zend_language_scanner.c" yy433: YYDEBUG(433, *YYCURSOR); ++YYCURSOR; YYDEBUG(434, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1297 "Zend/zend_language_scanner.l" +#line 1305 "Zend/zend_language_scanner.l" { return T_COALESCE; } -#line 4818 "Zend/zend_language_scanner.c" +#line 4826 "Zend/zend_language_scanner.c" yy435: YYDEBUG(435, *YYCURSOR); yych = *++YYCURSOR; @@ -4845,11 +4853,11 @@ yy439: ++YYCURSOR; YYDEBUG(440, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1493 "Zend/zend_language_scanner.l" +#line 1501 "Zend/zend_language_scanner.l" { return T_CONCAT_EQUAL; } -#line 4853 "Zend/zend_language_scanner.c" +#line 4861 "Zend/zend_language_scanner.c" yy441: YYDEBUG(441, *YYCURSOR); yych = *++YYCURSOR; @@ -4858,21 +4866,21 @@ yy441: ++YYCURSOR; YYDEBUG(443, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1293 "Zend/zend_language_scanner.l" +#line 1301 "Zend/zend_language_scanner.l" { return T_ELLIPSIS; } -#line 4866 "Zend/zend_language_scanner.c" +#line 4874 "Zend/zend_language_scanner.c" yy444: YYDEBUG(444, *YYCURSOR); ++YYCURSOR; YYDEBUG(445, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1285 "Zend/zend_language_scanner.l" +#line 1293 "Zend/zend_language_scanner.l" { return T_PAAMAYIM_NEKUDOTAYIM; } -#line 4876 "Zend/zend_language_scanner.c" +#line 4884 "Zend/zend_language_scanner.c" yy446: YYDEBUG(446, *YYCURSOR); ++YYCURSOR; @@ -4894,32 +4902,32 @@ yy448: ++YYCURSOR; YYDEBUG(449, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1473 "Zend/zend_language_scanner.l" +#line 1481 "Zend/zend_language_scanner.l" { return T_MINUS_EQUAL; } -#line 4902 "Zend/zend_language_scanner.c" +#line 4910 "Zend/zend_language_scanner.c" yy450: YYDEBUG(450, *YYCURSOR); ++YYCURSOR; YYDEBUG(451, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1437 "Zend/zend_language_scanner.l" +#line 1445 "Zend/zend_language_scanner.l" { return T_DEC; } -#line 4912 "Zend/zend_language_scanner.c" +#line 4920 "Zend/zend_language_scanner.c" yy452: YYDEBUG(452, *YYCURSOR); ++YYCURSOR; YYDEBUG(453, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1259 "Zend/zend_language_scanner.l" +#line 1267 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_PROPERTY); return T_OBJECT_OPERATOR; } -#line 4923 "Zend/zend_language_scanner.c" +#line 4931 "Zend/zend_language_scanner.c" yy454: YYDEBUG(454, *YYCURSOR); yych = *++YYCURSOR; @@ -4964,11 +4972,11 @@ yy459: } YYDEBUG(460, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1409 "Zend/zend_language_scanner.l" +#line 1417 "Zend/zend_language_scanner.l" { return T_PUBLIC; } -#line 4972 "Zend/zend_language_scanner.c" +#line 4980 "Zend/zend_language_scanner.c" yy461: YYDEBUG(461, *YYCURSOR); yych = *++YYCURSOR; @@ -5023,11 +5031,11 @@ yy468: } YYDEBUG(469, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1405 "Zend/zend_language_scanner.l" +#line 1413 "Zend/zend_language_scanner.l" { return T_PROTECTED; } -#line 5031 "Zend/zend_language_scanner.c" +#line 5039 "Zend/zend_language_scanner.c" yy470: YYDEBUG(470, *YYCURSOR); yych = *++YYCURSOR; @@ -5057,11 +5065,11 @@ yy474: } YYDEBUG(475, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1401 "Zend/zend_language_scanner.l" +#line 1409 "Zend/zend_language_scanner.l" { return T_PRIVATE; } -#line 5065 "Zend/zend_language_scanner.c" +#line 5073 "Zend/zend_language_scanner.c" yy476: YYDEBUG(476, *YYCURSOR); ++YYCURSOR; @@ -5070,11 +5078,11 @@ yy476: } YYDEBUG(477, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1235 "Zend/zend_language_scanner.l" +#line 1243 "Zend/zend_language_scanner.l" { return T_PRINT; } -#line 5078 "Zend/zend_language_scanner.c" +#line 5086 "Zend/zend_language_scanner.c" yy478: YYDEBUG(478, *YYCURSOR); yych = *++YYCURSOR; @@ -5099,11 +5107,11 @@ yy481: } YYDEBUG(482, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1227 "Zend/zend_language_scanner.l" +#line 1235 "Zend/zend_language_scanner.l" { return T_GOTO; } -#line 5107 "Zend/zend_language_scanner.c" +#line 5115 "Zend/zend_language_scanner.c" yy483: YYDEBUG(483, *YYCURSOR); yych = *++YYCURSOR; @@ -5127,11 +5135,11 @@ yy486: } YYDEBUG(487, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1373 "Zend/zend_language_scanner.l" +#line 1381 "Zend/zend_language_scanner.l" { return T_GLOBAL; } -#line 5135 "Zend/zend_language_scanner.c" +#line 5143 "Zend/zend_language_scanner.c" yy488: YYDEBUG(488, *YYCURSOR); yych = *++YYCURSOR; @@ -5168,11 +5176,11 @@ yy494: } YYDEBUG(495, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1219 "Zend/zend_language_scanner.l" +#line 1227 "Zend/zend_language_scanner.l" { return T_BREAK; } -#line 5176 "Zend/zend_language_scanner.c" +#line 5184 "Zend/zend_language_scanner.c" yy496: YYDEBUG(496, *YYCURSOR); yych = *++YYCURSOR; @@ -5212,11 +5220,11 @@ yy502: } YYDEBUG(503, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1203 "Zend/zend_language_scanner.l" +#line 1211 "Zend/zend_language_scanner.l" { return T_SWITCH; } -#line 5220 "Zend/zend_language_scanner.c" +#line 5228 "Zend/zend_language_scanner.c" yy504: YYDEBUG(504, *YYCURSOR); yych = *++YYCURSOR; @@ -5240,11 +5248,11 @@ yy507: } YYDEBUG(508, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1389 "Zend/zend_language_scanner.l" +#line 1397 "Zend/zend_language_scanner.l" { return T_STATIC; } -#line 5248 "Zend/zend_language_scanner.c" +#line 5256 "Zend/zend_language_scanner.c" yy509: YYDEBUG(509, *YYCURSOR); yych = *++YYCURSOR; @@ -5271,11 +5279,11 @@ yy512: } YYDEBUG(513, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1199 "Zend/zend_language_scanner.l" +#line 1207 "Zend/zend_language_scanner.l" { return T_AS; } -#line 5279 "Zend/zend_language_scanner.c" +#line 5287 "Zend/zend_language_scanner.c" yy514: YYDEBUG(514, *YYCURSOR); yych = *++YYCURSOR; @@ -5294,11 +5302,11 @@ yy516: } YYDEBUG(517, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1425 "Zend/zend_language_scanner.l" +#line 1433 "Zend/zend_language_scanner.l" { return T_ARRAY; } -#line 5302 "Zend/zend_language_scanner.c" +#line 5310 "Zend/zend_language_scanner.c" yy518: YYDEBUG(518, *YYCURSOR); ++YYCURSOR; @@ -5307,11 +5315,11 @@ yy518: } YYDEBUG(519, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1533 "Zend/zend_language_scanner.l" +#line 1541 "Zend/zend_language_scanner.l" { return T_LOGICAL_AND; } -#line 5315 "Zend/zend_language_scanner.c" +#line 5323 "Zend/zend_language_scanner.c" yy520: YYDEBUG(520, *YYCURSOR); yych = *++YYCURSOR; @@ -5345,11 +5353,11 @@ yy525: } YYDEBUG(526, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1393 "Zend/zend_language_scanner.l" +#line 1401 "Zend/zend_language_scanner.l" { return T_ABSTRACT; } -#line 5353 "Zend/zend_language_scanner.c" +#line 5361 "Zend/zend_language_scanner.c" yy527: YYDEBUG(527, *YYCURSOR); yych = *++YYCURSOR; @@ -5373,11 +5381,11 @@ yy530: } YYDEBUG(531, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1159 "Zend/zend_language_scanner.l" +#line 1167 "Zend/zend_language_scanner.l" { return T_WHILE; } -#line 5381 "Zend/zend_language_scanner.c" +#line 5389 "Zend/zend_language_scanner.c" yy532: YYDEBUG(532, *YYCURSOR); ++YYCURSOR; @@ -5386,11 +5394,11 @@ yy532: } YYDEBUG(533, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1143 "Zend/zend_language_scanner.l" +#line 1151 "Zend/zend_language_scanner.l" { return T_IF; } -#line 5394 "Zend/zend_language_scanner.c" +#line 5402 "Zend/zend_language_scanner.c" yy534: YYDEBUG(534, *YYCURSOR); yych = *++YYCURSOR; @@ -5442,11 +5450,11 @@ yy539: } YYDEBUG(540, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1377 "Zend/zend_language_scanner.l" +#line 1385 "Zend/zend_language_scanner.l" { return T_ISSET; } -#line 5450 "Zend/zend_language_scanner.c" +#line 5458 "Zend/zend_language_scanner.c" yy541: YYDEBUG(541, *YYCURSOR); yych = *++YYCURSOR; @@ -5500,11 +5508,11 @@ yy547: yy548: YYDEBUG(548, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1345 "Zend/zend_language_scanner.l" +#line 1353 "Zend/zend_language_scanner.l" { return T_INCLUDE; } -#line 5508 "Zend/zend_language_scanner.c" +#line 5516 "Zend/zend_language_scanner.c" yy549: YYDEBUG(549, *YYCURSOR); yych = *++YYCURSOR; @@ -5533,11 +5541,11 @@ yy553: } YYDEBUG(554, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1349 "Zend/zend_language_scanner.l" +#line 1357 "Zend/zend_language_scanner.l" { return T_INCLUDE_ONCE; } -#line 5541 "Zend/zend_language_scanner.c" +#line 5549 "Zend/zend_language_scanner.c" yy555: YYDEBUG(555, *YYCURSOR); yych = *++YYCURSOR; @@ -5571,11 +5579,11 @@ yy560: } YYDEBUG(561, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1243 "Zend/zend_language_scanner.l" +#line 1251 "Zend/zend_language_scanner.l" { return T_INTERFACE; } -#line 5579 "Zend/zend_language_scanner.c" +#line 5587 "Zend/zend_language_scanner.c" yy562: YYDEBUG(562, *YYCURSOR); yych = *++YYCURSOR; @@ -5625,11 +5633,11 @@ yy568: } YYDEBUG(569, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1369 "Zend/zend_language_scanner.l" +#line 1377 "Zend/zend_language_scanner.l" { return T_INSTEADOF; } -#line 5633 "Zend/zend_language_scanner.c" +#line 5641 "Zend/zend_language_scanner.c" yy570: YYDEBUG(570, *YYCURSOR); yych = *++YYCURSOR; @@ -5658,11 +5666,11 @@ yy574: } YYDEBUG(575, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1195 "Zend/zend_language_scanner.l" +#line 1203 "Zend/zend_language_scanner.l" { return T_INSTANCEOF; } -#line 5666 "Zend/zend_language_scanner.c" +#line 5674 "Zend/zend_language_scanner.c" yy576: YYDEBUG(576, *YYCURSOR); yych = *++YYCURSOR; @@ -5706,11 +5714,11 @@ yy583: } YYDEBUG(584, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1255 "Zend/zend_language_scanner.l" +#line 1263 "Zend/zend_language_scanner.l" { return T_IMPLEMENTS; } -#line 5714 "Zend/zend_language_scanner.c" +#line 5722 "Zend/zend_language_scanner.c" yy585: YYDEBUG(585, *YYCURSOR); yych = *++YYCURSOR; @@ -5738,11 +5746,11 @@ yy586: } YYDEBUG(588, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1127 "Zend/zend_language_scanner.l" +#line 1135 "Zend/zend_language_scanner.l" { return T_TRY; } -#line 5746 "Zend/zend_language_scanner.c" +#line 5754 "Zend/zend_language_scanner.c" yy589: YYDEBUG(589, *YYCURSOR); yych = *++YYCURSOR; @@ -5761,11 +5769,11 @@ yy591: } YYDEBUG(592, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1247 "Zend/zend_language_scanner.l" +#line 1255 "Zend/zend_language_scanner.l" { return T_TRAIT; } -#line 5769 "Zend/zend_language_scanner.c" +#line 5777 "Zend/zend_language_scanner.c" yy593: YYDEBUG(593, *YYCURSOR); yych = *++YYCURSOR; @@ -5784,11 +5792,11 @@ yy595: } YYDEBUG(596, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1139 "Zend/zend_language_scanner.l" +#line 1147 "Zend/zend_language_scanner.l" { return T_THROW; } -#line 5792 "Zend/zend_language_scanner.c" +#line 5800 "Zend/zend_language_scanner.c" yy597: YYDEBUG(597, *YYCURSOR); yych = *++YYCURSOR; @@ -5821,11 +5829,11 @@ yy600: yy601: YYDEBUG(601, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1123 "Zend/zend_language_scanner.l" +#line 1131 "Zend/zend_language_scanner.l" { return T_YIELD; } -#line 5829 "Zend/zend_language_scanner.c" +#line 5837 "Zend/zend_language_scanner.c" yy602: YYDEBUG(602, *YYCURSOR); ++YYCURSOR; @@ -5867,11 +5875,11 @@ yy607: ++YYCURSOR; YYDEBUG(608, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1119 "Zend/zend_language_scanner.l" +#line 1127 "Zend/zend_language_scanner.l" { return T_YIELD_FROM; } -#line 5875 "Zend/zend_language_scanner.c" +#line 5883 "Zend/zend_language_scanner.c" yy609: YYDEBUG(609, *YYCURSOR); yych = *++YYCURSOR; @@ -5932,11 +5940,11 @@ yy615: yy616: YYDEBUG(616, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1353 "Zend/zend_language_scanner.l" +#line 1361 "Zend/zend_language_scanner.l" { return T_REQUIRE; } -#line 5940 "Zend/zend_language_scanner.c" +#line 5948 "Zend/zend_language_scanner.c" yy617: YYDEBUG(617, *YYCURSOR); yych = *++YYCURSOR; @@ -5965,11 +5973,11 @@ yy621: } YYDEBUG(622, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1357 "Zend/zend_language_scanner.l" +#line 1365 "Zend/zend_language_scanner.l" { return T_REQUIRE_ONCE; } -#line 5973 "Zend/zend_language_scanner.c" +#line 5981 "Zend/zend_language_scanner.c" yy623: YYDEBUG(623, *YYCURSOR); yych = *++YYCURSOR; @@ -5988,11 +5996,11 @@ yy625: } YYDEBUG(626, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1115 "Zend/zend_language_scanner.l" +#line 1123 "Zend/zend_language_scanner.l" { return T_RETURN; } -#line 5996 "Zend/zend_language_scanner.c" +#line 6004 "Zend/zend_language_scanner.c" yy627: YYDEBUG(627, *YYCURSOR); yych = *++YYCURSOR; @@ -6082,11 +6090,11 @@ yy636: } YYDEBUG(637, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1223 "Zend/zend_language_scanner.l" +#line 1231 "Zend/zend_language_scanner.l" { return T_CONTINUE; } -#line 6090 "Zend/zend_language_scanner.c" +#line 6098 "Zend/zend_language_scanner.c" yy638: YYDEBUG(638, *YYCURSOR); ++YYCURSOR; @@ -6095,11 +6103,11 @@ yy638: } YYDEBUG(639, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1111 "Zend/zend_language_scanner.l" +#line 1119 "Zend/zend_language_scanner.l" { return T_CONST; } -#line 6103 "Zend/zend_language_scanner.c" +#line 6111 "Zend/zend_language_scanner.c" yy640: YYDEBUG(640, *YYCURSOR); yych = *++YYCURSOR; @@ -6124,11 +6132,11 @@ yy643: } YYDEBUG(644, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1305 "Zend/zend_language_scanner.l" +#line 1313 "Zend/zend_language_scanner.l" { return T_CLONE; } -#line 6132 "Zend/zend_language_scanner.c" +#line 6140 "Zend/zend_language_scanner.c" yy645: YYDEBUG(645, *YYCURSOR); yych = *++YYCURSOR; @@ -6142,11 +6150,11 @@ yy646: } YYDEBUG(647, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1239 "Zend/zend_language_scanner.l" +#line 1247 "Zend/zend_language_scanner.l" { return T_CLASS; } -#line 6150 "Zend/zend_language_scanner.c" +#line 6158 "Zend/zend_language_scanner.c" yy648: YYDEBUG(648, *YYCURSOR); yych = *++YYCURSOR; @@ -6192,11 +6200,11 @@ yy655: } YYDEBUG(656, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1429 "Zend/zend_language_scanner.l" +#line 1437 "Zend/zend_language_scanner.l" { return T_CALLABLE; } -#line 6200 "Zend/zend_language_scanner.c" +#line 6208 "Zend/zend_language_scanner.c" yy657: YYDEBUG(657, *YYCURSOR); ++YYCURSOR; @@ -6205,11 +6213,11 @@ yy657: } YYDEBUG(658, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1211 "Zend/zend_language_scanner.l" +#line 1219 "Zend/zend_language_scanner.l" { return T_CASE; } -#line 6213 "Zend/zend_language_scanner.c" +#line 6221 "Zend/zend_language_scanner.c" yy659: YYDEBUG(659, *YYCURSOR); yych = *++YYCURSOR; @@ -6223,11 +6231,11 @@ yy660: } YYDEBUG(661, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1131 "Zend/zend_language_scanner.l" +#line 1139 "Zend/zend_language_scanner.l" { return T_CATCH; } -#line 6231 "Zend/zend_language_scanner.c" +#line 6239 "Zend/zend_language_scanner.c" yy662: YYDEBUG(662, *YYCURSOR); yych = *++YYCURSOR; @@ -6278,11 +6286,11 @@ yy670: } YYDEBUG(671, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1107 "Zend/zend_language_scanner.l" +#line 1115 "Zend/zend_language_scanner.l" { return T_FUNCTION; } -#line 6286 "Zend/zend_language_scanner.c" +#line 6294 "Zend/zend_language_scanner.c" yy672: YYDEBUG(672, *YYCURSOR); ++YYCURSOR; @@ -6306,11 +6314,11 @@ yy672: yy673: YYDEBUG(673, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1171 "Zend/zend_language_scanner.l" +#line 1179 "Zend/zend_language_scanner.l" { return T_FOR; } -#line 6314 "Zend/zend_language_scanner.c" +#line 6322 "Zend/zend_language_scanner.c" yy674: YYDEBUG(674, *YYCURSOR); yych = *++YYCURSOR; @@ -6334,11 +6342,11 @@ yy677: } YYDEBUG(678, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1179 "Zend/zend_language_scanner.l" +#line 1187 "Zend/zend_language_scanner.l" { return T_FOREACH; } -#line 6342 "Zend/zend_language_scanner.c" +#line 6350 "Zend/zend_language_scanner.c" yy679: YYDEBUG(679, *YYCURSOR); yych = *++YYCURSOR; @@ -6372,11 +6380,11 @@ yy681: yy682: YYDEBUG(682, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1397 "Zend/zend_language_scanner.l" +#line 1405 "Zend/zend_language_scanner.l" { return T_FINAL; } -#line 6380 "Zend/zend_language_scanner.c" +#line 6388 "Zend/zend_language_scanner.c" yy683: YYDEBUG(683, *YYCURSOR); yych = *++YYCURSOR; @@ -6390,11 +6398,11 @@ yy684: } YYDEBUG(685, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1135 "Zend/zend_language_scanner.l" +#line 1143 "Zend/zend_language_scanner.l" { return T_FINALLY; } -#line 6398 "Zend/zend_language_scanner.c" +#line 6406 "Zend/zend_language_scanner.c" yy686: YYDEBUG(686, *YYCURSOR); yych = *++YYCURSOR; @@ -6425,11 +6433,11 @@ yy688: } YYDEBUG(689, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1167 "Zend/zend_language_scanner.l" +#line 1175 "Zend/zend_language_scanner.l" { return T_DO; } -#line 6433 "Zend/zend_language_scanner.c" +#line 6441 "Zend/zend_language_scanner.c" yy690: YYDEBUG(690, *YYCURSOR); ++YYCURSOR; @@ -6438,11 +6446,11 @@ yy690: } YYDEBUG(691, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1103 "Zend/zend_language_scanner.l" +#line 1111 "Zend/zend_language_scanner.l" { return T_EXIT; } -#line 6446 "Zend/zend_language_scanner.c" +#line 6454 "Zend/zend_language_scanner.c" yy692: YYDEBUG(692, *YYCURSOR); yych = *++YYCURSOR; @@ -6477,11 +6485,11 @@ yy697: } YYDEBUG(698, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1215 "Zend/zend_language_scanner.l" +#line 1223 "Zend/zend_language_scanner.l" { return T_DEFAULT; } -#line 6485 "Zend/zend_language_scanner.c" +#line 6493 "Zend/zend_language_scanner.c" yy699: YYDEBUG(699, *YYCURSOR); yych = *++YYCURSOR; @@ -6505,11 +6513,11 @@ yy702: } YYDEBUG(703, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1187 "Zend/zend_language_scanner.l" +#line 1195 "Zend/zend_language_scanner.l" { return T_DECLARE; } -#line 6513 "Zend/zend_language_scanner.c" +#line 6521 "Zend/zend_language_scanner.c" yy704: YYDEBUG(704, *YYCURSOR); yych = *++YYCURSOR; @@ -6589,11 +6597,11 @@ yy715: } YYDEBUG(716, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1251 "Zend/zend_language_scanner.l" +#line 1259 "Zend/zend_language_scanner.l" { return T_EXTENDS; } -#line 6597 "Zend/zend_language_scanner.c" +#line 6605 "Zend/zend_language_scanner.c" yy717: YYDEBUG(717, *YYCURSOR); ++YYCURSOR; @@ -6602,11 +6610,11 @@ yy717: } YYDEBUG(718, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1099 "Zend/zend_language_scanner.l" +#line 1107 "Zend/zend_language_scanner.l" { return T_EXIT; } -#line 6610 "Zend/zend_language_scanner.c" +#line 6618 "Zend/zend_language_scanner.c" yy719: YYDEBUG(719, *YYCURSOR); yych = *++YYCURSOR; @@ -6620,11 +6628,11 @@ yy720: } YYDEBUG(721, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1341 "Zend/zend_language_scanner.l" +#line 1349 "Zend/zend_language_scanner.l" { return T_EVAL; } -#line 6628 "Zend/zend_language_scanner.c" +#line 6636 "Zend/zend_language_scanner.c" yy722: YYDEBUG(722, *YYCURSOR); yych = *++YYCURSOR; @@ -6694,11 +6702,11 @@ yy731: } YYDEBUG(732, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1163 "Zend/zend_language_scanner.l" +#line 1171 "Zend/zend_language_scanner.l" { return T_ENDWHILE; } -#line 6702 "Zend/zend_language_scanner.c" +#line 6710 "Zend/zend_language_scanner.c" yy733: YYDEBUG(733, *YYCURSOR); yych = *++YYCURSOR; @@ -6727,11 +6735,11 @@ yy737: } YYDEBUG(738, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1207 "Zend/zend_language_scanner.l" +#line 1215 "Zend/zend_language_scanner.l" { return T_ENDSWITCH; } -#line 6735 "Zend/zend_language_scanner.c" +#line 6743 "Zend/zend_language_scanner.c" yy739: YYDEBUG(739, *YYCURSOR); ++YYCURSOR; @@ -6740,11 +6748,11 @@ yy739: } YYDEBUG(740, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1151 "Zend/zend_language_scanner.l" +#line 1159 "Zend/zend_language_scanner.l" { return T_ENDIF; } -#line 6748 "Zend/zend_language_scanner.c" +#line 6756 "Zend/zend_language_scanner.c" yy741: YYDEBUG(741, *YYCURSOR); yych = *++YYCURSOR; @@ -6773,11 +6781,11 @@ yy742: yy743: YYDEBUG(743, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1175 "Zend/zend_language_scanner.l" +#line 1183 "Zend/zend_language_scanner.l" { return T_ENDFOR; } -#line 6781 "Zend/zend_language_scanner.c" +#line 6789 "Zend/zend_language_scanner.c" yy744: YYDEBUG(744, *YYCURSOR); yych = *++YYCURSOR; @@ -6801,11 +6809,11 @@ yy747: } YYDEBUG(748, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1183 "Zend/zend_language_scanner.l" +#line 1191 "Zend/zend_language_scanner.l" { return T_ENDFOREACH; } -#line 6809 "Zend/zend_language_scanner.c" +#line 6817 "Zend/zend_language_scanner.c" yy749: YYDEBUG(749, *YYCURSOR); yych = *++YYCURSOR; @@ -6839,11 +6847,11 @@ yy754: } YYDEBUG(755, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1191 "Zend/zend_language_scanner.l" +#line 1199 "Zend/zend_language_scanner.l" { return T_ENDDECLARE; } -#line 6847 "Zend/zend_language_scanner.c" +#line 6855 "Zend/zend_language_scanner.c" yy756: YYDEBUG(756, *YYCURSOR); yych = *++YYCURSOR; @@ -6862,11 +6870,11 @@ yy758: } YYDEBUG(759, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1381 "Zend/zend_language_scanner.l" +#line 1389 "Zend/zend_language_scanner.l" { return T_EMPTY; } -#line 6870 "Zend/zend_language_scanner.c" +#line 6878 "Zend/zend_language_scanner.c" yy760: YYDEBUG(760, *YYCURSOR); yych = *++YYCURSOR; @@ -6895,11 +6903,11 @@ yy761: yy762: YYDEBUG(762, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1155 "Zend/zend_language_scanner.l" +#line 1163 "Zend/zend_language_scanner.l" { return T_ELSE; } -#line 6903 "Zend/zend_language_scanner.c" +#line 6911 "Zend/zend_language_scanner.c" yy763: YYDEBUG(763, *YYCURSOR); yych = *++YYCURSOR; @@ -6913,11 +6921,11 @@ yy764: } YYDEBUG(765, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1147 "Zend/zend_language_scanner.l" +#line 1155 "Zend/zend_language_scanner.l" { return T_ELSEIF; } -#line 6921 "Zend/zend_language_scanner.c" +#line 6929 "Zend/zend_language_scanner.c" yy766: YYDEBUG(766, *YYCURSOR); yych = *++YYCURSOR; @@ -6931,11 +6939,11 @@ yy767: } YYDEBUG(768, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1231 "Zend/zend_language_scanner.l" +#line 1239 "Zend/zend_language_scanner.l" { return T_ECHO; } -#line 6939 "Zend/zend_language_scanner.c" +#line 6947 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_LOOKING_FOR_PROPERTY: @@ -7008,12 +7016,12 @@ yy771: yy772: YYDEBUG(772, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1264 "Zend/zend_language_scanner.l" +#line 1272 "Zend/zend_language_scanner.l" { HANDLE_NEWLINES(yytext, yyleng); return T_WHITESPACE; } -#line 7017 "Zend/zend_language_scanner.c" +#line 7025 "Zend/zend_language_scanner.c" yy773: YYDEBUG(773, *YYCURSOR); ++YYCURSOR; @@ -7021,13 +7029,13 @@ yy773: yy774: YYDEBUG(774, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1279 "Zend/zend_language_scanner.l" +#line 1287 "Zend/zend_language_scanner.l" { yyless(0); yy_pop_state(); goto restart; } -#line 7031 "Zend/zend_language_scanner.c" +#line 7039 "Zend/zend_language_scanner.c" yy775: YYDEBUG(775, *YYCURSOR); ++YYCURSOR; @@ -7036,13 +7044,13 @@ yy775: yy776: YYDEBUG(776, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1273 "Zend/zend_language_scanner.l" +#line 1281 "Zend/zend_language_scanner.l" { yy_pop_state(); zend_copy_value(zendlval, yytext, yyleng); return T_STRING; } -#line 7046 "Zend/zend_language_scanner.c" +#line 7054 "Zend/zend_language_scanner.c" yy777: YYDEBUG(777, *YYCURSOR); yych = *++YYCURSOR; @@ -7063,11 +7071,11 @@ yy780: ++YYCURSOR; YYDEBUG(781, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1269 "Zend/zend_language_scanner.l" +#line 1277 "Zend/zend_language_scanner.l" { return T_OBJECT_OPERATOR; } -#line 7071 "Zend/zend_language_scanner.c" +#line 7079 "Zend/zend_language_scanner.c" yy782: YYDEBUG(782, *YYCURSOR); ++YYCURSOR; @@ -7152,14 +7160,14 @@ yy786: yy787: YYDEBUG(787, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1584 "Zend/zend_language_scanner.l" +#line 1592 "Zend/zend_language_scanner.l" { yyless(0); yy_pop_state(); yy_push_state(ST_IN_SCRIPTING); goto restart; } -#line 7163 "Zend/zend_language_scanner.c" +#line 7171 "Zend/zend_language_scanner.c" yy788: YYDEBUG(788, *YYCURSOR); yych = *++YYCURSOR; @@ -7184,7 +7192,7 @@ yy792: ++YYCURSOR; YYDEBUG(793, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1575 "Zend/zend_language_scanner.l" +#line 1583 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); zend_copy_value(zendlval, yytext, yyleng); @@ -7192,7 +7200,7 @@ yy792: yy_push_state(ST_IN_SCRIPTING); return T_STRING_VARNAME; } -#line 7196 "Zend/zend_language_scanner.c" +#line 7204 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_NOWDOC: @@ -7203,7 +7211,7 @@ yyc_ST_NOWDOC: ++YYCURSOR; YYDEBUG(797, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2308 "Zend/zend_language_scanner.l" +#line 2316 "Zend/zend_language_scanner.l" { int newline = 0; @@ -7259,7 +7267,7 @@ nowdoc_scan_done: HANDLE_NEWLINES(yytext, yyleng - newline); return T_ENCAPSED_AND_WHITESPACE; } -#line 7263 "Zend/zend_language_scanner.c" +#line 7271 "Zend/zend_language_scanner.c" /* *********************************** */ yyc_ST_VAR_OFFSET: { @@ -7366,7 +7374,7 @@ yy800: yy801: YYDEBUG(801, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1689 "Zend/zend_language_scanner.l" +#line 1697 "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; @@ -7382,7 +7390,7 @@ string: } return T_NUM_STRING; } -#line 7386 "Zend/zend_language_scanner.c" +#line 7394 "Zend/zend_language_scanner.c" yy802: YYDEBUG(802, *YYCURSOR); yych = *++YYCURSOR; @@ -7402,23 +7410,23 @@ yy803: yy804: YYDEBUG(804, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1849 "Zend/zend_language_scanner.l" +#line 1857 "Zend/zend_language_scanner.l" { /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */ return yytext[0]; } -#line 7411 "Zend/zend_language_scanner.c" +#line 7419 "Zend/zend_language_scanner.c" yy805: YYDEBUG(805, *YYCURSOR); ++YYCURSOR; YYDEBUG(806, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1844 "Zend/zend_language_scanner.l" +#line 1852 "Zend/zend_language_scanner.l" { yy_pop_state(); return ']'; } -#line 7422 "Zend/zend_language_scanner.c" +#line 7430 "Zend/zend_language_scanner.c" yy807: YYDEBUG(807, *YYCURSOR); yych = *++YYCURSOR; @@ -7428,7 +7436,7 @@ yy808: ++YYCURSOR; YYDEBUG(809, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1854 "Zend/zend_language_scanner.l" +#line 1862 "Zend/zend_language_scanner.l" { /* Invalid rule to return a more explicit parse error with proper line number */ yyless(0); @@ -7436,7 +7444,7 @@ yy808: ZVAL_NULL(zendlval); return T_ENCAPSED_AND_WHITESPACE; } -#line 7440 "Zend/zend_language_scanner.c" +#line 7448 "Zend/zend_language_scanner.c" yy810: YYDEBUG(810, *YYCURSOR); ++YYCURSOR; @@ -7445,18 +7453,18 @@ yy810: yy811: YYDEBUG(811, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1862 "Zend/zend_language_scanner.l" +#line 1870 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); return T_STRING; } -#line 7454 "Zend/zend_language_scanner.c" +#line 7462 "Zend/zend_language_scanner.c" yy812: YYDEBUG(812, *YYCURSOR); ++YYCURSOR; YYDEBUG(813, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2365 "Zend/zend_language_scanner.l" +#line 2373 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -7465,7 +7473,7 @@ yy812: zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); goto restart; } -#line 7469 "Zend/zend_language_scanner.c" +#line 7477 "Zend/zend_language_scanner.c" yy814: YYDEBUG(814, *YYCURSOR); ++YYCURSOR; @@ -7501,12 +7509,12 @@ yy816: yy818: YYDEBUG(818, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1839 "Zend/zend_language_scanner.l" +#line 1847 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 7510 "Zend/zend_language_scanner.c" +#line 7518 "Zend/zend_language_scanner.c" yy819: YYDEBUG(819, *YYCURSOR); ++YYCURSOR; @@ -7546,12 +7554,12 @@ yy824: yy826: YYDEBUG(826, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1705 "Zend/zend_language_scanner.l" +#line 1713 "Zend/zend_language_scanner.l" { /* Offset must be treated as a string */ ZVAL_STRINGL(zendlval, yytext, yyleng); return T_NUM_STRING; } -#line 7555 "Zend/zend_language_scanner.c" +#line 7563 "Zend/zend_language_scanner.c" yy827: YYDEBUG(827, *YYCURSOR); ++YYCURSOR; @@ -7574,6 +7582,6 @@ yy829: goto yy826; } } -#line 2374 "Zend/zend_language_scanner.l" +#line 2382 "Zend/zend_language_scanner.l" } diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 205eef1b3a..c94792a358 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -578,22 +578,26 @@ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type) CG(ast_arena) = zend_arena_create(1024 * 32); if (!zendparse()) { zval retval_zv; + 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, ZEND_USER_FUNCTION, INITIAL_OP_ARRAY_SIZE); CG(active_op_array) = op_array; ZVAL_LONG(&retval_zv, 1); - zend_stack_push(&CG(context_stack), (void *) &CG(context)); - zend_init_compiler_context(); 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)); zend_do_end_compilation(); zend_emit_final_return(&retval_zv); pass_two(op_array); - zend_release_labels(0); + zend_oparray_context_end(&original_oparray_context); + zend_file_context_end(&original_file_context); CG(active_op_array) = original_active_op_array; } @@ -739,21 +743,25 @@ zend_op_array *compile_string(zval *source_string, char *filename) BEGIN(ST_IN_SCRIPTING); if (!zendparse()) { + 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, ZEND_EVAL_CODE, INITIAL_OP_ARRAY_SIZE); CG(active_op_array) = op_array; - zend_stack_push(&CG(context_stack), (void *) &CG(context)); - zend_init_compiler_context(); 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)); zend_do_end_compilation(); zend_emit_final_return(NULL); pass_two(op_array); - zend_release_labels(0); + zend_oparray_context_end(&original_oparray_context); + zend_file_context_end(&original_file_context); CG(active_op_array) = original_active_op_array; } -- 2.50.1