diff options
author | dos-reis <gdr@axiomatics.org> | 2011-11-07 08:52:50 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2011-11-07 08:52:50 +0000 |
commit | fe9dc717e927b11fd11489da7dca45912e87bb3b (patch) | |
tree | 5a8891a7eaf6272a519f3b68ea567ad3e1ea9701 /src/interp/lisplib.boot | |
parent | 0062eb960026efdf72e3ecb301aa46054e0d5ca2 (diff) | |
download | open-axiom-fe9dc717e927b11fd11489da7dca45912e87bb3b.tar.gz |
* interp/lisplib.boot (getConstructorOpsAndAtts): Fold content in
called. Remove.
(getFunctorOpsAndAtts): Simplify.
(getSlotFromFunctor): Rework.
* interp/define.boot (getInfovecCode): Bind $byteVec and
$byteAddress here.
(compDefineFunctor1): Not here.
Diffstat (limited to 'src/interp/lisplib.boot')
-rw-r--r-- | src/interp/lisplib.boot | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/interp/lisplib.boot b/src/interp/lisplib.boot index a7ef99c4..ac8c39e8 100644 --- a/src/interp/lisplib.boot +++ b/src/interp/lisplib.boot @@ -535,7 +535,9 @@ finalizeLisplib(ctor,libName) == writeCategory(ctor,dbCategory db,$libFile) lisplibWrite('"sourceFile",namestring _/EDITFILE,$libFile) lisplibWrite('"modemaps",dbModemaps db,$libFile) - opsAndAtts := getConstructorOpsAndAtts(form,kind,mm) + opsAndAtts := + kind = 'category => getCategoryOpsAndAtts form + getFunctorOpsAndAtts(form,mm.mmTarget) writeOperations(ctor,first opsAndAtts,$libFile) if kind='category then $NRTslot1PredicateList : local := [] @@ -569,24 +571,19 @@ getPartialConstructorModemapSig(c) == (s := getConstructorSignature c) => rest s throwEvalTypeMsg("S2IL0015",[c]) -getConstructorOpsAndAtts(form,kind,modemap) == - kind is 'category => getCategoryOpsAndAtts(form) - getFunctorOpsAndAtts(form,modemap) - getCategoryOpsAndAtts(catForm) == -- returns [operations,:attributes] of first catForm [transformOperationAlist getSlotFromCategoryForm(catForm,1), :getSlotFromCategoryForm(catForm,2)] -getFunctorOpsAndAtts(form,modemap) == - [transformOperationAlist getSlotFromFunctor(form,1,modemap), - :getSlotFromFunctor(form,2,modemap)] +getFunctorOpsAndAtts(form,target) == + [transformOperationAlist $lisplibOperationAlist, + :getSlotFromFunctor target] -getSlotFromFunctor([name,:args],slot,[[.,target,:argMml],:.]) == - slot = 1 => $lisplibOperationAlist +getSlotFromFunctor(target) == t := compMakeCategoryObject(target,$e) or systemErrorHere "getSlotFromFunctor" - t.expr.slot + categoryRef(t.expr,2) getSlot1 domainName == $e: local:= $CategoryFrame |