Class Recursion<A extends it.unive.lisa.analysis.AbstractState<A>>
- java.lang.Object
-
- it.unive.lisa.interprocedural.context.recursion.Recursion<A>
-
- Type Parameters:
A- the type ofAbstractStatecontained into the analysis state
public class Recursion<A extends it.unive.lisa.analysis.AbstractState<A>> extends java.lang.ObjectA recursion happening in the program.
-
-
Constructor Summary
Constructors Constructor Description Recursion(it.unive.lisa.program.cfg.statement.call.Call invocation, ContextSensitivityToken invocationToken, it.unive.lisa.program.cfg.fixpoints.CFGFixpoint.CompoundState<A> entryState, it.unive.lisa.program.cfg.CFG recursionHead, java.util.Collection<it.unive.lisa.program.cfg.CodeMember> members)Builds the recursion.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(java.lang.Object obj)it.unive.lisa.program.cfg.fixpoints.CFGFixpoint.CompoundState<A>getEntryState()Yields the entry state (prestate ofgetInvocation()together with the poststates of its parameters) that was used to start this recursion.it.unive.lisa.program.cfg.statement.call.CallgetInvocation()Yields the call that started this recursion by callinggetRecursionHead().ContextSensitivityTokengetInvocationToken()Yields theContextSensitivityTokenthat was active whengetInvocation()was executed to start the recursion.java.util.Collection<it.unive.lisa.program.cfg.CodeMember>getMembers()Yields all theCodeMembers part of this recursion.it.unive.lisa.program.cfg.CFGgetRecursionHead()Yields the head of the recursion, that is, the first member that was invoked from outside the recursion bygetInvocation().inthashCode()java.lang.StringtoString()
-
-
-
Constructor Detail
-
Recursion
public Recursion(it.unive.lisa.program.cfg.statement.call.Call invocation, ContextSensitivityToken invocationToken, it.unive.lisa.program.cfg.fixpoints.CFGFixpoint.CompoundState<A> entryState, it.unive.lisa.program.cfg.CFG recursionHead, java.util.Collection<it.unive.lisa.program.cfg.CodeMember> members)Builds the recursion.- Parameters:
invocation- the call that started the recursioninvocationToken- the active token wheninvocationwas executedentryState- the entry state (prestate ofinvocationand poststates of its parameters) of the recursionrecursionHead- the member of the recursion that was invoked byinvocationmembers- the members that are part of the recursion
-
-
Method Detail
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
getInvocation
public it.unive.lisa.program.cfg.statement.call.Call getInvocation()
Yields the call that started this recursion by callinggetRecursionHead().- Returns:
- the call that invoked the recursion
-
getRecursionHead
public it.unive.lisa.program.cfg.CFG getRecursionHead()
Yields the head of the recursion, that is, the first member that was invoked from outside the recursion bygetInvocation().- Returns:
- the head of the recursion
-
getInvocationToken
public ContextSensitivityToken getInvocationToken()
Yields theContextSensitivityTokenthat was active whengetInvocation()was executed to start the recursion.- Returns:
- the token
-
getEntryState
public it.unive.lisa.program.cfg.fixpoints.CFGFixpoint.CompoundState<A> getEntryState()
Yields the entry state (prestate ofgetInvocation()together with the poststates of its parameters) that was used to start this recursion.- Returns:
- the entry state
-
getMembers
public java.util.Collection<it.unive.lisa.program.cfg.CodeMember> getMembers()
Yields all theCodeMembers part of this recursion.- Returns:
- the members
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-