[BACK]Return to eval.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / parse

Diff for /OpenXM_contrib2/asir2000/parse/eval.c between version 1.5 and 1.6

version 1.5, 2000/08/22 05:04:26 version 1.6, 2000/09/21 09:19:27
Line 45 
Line 45 
  * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,   * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
  * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.   * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
  *   *
  * $OpenXM: OpenXM_contrib2/asir2000/parse/eval.c,v 1.4 2000/08/21 08:31:46 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/parse/eval.c,v 1.5 2000/08/22 05:04:26 noro Exp $
 */  */
 #include <ctype.h>  #include <ctype.h>
 #include "ca.h"  #include "ca.h"
Line 185  FNODE f;
Line 185  FNODE f;
                         }                          }
                         break;                          break;
 #endif  #endif
 #if 0  
                 case I_PRESELF: case I_POSTSELF:  
                         val = evalpv(f->id,FA1(f),FA0(f)); break;  
                 case I_PVAR:  
                         val = evalpv(f->id,FA0(f),0); break;  
                 case I_ASSPVAR:  
                         val = evalpv(f->id,FA0(f),FA1(f)); break;  
 #endif  
 #if 1  #if 1
                 case I_PRESELF:                  case I_PRESELF:
                         f1 = (FNODE)FA1(f);                          f1 = (FNODE)FA1(f);
Line 205  FNODE f;
Line 197  FNODE f;
                                         (*((ARF)FA0(f))->fp)(CO,u,ONE,&val); putarray(a,tn,val);                                          (*((ARF)FA0(f))->fp)(CO,u,ONE,&val); putarray(a,tn,val);
                                 }                                  }
                         } else                          } else
                                 val = evalpv(f->id,(FNODE)FA1(f),FA0(f));                                  error("++ : not implemented yet");
                         break;                          break;
                 case I_POSTSELF:                  case I_POSTSELF:
                         f1 = (FNODE)FA1(f);                          f1 = (FNODE)FA1(f);
Line 219  FNODE f;
Line 211  FNODE f;
                                         val = a;                                          val = a;
                                 }                                  }
                         } else                          } else
                                 val = evalpv(f->id,(FNODE)FA1(f),FA0(f));                                  error("-- : not implemented yet");
                         break;                          break;
                 case I_CAST:  
                         getmember((FNODE)f,(Obj *)&val); break;  
                 case I_PVAR:                  case I_PVAR:
                         pv = (int)FA0(f); ind = (NODE)FA1(f); GETPV(pv,a);                          pv = (int)FA0(f); ind = (NODE)FA1(f); GETPV(pv,a);
                         if ( !ind )                          if ( !ind )
Line 242  FNODE f;
Line 232  FNODE f;
                                         evalnodebody(ind,&tn);                                          evalnodebody(ind,&tn);
                                         putarray(a,tn,val = eval((FNODE)FA1(f)));                                          putarray(a,tn,val = eval((FNODE)FA1(f)));
                                 }                                  }
                         } else                          } else if ( ID(f1) == I_POINT ) {
                                 val = evalpv(ID(f),(FNODE)FA0(f),FA1(f));                                  /* a->member = a1 */
                                   /* f1 <-> FA0(f1)->FA1(f1) */
                                   a = eval(FA0(f1));
                                   a1 = eval(FA1(f));
                                   assign_to_member(a,(char *)FA1(f1),a1);
                                   val = a1;
                           }
                         break;                          break;
 #endif  #endif
                 case I_ANS:                  case I_ANS:
Line 304  FNODE f;
Line 300  FNODE f;
                         break;                          break;
                 case I_GETOPT:                  case I_GETOPT:
                         val = (pointer)getopt_from_cpvs((char *)FA0(f));                          val = (pointer)getopt_from_cpvs((char *)FA0(f));
                           break;
                   case I_POINT:
                           a = (pointer)eval(FA0(f));
                           val = (pointer)memberofstruct(a,(char *)FA1(f));
                         break;                          break;
                 default:                  default:
                         error("eval : unknown id");                          error("eval : unknown id");

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

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