[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.6 and 1.7

version 1.6, 2000/09/21 09:19:27 version 1.7, 2000/09/22 06:36:43
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.5 2000/08/22 05:04:26 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/parse/eval.c,v 1.6 2000/09/21 09:19:27 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 1  
                 case I_PRESELF:                  case I_PRESELF:
                         f1 = (FNODE)FA1(f);                          f1 = (FNODE)FA1(f);
                         if ( ID(f1) == I_PVAR ) {                          if ( ID(f1) == I_PVAR ) {
Line 233  FNODE f;
Line 232  FNODE f;
                                         putarray(a,tn,val = eval((FNODE)FA1(f)));                                          putarray(a,tn,val = eval((FNODE)FA1(f)));
                                 }                                  }
                         } else if ( ID(f1) == I_POINT ) {                          } else if ( ID(f1) == I_POINT ) {
                                 /* a->member = a1 */  
                                 /* f1 <-> FA0(f1)->FA1(f1) */                                  /* f1 <-> FA0(f1)->FA1(f1) */
                                 a = eval(FA0(f1));                                  a = eval(FA0(f1));
                                 a1 = eval(FA1(f));                                  assign_to_member(a,(char *)FA1(f1),val = eval((FNODE)FA1(f)));
                                 assign_to_member(a,(char *)FA1(f1),a1);                          } else if ( ID(f1) == I_INDEX ) {
                                 val = a1;                                  /* f1 <-> FA0(f1)[FA1(f1)] */
                                   a = eval((FNODE)FA0(f1)); ind = (NODE)FA1(f1);
                                   evalnodebody(ind,&tn);
                                   putarray(a,tn,val = eval((FNODE)FA1(f)));
                         }                          }
                         break;                          break;
 #endif  
                 case I_ANS:                  case I_ANS:
                         if ( (pv =(int)FA0(f)) < (int)APVS->n )                          if ( (pv =(int)FA0(f)) < (int)APVS->n )
                                 val = APVS->va[pv].priv;                                  val = APVS->va[pv].priv;

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

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