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