このセクションでは、 ローカル変数を定義するために使用されるワード群を説明します。 注意: ローカル変数を定義するワード(W:
など)の実行時は、 右端のローカル変数定義から左端のローカル変数定義の方向で実行され、
右端のローカル変数がスタックのTOSから得る事になることに注意してください。
{:
( – hmaddr u latest latestnt wid 0 ) local-ext “open-brace-colon”
ローカル変数定義の開始。
--
( hmaddr u latest latestnt wid 0 ... – ) gforth-0.2 “dash-dash”
ローカル変数定義中の --
から :}
までのすべてが無視されます。 これは通常、
ローカル変数定義をスタック効果の説明としても使えるよう、 一人二役の役割を持たせる場合に使います。
|
( – ) gforth-1.0 “bar”
|
の後ろで定義されたローカル変数はスタックから初期化されません。 したがって、 W:
のようなワードの実行時のスタック効果は ( -- )
に変わります。
:}
( hmaddr u latest latestnt wid 0 xt1 ... xtn – ) gforth-1.0 “colon-close-brace”
ローカル変数定義の終了。
{
( – hmaddr u latest latestnt wid 0 ) gforth-0.2 “open-brace”
ローカル変数定義を開始します。 このワードの Forth-2012 標準名は {:
です。
}
( hmaddr u latest latestnt wid 0 xt1 ... xtn – ) gforth-0.2 “close-brace”
ローカル変数定義を終了します。 このワードの Forth-2012 標準名は :}
です。
W:
( compilation "name" – a-addr xt; run-time x – ) gforth-0.2 “w-colon”
valueフレーバーのセル・ローカル変数 name を定義します ( -- x1 )
WA:
( compilation "name" – a-addr xt; run-time x – ) gforth-1.0 “w-a-colon”
varueフレーバーのセル・ローカル変数 name を定義します ( -- x1 )
W^
( compilation "name" – a-addr xt; run-time x – ) gforth-0.2 “w-caret”
variableフレーバーのセル・ローカル変数 name を定義します ( -- a-addr )
D:
( compilation "name" – a-addr xt; run-time x1 x2 – ) gforth-0.2 “d-colon”
valueフレーバーの2倍長整数ローカル変数 name を定義します ( -- x3 x4 )
DA:
( compilation "name" – a-addr xt; run-time x1 x2 – ) gforth-1.0 “w-a-colon”
varueフレーバーの2倍長整数ローカル変数 name を定義します ( -- x3 x4 )
D^
( compilation "name" – a-addr xt; run-time x1 x2 – ) gforth-0.2 “d-caret”
variableフレーバーの2倍長整数ローカル変数 name を定義します ( -- a-addr )
C:
( compilation "name" – a-addr xt; run-time c – ) gforth-0.2 “c-colon”
valueフレーバーの char ローカル変数 name を定義します ( -- c1 )
CA:
( compilation "name" – a-addr xt; run-time c – ) gforth-1.0 “c-a-colon”
varueフレーバーの char ローカル変数 name を定義します ( -- c1 )
C^
( compilation "name" – a-addr xt; run-time c – ) gforth-0.2 “c-caret”
variableフレーバーの char ローカル変数 name を定義します ( -- c-addr )
F:
( compilation "name" – a-addr xt; run-time r – ) gforth-0.2 “f-colon”
valueフレーバーの浮動小数点数ローカル変数 name を定義します ( -- r1 )
FA:
( compilation "name" – a-addr xt; run-time f – ) gforth-1.0 “f-a-colon”
varueフレーバーの浮動小数点数ローカル変数 name を定義します ( -- r1 )
F^
( compilation "name" – a-addr xt; run-time r – ) gforth-0.2 “f-caret”
variableフレーバーの浮動小数点数ローカル変数 name を定義します ( -- f-addr )
XT:
( compilation "name" – a-addr xt; run-time xt1 – ) gforth-1.0 “x-t-colon”
deferフレーバーのセル・ローカル変数 name を定義します ( ... -- ... )
XTA:
( compilation "name" – a-addr xt; run-time ... – ... ) gforth-1.0 “x-t-a-colon”
addr
を使用できる defer フレーバーのローカル変数 name を定義します。
|
や --
や :}
や }
は通常、 検索順序スタック(the search
order)に含まれないことに注意してください(これらは locals-types
ボキャブラリーに含まれます)。
そしてこれらは必ずしも全ての Forth システムでワードとして存在しているわけではありません。 したがって、 これらは Gforth
のワードとして文書化されています。