mu/mu.arc.t

98 lines
2.0 KiB
Perl
Raw Normal View History

2014-07-06 07:07:03 +00:00
(load "mu.arc")
2014-07-06 08:41:37 +00:00
(clear)
(add-fns '((test1
2014-07-06 07:07:03 +00:00
(1 <- loadi 1)
(2 <- loadi 3)
2014-07-06 08:41:37 +00:00
(3 <- add 1 2))))
(run function*!test1)
2014-07-06 07:07:03 +00:00
(if (~iso memory* (obj 1 1 2 3 3 4))
(prn "F - load and add instructions work"))
2014-07-06 08:53:18 +00:00
(clear)
(add-fns
'((add-fn
(3 <- add 1 2))
(main
(1 <- loadi 1)
(2 <- loadi 3)
2014-07-06 09:06:42 +00:00
(add-fn))))
2014-07-06 08:53:18 +00:00
(run function*!main)
;? (prn memory*)
(if (~iso memory* (obj 1 1 2 3 3 4))
(prn "F - compound functions work"))
2014-07-06 08:57:47 +00:00
(clear)
(add-fns
'((add-fn
(3 <- add 1 2)
2014-07-06 09:06:42 +00:00
(return)
2014-07-06 08:57:47 +00:00
(4 <- loadi 34))
(main
(1 <- loadi 1)
(2 <- loadi 3)
2014-07-06 09:06:42 +00:00
(add-fn))))
2014-07-06 08:57:47 +00:00
(run function*!main)
;? (prn memory*)
(if (~iso memory* (obj 1 1 2 3 3 4))
(prn "F - early return works"))
;? (quit)
2014-07-06 09:19:32 +00:00
(clear)
(add-fns
'((add-fn
(4 <- read)
(5 <- read)
(3 <- add 4 5)
(return)
(4 <- loadi 34))
(main
(1 <- loadi 1)
(2 <- loadi 3)
(add-fn 1 2)
)))
2014-07-06 09:19:32 +00:00
(run function*!main)
;? (prn memory*)
(if (~iso memory* (obj 1 1 2 3 3 4
; add-fn's temporaries
4 1 5 3))
(prn "F - parameterized compound fn"))
(clear)
(add-fns
'((add-fn
(4 <- read)
(5 <- read)
(6 <- add 4 5)
(return 6)
(4 <- loadi 34))
(main
(1 <- loadi 1)
(2 <- loadi 3)
(3 <- add-fn 1 2))))
(run function*!main)
;? (prn memory*)
(if (~iso memory* (obj 1 1 2 3 3 4
; add-fn's temporaries
4 1 5 3 6 4))
(prn "F - parameterized compound fn with return value"))
2014-07-06 09:35:45 +00:00
(clear)
(add-fns
'((add-fn
(4 <- read)
(5 <- read)
(6 <- add 4 5)
(return 6 5)
(4 <- loadi 34))
(main
(1 <- loadi 1)
(2 <- loadi 3)
(3 7 <- add-fn 1 2))))
(run function*!main)
;? (prn memory*)
(if (~iso memory* (obj 1 1 2 3 3 4 7 3
; add-fn's temporaries
4 1 5 3 6 4))
(prn "F - parameterized compound fn with multiple return values"))