(
"<spaces>name" -- )
Skip leading space delimiters. Parse
name delimited by a
space. Create a definition for
name with the execution
semantics defined below. Reserve two consecutive cells of data
space.
name is referred to as a "two-variable".
name Execution:
( --
a-addr )
a-addr is the address of the first (lowest address)
cell of two consecutive cells in data space reserved by
2VARIABLE when it defined
name. A program is
responsible for initializing the contents.
Rationale:
Typical use:
2VARIABLE name
Testing:
T{ 2VARIABLE 2v1 -> }T
T{ 0. 2v1 2! -> }T
T{ 2v1 2@ -> 0. }T
T{ -1 -2 2v1 2! -> }T
T{ 2v1 2@ -> -1 -2 }T
T{ : cd2 2VARIABLE ; -> }T
T{ cd2 2v2 -> }T
T{ : cd3 2v2 2! ; -> }T
T{ -2 -1 cd3 -> }T
T{ 2v2 2@ -> -2 -1 }T
T{ 2VARIABLE 2v3 IMMEDIATE 5 6 2v3 2! -> }T
T{ 2v3 2@ -> 5 6 }T