UNPKG

@designliquido/delegua

Version:

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

65 lines 2.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const excecoes_1 = require("../excecoes"); const construtos_1 = require("../construtos"); const mapaPropriedadesTuplas = { Dupla: ['primeiro', 'segundo'], Trio: ['primeiro', 'segundo', 'terceiro'], Quarteto: ['primeiro', 'segundo', 'terceiro', 'quarto'], Quinteto: ['primeiro', 'segundo', 'terceiro', 'quarto', 'quinto'], Sexteto: ['primeiro', 'segundo', 'terceiro', 'quarto', 'quinto', 'sexto'], Septeto: ['primeiro', 'segundo', 'terceiro', 'quarto', 'quinto', 'sexto', 'setimo'], Octeto: ['primeiro', 'segundo', 'terceiro', 'quarto', 'quinto', 'sexto', 'setimo', 'oitavo'], Noneto: [ 'primeiro', 'segundo', 'terceiro', 'quarto', 'quinto', 'sexto', 'setimo', 'oitavo', 'nono', ], Deceto: [ 'primeiro', 'segundo', 'terceiro', 'quarto', 'quinto', 'sexto', 'setimo', 'oitavo', 'nono', 'decimo', ], }; exports.default = { paraVetor: { tipoRetorno: 'vetor', argumentos: [], implementacao: (interpretador, tupla) => { const objetoTupla = interpretador.resolverValor(tupla); if (!(objetoTupla instanceof construtos_1.Tupla || objetoTupla instanceof construtos_1.TuplaN)) { return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(null, 'A função "paraVetor" só pode ser chamada em tuplas.', interpretador.linhaDeclaracaoAtual)); } let elementosBrutos = []; if (objetoTupla instanceof construtos_1.TuplaN) { elementosBrutos = objetoTupla.elementos; } else { const nomeClasse = objetoTupla.constructor.name; if (mapaPropriedadesTuplas.hasOwnProperty(nomeClasse)) { const props = mapaPropriedadesTuplas[nomeClasse]; elementosBrutos = props.map((prop) => objetoTupla[prop]); } } const valoresResolvidos = elementosBrutos.map((elemento) => interpretador.resolverValor(elemento)); return Promise.resolve(valoresResolvidos); }, assinaturaFormato: 'tupla.paraVetor()', documentacao: '# `tupla.paraVetor()` \n \n' + 'Converte a tupla atual em um array.', exemploCodigo: 'tupla.paraVetor()', }, }; //# sourceMappingURL=primitivas-tupla.js.map