From c3d777e9c211c6fb32671c6334d9863685fb44b6 Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Sun, 23 Nov 2014 06:12:15 -0800 Subject: 301 - yes, close-offset simplifies nicely --- mu.arc | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/mu.arc b/mu.arc index b874bee1..a481c1ea 100644 --- a/mu.arc +++ b/mu.arc @@ -750,25 +750,21 @@ (++ pc)))))))) (def close-offset (pc locs) + (point return ;? (tr "close " pc " " locs) - (let close 0 - (with (stacksize 0 - done nil) - (each (state loc) locs -;? (tr stacksize "/" done " " state " " loc) - (if (<= loc pc) - nil ; do nothing - (no done) - (do -;? (tr "process " stacksize loc) - (if (is 'open state) (++ stacksize) (-- stacksize)) - ; last time -;? (tr "process2 " stacksize loc) - (when (is -1 stacksize) -;? (tr "close now " loc) - (= close loc) - (set done)))))) - (- close pc 1))) + (let stacksize 0 + (each (state loc) locs + (point continue +;? (tr stacksize "/" done " " state " " loc) + (when (<= loc pc) + (continue)) +;? (tr "process " stacksize loc) + (if (is 'open state) (++ stacksize) (-- stacksize)) + ; last time +;? (tr "process2 " stacksize loc) + (when (is -1 stacksize) +;? (tr "close now " loc) + (return (- loc pc 1)))))))) ;; convert symbolic names to raw memory locations -- cgit 1.4.1-2-gfad0