work in progress: forge basics, testing
This commit is contained in:
parent
d2f708999f
commit
21843546fa
3 changed files with 33 additions and 10 deletions
|
@ -4,7 +4,8 @@
|
|||
|
||||
(defpackage :scopes/forge
|
||||
(:use :common-lisp)
|
||||
(:export #:hello #:new-forge-env #:exec #:add))
|
||||
(:export #:hello #:new-forge-env #:data-stack #:exec
|
||||
#:add))
|
||||
|
||||
(in-package :scopes/forge)
|
||||
|
||||
|
@ -12,15 +13,27 @@
|
|||
nil)
|
||||
|
||||
(defun exec (fe &rest code)
|
||||
nil)
|
||||
code
|
||||
fe)
|
||||
|
||||
(defun data-stack (fe)
|
||||
fe)
|
||||
|
||||
; forge primitives
|
||||
|
||||
(defun add (fe)
|
||||
0)
|
||||
(pushd (+ (popd fe) (popd fe)) fe ))
|
||||
|
||||
; dummy exampled, to be removed
|
||||
|
||||
(defun hello ()
|
||||
(format t "Hello Common Lisp - 2024-04-19"))
|
||||
|
||||
(defclass track () (
|
||||
(taskid :initarg :taskid)
|
||||
(username :initarg :username)))
|
||||
; internal definitions
|
||||
|
||||
(defun popd (fe)
|
||||
(pop fe))
|
||||
|
||||
(defun pushd (fe v)
|
||||
(push v fe))
|
||||
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
|
||||
(defpackage :scopes/test-forge
|
||||
(:use :common-lisp)
|
||||
(:local-nicknames (:scf :scopes/forge) (:sct :scopes/testing))
|
||||
(:local-nicknames (:scf :scopes/forge)
|
||||
(:sct :scopes/testing))
|
||||
(:export #:run))
|
||||
|
||||
(in-package :scopes/test-forge)
|
||||
|
@ -13,5 +14,8 @@
|
|||
(scf:hello)
|
||||
(let ((fe (scf:new-forge-env))
|
||||
(tst (sct:test-suite)))
|
||||
(scf:exec '(fe 4 2 scf:add))
|
||||
(scf:exec fe '(4 2 scf:add))
|
||||
(sct:assert-eql tst (car (scf:data-stack fe)) 6)
|
||||
(format t "~%tst ~a" tst)
|
||||
(sct:result tst)
|
||||
))
|
||||
|
|
10
testing.lisp
10
testing.lisp
|
@ -4,9 +4,15 @@
|
|||
|
||||
(defpackage :scopes/testing
|
||||
(:use :common-lisp)
|
||||
(:export #:test-suite))
|
||||
(:export #:test-suite #:assert-eql #:result))
|
||||
|
||||
(in-package :scopes/testing)
|
||||
|
||||
(defun test-suite ()
|
||||
nil)
|
||||
(vector nil))
|
||||
|
||||
(defun assert-eql (tst have wanted)
|
||||
(push (eql have wanted) (elt tst 0)))
|
||||
|
||||
(defun result (tst)
|
||||
(elt tst 0))
|
||||
|
|
Loading…
Add table
Reference in a new issue