sitelogo
VarDescr
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()です。


戻る 続く..
冒頭へ managed with ubiCMS