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;
 }