From c60b51aa2a950db60c3a749734da0968fae95a5a Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 15 Dec 2023 11:52:45 +0000 Subject: Add ShidInstruction::isTerminator() --- .../shedlang/compiler/shid/instructions/ShedEffectHandlerBreak.java | 4 ++++ src/main/java/org/shedlang/compiler/shid/instructions/ShidBlock.java | 4 ++++ src/main/java/org/shedlang/compiler/shid/instructions/ShidCall.java | 4 ++++ .../org/shedlang/compiler/shid/instructions/ShidDefineEffect.java | 4 ++++ .../org/shedlang/compiler/shid/instructions/ShidDefineFunction.java | 5 +++++ .../org/shedlang/compiler/shid/instructions/ShidDefineStruct.java | 5 +++++ .../java/org/shedlang/compiler/shid/instructions/ShidDiscard.java | 4 ++++ .../java/org/shedlang/compiler/shid/instructions/ShidDuplicate.java | 4 ++++ .../java/org/shedlang/compiler/shid/instructions/ShidFieldLoad.java | 5 +++++ src/main/java/org/shedlang/compiler/shid/instructions/ShidIf.java | 4 ++++ .../org/shedlang/compiler/shid/instructions/ShidInstruction.java | 2 ++ .../java/org/shedlang/compiler/shid/instructions/ShidIntAdd.java | 4 ++++ .../java/org/shedlang/compiler/shid/instructions/ShidIntEquals.java | 4 ++++ .../org/shedlang/compiler/shid/instructions/ShidIntNotEqual.java | 4 ++++ .../java/org/shedlang/compiler/shid/instructions/ShidIntSub.java | 4 ++++ .../java/org/shedlang/compiler/shid/instructions/ShidLocalDrop.java | 4 ++++ .../java/org/shedlang/compiler/shid/instructions/ShidLocalLoad.java | 4 ++++ .../java/org/shedlang/compiler/shid/instructions/ShidLocalStore.java | 4 ++++ src/main/java/org/shedlang/compiler/shid/instructions/ShidLoop.java | 4 ++++ .../java/org/shedlang/compiler/shid/instructions/ShidLoopBreak.java | 4 ++++ .../org/shedlang/compiler/shid/instructions/ShidLoopContinue.java | 4 ++++ .../shedlang/compiler/shid/instructions/ShidNamespaceFieldStore.java | 4 ++++ .../org/shedlang/compiler/shid/instructions/ShidNamespaceImport.java | 4 ++++ .../java/org/shedlang/compiler/shid/instructions/ShidPushBool.java | 4 ++++ .../java/org/shedlang/compiler/shid/instructions/ShidPushInt.java | 4 ++++ .../java/org/shedlang/compiler/shid/instructions/ShidPushString.java | 4 ++++ .../java/org/shedlang/compiler/shid/instructions/ShidPushUnit.java | 4 ++++ .../java/org/shedlang/compiler/shid/instructions/ShidResume.java | 4 ++++ .../java/org/shedlang/compiler/shid/instructions/ShidReturn.java | 4 ++++ .../java/org/shedlang/compiler/shid/instructions/ShidStringAdd.java | 4 ++++ .../java/org/shedlang/compiler/shid/instructions/ShidSwitch.java | 5 +++++ src/main/java/org/shedlang/compiler/shid/instructions/ShidTry.java | 4 ++++ .../org/shedlang/compiler/shid/instructions/ShidTupleCreate.java | 4 ++++ .../java/org/shedlang/compiler/shid/instructions/ShidTupleGet.java | 4 ++++ .../java/org/shedlang/compiler/shid/instructions/ShidVarLoad.java | 4 ++++ .../java/org/shedlang/compiler/shid/instructions/ShidVarStore.java | 4 ++++ 36 files changed, 146 insertions(+) (limited to 'src/main/java') diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShedEffectHandlerBreak.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShedEffectHandlerBreak.java index fc27b8c1..156352b8 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShedEffectHandlerBreak.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShedEffectHandlerBreak.java @@ -11,4 +11,8 @@ public record ShedEffectHandlerBreak( UserDefinedEffect effect, Source source ) implements ShidInstruction { + @Override + public boolean isTerminator() { + return true; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidBlock.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidBlock.java index 7ea21ccf..cfecb515 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidBlock.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidBlock.java @@ -13,4 +13,8 @@ public record ShidBlock( List instructions, Source source ) implements ShidInstruction { + @Override + public boolean isTerminator() { + return instructions.stream().anyMatch(ShidInstruction::isTerminator); + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidCall.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidCall.java index bb720696..c275fef7 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidCall.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidCall.java @@ -22,4 +22,8 @@ public record ShidCall( List namedArgNames, Source source ) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidDefineEffect.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidDefineEffect.java index cbd24307..d3465539 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidDefineEffect.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidDefineEffect.java @@ -11,4 +11,8 @@ public record ShidDefineEffect( UserDefinedEffect effect, Source source ) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidDefineFunction.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidDefineFunction.java index 5ae8bf7a..3b4ce458 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidDefineFunction.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidDefineFunction.java @@ -30,6 +30,11 @@ public record ShidDefineFunction( FUNCTION, } + @Override + public boolean isTerminator() { + return false; + } + public static Builder builder() { return new Builder( "f", diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidDefineStruct.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidDefineStruct.java index 82d165e6..715905ec 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidDefineStruct.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidDefineStruct.java @@ -18,4 +18,9 @@ public record ShidDefineStruct( public record Field(String name, Source source) { } + + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidDiscard.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidDiscard.java index ac5940d2..75e6cec6 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidDiscard.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidDiscard.java @@ -6,4 +6,8 @@ import org.shedlang.compiler.sources.Source; * Pop a value from the temporary value stack and discard it. */ public record ShidDiscard(Source source) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidDuplicate.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidDuplicate.java index 29714cd3..50610b0f 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidDuplicate.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidDuplicate.java @@ -6,4 +6,8 @@ import org.shedlang.compiler.sources.Source; * Duplicates the value on top of the temporary value stack. */ public record ShidDuplicate(Source source) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidFieldLoad.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidFieldLoad.java index 0df10550..fb2b2749 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidFieldLoad.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidFieldLoad.java @@ -19,4 +19,9 @@ public record ShidFieldLoad( record Namespace(NamespaceName name) implements Receiver {} record Struct(StructType type) implements Receiver {} } + + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidIf.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidIf.java index d3a05919..9f49b65b 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidIf.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidIf.java @@ -16,4 +16,8 @@ public record ShidIf( ShidBlock falseBody, Source source ) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidInstruction.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidInstruction.java index 7f5a33e2..07f8b4a9 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidInstruction.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidInstruction.java @@ -5,5 +5,7 @@ import org.shedlang.compiler.sources.Source; public sealed interface ShidInstruction permits ShedEffectHandlerBreak, ShidBlock, ShidCall, ShidDefineEffect, ShidDefineFunction, ShidDefineStruct, ShidDiscard, ShidDuplicate, ShidFieldLoad, ShidIf, ShidIntAdd, ShidIntEquals, ShidIntNotEqual, ShidIntSub, ShidLocalDrop, ShidLocalLoad, ShidLocalStore, ShidLoop, ShidLoopBreak, ShidLoopContinue, ShidNamespaceFieldStore, ShidNamespaceImport, ShidPushBool, ShidPushInt, ShidPushString, ShidPushUnit, ShidResume, ShidReturn, ShidStringAdd, ShidSwitch, ShidTry, ShidTupleCreate, ShidTupleGet, ShidVarLoad, ShidVarStore { + boolean isTerminator(); + Source source(); } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidIntAdd.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidIntAdd.java index ed570cef..7465b5ae 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidIntAdd.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidIntAdd.java @@ -7,4 +7,8 @@ import org.shedlang.compiler.sources.Source; * together, and push the result onto the temporary value stack. */ public record ShidIntAdd(Source source) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidIntEquals.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidIntEquals.java index f5543143..600636d3 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidIntEquals.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidIntEquals.java @@ -7,4 +7,8 @@ import org.shedlang.compiler.sources.Source; * a Bool onto the temporary value stack: true if equal, false if not equal. */ public record ShidIntEquals(Source source) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidIntNotEqual.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidIntNotEqual.java index 60eea7c5..d3e4fe4b 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidIntNotEqual.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidIntNotEqual.java @@ -7,4 +7,8 @@ import org.shedlang.compiler.sources.Source; * a Bool onto the temporary value stack: true if not equal, false if equal. */ public record ShidIntNotEqual(Source source) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidIntSub.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidIntSub.java index 3fbd3e09..48182a4d 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidIntSub.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidIntSub.java @@ -8,4 +8,8 @@ import org.shedlang.compiler.sources.Source; * operand, then push the result onto the temporary value stack. */ public record ShidIntSub(Source source) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidLocalDrop.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidLocalDrop.java index 582de263..fd9bf37b 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidLocalDrop.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidLocalDrop.java @@ -7,4 +7,8 @@ import org.shedlang.compiler.sources.Source; * into that local. */ public record ShidLocalDrop(String name, Source source) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidLocalLoad.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidLocalLoad.java index a1de23fe..8817e4e0 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidLocalLoad.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidLocalLoad.java @@ -7,4 +7,8 @@ import org.shedlang.compiler.sources.Source; * stack. */ public record ShidLocalLoad(String name, Source source) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidLocalStore.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidLocalStore.java index 003aaf40..bcac4e9e 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidLocalStore.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidLocalStore.java @@ -7,4 +7,8 @@ import org.shedlang.compiler.sources.Source; * given name. */ public record ShidLocalStore(String name, Source source) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidLoop.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidLoop.java index 6ab81b47..ceb11c04 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidLoop.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidLoop.java @@ -12,4 +12,8 @@ public record ShidLoop( ShidBlock body, Source source ) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidLoopBreak.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidLoopBreak.java index 6e2e70d7..d6db4c52 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidLoopBreak.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidLoopBreak.java @@ -6,4 +6,8 @@ import org.shedlang.compiler.sources.Source; * Jump to the end of the enclosing loop instruction's body. */ public record ShidLoopBreak(Source source) implements ShidInstruction { + @Override + public boolean isTerminator() { + return true; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidLoopContinue.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidLoopContinue.java index d6ee6c3d..1d0af6b2 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidLoopContinue.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidLoopContinue.java @@ -6,4 +6,8 @@ import org.shedlang.compiler.sources.Source; * Jump to the start of the enclosing loop instruction's body. */ public record ShidLoopContinue(Source source) implements ShidInstruction { + @Override + public boolean isTerminator() { + return true; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidNamespaceFieldStore.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidNamespaceFieldStore.java index 583dbb5f..dacf8a3f 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidNamespaceFieldStore.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidNamespaceFieldStore.java @@ -12,4 +12,8 @@ public record ShidNamespaceFieldStore( String fieldName, Source source ) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidNamespaceImport.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidNamespaceImport.java index 9e93a95f..ca88dfd1 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidNamespaceImport.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidNamespaceImport.java @@ -10,4 +10,8 @@ public record ShidNamespaceImport( NamespaceName namespaceName, Source source ) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidPushBool.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidPushBool.java index c92e8959..f1a71997 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidPushBool.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidPushBool.java @@ -9,4 +9,8 @@ public record ShidPushBool( boolean value, Source source ) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidPushInt.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidPushInt.java index e4673e9b..d8da8f31 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidPushInt.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidPushInt.java @@ -8,4 +8,8 @@ import java.math.BigInteger; * Push an integer onto the temporary value stack. */ public record ShidPushInt(BigInteger value, Source source) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidPushString.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidPushString.java index b0fa0183..f53a8aef 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidPushString.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidPushString.java @@ -6,4 +6,8 @@ import org.shedlang.compiler.sources.Source; * Push a string onto the temporary value stack. */ public record ShidPushString(String value, Source source) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidPushUnit.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidPushUnit.java index 85e5363e..3504204f 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidPushUnit.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidPushUnit.java @@ -6,4 +6,8 @@ import org.shedlang.compiler.sources.Source; * Push the unit value onto the temporary value stack. */ public record ShidPushUnit(Source source) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidResume.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidResume.java index 12eaac48..2a2e1b4d 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidResume.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidResume.java @@ -7,4 +7,8 @@ import org.shedlang.compiler.sources.Source; * the current effect handler method back to the effect call. */ public record ShidResume(Source source) implements ShidInstruction { + @Override + public boolean isTerminator() { + return true; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidReturn.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidReturn.java index fd0228fe..ec3609c2 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidReturn.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidReturn.java @@ -7,4 +7,8 @@ import org.shedlang.compiler.sources.Source; * the current function. */ public record ShidReturn(Source source) implements ShidInstruction { + @Override + public boolean isTerminator() { + return true; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidStringAdd.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidStringAdd.java index fea26d1e..606e613b 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidStringAdd.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidStringAdd.java @@ -9,4 +9,8 @@ import org.shedlang.compiler.sources.Source; * stack. */ public record ShidStringAdd(Source source) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidSwitch.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidSwitch.java index c1596084..8a06adf7 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidSwitch.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidSwitch.java @@ -18,4 +18,9 @@ public record ShidSwitch( ) implements ShidInstruction { public record Case(StructType caseType, ShidBlock body, Source source) { } + + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidTry.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidTry.java index ac9419f0..3d701d20 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidTry.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidTry.java @@ -23,4 +23,8 @@ public record ShidTry( ShidBlock body, Source source ) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidTupleCreate.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidTupleCreate.java index 3559be91..4cfbb58b 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidTupleCreate.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidTupleCreate.java @@ -11,4 +11,8 @@ public record ShidTupleCreate( int elementCount, Source source ) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidTupleGet.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidTupleGet.java index a8a12b1d..585d3ccb 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidTupleGet.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidTupleGet.java @@ -11,4 +11,8 @@ public record ShidTupleGet( int elementCount, Source source ) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidVarLoad.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidVarLoad.java index ad0ae2ca..1e22c4a8 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidVarLoad.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidVarLoad.java @@ -7,4 +7,8 @@ import org.shedlang.compiler.sources.Source; * temporary value stack. */ public record ShidVarLoad(String name, Source source) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } diff --git a/src/main/java/org/shedlang/compiler/shid/instructions/ShidVarStore.java b/src/main/java/org/shedlang/compiler/shid/instructions/ShidVarStore.java index f9d2fb51..4858c202 100644 --- a/src/main/java/org/shedlang/compiler/shid/instructions/ShidVarStore.java +++ b/src/main/java/org/shedlang/compiler/shid/instructions/ShidVarStore.java @@ -7,4 +7,8 @@ import org.shedlang.compiler.sources.Source; * given name. */ public record ShidVarStore(String name, Source source) implements ShidInstruction { + @Override + public boolean isTerminator() { + return false; + } } -- cgit v1.2.3