31 - verified that continue generates correct code
This commit is contained in:
parent
4e5cff3d4a
commit
be34290180
34
mu.arc.t
34
mu.arc.t
|
@ -453,3 +453,37 @@
|
||||||
((integer 5) <- loadi 34)
|
((integer 5) <- loadi 34)
|
||||||
(reply)))
|
(reply)))
|
||||||
(prn "F - convert-braces balances curlies when converting continue"))
|
(prn "F - convert-braces balances curlies when converting continue"))
|
||||||
|
|
||||||
|
(clear)
|
||||||
|
(add-fns `((main ,@(convert-braces '(((integer 1) <- loadi 4)
|
||||||
|
((integer 2) <- loadi 1)
|
||||||
|
{ begin
|
||||||
|
((integer 2) <- add (integer 2) (integer 2))
|
||||||
|
{ begin
|
||||||
|
((boolean 3) <- neq (integer 1) (integer 2))
|
||||||
|
}
|
||||||
|
(continueif (boolean 3))
|
||||||
|
((integer 4) <- loadi 34)
|
||||||
|
}
|
||||||
|
(reply))))))
|
||||||
|
(run function*!main)
|
||||||
|
;? (prn memory*)
|
||||||
|
(if (~iso memory* (obj 1 4 2 4 3 nil 4 34))
|
||||||
|
(prn "F - continue correctly loops"))
|
||||||
|
|
||||||
|
(clear)
|
||||||
|
(add-fns `((main ,@(convert-braces '(((integer 1) <- loadi 4)
|
||||||
|
((integer 2) <- loadi 2)
|
||||||
|
{ begin
|
||||||
|
((integer 2) <- add (integer 2) (integer 2))
|
||||||
|
{ begin
|
||||||
|
((boolean 3) <- neq (integer 1) (integer 2))
|
||||||
|
}
|
||||||
|
(continueif (boolean 3))
|
||||||
|
((integer 4) <- loadi 34)
|
||||||
|
}
|
||||||
|
(reply))))))
|
||||||
|
(run function*!main)
|
||||||
|
;? (prn memory*)
|
||||||
|
(if (~iso memory* (obj 1 4 2 4 3 nil 4 34))
|
||||||
|
(prn "F - continue might never trigger"))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user