aboutsummaryrefslogtreecommitdiff
path: root/src/boot/ast.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-08-12 14:39:03 +0000
committerdos-reis <gdr@axiomatics.org>2011-08-12 14:39:03 +0000
commitb112067f55188644f3202ea0d992e81bacc64f04 (patch)
tree2c3f4e2c9e77ed6491a6c988470017a43089ad22 /src/boot/ast.boot
parent1fcea6ceeb3655d1196238588781cdba193f5589 (diff)
downloadopen-axiom-b112067f55188644f3202ea0d992e81bacc64f04.tar.gz
* boot/ast.boot (shoeCompTran1): Translate extended vector-forms.
* interp/c-util.boot: Use vector instead of LIST2VEC. * interp/define.boot: Likewise. * interp/i-coerce.boot: Likewise. * interp/i-coerfn.boot: Likewise. * interp/i-funsel.boot: Likewise. * interp/i-map.boot: Likewise. * interp/i-special.boot: Likewise. * interp/interop.boot: Likewise. * interp/nruncomp.boot: Likewise. * interp/slam.boot: Likewise.
Diffstat (limited to 'src/boot/ast.boot')
-rw-r--r--src/boot/ast.boot15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/boot/ast.boot b/src/boot/ast.boot
index f8718598..04a985ad 100644
--- a/src/boot/ast.boot
+++ b/src/boot/ast.boot
@@ -1024,10 +1024,19 @@ shoeCompTran1 x ==
x
-- literal vectors.
x is ['vector,elts] =>
- x.op := 'VECTOR
do
- elts is 'NIL => x.args := nil
- x.args := shoeCompTran1 elts.args -- elts.op is LIST
+ elts is 'NIL =>
+ x.op := 'VECTOR
+ x.args := nil
+ elts is ['LIST,:.] =>
+ x.op := 'VECTOR
+ x.args := shoeCompTran1 elts.args
+ elts isnt [.,:.] =>
+ elts := shoeCompTran1 elts
+ x.op := 'MAKE_-ARRAY
+ x.args := [['LIST_-LENGTH,elts],KEYWORD::INITIAL_-CONTENTS,elts]
+ x.op := 'COERCE
+ x.args := [shoeCompTran1 elts,quote 'VECTOR]
x
x is ['%Namespace,n] =>
n is "DOT" => "*PACKAGE*"