-\ ---- Loading files ---- {{{
-
-: charlist>cstr ( charlist addr -- n )
-
- dup 2swap ( origaddr addr charlist )
-
- begin
- nil? false =
- while
- 2dup cdr 2swap car
- drop ( origaddr addr charlist char )
- -rot 2swap ( origaddr charlist addr char )
- over !
- 1+ -rot ( origaddr nextaddr charlist )
- repeat
-
- 2drop ( origaddr finaladdr )
- swap -
-;
-
-: load ( addr n -- finalResult )
- open-input-file
-
- empty-parse-str
-
- ok-symbol ( port res )
-
- begin
- 2over read-port ( port res obj )
-
- 2dup EOF character-type objeq? if
- 2drop 2swap close-port
- exit
- then
-
- 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
-
-\ }}}
-