Basic Java Compiler using visitor pattern