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 .PHONY: prog
prog: prog:
javac $(PKGPATH)/Evaluator.java javac $(PKGPATH)/*.java
.PHONY: run .PHONY: run
run: run:

View File

@ -1,20 +1,15 @@
package jholtrop.gvsu.cs675.bottomup; package jholtrop.gvsu.cs675.bottomup;
import jholtrop.gvsu.cs675.bottomup.analysis.*;
import jholtrop.gvsu.cs675.bottomup.node.*; import jholtrop.gvsu.cs675.bottomup.node.*;
import jholtrop.gvsu.cs675.bottomup.lexer.Lexer; import jholtrop.gvsu.cs675.bottomup.lexer.Lexer;
import jholtrop.gvsu.cs675.bottomup.parser.Parser; import jholtrop.gvsu.cs675.bottomup.parser.Parser;
import java.io.*; import java.io.*;
public class Evaluator public class Evaluator extends DepthFirstAdapter
{ {
public static void main(String[] args) public static void main(String[] args)
{
Evaluator e = new Evaluator();
e.evaluate();
}
void evaluate()
{ {
try try
{ {
@ -23,10 +18,37 @@ public class Evaluator
new InputStreamReader(System.in), 1024))); new InputStreamReader(System.in), 1024)));
Start tree = p.parse(); Start tree = p.parse();
tree.apply(new Evaluator());
} }
catch (Exception e) catch (Exception e)
{ {
System.out.println("Error: " + e.getMessage()); 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("/ ");
}
} }