From ca3e5abb30e74b2b7a3265c382dea5346c730de1 Mon Sep 17 00:00:00 2001 From: kitty Date: Thu, 26 Feb 2026 21:03:27 +1100 Subject: EVALUATE use return stack --- jefs.fs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'jefs.fs') 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 \ \ 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 -- cgit v1.2.3