diff --git a/cs675/bottomup/Makefile b/cs675/bottomup/Makefile index c36ac24..5b706c0 100644 --- a/cs675/bottomup/Makefile +++ b/cs675/bottomup/Makefile @@ -11,7 +11,7 @@ $(PARSER): $(GRAMMAR) .PHONY: prog prog: - javac $(PKGPATH)/Evaluator.java + javac $(PKGPATH)/*.java .PHONY: run run: diff --git a/cs675/bottomup/jholtrop/gvsu/cs675/bottomup/Evaluator.java b/cs675/bottomup/jholtrop/gvsu/cs675/bottomup/Evaluator.java index ba652a2..4840b7a 100644 --- a/cs675/bottomup/jholtrop/gvsu/cs675/bottomup/Evaluator.java +++ b/cs675/bottomup/jholtrop/gvsu/cs675/bottomup/Evaluator.java @@ -1,20 +1,15 @@ package jholtrop.gvsu.cs675.bottomup; +import jholtrop.gvsu.cs675.bottomup.analysis.*; import jholtrop.gvsu.cs675.bottomup.node.*; import jholtrop.gvsu.cs675.bottomup.lexer.Lexer; import jholtrop.gvsu.cs675.bottomup.parser.Parser; import java.io.*; -public class Evaluator +public class Evaluator extends DepthFirstAdapter { public static void main(String[] args) - { - Evaluator e = new Evaluator(); - e.evaluate(); - } - - void evaluate() { try { @@ -23,10 +18,37 @@ public class Evaluator new InputStreamReader(System.in), 1024))); Start tree = p.parse(); + + tree.apply(new Evaluator()); } catch (Exception e) { System.out.println("Error: " + e.getMessage()); } } + + public void caseTNumber(TNumber num) + { + System.out.print(num.getText() + " "); + } + + public void outAAdditionExpr(AAdditionExpr e) + { + System.out.print("+ "); + } + + public void outASubtractionExpr(ASubtractionExpr e) + { + System.out.print("- "); + } + + public void outAMultiplicationTerm(AMultiplicationTerm e) + { + System.out.print("* "); + } + + public void outADivisionTerm(ADivisionTerm e) + { + System.out.print("/ "); + } }