UNPKG

@designliquido/delegua

Version:

Linguagem de programação simples e moderna usando português estruturado.

31 lines 1.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Escolha = void 0; const declaracao_1 = require("./declaracao"); /** * Declaração de escolha de caminho a executar de acordo com literal ou identificador. */ class Escolha extends declaracao_1.Declaracao { constructor(identificadorOuLiteral, caminhos, caminhoPadrao) { super(identificadorOuLiteral.linha, identificadorOuLiteral.hashArquivo); this.identificadorOuLiteral = identificadorOuLiteral; this.caminhos = caminhos; this.caminhoPadrao = caminhoPadrao; } async aceitar(visitante) { return await visitante.visitarDeclaracaoEscolha(this); } paraTexto() { const caminhos = this.caminhos .map((c) => { const condicoes = c.condicoes.map((cond) => cond.paraTexto()).join(','); const declaracoes = c.declaracoes.map((d) => d.paraTexto()).join(''); return `<caminho condicoes=[${condicoes}]>${declaracoes}</caminho>`; }) .join(''); const padrao = this.caminhoPadrao?.declaracoes.map((d) => d.paraTexto()).join('') ?? ''; return `<escolha identificadorOuLiteral=${this.identificadorOuLiteral.paraTexto()}>${caminhos}<padrão>${padrao}</padrão></escolha>`; } } exports.Escolha = Escolha; //# sourceMappingURL=escolha.js.map