aboutsummaryrefslogtreecommitdiff
path: root/src/interp/i-analy.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2008-09-24 22:42:55 +0000
committerdos-reis <gdr@axiomatics.org>2008-09-24 22:42:55 +0000
commite2b728ff9a53eb2ff4518ad10beb649b5e636f74 (patch)
treee517298dcf8a392a14fc982e84c333abc6f56e5f /src/interp/i-analy.boot
parent0f3130aad8de041f2ddda3acd8a9ef5b931027ec (diff)
downloadopen-axiom-e2b728ff9a53eb2ff4518ad10beb649b5e636f74.tar.gz
* interp/i-analy.boot (putCallInfo): New.
(bottomUp): Use it. * interp/i-spec1.boot (upand): Likewise. (upor): Likewise. (upcase): Likewise. * interp/i-spec2.boot (uperror): Likewise.
Diffstat (limited to 'src/interp/i-analy.boot')
-rw-r--r--src/interp/i-analy.boot11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/interp/i-analy.boot b/src/interp/i-analy.boot
index d288eb80..26a1309d 100644
--- a/src/interp/i-analy.boot
+++ b/src/interp/i-analy.boot
@@ -52,6 +52,13 @@ $inRetract := false
--% Interpreter Analysis Functions
+++ Record calling context information in the VAT `t'.
+putCallInfo(t,op,arg,nargs) ==
+ putAtree(t,"callingFunction",op)
+ putAtree(t,"argumentNumber",arg)
+ putAtree(t,"totalArgs",nargs)
+ t
+
getMinimalVariableTower(var,t) ==
-- gets the minimal polynomial subtower of t that contains the
-- given variable. Returns NIL if none.
@@ -228,9 +235,7 @@ bottomUp t ==
(null dol) and (fn:= GETL(opName,"up")) and (u:= FUNCALL(fn, t)) => u
nargs := #argl
if opName then for x in argl for i in 1.. repeat
- putAtree(x,'callingFunction,opName)
- putAtree(x,'argumentNumber,i)
- putAtree(x,'totalArgs,nargs)
+ putCallInfo(x,opName,i,nargs)
if tar then pushDownTargetInfo(opName,tar,argl)