package scotch.compiler.intermediate; import lombok.AllArgsConstructor; import lombok.EqualsAndHashCode; import lombok.ToString; import me.qmx.jitescript.CodeBlock; import scotch.compiler.target.BytecodeGenerator; @AllArgsConstructor @EqualsAndHashCode(callSuper = false) @ToString public class IntermediateAssign extends IntermediateValue { private final String variable; private final IntermediateValue value; private final IntermediateValue body; @Override public CodeBlock generateBytecode(BytecodeGenerator generator) { return new CodeBlock() {{ append(value.generateBytecode(generator)); generator.storeOffset(variable); astore(generator.offsetOf(variable)); append(body.generateBytecode(generator)); }}; } }