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.
型名
VarDescr
概要
typedef struct {
int type;
char *name;
union {
TERM *term;
long *ivalue;
double *dvalue;
char **string;
} /* location */
loc;
} VarDescr;
ParseProlog(質問,&Descr)は、VarDescrの配列を作ります。これは1変数に対して1要素で、Descr->varによって指示されます。
-type: 以下のいずれかで、変数値のデ−タ型を示しています。
Q_TERM (IF/Prolog,デフォルト)
Q_INTEGER, Q_DOUBLE, Q_STRING (C)
default:Q_TERM: 変換されず、値はIF/Prologの項のままです。
else: ユ−ザは、ホスト言語(C)のデ−タ型を選ぶことができます。自動変換は、RunProlog()によって行われます。
注意:値が型typeに変換できない場合、その値はTERMとして残され、typeはQ_TERMにセットされます。
-name: 質問文の中の変数の名前です。
-loc: 変数値のアドレスのための集合和です。位置(typeのフィ−ルドによって決定される)は、以下のようになります。
loc.term:IF/PrologのTERM(アトム,変数,構造など)
loc.ivalue:Cのlong整数
loc.dvalue:Cの倍精度実数の流れ
loc.string:Cの文字列
IF/PrologからCへのCインタフェ−スで提供されている、IF/PrologのTERMを扱うためのすべてのライブラリ−関数は、このインタフェ−スと結合して使われます。(IntPC(),AtStr()など)
マクロ定義は、”cpro.h”の中にあります。型変換(関数)を扱うのは、QuIntPC(),QuDblPC(),QuAtStr()です。自動型変換指定を扱うのは、QuLOCInt(),QuLOCDbl(),QuLOCStr()です。変数値のアクセス/説明を扱うのは、QuTerm(),QuType()です。
|