diff options
author | dos-reis <gdr@axiomatics.org> | 2011-04-20 23:31:24 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2011-04-20 23:31:24 +0000 |
commit | 1ca37b944b566ef3f0479d4c2fe6895e9fbd3785 (patch) | |
tree | e4d75111b770366bac08174a5bf47f4bdaaee1eb /src/boot/ast.boot | |
parent | 1e67a3445ddda759c38b455494350ed00390d73f (diff) | |
download | open-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.boot | 4 |
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] |