sitelogo
•t˜^ B - cpro.h‚ÌƒŠƒXƒg
MINERVA superseeded IF/Prolog. Please see http://www.ifcomputer.co.jp/MINERVA for details.

We discontinued to sell IF/Prolog Dec 31. 2003. For current customers, we continue to provide professional support for IF/Prolog until Dec 31, 2008.

/* # (c) Copyright InterFace Computer GmbH, Munich, West Germany # %Z% %M% v%I% %E% %U% # cpro.h */ #include "cpred.h"

/* int QuMaxNum = N; must be defined by user */

int InitProlog(), ParseProlog(), RunProlog(), EndProlog(), ResetQueries(), InitParms(); #define INITProlog(argc,argv) InitProlog(argc,argv,stdin,stdout,stderr) #define RESTARTED 2 #define RETMSGLEN 128 #define QuLOCInt(descr,i,addr) descr->var[i-1].type = Q_INTEGER; \ descr->var[i-1].loc.ivalue = addr #define QuLOCDbl(descr,i,addr) descr->var[i-1].type = Q_DOUBLE; \ descr->var[i-1].loc.dvalue = addr #define QuLOCStr(descr,i,addr) descr->var[i-1].type = Q_STRING; \ descr->var[i-1].loc.string = addr #define QuUse(desc,i,mode) \ if (mode==FOR_INPUT) desc->var[i-1].type|=4; \ else desc->var[i-1].type&=3 #define QuIntPC(descr,i) IntPC(*descr->var[i-1].loc.term) #define QuDblPC(descr,i) DblPC(*descr->var[i-1].loc.term) #define QuAtStr(descr,i) AtStr(*descr->var[i-1].loc.term) #define QuTerm(descr,i) *descr->var[i-1].loc.term

int QuType(); /* returns one of: */ #define Q_TERM (0) #define Q_INTEGER (1) #define Q_DOUBLE (2) #define Q_STRING (3) #define FOR_OUTPUT (0) #define FOR_INPUT (4)

typedef struct { int type; char *name; union { TERM *term; long *ivalue; double *dvalue; char **string; } /* location */ loc; } VarDescr;

typedef struct { int qu_id; TERM qu_goal; int ret_code; double cpu_time; int parse_pos; int exit_code; char *ret_msg; int no_vars; VarDescr *var; } QueryDescr;


Up read on...
scroll to top managed with ubiCMS