From be34290180293f38da1bb51b60181591ccf4fe7e Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Sun, 20 Jul 2014 01:34:35 -0700 Subject: [PATCH] 31 - verified that continue generates correct code --- mu.arc.t | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/mu.arc.t b/mu.arc.t index 1a8e7f6e..a347ac9f 100644 --- a/mu.arc.t +++ b/mu.arc.t @@ -453,3 +453,37 @@ ((integer 5) <- loadi 34) (reply))) (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"))