diff options
author | dos-reis <gdr@axiomatics.org> | 2011-10-04 00:01:48 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2011-10-04 00:01:48 +0000 |
commit | 0204a2e9c993ee408d769cc6e2f91506b5699c81 (patch) | |
tree | d89e0a82d362e311218ce93d54b73454de6d8384 /src/interp/i-map.boot | |
parent | 3be2028e7626877113e9c63530b5aeb982dc337a (diff) | |
download | open-axiom-0204a2e9c993ee408d769cc6e2f91506b5699c81.tar.gz |
* boot/utility.boot (symbolAssoc): Rename from assocSymbol. Export.
* interp/functor.boot: Remove getAbbreviation, mkAbbrev, addsuffix.
* interp/sys-utility.boot (symbolAssoc): Remove as redundant.
(scalarTarget): New.
* interp/bc-matrix.boot: Use symbolTarget instead of symbolLassoc.
* interp/br-con.boot: Use QLASSQ instead of symbolTarget.
* interp/br-data.boot: Likewise.
* interp/br-op1.boot: Likewise.
* interp/br-prof.boot: Likewise.
* interp/br-saturn.boot: Likewise.
* interp/br-search.boot: Likewise.
* interp/buildom.boot: Likewise.
* interp/c-doc.boot: Likewise.
* interp/c-util.boot: Likewise.
* interp/cattable.boot: Likewise.
* interp/clam.boot: Likewise.
* interp/define.boot: Likewise.
* interp/format.boot: Likewise.
* interp/g-timer.boot: Likewise.
* interp/g-util.boot: Likewise.
* interp/ht-util.boot: Likewise.
* interp/htsetvar.boot: Likewise.
* interp/i-intern.boot: Likewise.
* interp/i-map.boot: Likewise.
* interp/i-object.boot: Likewise.
* interp/i-syscmd.boot: Likewise.
* interp/lisplib.boot: Likewise.
* interp/profile.boot: Likewise.
* interp/trace.boot: Likewise.
* interp/vmlisp.lisp (assoc): Tidy.
Diffstat (limited to 'src/interp/i-map.boot')
-rw-r--r-- | src/interp/i-map.boot | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/interp/i-map.boot b/src/interp/i-map.boot index 8261ac76..dcdf4cf8 100644 --- a/src/interp/i-map.boot +++ b/src/interp/i-map.boot @@ -786,13 +786,12 @@ mapRecurDepth(opName,opList,body) == -- expanding the bodies of maps called in body body isnt [.,:.] => 0 body is [op,:argl] => - argc:= + argc := argl isnt [.,:.] => 0 - argl => "MAX"/[mapRecurDepth(opName,opList,x) for x in argl] - 0 - symbolMember?(op,opList) => argc - op=opName => 1 + argc - (obj := get(op,'value,$e)) and objVal obj is ["%Map",:mapDef] => + "MAX"/[mapRecurDepth(opName,opList,x) for x in argl] + ident? op and symbolMember?(op,opList) => argc + ident? op and op = opName => 1 + argc + ident? op and (obj := get(op,'value,$e)) and objVal obj is ["%Map",:mapDef] => mapRecurDepth(opName,[op,:opList],getMapBody(op,mapDef)) + argc argc @@ -895,15 +894,15 @@ nonRecursivePart(opName, funBody) == expandRecursiveBody(alreadyExpanded, body) == -- replaces calls to other maps with their bodies body isnt [.,:.] => - (obj := get(body,'value,$e)) and objVal obj is ["%Map",:mapDef] and + ident? body and (obj := get(body,'value,$e)) and objVal obj is ["%Map",:mapDef] and ((numMapArgs mapDef) = 0) => getMapBody(body,mapDef) body body is [op,:argl] => - not symbolMember?(op,alreadyExpanded) => + ident? op and not symbolMember?(op,alreadyExpanded) => (obj := get(op,'value,$e)) and objVal obj is ["%Map",:mapDef] => - newBody:= getMapBody(op,mapDef) + newBody := getMapBody(op,mapDef) for arg in argl for var in $FormalMapVariableList repeat - newBody:=MSUBST(arg,var,newBody) + newBody := substitute(arg,var,newBody) expandRecursiveBody([op,:alreadyExpanded],newBody) [op,:[expandRecursiveBody(alreadyExpanded,arg) for arg in argl]] [op,:[expandRecursiveBody(alreadyExpanded,arg) for arg in argl]] |