From: Nikita Popov Date: Fri, 30 May 2014 22:37:03 +0000 (+0200) Subject: Allow arrays + object access for new expressions X-Git-Tag: POST_AST_MERGE^2~223 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ff475e9e763ffc74c8c63d26b3d5c9f37c702904;p=php Allow arrays + object access for new expressions --- diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index 1b2026359c..04455cac9e 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -902,7 +902,7 @@ class_name_reference: dynamic_class_name_reference: - simple_variable { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&$$, &$1, 1 TSRMLS_CC); } + new_variable { $$ = $1; } ; exit_expr: @@ -1104,6 +1104,15 @@ static_member: ; +new_variable: + simple_variable + { zend_do_begin_variable_parse(TSRMLS_C); + fetch_simple_variable(&$$, &$1, 1 TSRMLS_CC); } + | new_variable '[' dim_offset ']' { fetch_array_dim(&$$, &$1, &$3 TSRMLS_CC); } + | new_variable '{' expr '}' { fetch_string_offset(&$$, &$1, &$3 TSRMLS_CC); } + | new_variable T_OBJECT_OPERATOR object_member + { zend_do_fetch_property(&$$, &$1, &$3 TSRMLS_CC); } +; dim_offset: /* empty */ { $$.op_type = IS_UNUSED; }