From bac983173e07000980b8eb9f82b0b86ca8f7c894 Mon Sep 17 00:00:00 2001 From: Iru Cai Date: Sat, 13 Dec 2014 10:01:22 +0800 Subject: use InputStream and output String --- src/piglet/piglet2spiglet/Main.java | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'src/piglet/piglet2spiglet/Main.java') 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 -- cgit v1.2.3