表 4-16 に、データを辞書へコンパイルするためのコマンドを示します。
表 4-16 辞書コンパイルコマンド|
コマンド |
スタックダイアグラム |
説明 |
|---|---|---|
| , |
( n -- ) |
数値を辞書に入れます。 |
| c, |
( byte -- ) |
1 バイトを辞書に入れます。 |
| w, |
( word -- ) |
16 ビット数値を辞書に入れます。 |
| l, |
( quad -- ) |
32 ビット数値を辞書に入れます。 |
| [ |
( -- ) |
解釈を開始します。 |
| ] |
( -- ) |
解釈を終了し、コンパイルを再開します。 |
| allot |
( n -- ) |
辞書に n バイトを割り当てます。 |
| >body |
( xt -- a-addr ) |
実行トークンからデータフィールドアドレスを見つけます。 |
| body> |
( a-addr -- xt ) |
データフィールドアドレスから実行トークンを見つけます。 |
| compile |
( -- ) |
次のワードを実行時にコンパイルします。(代わりに postpone を使用するよう推奨します。) |
| [compile] name |
( -- ) |
次の (すぐ次の) ワードをコンパイルします。(代わりに postpone を使用するよう推奨します。) |
| here |
( -- addr ) |
辞書の先頭アドレス。 |
| immediate |
( -- ) |
最後の定義を即値としてマークします。 |
| to name |
( n -- ) |
defer ワードまたは value に新しい処理を実装します。 |
| literal |
( n -- ) |
数値をコンパイルします。 |
| origin |
( -- addr ) |
Forth システムの開始アドレスを返します。 |
|
patch new-word old-word word-to-patch |
( -- ) |
old-word を word-to-patch のnew-word に置き換えます。 |
| (patch) |
( new-n old-n xt -- ) |
old-n を xt によって示されるワードの new-n に置き換えます。 |
| postpone name |
( -- ) |
ワード name の実行を遅らせます。 |
| recurse |
( ... -- ??? ) |
コンパイル中のワードへの再帰呼び出しをコンパイルします。 |
| recursive |
( -- ) |
辞書内のコンパイル中のコロン定義の名前を見るようにし、したがって、そのワードの名前をそれ自身の定義内で再帰的に使用可能にします。 |
| state |
( -- addr ) |
コンパイル状態のゼロ以外の変数。 |
表 4-17 に示す辞書コンパイル用コマンドは 64 ビットの OpenBoot 実装専用です。
表 4-17 64 ビット辞書コンパイルコマンド|
コマンド |
スタックダイアグラム |
説明 |
|---|---|---|
| x, |
( o -- ) |
octlet、o をコンパイルして辞書に入れます (doublet 境界)。 |