diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-07-19 20:40:52 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-07-19 20:40:52 +0100 |
| commit | 99f714d9a1037a3fab0995ce3414206258e68d05 (patch) | |
| tree | 289df77fb44a56409e1fcf77c45c9e7afc727fb5 /src/main/java | |
| parent | 5900599a7f1cd0dfa5ba269e81f641142511cc57 (diff) | |
Generate Patio IR for discard
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/patio/PatioCodeGen.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/main/java/org/shedlang/compiler/patio/PatioCodeGen.java b/src/main/java/org/shedlang/compiler/patio/PatioCodeGen.java index ed180aba..f19e88ba 100644 --- a/src/main/java/org/shedlang/compiler/patio/PatioCodeGen.java +++ b/src/main/java/org/shedlang/compiler/patio/PatioCodeGen.java @@ -1,4 +1,22 @@ package org.shedlang.compiler.patio; +import org.pcollections.PVector; +import org.shedlang.compiler.patio.instructions.PatioDiscard; +import org.shedlang.compiler.patio.instructions.PatioInstruction; +import org.shedlang.compiler.stackir.instructions.DiscardInstruction; +import org.shedlang.compiler.stackir.instructions.Instruction; +import org.shedlang.compiler.util.P; + public class PatioCodeGen { + private PatioCodeGen() {} + + public static PVector<PatioInstruction> generateInstruction(Instruction stackIrInstruction) { + return switch (stackIrInstruction) { + case DiscardInstruction discard -> + P.vector(new PatioDiscard(discard.source())); + + default -> + throw new IllegalStateException("Unexpected value: " + stackIrInstruction); + }; + } } |
