public final class Template
extends java.lang.Object
Template
builds a test template's representation and passes it for further processing.Modifier and Type | Class and Description |
---|---|
class |
Template.BlockHolder |
static interface |
Template.Processor |
static class |
Template.SectionKind |
Constructor and Description |
---|
Template(EngineContext context,
Template.Processor processor) |
Modifier and Type | Method and Description |
---|---|
void |
addAllocatorAction(Primitive primitive,
java.lang.String kind,
boolean value,
boolean applyToAll) |
void |
addBlockConstraint(Situation constraint) |
void |
addDirective(Directive directive,
Where where) |
void |
addLabel(java.lang.String name,
boolean global) |
void |
addNumericLabel(int index) |
void |
addOutput(Output output) |
void |
addPreparatorCall(Primitive targetMode,
java.math.BigInteger value,
java.lang.String preparatorName,
java.lang.String variantName) |
void |
addPreparatorCall(Primitive targetMode,
Value value,
java.lang.String preparatorName,
java.lang.String variantName) |
void |
addStream(java.lang.String startLabelName,
Primitive dataSource,
Primitive indexSource,
int length) |
void |
addWeakLabel(java.lang.String name) |
void |
beginAttributes(MapBuilder builder) |
BlockBuilder |
beginBlock(Block.Kind kind) |
BufferPreparatorBuilder |
beginBufferPreparator(java.lang.String bufferId) |
DataSectionBuilder |
beginData(boolean isGlobalArgument,
boolean isSeparateFile) |
void |
beginEpilogue() |
ExceptionHandlerBuilder |
beginExceptionHandler(java.lang.String id) |
void |
beginMainSection() |
MemoryPreparatorBuilder |
beginMemoryPreparator(int dataSize) |
void |
beginPostSection() |
PreparatorBuilder |
beginPreparator(java.lang.String targetName,
boolean isComparator) |
void |
beginPreparatorVariant(java.lang.String name,
java.math.BigInteger bias) |
void |
beginPreSection() |
void |
beginPrologue() |
void |
beginSection(java.lang.String name,
java.lang.String prefix,
java.math.BigInteger pa,
java.math.BigInteger va,
java.lang.String args,
boolean file) |
void |
beginSectionData(java.lang.String prefix,
java.math.BigInteger pa,
java.math.BigInteger va,
java.lang.String args) |
void |
beginSectionText(java.lang.String prefix,
java.math.BigInteger pa,
java.math.BigInteger va,
java.lang.String args) |
void |
beginStreamInitMethod() |
StreamPreparatorBuilder |
beginStreamPreparator(java.lang.String dataModeName,
java.lang.String indexModeName) |
void |
beginStreamReadMethod() |
void |
beginStreamWriteMethod() |
MetaOperation |
chooseMetaOperationFromGroup(java.lang.String name) |
void |
defineGroup(java.lang.String name,
ru.ispras.fortress.randomizer.Variate<java.lang.String> variate) |
void |
endAttributes() |
Template.BlockHolder |
endBlock() |
void |
endBufferPreparator() |
void |
endBuildingCall() |
void |
endData() |
void |
endEpilogue() |
void |
endExceptionHandler() |
void |
endMainSection() |
void |
endMemoryPreparator() |
void |
endPostSection() |
void |
endPreparator() |
void |
endPreparatorVariant() |
void |
endPreSection() |
void |
endPrologue() |
void |
endSection() |
void |
endStreamMethod() |
void |
endStreamPreparator() |
void |
generateData(java.math.BigInteger address,
java.lang.String labelName,
java.lang.String typeId,
int length,
java.lang.String method,
boolean isSeparateFile) |
java.math.BigInteger |
getAddressForLabel(java.lang.String label) |
DataManager |
getDataManager() |
Primitive |
getDataSource() |
ru.ispras.fortress.randomizer.Variate<Situation> |
getDefaultSituation(java.lang.String name) |
DirectiveFactory |
getDirectiveFactory() |
Primitive |
getIndexSource() |
Primitive |
getPreparatorTarget() |
LabelValue |
getStartLabel() |
java.util.Set<Block> |
getUnusedBlocks() |
PrimitiveBuilder |
newAddressingModeBuilder(java.lang.String name) |
PrimitiveBuilder |
newAddressingModeBuilderForGroup(java.lang.String name) |
LazyValue |
newAddressReference(int level) |
LazyValue |
newAddressReference(int level,
int start,
int end) |
AllocationData<Value> |
newAllocationData(Where where,
Allocator allocator,
java.util.List<Primitive> retain,
java.util.List<Primitive> exclude,
int track,
java.util.Map<java.lang.Object,java.lang.Object> readAfterRate,
java.util.Map<java.lang.Object,java.lang.Object> writeAfterRate,
boolean reserved) |
LazyValue |
newEntryFieldReference(int level,
java.lang.String fieldId) |
LazyValue |
newEntryFieldReference(int level,
java.lang.String fieldId,
int start,
int end) |
LazyValue |
newEntryReference(int level) |
LazyValue |
newEntryReference(int level,
int start,
int end) |
LazyValue |
newLazy() |
LazyValue |
newLazy(int start,
int end) |
LabelValue |
newLazyLabel() |
MapBuilder |
newMapBuilder() |
MemoryObjectBuilder |
newMemoryObjectBuilder(int size) |
LabelValue |
newNumericLabelRef(int index,
boolean forward) |
PrimitiveBuilder |
newOperationBuilder(java.lang.String name) |
OutputBuilder |
newOutput(java.lang.String kind,
java.lang.String format) |
RandomValue |
newRandom(java.math.BigInteger from,
java.math.BigInteger to) |
RandomValue |
newRandom(ru.ispras.fortress.randomizer.Variate<?> variate) |
Situation.Builder |
newSituation(java.lang.String name,
Situation.Kind kind) |
UnknownImmediateValue |
newUnknownImmediate(AllocationData<Value> allocationData) |
ru.ispras.fortress.randomizer.VariateBuilder<?> |
newVariateBuilder() |
void |
setCallText(java.lang.String text) |
void |
setDefaultSituation(java.lang.String name,
Situation situation) |
void |
setDefaultSituation(java.lang.String name,
ru.ispras.fortress.randomizer.Variate<Situation> situation) |
void |
setRootOperation(Primitive rootOperation,
Where where) |
Where |
where(java.lang.String file,
int line) |
public Template(EngineContext context, Template.Processor processor)
public DirectiveFactory getDirectiveFactory()
public DataManager getDataManager()
public java.util.Set<Block> getUnusedBlocks()
public java.math.BigInteger getAddressForLabel(java.lang.String label)
public void beginPreSection()
public void endPreSection()
public void beginPostSection()
public void endPostSection()
public void beginMainSection()
public void endMainSection()
public BlockBuilder beginBlock(Block.Kind kind)
public Template.BlockHolder endBlock()
public void addLabel(java.lang.String name, boolean global)
public void addWeakLabel(java.lang.String name)
public void addNumericLabel(int index)
public LabelValue newNumericLabelRef(int index, boolean forward)
public void addOutput(Output output)
public void setCallText(java.lang.String text)
public void endBuildingCall()
public PrimitiveBuilder newOperationBuilder(java.lang.String name)
public PrimitiveBuilder newAddressingModeBuilder(java.lang.String name)
public RandomValue newRandom(java.math.BigInteger from, java.math.BigInteger to)
public RandomValue newRandom(ru.ispras.fortress.randomizer.Variate<?> variate)
public ru.ispras.fortress.randomizer.VariateBuilder<?> newVariateBuilder()
public void addAllocatorAction(Primitive primitive, java.lang.String kind, boolean value, boolean applyToAll)
public AllocationData<Value> newAllocationData(Where where, Allocator allocator, java.util.List<Primitive> retain, java.util.List<Primitive> exclude, int track, java.util.Map<java.lang.Object,java.lang.Object> readAfterRate, java.util.Map<java.lang.Object,java.lang.Object> writeAfterRate, boolean reserved)
public UnknownImmediateValue newUnknownImmediate(AllocationData<Value> allocationData)
public LabelValue newLazyLabel()
public OutputBuilder newOutput(java.lang.String kind, java.lang.String format)
public Situation.Builder newSituation(java.lang.String name, Situation.Kind kind)
public void setDefaultSituation(java.lang.String name, Situation situation)
public void setDefaultSituation(java.lang.String name, ru.ispras.fortress.randomizer.Variate<Situation> situation)
public ru.ispras.fortress.randomizer.Variate<Situation> getDefaultSituation(java.lang.String name)
public void addBlockConstraint(Situation constraint)
public PreparatorBuilder beginPreparator(java.lang.String targetName, boolean isComparator)
public void endPreparator()
public void beginPreparatorVariant(java.lang.String name, java.math.BigInteger bias)
public void endPreparatorVariant()
public LazyValue newLazy()
public LazyValue newLazy(int start, int end)
public Primitive getPreparatorTarget()
public void addPreparatorCall(Primitive targetMode, java.math.BigInteger value, java.lang.String preparatorName, java.lang.String variantName)
public void addPreparatorCall(Primitive targetMode, Value value, java.lang.String preparatorName, java.lang.String variantName)
public StreamPreparatorBuilder beginStreamPreparator(java.lang.String dataModeName, java.lang.String indexModeName)
public void endStreamPreparator()
public Primitive getDataSource()
public Primitive getIndexSource()
public LabelValue getStartLabel()
public void beginStreamInitMethod()
public void beginStreamReadMethod()
public void beginStreamWriteMethod()
public void endStreamMethod()
public void addStream(java.lang.String startLabelName, Primitive dataSource, Primitive indexSource, int length)
public BufferPreparatorBuilder beginBufferPreparator(java.lang.String bufferId)
public MapBuilder newMapBuilder()
public void endBufferPreparator()
public MemoryPreparatorBuilder beginMemoryPreparator(int dataSize)
public void endMemoryPreparator()
public LazyValue newAddressReference(int level)
public LazyValue newAddressReference(int level, int start, int end)
public LazyValue newEntryReference(int level)
public LazyValue newEntryReference(int level, int start, int end)
public LazyValue newEntryFieldReference(int level, java.lang.String fieldId)
public LazyValue newEntryFieldReference(int level, java.lang.String fieldId, int start, int end)
public PrimitiveBuilder newAddressingModeBuilderForGroup(java.lang.String name)
public MetaOperation chooseMetaOperationFromGroup(java.lang.String name)
public void defineGroup(java.lang.String name, ru.ispras.fortress.randomizer.Variate<java.lang.String> variate)
public ExceptionHandlerBuilder beginExceptionHandler(java.lang.String id)
public void endExceptionHandler()
public DataSectionBuilder beginData(boolean isGlobalArgument, boolean isSeparateFile)
public void endData()
public void generateData(java.math.BigInteger address, java.lang.String labelName, java.lang.String typeId, int length, java.lang.String method, boolean isSeparateFile)
public void beginSection(java.lang.String name, java.lang.String prefix, java.math.BigInteger pa, java.math.BigInteger va, java.lang.String args, boolean file)
public void beginSectionText(java.lang.String prefix, java.math.BigInteger pa, java.math.BigInteger va, java.lang.String args)
public void beginSectionData(java.lang.String prefix, java.math.BigInteger pa, java.math.BigInteger va, java.lang.String args)
public void endSection()
public void beginAttributes(MapBuilder builder)
public void endAttributes()
public void beginPrologue()
public void endPrologue()
public void beginEpilogue()
public void endEpilogue()
public MemoryObjectBuilder newMemoryObjectBuilder(int size)
public Where where(java.lang.String file, int line)