public String geraRecursivoTerminal(String producao, int i, String nTerm) { String[] splited = producao.split(" "); String retorno = ""; if (splited.length > i) { if (splited[i].equals("&")) { return retorno; } if (glc.getSimbolosTerminais().contains(splited[i])) { retorno += "if (x.equals(\"" + splited[i] + "\")) {\n"; retorno += "x = z.alex(x);"; retorno += geraRecursivoTerminal(producao, i + 1, nTerm); if (producao.endsWith(splited[i]) || glc.nTerminalContemEpson(nTerm)) { retorno += "\nreturn x;\n}\n"; } else { retorno += "\n}\n"; } errorBuffer += splited[i] + " ou "; } else { retorno += "\nx = z." + splited[i] + "(x);\n"; retorno += geraRecursivoTerminal(producao, i + 1, nTerm); } } return retorno; }