diff options
Diffstat (limited to 'src/interp/compiler.boot.pamphlet')
-rw-r--r-- | src/interp/compiler.boot.pamphlet | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/interp/compiler.boot.pamphlet b/src/interp/compiler.boot.pamphlet index 175eff35..e93b69c6 100644 --- a/src/interp/compiler.boot.pamphlet +++ b/src/interp/compiler.boot.pamphlet @@ -99,6 +99,12 @@ compMacro(form,m,e) == <<*>>= <<license>> +import '"c-util" +import '"pathname" +import '"category" +import '"modemap" +)package "BOOT" + compTopLevel(x,m,e) == --+ signals that target is derived from lhs-- see NRTmakeSlot1Info $NRTderivedTargetIfTrue: local := false @@ -208,7 +214,7 @@ compTypeOf(x:=[op,:argl],m,e) == hasFormalMapVariable(x, vl) == $formalMapVariables: local := vl null vl => false - ScanOrPairVec('hasone?,x) where + ScanOrPairVec(function hasone?,x) where hasone? x == MEMQ(x,$formalMapVariables) compWithMappingMode(x,m is ["Mapping",m',:sl],oldE) == @@ -375,9 +381,9 @@ convert(T,m) == mkUnion(a,b) == b="$" and $Rep is ["Union",:l] => b a is ["Union",:l] => - b is ["Union",:l'] => ["Union",:setUnion(l,l')] - ["Union",:setUnion([b],l)] - b is ["Union",:l] => ["Union",:setUnion([a],l)] + b is ["Union",:l'] => ["Union",:union(l,l')] + ["Union",:union([b],l)] + b is ["Union",:l] => ["Union",:union([a],l)] ["Union",a,b] maxSuperType(m,e) == @@ -1057,7 +1063,7 @@ compColon([":",f,t],m,e) == --if inside an expression, ":" means to convert to m "on faith" $lhsOfColon: local:= f t:= - atom t and (t':= ASSOC(t,getDomainsInScope e)) => t' + atom t and (t':= assoc(t,getDomainsInScope e)) => t' isDomainForm(t,e) and not $insideCategoryIfTrue => (if not member(t,getDomainsInScope e) then e:= addDomain(t,e); t) isDomainForm(t,e) or isCategoryForm(t,e) => t |