"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TendoComo = void 0;
const declaracao_1 = require("./declaracao");
/**
 * Esta declaração funciona para designar uma variável que deve ser encerrada
 * após a execução do bloco.
 * Por exemplo, abertura de arquivos, variáveis de fluxo (`streams`), etc.
 */
class TendoComo extends declaracao_1.Declaracao {
    constructor(linha, hashArquivo, simboloVariavel, inicializacaoVariavel, corpo) {
        super(linha, hashArquivo);
        this.simboloVariavel = simboloVariavel;
        this.inicializacaoVariavel = inicializacaoVariavel;
        this.corpo = corpo;
    }
    async aceitar(visitante) {
        return await visitante.visitarDeclaracaoTendoComo(this);
    }
    paraTexto() {
        // TODO: Bloco.
        return `<tendo variável=${this.simboloVariavel.lexema} como=${this.inicializacaoVariavel.paraTexto()} />`;
    }
}
exports.TendoComo = TendoComo;
//# sourceMappingURL=tendo-como.js.map