From 75c0db1119eb8b9a1bb414725d1abd1687511640 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Sat, 31 May 2014 00:18:50 +0200 Subject: [PATCH] Integrate combined scalar as dereferencable --- Zend/zend_language_parser.y | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index ec8d29f194..1b2026359c 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -821,7 +821,6 @@ expr_without_variable: | T_EXIT exit_expr { zend_do_exit(&$$, &$2 TSRMLS_CC); } | '@' { zend_do_begin_silence(&$1 TSRMLS_CC); } expr { zend_do_end_silence(&$1 TSRMLS_CC); $$ = $3; } | scalar { $$ = $1; } - | combined_scalar_offset { zend_do_end_variable_parse(&$1, BP_VAR_R, 0 TSRMLS_CC); } | combined_scalar { $$ = $1; } | '`' backticks_expr '`' { zend_do_shell_exec(&$$, &$2 TSRMLS_CC); } | T_PRINT expr { zend_do_print(&$$, &$2 TSRMLS_CC); } @@ -841,14 +840,10 @@ yield_expr: | T_YIELD expr T_DOUBLE_ARROW variable { zend_do_yield(&$$, &$4, &$2, 1 TSRMLS_CC); } ; -combined_scalar_offset: - combined_scalar '[' dim_offset ']' { zend_do_begin_variable_parse(TSRMLS_C); fetch_array_dim(&$$, &$1, &$3 TSRMLS_CC); } - | combined_scalar_offset '[' dim_offset ']' { fetch_array_dim(&$$, &$1, &$3 TSRMLS_CC); } - | T_CONSTANT_ENCAPSED_STRING '[' dim_offset ']' { $1.EA = 0; zend_do_begin_variable_parse(TSRMLS_C); fetch_array_dim(&$$, &$1, &$3 TSRMLS_CC); } - combined_scalar: - T_ARRAY '(' array_pair_list ')' { $$ = $3; } - | '[' array_pair_list ']' { $$ = $2; } + T_ARRAY '(' array_pair_list ')' { $$ = $3; } + | '[' array_pair_list ']' { $$ = $2; } +; function: T_FUNCTION { $$.u.op.opline_num = CG(zend_lineno); } @@ -1065,6 +1060,8 @@ variable_class_name: dereferencable: variable { $$ = $1; } | '(' expr ')' { $$ = $2; zend_do_begin_variable_parse(TSRMLS_C); } + | combined_scalar { $$ = $1; zend_do_begin_variable_parse(TSRMLS_C); } + | T_CONSTANT_ENCAPSED_STRING { $$ = $1; zend_do_begin_variable_parse(TSRMLS_C); } ; directly_callable_variable: -- 2.50.1