From 2f59e052e5272bb2833c91c84b89486bd1b5f592 Mon Sep 17 00:00:00 2001 From: bd-912 Date: Fri, 19 Apr 2024 17:30:41 -0600 Subject: Create 'Kettle' class --- vaporize/library/Kettle.java | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 vaporize/library/Kettle.java (limited to 'vaporize/library/Kettle.java') diff --git a/vaporize/library/Kettle.java b/vaporize/library/Kettle.java new file mode 100644 index 0000000..2590d4b --- /dev/null +++ b/vaporize/library/Kettle.java @@ -0,0 +1,43 @@ +package vaporize.library; + +import cs132.vapor.ast.*; +import java.util.ArrayList; + +/** + * This class contains various generic methods for + * assembling common-use vaporm strings. + * + * Robert Martin cries + */ +class Kettle { + + ArrayList vapor; + + protected Kettle(ArrayList vapor) { + this.vapor = vapor; + } + + protected String indexOriginal(Node n) { + /** + * Given the source position of a Node, returns the original line. + */ + return this.vapor.get(n.sourcePos.line-1); + } + + protected String functionParameters(VFunction prev, int in, + int out, int local) { + return String.format("func %s [in %d, out %d, local %d]", + this.indexOriginal(prev).split(" ")[1], + in, + out, + local); + } + + protected String spill() { + return null; + } + + protected String backup() { + return null; + } +} -- cgit v1.2.3