UNPKG

@designliquido/delegua

Version:

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

36 lines 1.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const excecoes_1 = require("../../../excecoes"); const construtos_1 = require("../../../construtos"); const informacao_elemento_sintatico_1 = require("../../../informacao-elemento-sintatico"); const obterValoresPuros = (interpretador, tupla, nomeMetodo) => { const objetoTupla = interpretador.resolverValor(tupla); if (!(objetoTupla instanceof construtos_1.TuplaN)) { throw new excecoes_1.ErroEmTempoDeExecucao(null, `A função "${nomeMetodo}" só pode ser chamada em tuplas.`, interpretador.linhaDeclaracaoAtual); } return objetoTupla.elementos.map((elemento) => interpretador.resolverValor(elemento)); }; exports.default = { juntar: { tipoRetorno: 'texto', argumentos: [ new informacao_elemento_sintatico_1.InformacaoElementoSintatico('separador', 'texto', false, [], 'O texto usado para separar os elementos. O padrão é uma vírgula.'), ], implementacao: (interpretador, tupla, separador) => { const valores = obterValoresPuros(interpretador, tupla, 'juntar'); const sep = separador !== undefined ? interpretador.resolverValor(separador) : ','; return Promise.resolve(valores.join(sep)); }, assinaturaFormato: 'tupla.juntar(separador?)', documentacao: '# `tupla.juntar(separador)` \n \n' + 'Junta todos os elementos da tupla em um único texto, separados pelo separador fornecido.' + '\n\n ## Exemplo de Código\n' + '\n\n```pitugues\nt = ("A", "B", "C")\n' + 'escreva(t.juntar("-")) // "A-B-C"\n```' + '\n\n ### Formas de uso \n', exemploCodigo: 'tupla.juntar("-")', }, }; //# sourceMappingURL=primitivas-tupla.js.map