aboutsummaryrefslogtreecommitdiff
path: root/src/interp/compiler.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/compiler.boot')
-rw-r--r--src/interp/compiler.boot12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot
index 0ff039f3..2a3f413e 100644
--- a/src/interp/compiler.boot
+++ b/src/interp/compiler.boot
@@ -71,7 +71,7 @@ primitiveType: (%Maybe %Database,%Form,%Mode) -> %Mode
modeEqual: (%Form,%Form) -> %Boolean
hasUniqueCaseView: (%Form,%Mode,%Env) -> %Boolean
convertOrCroak: (%Triple,%Mode) -> %Maybe %Triple
-getFormModemaps: (%Form,%Env) -> %List %Modemap
+getFormModemaps: (%Maybe %Database,%Form,%Env) -> %List %Modemap
reshapeArgumentList: (%Form,%Sig) -> %Form
applyMapping: (%Form,%Mode,%Env,%List %Mode) -> %Maybe %Triple
@@ -525,14 +525,14 @@ compForm1(db,form is [op,:argl],m,e) ==
-- since addDomain refuses to add modemaps from Mapping
(domain is ['Mapping,:.]) and
(ans := compForm2(db,[op',:argl],m,e:= augModemapsFromDomain1(db,domain,domain,e),
- [x for x in getFormModemaps([op',:argl],e) | x.mmDC = domain])) => ans
+ [x for x in getFormModemaps(db,[op',:argl],e) | x.mmDC = domain])) => ans
ans := compForm2(db,[op',:argl],m,e:= addDomain(db,domain,e),
- [x for x in getFormModemaps([op',:argl],e) | x.mmDC = domain]) => ans
+ [x for x in getFormModemaps(db,[op',:argl],e) | x.mmDC = domain]) => ans
(op'="construct") and coerceable(domain,m,e) =>
(T:= comp([op',:argl],domain,e) or return nil; coerce(T,m))
nil
- T := compForm2(db,form,m,e,getFormModemaps(form,e)) => T
+ T := compForm2(db,form,m,e,getFormModemaps(db,form,e)) => T
--FIXME: remove next line when the parser is fixed.
form = $Zero or form = $One => nil
compToApply(op,argl,m,e)
@@ -634,9 +634,9 @@ compFormWithModemap(db,form,m,e,modemap) ==
++ of paramter types as arguments supplied to the form. A special
++ case is made for a modemap whose sole parameter type is a Tuple.
++ In that case, it matches any number of supplied arguments.
-getFormModemaps(form is [op,:argl],e) ==
+getFormModemaps(db,form is [op,:argl],e) ==
op is ["elt",domain,op1] and isDomainForm(domain,e) =>
- [x for x in getFormModemaps([op1,:argl],e) | x.mmDC = domain]
+ [x for x in getFormModemaps(db,[op1,:argl],e) | x.mmDC = domain]
op is [.,:.] => nil
modemapList := get(op,"modemap",e)
-- Within default implementations, modemaps cannot mention the