"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Leia = void 0;
const geracao_identificadores_1 = require("../geracao-identificadores");
/**
 * Declaração que pede a leitura de uma informação pela entrada
 * configurada no início da aplicação (por exemplo, o console).
 */
class Leia {
    constructor(simbolo, argumentos) {
        this.tipo = 'texto';
        this.linha = simbolo.linha;
        this.hashArquivo = simbolo.hashArquivo;
        this.simbolo = simbolo;
        this.id = (0, geracao_identificadores_1.uuidv4)();
        this.argumentos = argumentos;
    }
    async aceitar(visitante) {
        return await visitante.visitarExpressaoLeia(this);
    }
    paraTexto() {
        return `<leia argumentos=[${this.argumentos.reduce((anterior, atual) => (anterior += atual.paraTexto()), '')}] />`;
    }
    paraTextoSaida() {
        throw new Error('Método não implementado.');
    }
}
exports.Leia = Leia;
//# sourceMappingURL=leia.js.map