From 99f714d9a1037a3fab0995ce3414206258e68d05 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Wed, 19 Jul 2023 20:40:52 +0100 Subject: Generate Patio IR for discard --- .../java/org/shedlang/compiler/patio/PatioCodeGen.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/main/java') 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 generateInstruction(Instruction stackIrInstruction) { + return switch (stackIrInstruction) { + case DiscardInstruction discard -> + P.vector(new PatioDiscard(discard.source())); + + default -> + throw new IllegalStateException("Unexpected value: " + stackIrInstruction); + }; + } } -- cgit v1.2.3