propagation.lp
No OneTemporary

File Metadata

Created
Sun, Apr 19, 4:06 PM

propagation.lp

%Propagates symbol bindings registered by dfa_propagation over dfa_uppy edges
%
% INPUT:
% dfa_propagation(X) - register propagated Ann
% bind(Symb, X) - initial symbol
%
% CALCULATED:
% dfa_uppy - UPdate or coPY
bind(SymbA, DfaAnn):- bind(SymbB, DfaAnn); dfa_propagation(DfaAnn);
1{dfa_uppy(SymbA, SymbB); dfa_uppy(SymbB,SymbA)};
v(SymbA); v(SymbB).
dfa_uppy(X, Y):- bind(X, dfa_uppy(Pseudo)); bind(Y, dfa_pseudo(Pseudo)).
dfa_uppy(X, Y):- dfa_alias(X, Y).
dfa_uppy(ArgFormal, ArgActual):- dfa_callargs(_,ArgFormal, ArgActual).
dfa_uppy(RetActual, RetFormal):-
dfa_callret(CallId, RetActual); dfa_callinstance(CallId, FnName);
dfa_fnret(FnName, RetFormal).

Event Timeline