public final class BranchStructureIterator extends java.lang.Object implements ru.ispras.testbase.knowledge.iterator.Iterator<java.util.List<BranchEntry>>
BranchExecutionIterator
implements an iterator of valid branch structures for given
branch instructions (conditional and unconditional jumps, procedures calls, etc.).Modifier and Type | Class and Description |
---|---|
static class |
BranchStructureIterator.Flags |
Modifier and Type | Field and Description |
---|---|
static java.util.EnumSet<BranchStructureIterator.Flags> |
DEFAULT_FLAGS
Heuristics flags used by default.
|
Constructor and Description |
---|
BranchStructureIterator(int ifThenNumber,
int gotoNumber,
int blockNumber,
int slotNumber,
boolean delaySlot,
int minLength,
int maxLength,
int minBranchNumber,
int maxBranchNumber,
int maxBranchExecution) |
BranchStructureIterator(int ifThenNumber,
int gotoNumber,
int blockNumber,
int slotNumber,
boolean delaySlot,
int minLength,
int maxLength,
int minBranchNumber,
int maxBranchNumber,
int maxBranchExecution,
java.util.EnumSet<BranchStructureIterator.Flags> flags) |
Modifier and Type | Method and Description |
---|---|
BranchStructureIterator |
clone() |
boolean |
hasValue() |
void |
init() |
void |
next() |
void |
stop() |
java.util.List<BranchEntry> |
value() |
public static final java.util.EnumSet<BranchStructureIterator.Flags> DEFAULT_FLAGS
public BranchStructureIterator(int ifThenNumber, int gotoNumber, int blockNumber, int slotNumber, boolean delaySlot, int minLength, int maxLength, int minBranchNumber, int maxBranchNumber, int maxBranchExecution, java.util.EnumSet<BranchStructureIterator.Flags> flags)
public BranchStructureIterator(int ifThenNumber, int gotoNumber, int blockNumber, int slotNumber, boolean delaySlot, int minLength, int maxLength, int minBranchNumber, int maxBranchNumber, int maxBranchExecution)
public java.util.List<BranchEntry> value()
value
in interface ru.ispras.testbase.knowledge.iterator.Iterator<java.util.List<BranchEntry>>
public void init()
init
in interface ru.ispras.testbase.knowledge.iterator.Iterator<java.util.List<BranchEntry>>
public boolean hasValue()
hasValue
in interface ru.ispras.testbase.knowledge.iterator.Iterator<java.util.List<BranchEntry>>
public void next()
next
in interface ru.ispras.testbase.knowledge.iterator.Iterator<java.util.List<BranchEntry>>
public void stop()
stop
in interface ru.ispras.testbase.knowledge.iterator.Iterator<java.util.List<BranchEntry>>
public BranchStructureIterator clone()
clone
in interface ru.ispras.testbase.knowledge.iterator.Iterator<java.util.List<BranchEntry>>
clone
in class java.lang.Object