aboutsummaryrefslogtreecommitdiff
path: root/src/boot/ast.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/boot/ast.boot')
-rw-r--r--src/boot/ast.boot12
1 files changed, 3 insertions, 9 deletions
diff --git a/src/boot/ast.boot b/src/boot/ast.boot
index 1e45f7f2..bc444a4e 100644
--- a/src/boot/ast.boot
+++ b/src/boot/ast.boot
@@ -370,18 +370,12 @@ bfDTuple x ==
bfCollect(y,itl) ==
y is ["COLON",a] =>
a is ['CONS,:.] or a is ['LIST,:.] =>
- bfDoCollect(a,itl,'lastNode,nil)
- bfListReduce('APPEND,['reverse,a],itl)
+ bfDoCollect(a,itl,'lastNode,'skipNil)
+ bfDoCollect(['copyList,a],itl,'lastNode,'skipNil)
y is ["TUPLE",:.] =>
- bfListReduce('APPEND,['reverse,bfConstruct y],itl)
+ bfDoCollect(bfConstruct y,itl,'lastNode,'skipNil)
bfDoCollect(['CONS,y,'NIL],itl,'CDR,nil)
-bfListReduce(op,y,itl)==
- g := bfGenSymbol()
- body := ['SETQ,g,[op,y,g]]
- extrait := [[[g],[nil],[],[],[],[['reverse!,g]]]]
- bfLp2(extrait,itl,body)
-
bfMakeCollectInsn(expr,prev,head,adv) ==
firstTime := bfMKPROGN
[['SETQ,head,expr],['SETQ,prev,(adv is 'CDR => head; [adv,head])]]