diff options
author | Zeev Suraski <zeev@php.net> | 2001-07-15 18:39:14 +0000 |
---|---|---|
committer | Zeev Suraski <zeev@php.net> | 2001-07-15 18:39:14 +0000 |
commit | 73f488b323a7d48bd726a748c9e9472e823453fc (patch) | |
tree | 9a2042d94b8537a91e8c99928db14a9120f9308d | |
parent | 9bd98624510d8e6b97983cb019fcbc14ba8b5eae (diff) | |
download | php-git-73f488b323a7d48bd726a748c9e9472e823453fc.tar.gz |
Allow indirect reference to method names in class::method() construct
-rw-r--r-- | Zend/zend_language_parser.y | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index b1ddec2f12..2384375d9c 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -492,12 +492,18 @@ function_call: | cvar '(' { zend_do_begin_dynamic_function_call(&$1 CLS_CC); } function_call_parameter_list ')' { zend_do_end_function_call(&$1, &$$, &$4, 0, 1 CLS_CC); zend_do_extended_fcall_end(CLS_C);} - | T_STRING T_PAAMAYIM_NEKUDOTAYIM T_STRING '(' { zend_do_extended_fcall_begin(CLS_C); zend_do_begin_class_member_function_call(&$1, &$3 CLS_CC); } + | T_STRING T_PAAMAYIM_NEKUDOTAYIM method_name '(' { zend_do_extended_fcall_begin(CLS_C); zend_do_begin_class_member_function_call(&$1, &$3 CLS_CC); } function_call_parameter_list ')' { zend_do_end_function_call(&$3, &$$, &$6, 1, 1 CLS_CC); zend_do_extended_fcall_end(CLS_C);} ; +method_name: + T_STRING { $$ = $1; } + | cvar { zend_do_end_variable_parse(BP_VAR_R, 0 CLS_CC); $$ = $1; } +; + + exit_expr: /* empty */ { memset(&$$, 0, sizeof(znode)); $$.op_type = IS_UNUSED; } | '(' ')' { memset(&$$, 0, sizeof(znode)); $$.op_type = IS_UNUSED; } |