Diff for /capa/capa51/pProj/capaFormula.y between versions 1.6 and 1.8

version 1.6, 2000/08/07 20:47:29 version 1.8, 2000/10/06 20:54:45
Line 105  f_expr       : block Line 105  f_expr       : block
   
 block        : block F_PLUS   term                { $$ = symbols_op($1, $3, ADD_op);  }  block        : block F_PLUS   term                { $$ = symbols_op($1, $3, ADD_op);  }
              | block F_MINUS  term                { $$ = symbols_op($1, $3, SUB_op);  }               | block F_MINUS  term                { $$ = symbols_op($1, $3, SUB_op);  }
                | F_MINUS term                       { $$ = $2;
                                                       switch($2->s_type) {
                                                         case I_VAR:      $$ = (Symbol *)capa_malloc(sizeof(Symbol),1);
                                                                $$->s_type = I_CONSTANT;
                                                         case I_CONSTANT: $$->s_int =    - $2->s_int; break;
                                                         case R_VAR: $$ = (Symbol *)capa_malloc(sizeof(Symbol),1);
                                                                $$->s_type = R_CONSTANT;
                                                         case R_CONSTANT: $$->s_real =   (-1.0)*($2->s_real); 
                                                                break;
                                                         case S_VAR:
                                                         case S_CONSTANT: break;
                                                         default:         break;
                                                       }
                                                     }
              | term                               { $$ = $1; }               | term                               { $$ = $1; }
              | F_ERROR                            { FormulaParseOK = 0; FMLDBUG_PR1("[F_ERROR]\n"); return 0;}               | F_ERROR                            { FormulaParseOK = 0; FMLDBUG_PR1("[F_ERROR]\n"); return 0;}
              | error                              { FormulaParseOK = 0; FMLDBUG_PR1("[ERROR]\n"); return 0;  }               | error                              { FormulaParseOK = 0; FMLDBUG_PR1("[ERROR]\n"); return 0;  }
Line 148  basic_item   : F_ID F_LPAR F_RPAR Line 162  basic_item   : F_ID F_LPAR F_RPAR
                 $$ = do_function(tmp, $3->s_argc, $3->s_argp);                  $$ = do_function(tmp, $3->s_argc, $3->s_argp);
                 capa_mfree(FuncStack[Func_idx].s_name);                  capa_mfree(FuncStack[Func_idx].s_name);
                 free_arglist($3->s_argp);                  free_arglist($3->s_argp);
    $3->s_argp=NULL;
                                                       }                                                        }
                                                   }                                                    }
              | V_ID                               { FMLDBUG_PR3("[V %s = %.16g] ",$1->s_name, $1->s_real);               | V_ID                               { FMLDBUG_PR3("[V %s = %.16g] ",$1->s_name, $1->s_real);
                                                     $$ = $1;                                                      $$ = $1;
                                                   }                                                    }
              | F_MINUS  basic_item                { $$ = $2;  
                                                     switch($2->s_type) {  
                                                       case I_VAR:      $$ = (Symbol *)capa_malloc(sizeof(Symbol),1);  
                                                              $$->s_type = I_CONSTANT;  
                                                       case I_CONSTANT: $$->s_int =    - $2->s_int; break;  
                                                       case R_VAR: $$ = (Symbol *)capa_malloc(sizeof(Symbol),1);  
                                                              $$->s_type = R_CONSTANT;  
                                                       case R_CONSTANT: $$->s_real =   (-1.0)*($2->s_real);   
                                                              break;  
                                                       case S_VAR:  
                                                       case S_CONSTANT: break;  
                                                       default:         break;  
                                                     }  
                                                   }  
              | F_PLUS  basic_item                 { $$ = $2; }               | F_PLUS  basic_item                 { $$ = $2; }
              | F_NUMBER                           { FMLDBUG_PR2("[F %.16g] ",$1->s_real);               | F_NUMBER                           { FMLDBUG_PR2("[F %.16g] ",$1->s_real);
                                                     $$ = $1;                                                      $$ = $1;

Removed from v.1.6  
changed lines
  Added in v.1.8


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>