forge: add exec-str function
This commit is contained in:
parent
dff1de06a8
commit
d3057ff9d7
3 changed files with 11 additions and 2 deletions
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
(defpackage :scopes/forge
|
(defpackage :scopes/forge
|
||||||
(:use :common-lisp)
|
(:use :common-lisp)
|
||||||
(:export #:forge-env #:data-stack #:exec))
|
(:export #:forge-env #:data-stack #:exec #:exec-str))
|
||||||
|
|
||||||
(in-package :scopes/forge)
|
(in-package :scopes/forge)
|
||||||
|
|
||||||
|
@ -20,6 +20,10 @@
|
||||||
(defun forge-env ()
|
(defun forge-env ()
|
||||||
(make-instance 'forge-env))
|
(make-instance 'forge-env))
|
||||||
|
|
||||||
|
(defun exec-str (fe s)
|
||||||
|
(exec fe (read-from-string
|
||||||
|
(concatenate 'string "(" s ")"))))
|
||||||
|
|
||||||
(defun exec (fe code)
|
(defun exec (fe code)
|
||||||
(dolist (x code)
|
(dolist (x code)
|
||||||
(if (symbolp x)
|
(if (symbolp x)
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
(:file "testing")
|
(:file "testing")
|
||||||
(:file "test/test-forge" :depends-on ("testing" "forge/forge")))
|
(:file "test/test-forge" :depends-on ("testing" "forge/forge")))
|
||||||
|
|
||||||
:long-description "scopes: generic data processingg facilities")
|
:long-description "scopes: generic data processing facilities")
|
||||||
;;#.(uiop:read-file-string
|
;;#.(uiop:read-file-string
|
||||||
;; (uiop:subpathname *load-pathname* "README.md")))
|
;; (uiop:subpathname *load-pathname* "README.md")))
|
||||||
;;:in-order-to ((test-op (test-op "scopes/test"))))
|
;;:in-order-to ((test-op (test-op "scopes/test"))))
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
(test-exec tst fe)
|
(test-exec tst fe)
|
||||||
;(format t "~%data-stack ~a" (data-stack fe))
|
;(format t "~%data-stack ~a" (data-stack fe))
|
||||||
(test-def tst fe)
|
(test-def tst fe)
|
||||||
|
(test-exec-str tst fe)
|
||||||
(sct:result tst)))
|
(sct:result tst)))
|
||||||
|
|
||||||
(defun test-exec (tst fe)
|
(defun test-exec (tst fe)
|
||||||
|
@ -27,3 +28,7 @@
|
||||||
(scf:exec fe '(7 square))
|
(scf:exec fe '(7 square))
|
||||||
(sct:assert-eq tst (car (scf:data-stack fe)) 49))
|
(sct:assert-eq tst (car (scf:data-stack fe)) 49))
|
||||||
|
|
||||||
|
(defun test-exec-str (tst fe)
|
||||||
|
(scf:exec-str fe "16 square")
|
||||||
|
(sct:assert-eq tst (car (scf:data-stack fe)) 256))
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue