Classes cagadas:
Atom
ClassDef
ForStmt
FuncDec
IfStmt
PrintStmt está errado.
Test está copiado.
VarArgList não está feito.
WhileStmt conferir.

Erros:
if (op == Symbol.MINUS) {
                pw.print(-);
            } -> no Factor.java

OBS: criou classes para identificador, string e numero.