@Override public Void visitar(NoRetorne no) throws ExcecaoVisitaASA { NoExpressao expressao = no.getExpressao(); if (expressao != null) { saida.append("return "); if (no.temPai()) { if (no.getPai() instanceof NoDeclaracaoFuncao) { TipoDado tipoRetornoFuncao = ((NoDeclaracaoFuncao) no.getPai()).getTipoDado(); if (expressao.getTipoResultante() == TipoDado.REAL && tipoRetornoFuncao == TipoDado.INTEIRO) { saida.append("(int)"); } } } else { throw new IllegalStateException("retorne não tem pai!"); } expressao.aceitar(this); } else { saida.append("return"); } return null; }