forge/sf: const and var working
This commit is contained in:
parent
6bf62fa39d
commit
78b7eb0e1b
2 changed files with 18 additions and 7 deletions
|
@ -148,8 +148,8 @@
|
||||||
#:? #:??
|
#:? #:??
|
||||||
#:ptr #:get #:put
|
#:ptr #:get #:put
|
||||||
#:in #:next
|
#:in #:next
|
||||||
#:call #:call-if #:call-while #:comp
|
#:call #:call-if #:call-while #:val
|
||||||
#:<comp #:reg #:regc #:/> #:val))
|
#:<comp #:reg #:regc #:/>))
|
||||||
|
|
||||||
(in-package :sf-builtin)
|
(in-package :sf-builtin)
|
||||||
|
|
||||||
|
@ -188,7 +188,7 @@
|
||||||
(f:reg 'call #'(lambda () (f:call (popd))))
|
(f:reg 'call #'(lambda () (f:call (popd))))
|
||||||
(f:reg 'call-if #'call-if)
|
(f:reg 'call-if #'call-if)
|
||||||
(f:reg 'call-while #'call-while)
|
(f:reg 'call-while #'call-while)
|
||||||
(f:reg 'comp #'(lambda () (f:comp-item (popd))))
|
(f:reg 'val #'(lambda () (f:pushd (list #'f:next (f:popd)))))
|
||||||
|
|
||||||
(f:reg '<comp #'f:comp-input)
|
(f:reg '<comp #'f:comp-input)
|
||||||
|
|
||||||
|
@ -197,6 +197,4 @@
|
||||||
|
|
||||||
(f:reg '/> #'(lambda () (iter:stop f:*input*)) 'f:comp-word)
|
(f:reg '/> #'(lambda () (iter:stop f:*input*)) 'f:comp-word)
|
||||||
|
|
||||||
(f:reg 'val #'(lambda () (f:pushd (list #'f:next (f:popd)))))
|
|
||||||
|
|
||||||
;;;; forge-code word definitions
|
;;;; forge-code word definitions
|
||||||
|
|
|
@ -18,7 +18,8 @@
|
||||||
(progn
|
(progn
|
||||||
;(forge:setup-builtins)
|
;(forge:setup-builtins)
|
||||||
(test-exec)
|
(test-exec)
|
||||||
(test-def)))
|
(test-def)
|
||||||
|
(test-val)))
|
||||||
(util:lgi (forge:stack forge:*forge-env*))
|
(util:lgi (forge:stack forge:*forge-env*))
|
||||||
(t:show-result)))
|
(t:show-result)))
|
||||||
|
|
||||||
|
@ -39,4 +40,16 @@
|
||||||
(== (forge:popd) 27))
|
(== (forge:popd) 27))
|
||||||
|
|
||||||
(deftest test-val ()
|
(deftest test-val ()
|
||||||
(forge:exec-list '(<def const val in reg />)))
|
(forge:exec-list '(<def const val in reg />))
|
||||||
|
(forge:exec-list '(7 const seven))
|
||||||
|
(forge:exec-list '(seven square))
|
||||||
|
(== (forge:popd) 49)
|
||||||
|
(forge:exec-list '(<def var ptr const />))
|
||||||
|
(forge:exec-list '(3 var myvar))
|
||||||
|
(forge:exec-list '(myvar get))
|
||||||
|
(== (forge:popd) 3)
|
||||||
|
(forge:exec-list '(42 myvar put))
|
||||||
|
(forge:exec-list '(myvar get))
|
||||||
|
(== (forge:popd) 42)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue