public final class Template
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
class |
Template.BlockHolder |
static interface |
Template.Processor |
static class |
Template.Section |
Constructor and Description |
---|
Template(EngineContext context,
Template.Processor processor) |
Modifier and Type | Method and Description |
---|---|
void |
addLabel(java.lang.String name) |
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) |
BlockBuilder |
beginBlock() |
BufferPreparatorBuilder |
beginBufferPreparator(java.lang.String bufferId) |
DataSectionBuilder |
beginData(boolean isGlobalArgument,
boolean isSeparateFile) |
void |
beginEpilogue() |
ExceptionHandlerBuilder |
beginExceptionHandler(java.lang.String id) |
void |
beginMainSection() |
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 |
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) |
Template.BlockHolder |
endBlock() |
void |
endBufferPreparator() |
void |
endBuildingCall() |
void |
endData() |
void |
endEpilogue() |
void |
endExceptionHandler() |
void |
endMainSection() |
void |
endPostSection() |
void |
endPreparator() |
void |
endPreparatorVariant() |
void |
endPreSection() |
void |
endPrologue() |
void |
endStreamMethod() |
void |
endStreamPreparator() |
void |
freeAllocatedMode(Primitive mode,
boolean freeAll) |
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() |
Template.Processor |
getProcessor() |
LabelValue |
getStartLabel() |
java.util.Set<Block> |
getUnusedBlocks() |
PrimitiveBuilder |
newAddressingModeBuilder(java.lang.String name) |
PrimitiveBuilder |
newAddressingModeBuilderForGroup(java.lang.String name) |
LazyValue |
newAddressReference() |
LazyValue |
newAddressReference(int start,
int end) |
AllocatorBuilder |
newAllocatorBuilder(java.lang.String strategy) |
LazyValue |
newEntryFieldReference(java.lang.String fieldId) |
LazyValue |
newEntryFieldReference(java.lang.String fieldId,
int start,
int end) |
LazyValue |
newEntryReference(int start,
int end) |
LazyValue |
newLazy() |
LazyValue |
newLazy(int start,
int end) |
MemoryObjectBuilder |
newMemoryObjectBuilder(int size) |
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) |
UnknownImmediateValue |
newUnknownImmediate(Where where,
Allocator allocator,
java.util.List<Primitive> retain,
java.util.List<Primitive> exclude) |
ru.ispras.fortress.randomizer.VariateBuilder<?> |
newVariateBuilder() |
void |
setAlignment(java.math.BigInteger value,
java.math.BigInteger valueInBytes) |
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 |
setOrigin(java.math.BigInteger origin) |
void |
setRelativeOrigin(java.math.BigInteger delta) |
void |
setRootOperation(Primitive rootOperation) |
Where |
where(java.lang.String file,
int line) |
public Template(EngineContext context, Template.Processor processor)
public DataManager getDataManager()
public Template.Processor getProcessor()
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()
public Template.BlockHolder endBlock()
public void addLabel(java.lang.String name)
public void addOutput(Output output)
public void setCallText(java.lang.String text)
public void setRootOperation(Primitive rootOperation)
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 AllocatorBuilder newAllocatorBuilder(java.lang.String strategy)
public void freeAllocatedMode(Primitive mode, boolean freeAll)
public UnknownImmediateValue newUnknownImmediate(Where where, Allocator allocator, java.util.List<Primitive> retain, java.util.List<Primitive> exclude)
public OutputBuilder newOutput(java.lang.String kind, java.lang.String format)
public Situation.Builder newSituation(java.lang.String name)
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 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 void endBufferPreparator()
public LazyValue newAddressReference()
public LazyValue newAddressReference(int start, int end)
public LazyValue newEntryReference(int start, int end)
public LazyValue newEntryFieldReference(java.lang.String fieldId)
public LazyValue newEntryFieldReference(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 setOrigin(java.math.BigInteger origin)
public void setRelativeOrigin(java.math.BigInteger delta)
public void setAlignment(java.math.BigInteger value, java.math.BigInteger valueInBytes)
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)