aboutsummaryrefslogtreecommitdiff
path: root/src/interp
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-02-20 14:33:39 +0000
committerdos-reis <gdr@axiomatics.org>2011-02-20 14:33:39 +0000
commitcb1eff07e9bc02df65fd78b1dc6241f3fb07e95b (patch)
treeb026780521f7d7cf36a22fc913b925de65fd3404 /src/interp
parent7d15f46553324afd01352f85a6b6f57f259fd64a (diff)
downloadopen-axiom-cb1eff07e9bc02df65fd78b1dc6241f3fb07e95b.tar.gz
* interp/parse.boot (transSeq): Aggregate branches of toplevel
conditionals so that implications propagate down the pipe.
Diffstat (limited to 'src/interp')
-rw-r--r--src/interp/parse.boot2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/interp/parse.boot b/src/interp/parse.boot
index 5d2974c3..9a66be2b 100644
--- a/src/interp/parse.boot
+++ b/src/interp/parse.boot
@@ -390,6 +390,8 @@ transSeq l ==
["IF",decExitLevel a,decExitLevel b,transSeq tail]
item is ["IF",a,"%noBranch",["exit",1,b]] =>
["IF",decExitLevel a,transSeq tail,decExitLevel b]
+ item is ["IF",a,["exit",1,b],c] =>
+ ["IF",decExitLevel a,decExitLevel b,transSeq [c,:tail]]
(y:= transSeq tail) is ["SEQ",:s] => ["SEQ",item,:s]
["SEQ",item,["exit",1,incExitLevel y]]