forge.exec: fix action selection using symbolp, lookup in scopes/forge package

This commit is contained in:
Helmut Merz 2024-04-20 15:36:56 +02:00
parent aa065dd283
commit 310837ab58
3 changed files with 9 additions and 9 deletions

View file

@ -14,9 +14,9 @@
(defun exec (fe code)
(dolist (x code)
(if (numberp x)
(pushd fe x)
(funcall x fe))))
(if (symbolp x)
(funcall (find-symbol (symbol-name x) :scopes/forge) fe)
(pushd fe x))))
(defmacro data-stack (fe)
`(elt ,fe 0))

View file

@ -13,8 +13,8 @@
(defun run ()
(let ((fe (scf:new-forge-env))
(tst (sct:test-suite)))
(scf:exec fe '(4 2 scf:add))
(sct:assert-eql tst (car (scf:data-stack fe)) 6)
;;(format t "~%fe ~a" fe)
(scf:exec fe '(4 2 add))
(sct:assert-eq tst (car (scf:data-stack fe)) 6)
;(format t "~%fe ~a" fe)
(sct:result tst)
))

View file

@ -4,15 +4,15 @@
(defpackage :scopes/testing
(:use :common-lisp)
(:export #:test-suite #:assert-eql #:result))
(:export #:test-suite #:assert-eq #:result))
(in-package :scopes/testing)
(defun test-suite ()
(vector nil))
(defun assert-eql (tst have wanted)
(push (eql have wanted) (result tst)))
(defun assert-eq (tst have wanted)
(push (equalp have wanted) (result tst)))
(defmacro result (tst)
`(elt ,tst 0))