Diff for /parser3/src/main/compile.y between versions 1.65 and 1.66

version 1.65, 2001/03/07 10:35:41 version 1.66, 2001/03/07 10:45:49
Line 188  action: get | put | with | call; Line 188  action: get | put | with | call;
   
 get: get_value {  get: get_value {
         $$=$1; /* stack: resulting value */          $$=$1; /* stack: resulting value */
         O($$, OP_WRITE); /* value=pop; write(value) */          O($$, OP_WRITE); /* value=pop; wcontext.write(value) */
 };  };
 get_value: '$' get_name_value { $$=$2 }  get_value: '$' get_name_value { $$=$2 }
 get_name_value: name_without_curly_rdive EON | name_in_curly_rdive;  get_name_value: name_without_curly_rdive EON | name_in_curly_rdive;
Line 273  codes__excluding_sole_str_literal: actio Line 273  codes__excluding_sole_str_literal: actio
   
 /* call */  /* call */
   
 call: '^' call_name store_params EON { /* ^field.$method{vasya} */  call: call_value {
           $$=$1; /* stack: value */
           O($$, OP_WRITE); /* value=pop; wcontext.write(value) */
   };
   call_value: '^' call_name store_params EON { /* ^field.$method{vasya} */
         $$=$2; /* with_xxx,diving code; stack: context,method_junction */          $$=$2; /* with_xxx,diving code; stack: context,method_junction */
         O($$, OP_GET_METHOD_FRAME); /* stack: context,method_frame */          O($$, OP_GET_METHOD_FRAME); /* stack: context,method_frame */
         P($$, $3); /* filling method_frame.store_params */          P($$, $3); /* filling method_frame.store_params */
         O($$, OP_CALL); /* method_frame=pop; ncontext=pop; call(ncontext,method_frame) */          O($$, OP_CALL); /* method_frame=pop; ncontext=pop; call(ncontext,method_frame) stack: value */
 };  };
   
 call_name: name_without_curly_rdive;  call_name: name_without_curly_rdive;
Line 396  optimized_expr: expr { Line 400  optimized_expr: expr {
 expr:   expr: 
         STRING          STRING
 |       get_value  |       get_value
   |       call_value
 |       '"' string_inside_quotes_value '"' { $$ = $2; }  |       '"' string_inside_quotes_value '"' { $$ = $2; }
 |       '(' expr ')' { $$ = $2; }  |       '(' expr ')' { $$ = $2; }
 /* stack: operand // stack: @operand */  /* stack: operand // stack: @operand */

Removed from v.1.65  
changed lines
  Added in v.1.66


E-mail: