[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.32 and 1.34

version 1.32, 2004/04/30 08:25:38 version 1.34, 2004/06/21 09:05:16
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.31 2004/02/09 08:23:30 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/parse/eval.c,v 1.33 2004/05/14 09:20:57 noro Exp $
 */  */
 #include <ctype.h>  #include <ctype.h>
 #include "ca.h"  #include "ca.h"
Line 454  extern NODE PVSS;
Line 454  extern NODE PVSS;
 pointer evalf(FUNC f,FNODE a,FNODE opt)  pointer evalf(FUNC f,FNODE a,FNODE opt)
 {  {
         LIST args;          LIST args;
         OPTLIST optlist;  
         pointer val;          pointer val;
         int i,n,level;          int i,n,level;
         NODE tn,sn,opts,opt1,dmy;          NODE tn,sn,opts,opt1,dmy;
Line 495  pointer evalf(FUNC f,FNODE a,FNODE opt)
Line 494  pointer evalf(FUNC f,FNODE a,FNODE opt)
                                 (*f->f.binf)(&val);                                  (*f->f.binf)(&val);
                         } else {                          } else {
                                 args = (LIST)eval(a);                                  args = (LIST)eval(a);
                                 if ( opts ) {                                  current_option = opts;
                                         NEWOPTLIST(optlist);  
                                         BDY(optlist) = opts;  
                                         appendtonode(BDY(args),(pointer)optlist,&dmy);  
                                         if ( !BDY(args) ) BDY(args) = dmy;  
                                 }  
                                 cur_binf = f;                                  cur_binf = f;
                                 (*f->f.binf)(args?BDY(args):0,&val);                                  (*f->f.binf)(args?BDY(args):0,&val);
                         }                          }
Line 869  void gen_searchf(char *name,FUNC *r)
Line 863  void gen_searchf(char *name,FUNC *r)
                 searchuf(name,&val);                  searchuf(name,&val);
         if ( !val )          if ( !val )
                 appenduf(name,&val);                  appenduf(name,&val);
           *r = val;
   }
   
   void gen_searchf_searchonly(char *name,FUNC *r)
   {
           FUNC val = 0;
           int global = 0;
           if ( *name == ':' ) {
                   global = 1;
                   name += 2;
           }
           if ( CUR_MODULE && !global )
                   searchf(CUR_MODULE->usrf_list,name,&val);
           if ( !val )
                   searchf(sysf,name,&val);
           if ( !val )
                   searchf(ubinf,name,&val);
           if ( !val )
                   searchpf(name,&val);
           if ( !val )
                   searchuf(name,&val);
         *r = val;          *r = val;
 }  }
   

Legend:
Removed from v.1.32  
changed lines
  Added in v.1.34

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