イフコンピュータ > IF/Prolog > マニュアル > IF/Prolog V4.1 マニュアル > IF/Prolog Interfaces > IF/PrologからC言語へのインタフェ−ス > IF/Prolog ストリーム ・インタフェース > さらに複雑なユーザ定義のストリーム

さらに複雑なユーザ定義のストリーム

IF/Prolog by Siemens
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ファイルのI/O手続きとして定義済みのI/O操作のみを使ったとても簡単な例でした。さらに複雑な例として、UNIXベースの字句解析プログラムであるlexとのインタフェースのための新しいストリーム・クラスを定義するプログラムが、ディレクトリ$PROROOT/demos/stream/lexにあります。

Lexのためのストリーム定義によって、コンパイラのフロントエンドとしての構文解析器を簡単に開発することができるようになります。さらにいえば、lexがトークンに切り分け、他の外部デバイスが決定するようなプロトコルへのインタフェースを提供します。

lexストリーム定義がget述語と一緒に働くことを保証するために、トークン・バッファとそれへのインデックスを含むように、ストリームの定義を拡張することが必要でした。バッファが空になると、字句解析器が呼び出され、次のトークンを供給するようになっています。

マッチしたトークンはトークン値とマッチした文字列を含む構造としてIF/Prologに渡されますが、これは容易に変更することができます。

document: http://www.ifcomputer.co.jp/IFProlog/Manuals/v4.1/advanced_feature/c_interface/strint/morcuds/print_jp.html
published 2008/12/1 update 1994/7/28 (c) 1996-2006 IF Computer Japan
IF Computer 〒113-0022 Tel 03-5814-3352 start (AT) ifcomputer.com
Customer Support 東京都文京区千駄木5-28-2   http://www.ifcomputer.co.jp
戻る> managed with ubiCMS