commander-s/scheme/eval-environment.scm

30 lines
778 B
Scheme

(define (init-evaluation-environment package)
(let ((structure (reify-structure package)))
(load-structure structure)
(rt-structure->environment structure)))
(define *evaluation-environment*)
(define (set-evaluation-package! package-name)
(set! *evaluation-environment*
(init-evaluation-environment package-name)))
(define (evaluation-environment)
*evaluation-environment*)
(define (read-sexp-from-string string)
(let ((string-port (open-input-string string)))
(read string-port)))
(define (eval-string str)
(with-inspector-handler
(lambda ()
(eval (read-sexp-from-string str)
(evaluation-environment)))))
(define (eval-s-expr s-expr)
(with-inspector-handler
(lambda ()
(eval s-expr (evaluation-environment)))))