"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.FuncaoConstruto = void 0;
class FuncaoConstruto {
    constructor(hashArquivo, linha, parametros, corpo, tipoRetorno, tipoExplicito, documentacao) {
        this.linha = linha;
        this.hashArquivo = hashArquivo;
        this.parametros = parametros;
        this.corpo = corpo;
        this.tipo = tipoRetorno;
        this.tipoExplicito = tipoExplicito || false;
        this.documentacao = documentacao;
    }
    async aceitar(visitante) {
        return Promise.resolve(visitante.visitarExpressaoFuncaoConstruto(this));
    }
    paraTexto() {
        // TODO: Corpo.
        return `<construto-função parâmetros=${this.parametros} tipoRetorno=${this.tipo} tipoExplícito=${this.tipoExplicito ? 'Sim' : 'Não'} />`;
    }
    paraTextoSaida() {
        throw new Error('Método não implementado.');
    }
}
exports.FuncaoConstruto = FuncaoConstruto;
//# sourceMappingURL=funcao.js.map