aboutsummaryrefslogtreecommitdiff
path: root/src/boot/ast.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-04-20 23:31:24 +0000
committerdos-reis <gdr@axiomatics.org>2011-04-20 23:31:24 +0000
commit1ca37b944b566ef3f0479d4c2fe6895e9fbd3785 (patch)
treee4d75111b770366bac08174a5bf47f4bdaaee1eb /src/boot/ast.boot
parent1e67a3445ddda759c38b455494350ed00390d73f (diff)
downloadopen-axiom-1ca37b944b566ef3f0479d4c2fe6895e9fbd3785.tar.gz
* interp/sys-utility.boot (substitute): Define.
(substitute!): Likewise. * boot/utility.boot: Do not rely on tail recursion removal. * boot/tokens.boot: Don't translate substitute and substitute!. * boot/ast.boot (bfLp1): Tidy.
Diffstat (limited to 'src/boot/ast.boot')
-rw-r--r--src/boot/ast.boot4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/boot/ast.boot b/src/boot/ast.boot
index 719d583d..3e0fdc5d 100644
--- a/src/boot/ast.boot
+++ b/src/boot/ast.boot
@@ -411,7 +411,9 @@ bfLp1(iters,body)==
value :=
value = nil => "NIL"
first value
- exits := ["COND",[bfOR exits,["RETURN",value]],['T,nbody]]
+ exits :=
+ exits = nil => nbody
+ ["COND",[bfOR exits,["RETURN",value]],['T,nbody]]
loop := ["LOOP",exits,:sucs]
if vars then loop :=
["LET",[[v, i] for v in vars for i in inits], loop]