@designliquido/delegua
Version:
Linguagem de programação simples e moderna usando português estruturado.
31 lines • 1.36 kB
JavaScript
;
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