Next: , Previous: , Up: The Text Interpreter   [Contents][Index]


6.14.1 Input Sources

デフォルトでは、 テキスト・インタプリタは、 Forth の起動時にユーザー入力デバイス(キーボード)からの入力を処理します。 テキスト・インタプリタは、 以下のいずれかの入力ソースからの入力を処理できます:

プログラムは、 source-idblk の値から現在の入力デバイスを識別できます。

source-id ( – 0 | -1 | fileid  ) core-ext,file “source-i-d”

戻り値: 0 (入力ソースはユーザー入力デバイス)または、 -1 (入力ソースは evaluate によって処理されている文字列)または、 fileid (入力ソースは fileid で指定されたファイル)です。

blk ( – addr  ) block “b-l-k”

uvar 変数 – このセルには現在のブロック番号(現在の入力ソースがブロックでない場合は 0)が格納されています。

save-input ( – x1 .. xn n  ) core-ext “save-input”

n 個のエントリ xn 〜 x1 は、 restore-input で使用できるプラットフォーム依存の方法で、 入力ソース仕様(input source specification)の現在の状態を記述します。

restore-input ( x1 .. xn n – flag  ) core-ext “restore-input”

入力ソース仕様(input source specification)を n 個のエントリ xn 〜 x1 で記述された状態に復元しようとします。 復元が失敗した場合は flag が true になります。 新しい入力プログラムを使用した Gforth では、 再度 throw するために使用できるフラグがある場合にのみ失敗します。 異なるアクティブな入力ストリーム間で保存および復元することも可能です。 注意: 入力ストリームを閉じる場合は、 開いたときとは逆の順序で行う必要がありますが、 その間はすべて許可されます。

evaluate ( ... addr u – ...  ) core,block “evaluate”

現在の入力ソース仕様(input source specification)を保存します。 そして、 -1source-id に保存し、 かつ、 0blk に保存します。 それから、 >IN0 に設定し、 文字列 c-addr u を入力ソースおよび入力バッファーにし、 通訳(interpret)します。 そしてパース領域が空になったら、 入力ソース仕様を復元します。

query ( ) core-ext-obsolescent “query”

ユーザー入力デバイスを入力ソースにします。 入力を端末入力バッファー(Terminal Input Buffer)で受け取ります。 >IN をゼロに設定します。 時代遅れ(OBSOLESCENT): accept で置き換えられました。