summaryrefslogtreecommitdiff
path: root/src/piglet/piglet2spiglet/Main.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/piglet/piglet2spiglet/Main.java')
-rw-r--r--src/piglet/piglet2spiglet/Main.java26
1 files changed, 17 insertions, 9 deletions
diff --git a/src/piglet/piglet2spiglet/Main.java b/src/piglet/piglet2spiglet/Main.java
index 7c3d01b..a98b708 100644
--- a/src/piglet/piglet2spiglet/Main.java
+++ b/src/piglet/piglet2spiglet/Main.java
@@ -1,6 +1,9 @@
package piglet.piglet2spiglet;
+import java.io.InputStream;
+
+import aux.CCPrinter;
import piglet.ParseException;
import piglet.PigletParser;
import piglet.TokenMgrError;
@@ -10,20 +13,21 @@ import piglet.visitor.GenSpigletVisitor;
import piglet.visitor.ScanTempVisitor;
-public class Main {
-
- public static void main(String[] args) {
- try {
- Node root = new PigletParser(System.in).Goal();
+public class Main {
+ public static CCPrinter execute(InputStream stream) {
+ try {
+ new PigletParser(stream);
+ Node root = PigletParser.Goal();
/*
* TODO: Implement your own Visitors and other classes.
*
*/
- ScanTempVisitor vt = new ScanTempVisitor();
- root.accept(vt);
- GenSpigletVisitor gen = new GenSpigletVisitor();
+ ScanTempVisitor vt = new ScanTempVisitor();
+ root.accept(vt);
+ GenSpigletVisitor gen = new GenSpigletVisitor();
gen.nTemp = Math.max(vt.maxtmp, 20);
root.accept(gen, null);
+ return gen.prn;
}
catch(TokenMgrError e){
//Handle Lexical Errors
@@ -36,6 +40,10 @@ public class Main {
catch(Exception e){
e.printStackTrace();
}
-
+ return null;
+ }
+
+ public static void main(String[] args) {
+ execute(System.in).printAll();
}
} \ No newline at end of file