"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AcessoPropriedade = void 0;
class AcessoPropriedade {
    constructor(hashArquivo, objeto, nomePropriedade, tipoRetornoPropriedade = 'qualquer') {
        this.linha = objeto.linha;
        this.hashArquivo = hashArquivo;
        this.objeto = objeto;
        this.nomePropriedade = nomePropriedade;
        this.tipoRetornoPropriedade = tipoRetornoPropriedade;
    }
    async aceitar(visitante) {
        return await visitante.visitarExpressaoAcessoPropriedade(this);
    }
    paraTexto() {
        return `<acesso-propriedade objeto=${this.objeto.paraTexto()} propriedade=${this.nomePropriedade} />`;
    }
    paraTextoSaida() {
        throw new Error('Método não implementado.');
    }
}
exports.AcessoPropriedade = AcessoPropriedade;
//# sourceMappingURL=acesso-propriedade.js.map