aboutsummaryrefslogtreecommitdiff
path: root/src/interp/modemap.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2008-08-29 09:25:35 +0000
committerdos-reis <gdr@axiomatics.org>2008-08-29 09:25:35 +0000
commit16636d2429fafcd58c40df7cd994a7e6d6298c41 (patch)
tree927eff35fa5145f3a55859b10e2b94d6676f7a0b /src/interp/modemap.boot
parent4c58515e823f4538b14e6c6da821322eb5c71744 (diff)
downloadopen-axiom-16636d2429fafcd58c40df7cd994a7e6d6298c41.tar.gz
* interp/lisplib.boot (augModemapsFromDomain1): Move to modemap.boot
(mkEvalableCategoryForm): Move to define.boot
Diffstat (limited to 'src/interp/modemap.boot')
-rw-r--r--src/interp/modemap.boot13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/interp/modemap.boot b/src/interp/modemap.boot
index 2eafb6ad..e35d7bb6 100644
--- a/src/interp/modemap.boot
+++ b/src/interp/modemap.boot
@@ -240,7 +240,18 @@ augModemapsFromDomain(name,functorForm,e) ==
if name is ["Union",:dl] then for d in stripUnionTags dl
repeat e:= addDomain(d,e)
augModemapsFromDomain1(name,functorForm,e)
- --see LISPLIB BOOT
+
+augModemapsFromDomain1(name,functorForm,e) ==
+ GETL(KAR functorForm,"makeFunctionList") =>
+ addConstructorModemaps(name,functorForm,e)
+ atom functorForm and (catform:= getmode(functorForm,e)) =>
+ augModemapsFromCategory(name,name,functorForm,catform,e)
+ mappingForm:= getmodeOrMapping(KAR functorForm,e) =>
+ ["Mapping",categoryForm,:functArgTypes]:= mappingForm
+ catform:= substituteCategoryArguments(rest functorForm,categoryForm)
+ augModemapsFromCategory(name,name,functorForm,catform,e)
+ stackMessage('"%1pb is an unknown mode",[functorForm])
+ e
substituteCategoryArguments(argl,catform) ==
argl:= substitute("$$","$",argl)