型名 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()です。
| 冒頭へ |
|