aboutsummaryrefslogtreecommitdiff
path: root/src/boot/ast.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-05-15 16:56:22 +0000
committerdos-reis <gdr@axiomatics.org>2011-05-15 16:56:22 +0000
commit8cf4c7d7040078b651859fbd998f6bbf7b68127e (patch)
tree478d9f7f40133f10583a0538c8a3ee28262b023f /src/boot/ast.boot
parente3790da8fee54ede09e8126213a10da0aa555d06 (diff)
downloadopen-axiom-8cf4c7d7040078b651859fbd998f6bbf7b68127e.tar.gz
* boot/ast.boot (shoeCompTran1): Don't indiscriminately walk CASE
forms. Translate %Namespace forms too. * boot/parser.boot (bpApplication): Include Namespace too.
Diffstat (limited to 'src/boot/ast.boot')
-rw-r--r--src/boot/ast.boot12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/boot/ast.boot b/src/boot/ast.boot
index 32d6af8d..2ab77036 100644
--- a/src/boot/ast.boot
+++ b/src/boot/ast.boot
@@ -969,6 +969,12 @@ shoeCompTran1 x ==
x
U := first x
U is "QUOTE" => x
+ x is ["CASE",y,:zs] =>
+ second(x) := shoeCompTran1 y
+ while zs ~= nil repeat
+ second(first zs) := shoeCompTran1 second first zs
+ zs := rest zs
+ x
x is ["L%T",l,r] =>
x.op := "SETQ"
third(x) := shoeCompTran1 r
@@ -998,6 +1004,9 @@ shoeCompTran1 x ==
-- literal vectors.
x is ['vector,['LIST,:args]] => (x.op := 'VECTOR; x.args := args; x)
x is ['vector,'NIL] => (x.op := 'VECTOR; x.args := nil; x)
+ x is ['%Namespace,n] =>
+ n is "DOT" => "*PACKAGE*"
+ ["FIND-PACKAGE",symbolName n]
x.first := shoeCompTran1 first x
x.rest := shoeCompTran1 rest x
x
@@ -1151,6 +1160,9 @@ bfMain(auxfn,op)==
["QUOTE", op],["QUOTE",'cacheInfo]],["QUOTE", cacheVector]]]
+bfNamespace x ==
+ ['%Namespace,x]
+
bfNameOnly: %Thing -> %Form
bfNameOnly x==
x is "t" => ["T"]