summaryrefslogtreecommitdiff
path: root/jefs.fs
diff options
context:
space:
mode:
authorkitty <nepeta@canaglie.net>2026-02-26 21:03:27 +1100
committerkitty <nepeta@canaglie.net>2026-02-26 21:03:27 +1100
commitca3e5abb30e74b2b7a3265c382dea5346c730de1 (patch)
tree7948996d9190517d82842126fba7dc853a64468f /jefs.fs
parentdeb1ce7a9e44008608322bb1abd46bf3ca800440 (diff)
EVALUATE use return stack
Diffstat (limited to 'jefs.fs')
-rw-r--r--jefs.fs5
1 files changed, 1 insertions, 4 deletions
diff --git a/jefs.fs b/jefs.fs
index e832d94..0778fcc 100644
--- a/jefs.fs
+++ b/jefs.fs
@@ -1,6 +1,5 @@
\ i think something is going on with the stack. i dunno
\ things TODO:
-\ EVALUATE
\ DO LOOP
\ <builds does>
\ argc/argv
@@ -188,13 +187,11 @@ variable hld
: words latest @ begin ?dup 0<> while dup (words) @ repeat cr ;
: (evaluate) ( c-addr u -- ) 0 >in ! ( u ) #tib ! ( c-addr ) tib ! interpret ;
-: evaluate ( c-addr u -- ) >r >r tib @ #tib @ >in @ r> r> (evaluate) >in ! #tib ! tib ! ;
+: evaluate ( c-addr u -- ) tib @ >r #tib @ >r >in @ >r (evaluate) r> >in ! r> #tib ! r> tib ! ;
\ maybe the old TIB should be on retstack
\ so stack undeflows don't fuck with INTERPRET
: teststr3 s" 1 2 3 .s 2drop drop" ;
-\
teststr3 evaluate
.free
-words
bye