package tool; import parser.Lexer; import parser.Parser; import trees.ExpressionTree; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; import java.util.List; import java.util.Map; public class Interp { /** Pull char from where? */ InputStream in; /** Variables used by interpreter */ public Map variables = new HashMap(); /** Interpreter output */ public StringBuffer out = new StringBuffer(); public static void main(String[] args) throws IOException { Interp interpreter = new Interp(System.in); interpreter.execute(); System.out.println(interpreter.out); } public Interp(InputStream in) { this.in = in; } public void execute() throws IOException { Lexer lex = new Lexer(in); Parser parser = new Parser(lex); List statements = parser.prog(); for (int i = 0; i < statements.size(); i++) { ExpressionTree t = (ExpressionTree) statements.get(i); out.append(t.toStringTree()); out.append("\n"); t.eval(this); } } }