import java.io.*; import minijava.lexer.*; import minijava.node.*; import minijava.parser.*; import minijava.symbol.*; public class Minijava { public static void main(String[] args) { boolean[] ok = new boolean[1]; try { Table symtable = new Table(); System.out.print("\n"); Parser parser = new Parser( new CustomLexer( new PushbackReader( new FileReader(args[0].toString()), 1024))); Start ast = parser.parse(); ok[0] = true; ast.apply(new SymbolTableClass(symtable,ok)); ast.apply(new SymbolTableBuilder(symtable, ok)); ast.apply(new TypeCheck(symtable, ok)); if (ok[0] == true ) { ast.apply(new Translator(symtable)); } else System.out.print("\nSemantic Analysis has failed miserably.................\n\n"); //System.out.println(ast); } catch (Exception e) { System.err.println(e); } } }