infix-to-RPN working
git-svn-id: svn://anubis/gvsu@114 45c1a28c-8058-47b2-ae61-ca45b979098e
This commit is contained in:
parent
daae9b09b4
commit
7d4e578674
@ -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:
|
||||||
|
@ -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("/ ");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user