swap -
;
-: load ( addr n -- )
+: load ( addr n -- finalResult )
open-input-file
empty-parse-str
+ ok-symbol ( port res )
+
begin
- 2dup read-port
+ 2over read-port ( port res obj )
2dup EOF character-type objeq? if
- 2drop close-port
+ 2drop 2swap close-port
exit
then
- global-env obj@ eval
- 2drop
+ 2swap 2drop ( port obj )
+
+ global-env obj@ eval ( port res )
again
;
+:noname ( args -- finalResult )
+ 2dup 1 ensure-arg-count
+ car string-type ensure-arg-type
+
+ drop pair-type
+ pad charlist>cstr
+ pad swap load
+; make-primitive load
+
\ }}}
\ ---- REPL ----
again
;
-: test s" fact.scm" ;
-test load
-
forth definitions
\ vim:fdm=marker