diff options
author | dos-reis <gdr@axiomatics.org> | 2011-08-12 14:39:03 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2011-08-12 14:39:03 +0000 |
commit | b112067f55188644f3202ea0d992e81bacc64f04 (patch) | |
tree | 2c3f4e2c9e77ed6491a6c988470017a43089ad22 /src/boot/ast.boot | |
parent | 1fcea6ceeb3655d1196238588781cdba193f5589 (diff) | |
download | open-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.boot | 15 |
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*" |