infix-to-RPN working

git-svn-id: svn://anubis/gvsu@114 45c1a28c-8058-47b2-ae61-ca45b979098e
This commit is contained in:
josh 2008-06-01 19:43:55 +00:00
parent daae9b09b4
commit 7d4e578674
2 changed files with 30 additions and 8 deletions

View File

@ -11,7 +11,7 @@ $(PARSER): $(GRAMMAR)
.PHONY: prog
prog:
javac $(PKGPATH)/Evaluator.java
javac $(PKGPATH)/*.java
.PHONY: run
run:

View File

@ -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("/ ");
}
}