diff options
author | Zeev Suraski <zeev@php.net> | 2001-07-15 19:24:32 +0000 |
---|---|---|
committer | Zeev Suraski <zeev@php.net> | 2001-07-15 19:24:32 +0000 |
commit | ec6c9f67c40f3b3151695f52ee6c6f61e80979d0 (patch) | |
tree | 91730d51220452ab4f71df646c3e87509081f235 /Zend/zend_language_parser.y | |
parent | d1ac05a85001ea1f936aa955cc3f30a3d8d5d2ae (diff) | |
download | php-git-ec6c9f67c40f3b3151695f52ee6c6f61e80979d0.tar.gz |
Optimize the parser a bit
Diffstat (limited to 'Zend/zend_language_parser.y')
-rw-r--r-- | Zend/zend_language_parser.y | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index 2384375d9c..4dd173491c 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -419,8 +419,8 @@ expr_without_variable: | cvar '=' expr { zend_do_end_variable_parse(BP_VAR_W, 0 CLS_CC); zend_do_assign(&$$, &$1, &$3 CLS_CC); } | cvar '=' '&' w_cvar { zend_do_end_variable_parse(BP_VAR_W, 0 CLS_CC); zend_do_assign_ref(&$$, &$1, &$4 CLS_CC); } | cvar '=' '&' function_call { zend_do_end_variable_parse(BP_VAR_W, 0 CLS_CC); zend_do_assign_ref(&$$, &$1, &$4 CLS_CC); } - | cvar '=' '&' T_NEW class_name { zend_do_extended_fcall_begin(CLS_C); zend_do_begin_new_object(&$4, &$5 CLS_CC); } ctor_arguments { zend_do_end_new_object(&$3, &$5, &$4, &$7 CLS_CC); zend_do_extended_fcall_end(CLS_C); zend_do_end_variable_parse(BP_VAR_W, 0 CLS_CC); zend_do_assign_ref(&$$, &$1, &$3 CLS_CC); } - | T_NEW class_name { zend_do_extended_fcall_begin(CLS_C); zend_do_begin_new_object(&$1, &$2 CLS_CC); } ctor_arguments { zend_do_end_new_object(&$$, &$2, &$1, &$4 CLS_CC); zend_do_extended_fcall_end(CLS_C);} + | cvar '=' '&' T_NEW static_or_variable_string { zend_do_extended_fcall_begin(CLS_C); zend_do_begin_new_object(&$4, &$5 CLS_CC); } ctor_arguments { zend_do_end_new_object(&$3, &$5, &$4, &$7 CLS_CC); zend_do_extended_fcall_end(CLS_C); zend_do_end_variable_parse(BP_VAR_W, 0 CLS_CC); zend_do_assign_ref(&$$, &$1, &$3 CLS_CC); } + | T_NEW static_or_variable_string { zend_do_extended_fcall_begin(CLS_C); zend_do_begin_new_object(&$1, &$2 CLS_CC); } ctor_arguments { zend_do_end_new_object(&$$, &$2, &$1, &$4 CLS_CC); zend_do_extended_fcall_end(CLS_C);} | cvar T_PLUS_EQUAL expr { zend_do_end_variable_parse(BP_VAR_RW, 0 CLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_ADD, &$$, &$1, &$3 CLS_CC); } | cvar T_MINUS_EQUAL expr { zend_do_end_variable_parse(BP_VAR_RW, 0 CLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SUB, &$$, &$1, &$3 CLS_CC); } | cvar T_MUL_EQUAL expr { zend_do_end_variable_parse(BP_VAR_RW, 0 CLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_MUL, &$$, &$1, &$3 CLS_CC); } @@ -492,15 +492,15 @@ 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 method_name '(' { zend_do_extended_fcall_begin(CLS_C); zend_do_begin_class_member_function_call(&$1, &$3 CLS_CC); } + | T_STRING T_PAAMAYIM_NEKUDOTAYIM static_or_variable_string '(' { 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: +static_or_variable_string: T_STRING { $$ = $1; } - | cvar { zend_do_end_variable_parse(BP_VAR_R, 0 CLS_CC); $$ = $1; } + | r_cvar { $$ = $1; } ; @@ -517,13 +517,6 @@ ctor_arguments: ; -class_name: - T_STRING { $$ = $1; } - | r_cvar { $$ = $1; } -; - - - common_scalar: T_LNUMBER { $$ = $1; } | T_DNUMBER { $$ = $1; } |