Sindbad~EG File Manager

Current Path : /usr/home/beeson/Otter-Lambda/yyy/automode/
Upload File :
Current File : /usr/home/beeson/Otter-Lambda/yyy/automode/applyfn.c

/* M. Beeson, for MathXpert.  Operators to apply user-defined functions */
/* 2.4.92 original date
   1.22.98 last modified
*/

#define AUTOMODE_DLL
#include <string.h>
#include "globals.h"
#include "userfunc.h"
#include "dispfunc.h"  /* functor_string */

static int applyfunction(term t, int k,  term *next, char *reason);
/*____________________________________________________________________*/
int applyfunction0(term t, term arg, term *next, char *reason)
{ return applyfunction(t,0,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction1(term t, term arg, term *next, char *reason)
{ return applyfunction(t,1,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction2(term t, term arg, term *next, char *reason)
{ return applyfunction(t,2,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction3(term t, term arg, term *next, char *reason)
{ return applyfunction(t,3,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction4(term t, term arg, term *next, char *reason)
{ return applyfunction(t,4,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction5(term t, term arg, term *next, char *reason)
{ return applyfunction(t,5,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction6(term t, term arg, term *next, char *reason)
{ return applyfunction(t,6,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction7(term t, term arg, term *next, char *reason)
{ return applyfunction(t,7,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction8(term t, term arg, term *next, char *reason)
{ return applyfunction(t,8,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction9(term t, term arg, term *next, char *reason)
{ return applyfunction(t,9,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction10(term t, term arg, term *next, char *reason)
{ return applyfunction(t,10,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction11(term t, term arg, term *next, char *reason)
{ return applyfunction(t,11,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction12(term t, term arg, term *next, char *reason)
{ return applyfunction(t,12,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction13(term t, term arg, term *next, char *reason)
{ return applyfunction(t,12,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction14(term t, term arg, term *next, char *reason)
{ return applyfunction(t,12,next,reason);
}
/*____________________________________________________________________*/
MEXPORT_AUTOMODE int applyfunction15(term t, term arg, term *next, char *reason)
{ return applyfunction(t,12,next,reason);
}

/*____________________________________________________________________*/
static int applyfunction(term t, int k,  term *next, char *reason)
/* not an operator--  apply  userfunctions[k] to t */
{  term lhs, rhs;
   char *p;
   int err = get_definition(k,&lhs,&rhs);
   if(err)
      return 1;  /* there is no k-th definition */
   if(FUNCTOR(t) != FUNCTOR(lhs) || ARITY(t) != ARITY(lhs))
      return 1;
   apply_definition(t,next);
   p = get_defnstring(k);
   if(strlen(p) <= MAXREASONSTRING)
      strcpy(reason,p);
   else
      { strcpy(reason, english(1068));  /* definition of  */
        functor_string(FUNCTOR(lhs),SCREEN,strchr(reason,'\0'));
      }
   return 0;
 }

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists