"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TipoDe = void 0;
/**
 * Construto que solicita o tipo do valor. Normalmente usado em operações de
 * reflexão e metaprogramação.
 */
class TipoDe {
    constructor(hashArquivo, simbolo, valor) {
        this.linha = Number(simbolo.linha);
        this.hashArquivo = hashArquivo;
        this.valor = valor;
        this.simbolo = simbolo;
    }
    async aceitar(visitante) {
        return Promise.resolve(visitante.visitarExpressaoTipoDe(this));
    }
    paraTexto() {
        return `<tipo-de valor=${this.valor.paraTexto()} />`;
    }
    paraTextoSaida() {
        throw new Error('Método não implementado.');
    }
}
exports.TipoDe = TipoDe;
//# sourceMappingURL=tipo-de.js.map