"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Decorador = void 0;
/**
 * Um decorador é um construto especial que, em código, existe antes de uma declaração, e
 * na avaliação sintática, é colocado juntamente com a próxima declaração.
 */
class Decorador {
    constructor(hashArquivo, linha, nome, atributos) {
        this.linha = linha;
        this.hashArquivo = hashArquivo;
        this.nome = nome;
        this.atributos = atributos;
    }
    async aceitar(visitante) {
        return Promise.reject(new Error('Este método não deveria ser chamado.'));
    }
    paraTexto() {
        // TODO: Atributos
        return `<decorador nome=${this.nome} />`;
    }
    paraTextoSaida() {
        throw new Error('Método não implementado.');
    }
}
exports.Decorador = Decorador;
//# sourceMappingURL=decorador.js.map