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

Diff for /OpenXM_contrib2/asir2018/parse/eval.c between version 1.1 and 1.4

version 1.1, 2018/09/19 05:45:08 version 1.4, 2019/11/12 10:53:23
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: OpenXM_contrib2/asir2018/parse/eval.c,v 1.3 2019/08/21 00:37:47 noro Exp $
 */  */
 #include <ctype.h>  #include <ctype.h>
 #include "ca.h"  #include "ca.h"
Line 173  pointer eval(FNODE f)
Line 173  pointer eval(FNODE f)
       evalnodebody((NODE)FA0(f),&tn); nodetod(tn,&dp); val = (pointer)dp;        evalnodebody((NODE)FA0(f),&tn); nodetod(tn,&dp); val = (pointer)dp;
       break;        break;
     case I_EVM:      case I_EVM:
       evalnodebody((NODE)FA0(f),&tn); pos = (Obj)eval((FNODE)FA1(f)); nodetodpm(tn,pos,&dpm); val = (pointer)dpm;        evalnodebody((NODE)FA0(f),&tn); pos = (Obj)eval((FNODE)FA1(f));
         if ( !pos )
           error("position of a module element must be positive.");
         nodetodpm(tn,pos,&dpm); val = (pointer)dpm;
       break;        break;
     case I_FUNC:      case I_FUNC:
       val = evalf((FUNC)FA0(f),(FNODE)FA1(f),0); break;        val = evalf((FUNC)FA0(f),(FNODE)FA1(f),0); break;
Line 196  pointer eval(FNODE f)
Line 199  pointer eval(FNODE f)
         int interval;          int interval;
         Obj expired;          Obj expired;
   
         interval = QTOS((Q)eval((FNODE)FA0(f)));          interval = ZTOS((Q)eval((FNODE)FA0(f)));
         expired = (Obj)eval((FNODE)FA2(f));          expired = (Obj)eval((FNODE)FA2(f));
         set_timer(interval);          set_timer(interval);
         savepvs();          savepvs();
Line 747  pointer evalstat(SNODE f)
Line 750  pointer evalstat(SNODE f)
         makevar(buf,&u); a[i] = VR(u);          makevar(buf,&u); a[i] = VR(u);
         substr(CO,0,(Obj)s,VR((P)t),(Obj)u,(Obj *)&s1); s = s1;          substr(CO,0,(Obj)s,VR((P)t),(Obj)u,(Obj *)&s1); s = s1;
       }        }
   #if defined(INTERVAL)
         mkpf((char *)FA0(f),(Obj)s,ac,a,0,0,0,0,(PF *)&val); val = 0;
   #else
       mkpf((char *)FA0(f),(Obj)s,ac,a,0,0,0,(PF *)&val); val = 0;        mkpf((char *)FA0(f),(Obj)s,ac,a,0,0,0,(PF *)&val); val = 0;
   #endif
       v = searchvar((char *)FA0(f));        v = searchvar((char *)FA0(f));
       if ( v ) {        if ( v ) {
         searchpf((char *)FA0(f),&func);          searchpf((char *)FA0(f),&func);
Line 1326  pointer evalpf(PF pf,NODE args,NODE dargs)
Line 1333  pointer evalpf(PF pf,NODE args,NODE dargs)
       ad[i].arg = (Obj)node->body;        ad[i].arg = (Obj)node->body;
       if ( !dnode ) ad[i].d = 0;        if ( !dnode ) ad[i].d = 0;
       else        else
         ad[i].d = QTOS((Q)dnode->body);          ad[i].d = ZTOS((Q)dnode->body);
       node = NEXT(node);        node = NEXT(node);
       if ( dnode ) dnode = NEXT(dnode);        if ( dnode ) dnode = NEXT(dnode);
     }      }
Line 1335  pointer evalpf(PF pf,NODE args,NODE dargs)
Line 1342  pointer evalpf(PF pf,NODE args,NODE dargs)
     s = pf->body;      s = pf->body;
     if ( dargs ) {      if ( dargs ) {
       for ( i = 0, dnode = dargs; dnode; dnode = NEXT(dnode), i++ ) {        for ( i = 0, dnode = dargs; dnode; dnode = NEXT(dnode), i++ ) {
         di = QTOS((Q)dnode->body);          di = ZTOS((Q)dnode->body);
         for ( j = 0; j < di; j++ ) {          for ( j = 0; j < di; j++ ) {
           derivr(CO,s,pf->args[i],&s1); s = s1;            derivr(CO,s,pf->args[i],&s1); s = s1;
         }          }

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.4

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