org.jetbrains.kotlin.cfg
Interface JetControlFlowBuilder
- All Known Implementing Classes:
- JetControlFlowBuilderAdapter, JetControlFlowInstructionsGenerator
public interface JetControlFlowBuilder
Method Summary |
void |
bindLabel(Label label)
|
void |
bindValue(PseudoValue value,
JetElement element)
|
CallInstruction |
call(JetElement valueElement,
ResolvedCall<?> resolvedCall,
java.util.Map<PseudoValue,ReceiverValue> receiverValues,
java.util.Map<PseudoValue,ValueParameterDescriptor> arguments)
|
InstructionWithValue |
createAnonymousObject(JetObjectLiteralExpression expression)
|
InstructionWithValue |
createLambda(JetFunction expression)
|
Label |
createUnboundLabel()
|
Label |
createUnboundLabel(java.lang.String name)
|
void |
declareFunction(JetElement subroutine,
Pseudocode pseudocode)
|
void |
declareParameter(JetParameter parameter)
|
void |
declareVariable(JetVariableDeclaration property)
|
void |
enterLexicalScope(JetElement element)
|
LoopInfo |
enterLoop(JetLoopExpression expression)
|
void |
enterLoopBody(JetLoopExpression expression)
|
void |
enterSubroutine(JetElement subroutine)
|
void |
enterTryFinally(GenerationTrigger trigger)
|
void |
exitLexicalScope(JetElement element)
|
void |
exitLoopBody(JetLoopExpression expression)
|
Pseudocode |
exitSubroutine(JetElement subroutine)
|
void |
exitTryFinally()
|
PseudoValue |
getBoundValue(JetElement element)
|
Label |
getConditionEntryPoint(JetElement labelElement)
|
JetLoopExpression |
getCurrentLoop()
|
JetElement |
getCurrentSubroutine()
|
Label |
getEntryPoint(JetElement labelElement)
|
Label |
getExitPoint(JetElement labelElement)
|
JetElement |
getReturnSubroutine()
|
void |
jump(Label label,
JetElement element)
|
void |
jumpOnFalse(Label label,
JetElement element,
PseudoValue conditionValue)
|
void |
jumpOnTrue(Label label,
JetElement element,
PseudoValue conditionValue)
|
void |
jumpToError(JetElement element)
|
InstructionWithValue |
loadConstant(JetExpression expression,
CompileTimeConstant<?> constant)
|
InstructionWithValue |
loadStringTemplate(JetStringTemplateExpression expression,
java.util.List<PseudoValue> inputValues)
|
void |
loadUnit(JetExpression expression)
|
MagicInstruction |
magic(JetElement instructionElement,
JetElement valueElement,
java.util.List<PseudoValue> inputValues,
java.util.Map<PseudoValue,TypePredicate> expectedTypes,
MagicKind kind)
|
void |
mark(JetElement element)
|
MergeInstruction |
merge(JetExpression expression,
java.util.List<PseudoValue> inputValues)
|
PseudoValue |
newValue(JetElement element)
|
void |
nondeterministicJump(Label label,
JetElement element,
PseudoValue inputValue)
|
void |
nondeterministicJump(java.util.List<Label> label,
JetElement element)
|
OperationInstruction |
predefinedOperation(JetExpression expression,
JetControlFlowBuilder.PredefinedOperation operation,
java.util.List<PseudoValue> inputValues)
|
ReadValueInstruction |
readVariable(JetExpression expression,
ResolvedCall<?> resolvedCall,
java.util.Map<PseudoValue,ReceiverValue> receiverValues)
|
void |
repeatPseudocode(Label startLabel,
Label finishLabel)
|
void |
returnNoValue(JetReturnExpression returnExpression,
JetElement subroutine)
|
void |
returnValue(JetExpression returnExpression,
PseudoValue returnValue,
JetElement subroutine)
|
void |
throwException(JetThrowExpression throwExpression,
PseudoValue thrownValue)
|
void |
write(JetElement assignment,
JetElement lValue,
PseudoValue rValue,
AccessTarget target,
java.util.Map<PseudoValue,ReceiverValue> receiverValues)
|
enterSubroutine
void enterSubroutine(@NotNull
JetElement subroutine)
exitSubroutine
@NotNull
Pseudocode exitSubroutine(@NotNull
JetElement subroutine)
getCurrentSubroutine
@NotNull
JetElement getCurrentSubroutine()
getReturnSubroutine
@Nullable
JetElement getReturnSubroutine()
enterLexicalScope
void enterLexicalScope(@NotNull
JetElement element)
exitLexicalScope
void exitLexicalScope(@NotNull
JetElement element)
getEntryPoint
@NotNull
Label getEntryPoint(@NotNull
JetElement labelElement)
getExitPoint
@NotNull
Label getExitPoint(@NotNull
JetElement labelElement)
getConditionEntryPoint
@NotNull
Label getConditionEntryPoint(@NotNull
JetElement labelElement)
declareParameter
void declareParameter(@NotNull
JetParameter parameter)
declareVariable
void declareVariable(@NotNull
JetVariableDeclaration property)
declareFunction
void declareFunction(@NotNull
JetElement subroutine,
@NotNull
Pseudocode pseudocode)
createUnboundLabel
@NotNull
Label createUnboundLabel()
createUnboundLabel
@NotNull
Label createUnboundLabel(@NotNull
java.lang.String name)
bindLabel
void bindLabel(@NotNull
Label label)
jump
void jump(@NotNull
Label label,
@NotNull
JetElement element)
jumpOnFalse
void jumpOnFalse(@NotNull
Label label,
@NotNull
JetElement element,
@Nullable
PseudoValue conditionValue)
jumpOnTrue
void jumpOnTrue(@NotNull
Label label,
@NotNull
JetElement element,
@Nullable
PseudoValue conditionValue)
nondeterministicJump
void nondeterministicJump(@NotNull
Label label,
@NotNull
JetElement element,
@Nullable
PseudoValue inputValue)
nondeterministicJump
void nondeterministicJump(@NotNull
java.util.List<Label> label,
@NotNull
JetElement element)
jumpToError
void jumpToError(@NotNull
JetElement element)
returnValue
void returnValue(@NotNull
JetExpression returnExpression,
@NotNull
PseudoValue returnValue,
@NotNull
JetElement subroutine)
returnNoValue
void returnNoValue(@NotNull
JetReturnExpression returnExpression,
@NotNull
JetElement subroutine)
throwException
void throwException(@NotNull
JetThrowExpression throwExpression,
@NotNull
PseudoValue thrownValue)
enterLoop
@NotNull
LoopInfo enterLoop(@NotNull
JetLoopExpression expression)
enterLoopBody
void enterLoopBody(@NotNull
JetLoopExpression expression)
exitLoopBody
void exitLoopBody(@NotNull
JetLoopExpression expression)
getCurrentLoop
@Nullable
JetLoopExpression getCurrentLoop()
enterTryFinally
void enterTryFinally(@NotNull
GenerationTrigger trigger)
exitTryFinally
void exitTryFinally()
repeatPseudocode
void repeatPseudocode(@NotNull
Label startLabel,
@NotNull
Label finishLabel)
mark
void mark(@NotNull
JetElement element)
getBoundValue
@Nullable
PseudoValue getBoundValue(@Nullable
JetElement element)
bindValue
void bindValue(@NotNull
PseudoValue value,
@NotNull
JetElement element)
newValue
@NotNull
PseudoValue newValue(@Nullable
JetElement element)
loadUnit
void loadUnit(@NotNull
JetExpression expression)
loadConstant
@NotNull
InstructionWithValue loadConstant(@NotNull
JetExpression expression,
@Nullable
CompileTimeConstant<?> constant)
createAnonymousObject
@NotNull
InstructionWithValue createAnonymousObject(@NotNull
JetObjectLiteralExpression expression)
createLambda
@NotNull
InstructionWithValue createLambda(@NotNull
JetFunction expression)
loadStringTemplate
@NotNull
InstructionWithValue loadStringTemplate(@NotNull
JetStringTemplateExpression expression,
@NotNull
java.util.List<PseudoValue> inputValues)
magic
@NotNull
MagicInstruction magic(@NotNull
JetElement instructionElement,
@Nullable
JetElement valueElement,
@NotNull
java.util.List<PseudoValue> inputValues,
@NotNull
java.util.Map<PseudoValue,TypePredicate> expectedTypes,
@NotNull
MagicKind kind)
merge
@NotNull
MergeInstruction merge(@NotNull
JetExpression expression,
@NotNull
java.util.List<PseudoValue> inputValues)
readVariable
@NotNull
ReadValueInstruction readVariable(@NotNull
JetExpression expression,
@NotNull
ResolvedCall<?> resolvedCall,
@NotNull
java.util.Map<PseudoValue,ReceiverValue> receiverValues)
call
@NotNull
CallInstruction call(@NotNull
JetElement valueElement,
@NotNull
ResolvedCall<?> resolvedCall,
@NotNull
java.util.Map<PseudoValue,ReceiverValue> receiverValues,
@NotNull
java.util.Map<PseudoValue,ValueParameterDescriptor> arguments)
predefinedOperation
@NotNull
OperationInstruction predefinedOperation(@NotNull
JetExpression expression,
@NotNull
JetControlFlowBuilder.PredefinedOperation operation,
@NotNull
java.util.List<PseudoValue> inputValues)
write
void write(@NotNull
JetElement assignment,
@NotNull
JetElement lValue,
@NotNull
PseudoValue rValue,
@NotNull
AccessTarget target,
@NotNull
java.util.Map<PseudoValue,ReceiverValue> receiverValues)