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 ofAbstractState
contained into the analysis state
public class Recursion<A extends it.unive.lisa.analysis.AbstractState<A>> extends java.lang.Object
A 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 boolean
equals(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.Call
getInvocation()
Yields the call that started this recursion by callinggetRecursionHead()
.ContextSensitivityToken
getInvocationToken()
Yields theContextSensitivityToken
that was active whengetInvocation()
was executed to start the recursion.java.util.Collection<it.unive.lisa.program.cfg.CodeMember>
getMembers()
Yields all theCodeMember
s part of this recursion.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()
.int
hashCode()
java.lang.String
toString()
-
-
-
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 wheninvocation
was executedentryState
- the entry state (prestate ofinvocation
and poststates of its parameters) of the recursionrecursionHead
- the member of the recursion that was invoked byinvocation
members
- the members that are part of the recursion
-
-
Method Detail
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in 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 theContextSensitivityToken
that 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 theCodeMember
s part of this recursion.- Returns:
- the members
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-