PFOBJS = $(PFSOURCE:.c=.o)
PFEMBOBJS = $(PFSOURCE:.c=.eo)
-.c.o: $(PFINCLUDES)
+%.o: %.c $(PFINCLUDES)
$(COMPILE) -c -o $@ $<
-.c.eo: $(PFINCLUDES) pfdicdat.h
+%.eo: %.c $(PFINCLUDES) pfdicdat.h
$(COMPILE) $(EMBCCOPTS) -c -o $@ $<
.PHONY: all clean test
THEN
;
-
: VALUE
CREATE ( n <name> )
,
- immediate
DOES>
- state @
- IF
- [compile] aliteral
- compile @
- ELSE
- @
- THEN
+ @
;
: TO ( val <name> -- )
lv.compile.store
ELSE
find
- 1 = 0= abort" TO or -> before non-local or non-value"
+ 0= abort" not found"
>body \ point to data
state @
IF \ compiling ( -- pfa )
[compile] literal compile (local+!)
ELSE
find
- 1 = 0= abort" +-> before non-local or non-value"
+ 0= abort" not found"
>body \ point to data
state @
IF \ compiling ( -- pfa )
THEN
;
+privatize
: AUTO.INIT
auto.init
$ 20 constant FLAG_SMUDGE
: PRIVATE{
+ private-start @ 0= not abort" ERROR: Missing PRIVATIZE"
+ private-stop @ 0= not abort" ERROR: Missing PRIVATIZE"
latest private-start !
0 private-stop !
;
+
: }PRIVATE
- private-stop @ 0= not abort" Extra }PRIVATE"
+ private-stop @ 0= not abort" ERROR: Extra }PRIVATE"
latest private-stop !
;
+
: PRIVATIZE ( -- , smudge all words between PRIVATE{ and }PRIVATE )
- private-start @ 0= abort" Missing PRIVATE{"
- private-stop @ 0= abort" Missing }PRIVATE"
+ private-start @ 0= abort" ERROR: Missing PRIVATE{"
+ private-stop @ 0= abort" ERROR: Missing }PRIVATE"
private-stop @
BEGIN
dup private-start @ u> \ 19970701
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 =
;
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=