デフォルトでは、 テキスト・インタープリターは、 Forth の起動時にユーザー入力デバイス(キーボード)からの入力を処理します。 テキスト・インタープリターは、 以下のいずれかの入力ソースからの入力を処理できます:
evaluate
使用。
プログラムは、 source-id
と blk
の値から現在の入力デバイスを識別できます。
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)を保存します。 そして、 -1
を
source-id
に保存し、 かつ、 0
を blk
に保存します。 それから、 >IN
を
0
に設定し、 文字列 c-addr u を入力ソースおよび入力バッファーにし、 通訳(interpret)します。
そしてパース領域が空になったら、 入力ソース仕様を復元します。
query
( – ) core-ext-obsolescent “query”
ユーザー入力デバイスを入力ソースにします。 入力を端末入力バッファー(Terminal Input Buffer)で受け取ります。 >IN
をゼロに設定します。 時代遅れ(OBSOLESCENT): accept
で置き換えられました。