"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ArgumentoReferenciaFuncao = void 0;
/**
 * Este construto é emitido pelo Avaliador Sintático, e indica para as
 * próximas etapas que este elemento é uma referência de função, mas
 * que não pode ser resolvido em tempo de avaliação sintática.
 */
class ArgumentoReferenciaFuncao {
    constructor(hashArquivo, linha, simboloFuncao) {
        this.linha = linha;
        this.hashArquivo = hashArquivo;
        this.simboloFuncao = simboloFuncao;
    }
    async aceitar(visitante) {
        return visitante.visitarExpressaoArgumentoReferenciaFuncao(this);
    }
    paraTexto() {
        return `<argumento-referência-função nomeFunção=${this.simboloFuncao.lexema} />`;
    }
    paraTextoSaida() {
        throw new Error('Método não implementado.');
    }
}
exports.ArgumentoReferenciaFuncao = ArgumentoReferenciaFuncao;
//# sourceMappingURL=argumento-referencia-funcao.js.map