use pattern rules instead of suffix rules in the Makefile
: VALUE
CREATE ( n <name> )
,
: VALUE
CREATE ( n <name> )
,
- state @
- IF
- [compile] aliteral
- compile @
- ELSE
- @
- THEN
lv.compile.store
ELSE
find
lv.compile.store
ELSE
find
- 1 = 0= abort" TO or -> before non-local or non-value"
>body \ point to data
state @
IF \ compiling ( -- pfa )
>body \ point to data
state @
IF \ compiling ( -- pfa )
[compile] literal compile (local+!)
ELSE
find
[compile] literal compile (local+!)
ELSE
find
- 1 = 0= abort" +-> before non-local or non-value"
>body \ point to data
state @
IF \ compiling ( -- pfa )
>body \ point to data
state @
IF \ compiling ( -- pfa )
T{ 333 value my-value my-value }T{ 333 }T
T{ 1000 -> my-value my-value }T{ 1000 }T
T{ 35 +-> my-value my-value }T{ 1035 }T
T{ 333 value my-value my-value }T{ 333 }T
T{ 1000 -> my-value my-value }T{ 1000 }T
T{ 35 +-> my-value my-value }T{ 1035 }T
+T{ 987 to my-value my-value }T{ 987 }T
: test.value ( -- ok )
100 -> my-value
my-value 100 =
: test.value ( -- ok )
100 -> my-value
my-value 100 =
;
T{ test.value }T{ TRUE }T
;
T{ test.value }T{ TRUE }T
+\ test compile time behavior of a VALUE
+567 value VAL3 immediate
+: VD3 val3 literal ;
+T{ vd3 }T{ 567 }T
+
\ test locals in a word
: test.locs { aa bb | cc -- ok }
cc 0=
\ test locals in a word
: test.locs { aa bb | cc -- ok }
cc 0=