From e5bd34c7b01e60f63f1f658c8f1b9bd4aa7305ca Mon Sep 17 00:00:00 2001 From: svtk Date: Fri, 21 Oct 2011 15:38:01 +0400 Subject: [PATCH] Added nondeternministic jump to several labels instruction to pseudocode --- .../jet/lang/cfg/JetControlFlowBuilder.java | 11 ++-- .../cfg/JetControlFlowBuilderAdapter.java | 50 +++++++++++---- .../NondeterministicJumpInstruction.java | 62 ++++++++++++++----- .../jet/lang/cfg/pseudocode/Pseudocode.java | 11 ++-- 4 files changed, 98 insertions(+), 36 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowBuilder.java b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowBuilder.java index 4658d844a4f..72360b8b838 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowBuilder.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetControlFlowBuilder.java @@ -2,9 +2,9 @@ package org.jetbrains.jet.lang.cfg; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.jet.lang.psi.JetElement; -import org.jetbrains.jet.lang.psi.JetExpression; -import org.jetbrains.jet.lang.psi.JetThrowExpression; +import org.jetbrains.jet.lang.psi.*; + +import java.util.List; /** * @author abreslav @@ -24,6 +24,7 @@ public interface JetControlFlowBuilder { void jumpOnFalse(@NotNull Label label); void jumpOnTrue(@NotNull Label label); void nondeterministicJump(Label label); // Maybe, jump to label + void nondeterministicJump(List