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