provide defc for defining compiler words (def, const, var); clean-up
This commit is contained in:
parent
11c7ed9cf1
commit
fa086ade6a
2 changed files with 6 additions and 8 deletions
|
@ -130,8 +130,6 @@
|
|||
(register 'lit #'lit)
|
||||
(register 'wrap #'wrap)
|
||||
(register 'defer #'defer)
|
||||
(register 'getval #'getval)
|
||||
(register 'setval #'setval)
|
||||
(register 'reg #'do-reg)
|
||||
(register 'regc #'do-regc)
|
||||
|
||||
|
@ -177,7 +175,7 @@
|
|||
((null item))
|
||||
(funcall item))
|
||||
(setf (slot-value *forge-env* 'ip) old-ip)
|
||||
#+forge-trace (format t " - stack: ~a" (dstack))
|
||||
#+forge-trace (format t "~% - stack: ~A" (dstack))
|
||||
(dstack)))
|
||||
|
||||
(defun comp (slist)
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
(forge:setup-builtins)
|
||||
(test-iseq)
|
||||
(test-exec)
|
||||
;(format t "~%data-stack ~a" (dstack))
|
||||
(test-def)
|
||||
(test-const)
|
||||
(test-var)
|
||||
|
@ -36,23 +35,24 @@
|
|||
(== (car (forge:dstack)) 6))
|
||||
|
||||
(deftest test-def ()
|
||||
(forge:exec-str "(comp quote defer reg) quote def regc")
|
||||
;(forge:exec-str "(dup *) quote square reg")
|
||||
(forge:exec-str "(comp quote defer regc) quote defc regc")
|
||||
(forge:exec-str "(comp quote defer reg) defc def")
|
||||
(forge:exec-str "(dup *) def square")
|
||||
(forge:exec-str "7 square")
|
||||
(== (car (forge:dstack)) 49))
|
||||
|
||||
(deftest test-const ()
|
||||
(forge:exec-str "(defer wrap comp quote defer reg) quote const regc")
|
||||
(forge:exec-str "(defer wrap comp quote defer reg) defc const")
|
||||
(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 "(defer wrap defer wrap comp quote defer reg) defc var")
|
||||
(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