simple var implementation working
This commit is contained in:
parent
c0f51af40d
commit
11c7ed9cf1
2 changed files with 14 additions and 0 deletions
|
@ -124,10 +124,14 @@
|
|||
(reg swap (let ((a (popd)) (b (popd))) (pushd a) (pushd b)))
|
||||
(reg ? (format t "~a~%" (popd)))
|
||||
(reg ?? (format t "~a~%" (dstack)))
|
||||
(reg get (pushd (cadr (popd))))
|
||||
(reg set (setf (cadr (popd)) (popd)))
|
||||
|
||||
(register 'lit #'lit)
|
||||
(register 'wrap #'wrap)
|
||||
(register 'defer #'defer)
|
||||
(register 'getval #'getval)
|
||||
(register 'setval #'setval)
|
||||
(register 'reg #'do-reg)
|
||||
(register 'regc #'do-regc)
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
;(format t "~%data-stack ~a" (dstack))
|
||||
(test-def)
|
||||
(test-const)
|
||||
(test-var)
|
||||
(t:show-result)))
|
||||
|
||||
(deftest test-iseq ()
|
||||
|
@ -46,3 +47,12 @@
|
|||
(forge:exec-str "11 const eleven")
|
||||
(forge:exec-str "eleven square")
|
||||
(== (car (forge:dstack)) 121))
|
||||
|
||||
(deftest test-var ()
|
||||
(forge:exec-str "(defer wrap defer wrap comp quote defer reg) quote var regc")
|
||||
(forge:exec-str "7 var myvar")
|
||||
(forge:exec-str "myvar get square")
|
||||
(== (car (forge:dstack)) 49)
|
||||
(forge:exec-str "8 myvar set")
|
||||
(forge:exec-str "myvar get square")
|
||||
(== (car (forge:dstack)) 64))
|
||||
|
|
Loading…
Add table
Reference in a new issue