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.
ioCNTL宣言によりストリームの制御ができます。ioCNTLは、ストリームに対して実行できる、I/O以外の操作のテーブルです。下に示すプログラムは、EOFのテストをできるようにする例です。(注意: fileEof は二つの用途に使われています。一つはここで示した簡単な制御のテストをするため、もう一つはPrologのI/O述語から呼び出され、EOFを検出するためです。)
static int fileError(s, mode, args)
ioUNIT *s;
int mode;
TERM *args;
{
switch (mode) {
case 1:
return Unify(args[0], StrAt((fileEof(s)) ? "yes" : "no"));
}
}
static ioCNTL fileTable[] = {
{ "at_eof", 1, 1, fileError },
{ (char*)0 }
} ;
stream_control 述語を使うことによって、IF/Prologから、ストリームの制御が行えます:
open(log_1,file_stream('test'),[input]),
stream_control(log_1,at_eof(X)).
この例では、ストリームlog_1のEOF状態にしたがって、Xにyesあるいはnoが返されます。
|