Next: , Previous: , Up: Files   [Contents][Index]


6.18.1 Forth source files

ファイルの内容を通訳(interpret)する最も簡単な方法は、 以下の 2 つの形式のいずれかを使用することです:

include mysource.fs
s" mysource.fs" included

通常、 ファイルをインクルードする必要があるのは、 そのファイルがまだインクルードされていない場合(たとえば、 別のソース・ファイルなど)です。 その場合、 以下の 3 つの形式のいずれかを使用できます:

require mysource.fs
needs mysource.fs
s" mysource.fs" required

ソース・ファイルを通訳(interpret)してもスタックが変更されないようにソース・ファイルを作成することをお勧めします。 この方法で設計されたソース・ファイルは、 required やそのファミリーと一緒に問題なく使用できます。 例:

1024 require foo.fs drop

ここでは、 引数 1024 (バ​​ッファ・サイズなど) を foo.fs に渡しています。 foo.fs の通訳(interpret)にはスタック効果 ( n – n ) があり、 require での使用が可能になります。 もちろん、 require されるファイルにこのようなパラメーターを指定する場合は、 最初の require がすべての用途に適合することを確認する必要があります(つまり、 マスター・ロード・ファイルの早い段階で require することになります)。

include-file ( i*x wfileid – j*x  ) file “include-file”

ファイル wfileid の内容を通訳(interpret)します(テキスト・インタプリタを使用して処理します)。

included ( i*x c-addr u – j*x  ) file “included”

文字列 c-addr u で指定される名前のファイルを include-file します。

included? ( c-addr u – f  ) gforth-0.2 “included?”

ファイル c-addr u が以前にインクルードされたファイルのリストにある場合にのみ true。 ファイルがロードされている場合、 たとえば foo.fs として指定されたのが Forth 検索パスのどこかで見つかった可能性があります。 include? から true を返すには、 (たとえ ./foo.fs であっても、 )ファイルへの正確なパスを指定する必要があります。

include ( ... "file" – ...  ) file-ext “include”

fileinclude-file する。

required ( i*x addr u – i*x  ) file-ext “required”

既に include (または required ) されてないなら、 addr u で指定した名前のファイルを include-file します。 現状では、 これは(パス(path)付きの)ファイル名を以前にインクルードしたファイルの名前と比較することによって機能します。

require ( ... "file" – ...  ) file-ext “require”

file がまだインクルードされていない場合のみ、 include-file します。

needs ( ... "name" – ...  ) gforth-0.2 “needs”

require のエイリアス。 他のシステム(Win32Forth など)に存在します。

\\\ ( ) gforth-1.0 “\\\”

ソース・ファイルの残りをEOFまでスキップする

.included ( ) gforth-0.5 “.included”

インクルードされたファイルの名前をリストします。

sourcefilename ( – c-addr u  ) gforth-0.2 “sourcefilename”

現在入力ソースとなっているソース・ファイルの名前。 結果は、 ファイルがロードされている間のみ有効です。 現在の入力ソースが(ストリーム)ファイルでない場合、 結果は未定義です。 Gforth では、 結果はセッション全体で有効です(ただし、 savesystem などを跨いで有効ではありません)。

sourceline# ( – u  ) gforth-0.2 “sourceline-number”

(ストリーム)ファイルから現在通訳(interpret)されている行の行番号。 最初の行は番号 1 です。 現在の入力ソースが(ストリーム)ファイルでない場合、 結果は未定義です。

required の標準 Forth の定義は compat/required.fs で提供されます。


Next: General files, Previous: Files, Up: Files   [Contents][Index]