Expdata-xform-rec-calls
Transform all the calls of old.
- Signature
(expdata-xform-rec-calls term old$ arg-surjmaps res-surjmaps new$)
→
new-term
- Arguments
- term — Guard (pseudo-termp term).
- old$ — Guard (symbolp old$).
- arg-surjmaps — Guard (expdata-symbol-surjmap-alistp arg-surjmaps).
- res-surjmaps — Guard (expdata-pos-surjmap-alistp res-surjmaps).
- new$ — Guard (symbolp new$).
Turn each call (old updatej-x1 ... updatej-xn) inside a term
into one of the following:
- (new (forth1 updatej-x1) ... (forthn updatej-xn)),
if no results are transformed.
- (back_r1 (new (forth1 updatej-x1) ... (forthn updatej-xn))),
if old is single-valued and its result is transformed.
- (mv-let (y1 ... ym)
(new (forth1 updatej-x1) ... (forthn updatej-xn))
(mv (back_r1 y1) ... (back_rm ym))),
if old is multi-valued and some of its results are transformed.
This term transformation is an intermediate step
in the construction of the body of new from the body of old.
Subtopics
- Expdata-xform-rec-calls-lst