]> granicus.if.org Git - php/commitdiff
Optimize the parser a bit
authorZeev Suraski <zeev@php.net>
Sun, 15 Jul 2001 19:24:32 +0000 (19:24 +0000)
committerZeev Suraski <zeev@php.net>
Sun, 15 Jul 2001 19:24:32 +0000 (19:24 +0000)
Zend/zend_language_parser.y

index 2384375d9cc76e3e7f2439c30245084b8f0e1549..4dd173491c8de994f11e5a3e546c48e10dc66713 100644 (file)
@@ -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; }