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, 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"]