@designliquido/delegua 0.52.1 → 0.52.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/analisador-semantico/analisador-semantico.d.ts.map +1 -1
- package/analisador-semantico/analisador-semantico.js.map +1 -1
- package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
- package/avaliador-sintatico/avaliador-sintatico.js +2 -2
- package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
- package/avaliador-sintatico/comum.d.ts.map +1 -1
- package/avaliador-sintatico/comum.js.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-calango.d.ts.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-calango.js +5 -11
- package/avaliador-sintatico/dialetos/avaliador-sintatico-calango.js.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
- package/avaliador-sintatico/micro-avaliador-sintatico.d.ts.map +1 -1
- package/avaliador-sintatico/micro-avaliador-sintatico.js.map +1 -1
- package/avaliador-sintatico/traducao/avaliador-sintatico-javascript.d.ts.map +1 -1
- package/avaliador-sintatico/traducao/avaliador-sintatico-javascript.js.map +1 -1
- package/bibliotecas/biblioteca-global.d.ts.map +1 -1
- package/bibliotecas/biblioteca-global.js +44 -42
- package/bibliotecas/biblioteca-global.js.map +1 -1
- package/bibliotecas/primitivas-dicionario.d.ts.map +1 -1
- package/bibliotecas/primitivas-dicionario.js +3 -3
- package/bibliotecas/primitivas-dicionario.js.map +1 -1
- package/bibliotecas/primitivas-numero.d.ts.map +1 -1
- package/bibliotecas/primitivas-numero.js +7 -7
- package/bibliotecas/primitivas-numero.js.map +1 -1
- package/bibliotecas/primitivas-texto.d.ts.map +1 -1
- package/bibliotecas/primitivas-texto.js +16 -17
- package/bibliotecas/primitivas-texto.js.map +1 -1
- package/bibliotecas/primitivas-vetor.d.ts.map +1 -1
- package/bibliotecas/primitivas-vetor.js +26 -27
- package/bibliotecas/primitivas-vetor.js.map +1 -1
- package/bin/package.json +5 -4
- package/construtos/acesso-elemento-matriz.d.ts.map +1 -1
- package/construtos/acesso-elemento-matriz.js +2 -2
- package/construtos/acesso-elemento-matriz.js.map +1 -1
- package/construtos/acesso-indice-variavel.d.ts.map +1 -1
- package/construtos/acesso-indice-variavel.js +2 -2
- package/construtos/acesso-indice-variavel.js.map +1 -1
- package/construtos/acesso-metodo-ou-propriedade.d.ts.map +1 -1
- package/construtos/acesso-metodo-ou-propriedade.js +2 -2
- package/construtos/acesso-metodo-ou-propriedade.js.map +1 -1
- package/construtos/atribuicao-por-indice.d.ts.map +1 -1
- package/construtos/atribuicao-por-indice.js +2 -2
- package/construtos/atribuicao-por-indice.js.map +1 -1
- package/construtos/atribuicao-por-indices-matriz.d.ts.map +1 -1
- package/construtos/atribuicao-por-indices-matriz.js +2 -2
- package/construtos/atribuicao-por-indices-matriz.js.map +1 -1
- package/construtos/atribuir.js +1 -1
- package/construtos/binario.d.ts.map +1 -1
- package/construtos/binario.js +2 -2
- package/construtos/binario.js.map +1 -1
- package/construtos/comentario-como-construto.d.ts +2 -2
- package/construtos/leia.js +1 -1
- package/construtos/leia.js.map +1 -1
- package/construtos/logico.d.ts.map +1 -1
- package/construtos/logico.js +2 -2
- package/construtos/logico.js.map +1 -1
- package/construtos/separador.d.ts +2 -2
- package/construtos/tuplas/deceto.d.ts.map +1 -1
- package/construtos/tuplas/deceto.js +2 -2
- package/construtos/tuplas/deceto.js.map +1 -1
- package/construtos/tuplas/dupla.d.ts.map +1 -1
- package/construtos/tuplas/dupla.js +2 -2
- package/construtos/tuplas/dupla.js.map +1 -1
- package/construtos/tuplas/noneto.d.ts.map +1 -1
- package/construtos/tuplas/noneto.js +2 -2
- package/construtos/tuplas/noneto.js.map +1 -1
- package/construtos/tuplas/octeto.d.ts.map +1 -1
- package/construtos/tuplas/octeto.js +2 -2
- package/construtos/tuplas/octeto.js.map +1 -1
- package/construtos/tuplas/quarteto.d.ts.map +1 -1
- package/construtos/tuplas/quarteto.js +2 -2
- package/construtos/tuplas/quarteto.js.map +1 -1
- package/construtos/tuplas/quinteto.d.ts.map +1 -1
- package/construtos/tuplas/quinteto.js +2 -2
- package/construtos/tuplas/quinteto.js.map +1 -1
- package/construtos/tuplas/septeto.d.ts.map +1 -1
- package/construtos/tuplas/septeto.js +2 -2
- package/construtos/tuplas/septeto.js.map +1 -1
- package/construtos/tuplas/sexteto.d.ts.map +1 -1
- package/construtos/tuplas/sexteto.js +2 -2
- package/construtos/tuplas/sexteto.js.map +1 -1
- package/construtos/tuplas/trio.d.ts.map +1 -1
- package/construtos/tuplas/trio.js +2 -2
- package/construtos/tuplas/trio.js.map +1 -1
- package/construtos/vetor.js +1 -1
- package/construtos/vetor.js.map +1 -1
- package/declaracoes/aleatorio.js.map +1 -1
- package/declaracoes/bloco.js +2 -2
- package/declaracoes/classe.js +1 -1
- package/declaracoes/classe.js.map +1 -1
- package/declaracoes/escreva-mesma-linha.js +1 -1
- package/declaracoes/escreva-mesma-linha.js.map +1 -1
- package/declaracoes/escreva.js +1 -1
- package/declaracoes/escreva.js.map +1 -1
- package/declaracoes/fazer.d.ts.map +1 -1
- package/declaracoes/fazer.js.map +1 -1
- package/declaracoes/inicio-algoritmo.js +1 -1
- package/declaracoes/inicio-algoritmo.js.map +1 -1
- package/declaracoes/para.d.ts.map +1 -1
- package/declaracoes/para.js +2 -2
- package/declaracoes/para.js.map +1 -1
- package/informacao-variavel-ou-constante.js +1 -1
- package/interfaces/interpretador-interface.d.ts.map +1 -1
- package/interpretador/dialetos/calango/interpretador-calango.d.ts +2 -2
- package/interpretador/dialetos/calango/interpretador-calango.d.ts.map +1 -1
- package/interpretador/dialetos/calango/interpretador-calango.js.map +1 -1
- package/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts.map +1 -1
- package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +2 -2
- package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
- package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts.map +1 -1
- package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js.map +1 -1
- package/interpretador/interpretador-base.d.ts.map +1 -1
- package/interpretador/interpretador-base.js +14 -17
- package/interpretador/interpretador-base.js.map +1 -1
- package/interpretador/interpretador.d.ts.map +1 -1
- package/interpretador/interpretador.js +7 -7
- package/interpretador/interpretador.js.map +1 -1
- package/interpretador/pilha-escopos-execucao.js.map +1 -1
- package/lexador/dialetos/lexador-calango.d.ts +2 -2
- package/lexador/dialetos/lexador-calango.d.ts.map +1 -1
- package/lexador/dialetos/lexador-calango.js +5 -4
- package/lexador/dialetos/lexador-calango.js.map +1 -1
- package/lexador/dialetos/palavras-reservadas/calango.d.ts.map +1 -1
- package/lexador/dialetos/palavras-reservadas/calango.js.map +1 -1
- package/package.json +5 -4
- package/quebras/index.js +1 -1
- package/tradutores/tradutor-assembly-x64.js +13 -13
- package/tradutores/tradutor-calango.d.ts.map +1 -1
- package/tradutores/tradutor-calango.js.map +1 -1
- package/tradutores/tradutor-javascript.d.ts.map +1 -1
- package/tradutores/tradutor-javascript.js.map +1 -1
- package/tradutores/tradutor-python.d.ts.map +1 -1
- package/tradutores/tradutor-python.js.map +1 -1
- package/tradutores/tradutor-reverso-tenda.d.ts.map +1 -1
- package/tradutores/tradutor-reverso-tenda.js.map +1 -1
- package/umd/delegua.js +169 -171
package/umd/delegua.js
CHANGED
|
@@ -416,7 +416,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
416
416
|
}
|
|
417
417
|
}
|
|
418
418
|
// Remover comentários, verificar se vírgulas fazem sentido.
|
|
419
|
-
const valoresSemComentarios = valores.filter(v => v.constructor.name !== 'ComentarioComoConstruto');
|
|
419
|
+
const valoresSemComentarios = valores.filter((v) => v.constructor.name !== 'ComentarioComoConstruto');
|
|
420
420
|
let elementoSeparador = false; // O primeiro elemento não pode ser separador.
|
|
421
421
|
for (const elemento of valoresSemComentarios) {
|
|
422
422
|
if (elementoSeparador) {
|
|
@@ -432,7 +432,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
432
432
|
elementoSeparador = true;
|
|
433
433
|
}
|
|
434
434
|
}
|
|
435
|
-
const valoresSemSeparadores = valoresSemComentarios.filter(v => v.constructor.name !== 'Separador');
|
|
435
|
+
const valoresSemSeparadores = valoresSemComentarios.filter((v) => v.constructor.name !== 'Separador');
|
|
436
436
|
const tipoVetor = (0, inferenciador_1.inferirTipoVariavel)(valoresSemSeparadores);
|
|
437
437
|
return new construtos_1.Vetor(this.hashArquivo, Number(simboloAtual.linha), valores, valores.length, tipoVetor);
|
|
438
438
|
case delegua_2.default.EXPRESSAO_REGULAR:
|
|
@@ -5437,7 +5437,7 @@ async function aleatorioEntre(interpretador, minimo, maximo) {
|
|
|
5437
5437
|
if (arguments.length <= 0) {
|
|
5438
5438
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5439
5439
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5440
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5440
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5441
5441
|
}, 'A função recebe ao menos um parâmetro.'));
|
|
5442
5442
|
}
|
|
5443
5443
|
const valorMinimo = minimo.hasOwnProperty('valor')
|
|
@@ -5447,7 +5447,7 @@ async function aleatorioEntre(interpretador, minimo, maximo) {
|
|
|
5447
5447
|
if (typeof valorMinimo !== 'number') {
|
|
5448
5448
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5449
5449
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5450
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5450
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5451
5451
|
}, 'O parâmetro deve ser um número.'));
|
|
5452
5452
|
}
|
|
5453
5453
|
return Math.floor(Math.random() * (0 - valorMinimo)) + valorMinimo;
|
|
@@ -5455,7 +5455,7 @@ async function aleatorioEntre(interpretador, minimo, maximo) {
|
|
|
5455
5455
|
if (arguments.length > 3) {
|
|
5456
5456
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5457
5457
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5458
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5458
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5459
5459
|
}, 'A quantidade de parâmetros máxima para esta função é 2.'));
|
|
5460
5460
|
}
|
|
5461
5461
|
const valorMaximo = maximo.hasOwnProperty('valor')
|
|
@@ -5464,7 +5464,7 @@ async function aleatorioEntre(interpretador, minimo, maximo) {
|
|
|
5464
5464
|
if (typeof valorMinimo !== 'number' || typeof valorMaximo !== 'number') {
|
|
5465
5465
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5466
5466
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5467
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5467
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5468
5468
|
}, 'Os dois parâmetros devem ser do tipo número.'));
|
|
5469
5469
|
}
|
|
5470
5470
|
return Promise.resolve(Math.floor(Math.random() * (valorMaximo - valorMinimo)) + valorMinimo);
|
|
@@ -5484,13 +5484,13 @@ async function algum(interpretador, vetor, funcaoPesquisa) {
|
|
|
5484
5484
|
if (!Array.isArray(valorVetor)) {
|
|
5485
5485
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5486
5486
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5487
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5487
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5488
5488
|
}, 'Parâmetro inválido. O primeiro parâmetro da função deve ser um vetor.'));
|
|
5489
5489
|
}
|
|
5490
5490
|
if (valorFuncaoPesquisa.constructor.name !== 'DeleguaFuncao') {
|
|
5491
5491
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5492
5492
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5493
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5493
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5494
5494
|
}, 'Parâmetro inválido. O segundo parâmetro da função deve ser uma função.'));
|
|
5495
5495
|
}
|
|
5496
5496
|
for (let indice = 0; indice < valorVetor.length; ++indice) {
|
|
@@ -5516,13 +5516,13 @@ async function encontrar(interpretador, vetor, funcaoPesquisa) {
|
|
|
5516
5516
|
if (!Array.isArray(valorVetor)) {
|
|
5517
5517
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5518
5518
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5519
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5519
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5520
5520
|
}, 'Parâmetro inválido. O primeiro parâmetro da função deve ser um vetor.'));
|
|
5521
5521
|
}
|
|
5522
5522
|
if (valorFuncaoPesquisa.constructor.name !== 'DeleguaFuncao') {
|
|
5523
5523
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5524
5524
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5525
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5525
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5526
5526
|
}, 'Parâmetro inválido. O segundo parâmetro da função deve ser uma função.'));
|
|
5527
5527
|
}
|
|
5528
5528
|
for (let indice = 0; indice < valorVetor.length; ++indice) {
|
|
@@ -5548,13 +5548,13 @@ async function encontrarIndice(interpretador, vetor, funcaoPesquisa) {
|
|
|
5548
5548
|
if (!Array.isArray(valorVetor)) {
|
|
5549
5549
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5550
5550
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5551
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5551
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5552
5552
|
}, 'Parâmetro inválido. O primeiro parâmetro da função deve ser um vetor.'));
|
|
5553
5553
|
}
|
|
5554
5554
|
if (valorFuncaoPesquisa.constructor.name !== 'DeleguaFuncao') {
|
|
5555
5555
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5556
5556
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5557
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5557
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5558
5558
|
}, 'Parâmetro inválido. O segundo parâmetro da função deve ser uma função.'));
|
|
5559
5559
|
}
|
|
5560
5560
|
for (let indice = 0; indice < valorVetor.length; ++indice) {
|
|
@@ -5580,13 +5580,13 @@ async function encontrarUltimo(interpretador, vetor, funcaoPesquisa) {
|
|
|
5580
5580
|
if (!Array.isArray(valorVetor)) {
|
|
5581
5581
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5582
5582
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5583
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5583
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5584
5584
|
}, 'Parâmetro inválido. O primeiro parâmetro da função deve ser um vetor.'));
|
|
5585
5585
|
}
|
|
5586
5586
|
if (valorFuncaoPesquisa.constructor.name !== 'DeleguaFuncao') {
|
|
5587
5587
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5588
5588
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5589
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5589
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5590
5590
|
}, 'Parâmetro inválido. O segundo parâmetro da função deve ser uma função.'));
|
|
5591
5591
|
}
|
|
5592
5592
|
for (let indice = valorVetor.length - 1; indice >= 0; --indice) {
|
|
@@ -5611,13 +5611,13 @@ async function encontrarUltimoIndice(interpretador, vetor, funcaoPesquisa) {
|
|
|
5611
5611
|
if (!Array.isArray(valorVetor)) {
|
|
5612
5612
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5613
5613
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5614
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5614
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5615
5615
|
}, 'Parâmetro inválido. O primeiro parâmetro da função deve ser um vetor.'));
|
|
5616
5616
|
}
|
|
5617
5617
|
if (valorFuncaoPesquisa.constructor.name !== 'DeleguaFuncao') {
|
|
5618
5618
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5619
5619
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5620
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5620
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5621
5621
|
}, 'Parâmetro inválido. O segundo parâmetro da função deve ser uma função.'));
|
|
5622
5622
|
}
|
|
5623
5623
|
for (let indice = valorVetor.length - 1; indice >= 0; --indice) {
|
|
@@ -5638,7 +5638,7 @@ async function filtrarPor(interpretador, vetor, funcaoFiltragem) {
|
|
|
5638
5638
|
if (vetor === null || vetor === undefined)
|
|
5639
5639
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5640
5640
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5641
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5641
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5642
5642
|
}, 'Parâmetro inválido. O primeiro parâmetro da função filtrarPor() não pode ser nulo.'));
|
|
5643
5643
|
const valorVetor = vetor.hasOwnProperty('valor') ? vetor.valor : vetor;
|
|
5644
5644
|
const valorFuncaoFiltragem = funcaoFiltragem.hasOwnProperty('valor')
|
|
@@ -5647,14 +5647,14 @@ async function filtrarPor(interpretador, vetor, funcaoFiltragem) {
|
|
|
5647
5647
|
if (!Array.isArray(valorVetor)) {
|
|
5648
5648
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5649
5649
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5650
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5650
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5651
5651
|
}, 'Parâmetro inválido. O primeiro parâmetro da função filtrarPor() deve ser um vetor.'));
|
|
5652
5652
|
}
|
|
5653
5653
|
const construtorResolvido = valorFuncaoFiltragem.constructor.name.replaceAll('_', '');
|
|
5654
5654
|
if (construtorResolvido !== 'DeleguaFuncao') {
|
|
5655
5655
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5656
5656
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5657
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5657
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5658
5658
|
}, 'Parâmetro inválido. O segundo parâmetro da função filtrarPor() deve ser uma função.'));
|
|
5659
5659
|
}
|
|
5660
5660
|
const resultados = [];
|
|
@@ -5685,7 +5685,7 @@ async function incluido(interpretador, vetor, valor) {
|
|
|
5685
5685
|
if (!Array.isArray(valorVetor)) {
|
|
5686
5686
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5687
5687
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5688
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5688
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5689
5689
|
}, 'Parâmetro inválido. O primeiro parâmetro da função deve ser um vetor.'));
|
|
5690
5690
|
}
|
|
5691
5691
|
for (let indice = 0; indice < valorVetor.length; ++indice) {
|
|
@@ -5699,13 +5699,13 @@ function validacaoComumNumeros(interpretador, valorParaConverter) {
|
|
|
5699
5699
|
if (isNaN(valorParaConverter)) {
|
|
5700
5700
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5701
5701
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5702
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5702
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5703
5703
|
}, 'Valor não parece ser um número. Somente números ou textos com números podem ser convertidos para inteiro.'));
|
|
5704
5704
|
}
|
|
5705
5705
|
if (!/^(-)?\d+(\.\d+)?$/.test(valorParaConverter)) {
|
|
5706
5706
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5707
5707
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5708
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5708
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5709
5709
|
}, 'Valor não parece estar estruturado como um número (texto vazio, falso ou não definido). Somente números ou textos com números podem ser convertidos para inteiro.'));
|
|
5710
5710
|
}
|
|
5711
5711
|
return null;
|
|
@@ -5737,7 +5737,7 @@ async function mapear(interpretador, vetor, funcaoMapeamento) {
|
|
|
5737
5737
|
if (vetor === null || vetor === undefined)
|
|
5738
5738
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5739
5739
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5740
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5740
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5741
5741
|
}, 'Parâmetro inválido. O primeiro parâmetro da função mapear() não pode ser nulo.'));
|
|
5742
5742
|
const valorVetor = interpretador.resolverValor(vetor);
|
|
5743
5743
|
const valorFuncaoMapeamento = interpretador.resolverValor(funcaoMapeamento);
|
|
@@ -5746,19 +5746,21 @@ async function mapear(interpretador, vetor, funcaoMapeamento) {
|
|
|
5746
5746
|
if (!Array.isArray(valorVetor)) {
|
|
5747
5747
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5748
5748
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5749
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5749
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5750
5750
|
}, 'Parâmetro inválido. O primeiro parâmetro da função mapear() deve ser um vetor.'));
|
|
5751
5751
|
}
|
|
5752
5752
|
const nomeConstrutorFuncaoMapeamento = valorFuncaoMapeamento.constructor.name.replaceAll('_', '');
|
|
5753
5753
|
if (nomeConstrutorFuncaoMapeamento !== 'DeleguaFuncao') {
|
|
5754
5754
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5755
5755
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5756
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5756
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5757
5757
|
}, 'Parâmetro inválido. O segundo parâmetro da função mapear() deve ser uma função.'));
|
|
5758
5758
|
}
|
|
5759
5759
|
const resultados = [];
|
|
5760
5760
|
for (let indice = 0; indice < valorVetor.length; ++indice) {
|
|
5761
|
-
const informacoesRetorno = await valorFuncaoMapeamento.chamar(interpretador, [
|
|
5761
|
+
const informacoesRetorno = await valorFuncaoMapeamento.chamar(interpretador, [
|
|
5762
|
+
valorVetor[indice],
|
|
5763
|
+
]);
|
|
5762
5764
|
if (!informacoesRetorno.hasOwnProperty('valorRetornado')) {
|
|
5763
5765
|
console.warn(`Retorno inconsistente em mapear(): ${JSON.stringify(informacoesRetorno)}.`);
|
|
5764
5766
|
continue;
|
|
@@ -5795,13 +5797,13 @@ async function ordenar(interpretador, vetor) {
|
|
|
5795
5797
|
if (vetor === null || vetor === undefined)
|
|
5796
5798
|
throw new excecoes_1.ErroEmTempoDeExecucao({
|
|
5797
5799
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5798
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5800
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5799
5801
|
}, 'Parâmetro inválido. O primeiro parâmetro da função ordenar() não pode ser nulo.');
|
|
5800
5802
|
const objeto = vetor.hasOwnProperty('valor') ? vetor.valor : vetor;
|
|
5801
5803
|
if (!Array.isArray(objeto)) {
|
|
5802
5804
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5803
5805
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5804
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5806
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5805
5807
|
}, 'Valor inválido. Objeto inserido não é um vetor.'));
|
|
5806
5808
|
}
|
|
5807
5809
|
let trocado;
|
|
@@ -5828,7 +5830,7 @@ async function paraCada(interpretador, vetor, funcaoFiltragem) {
|
|
|
5828
5830
|
if (vetor === null || vetor === undefined)
|
|
5829
5831
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5830
5832
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5831
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5833
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5832
5834
|
}, 'Parâmetro inválido. O primeiro parâmetro da função paraCada() não pode ser nulo.'));
|
|
5833
5835
|
const valorVetor = vetor.hasOwnProperty('valor') ? vetor.valor : vetor;
|
|
5834
5836
|
const valorFuncaoFiltragem = funcaoFiltragem.hasOwnProperty('valor')
|
|
@@ -5839,13 +5841,13 @@ async function paraCada(interpretador, vetor, funcaoFiltragem) {
|
|
|
5839
5841
|
if (!Array.isArray(valorVetor)) {
|
|
5840
5842
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5841
5843
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5842
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5844
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5843
5845
|
}, 'Parâmetro inválido. O primeiro parâmetro da função paraCada() deve ser um vetor.'));
|
|
5844
5846
|
}
|
|
5845
5847
|
if (valorFuncaoFiltragem.constructor.name !== 'DeleguaFuncao') {
|
|
5846
5848
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5847
5849
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5848
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5850
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5849
5851
|
}, 'Parâmetro inválido. O segundo parâmetro da função paraCada() deve ser uma função.'));
|
|
5850
5852
|
}
|
|
5851
5853
|
for (let indice = 0; indice < valorVetor.length; ++indice) {
|
|
@@ -5863,7 +5865,7 @@ async function primeiroEmCondicao(interpretador, vetor, funcaoFiltragem) {
|
|
|
5863
5865
|
if (vetor === null || vetor === undefined)
|
|
5864
5866
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5865
5867
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5866
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5868
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5867
5869
|
}, 'Parâmetro inválido. O primeiro parâmetro da função primeiroEmCondicao() não pode ser nulo.'));
|
|
5868
5870
|
const valorVetor = vetor.hasOwnProperty('valor') ? vetor.valor : vetor;
|
|
5869
5871
|
const valorFuncaoFiltragem = funcaoFiltragem.hasOwnProperty('valor')
|
|
@@ -5872,13 +5874,13 @@ async function primeiroEmCondicao(interpretador, vetor, funcaoFiltragem) {
|
|
|
5872
5874
|
if (!Array.isArray(valorVetor)) {
|
|
5873
5875
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5874
5876
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5875
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5877
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5876
5878
|
}, 'Parâmetro inválido. O primeiro parâmetro da função primeiroEmCondicao() deve ser um vetor.'));
|
|
5877
5879
|
}
|
|
5878
5880
|
if (valorFuncaoFiltragem.constructor.name !== 'DeleguaFuncao') {
|
|
5879
5881
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5880
5882
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5881
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5883
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5882
5884
|
}, 'Parâmetro inválido. O segundo parâmetro da função primeiroEmCondicao() deve ser uma função.'));
|
|
5883
5885
|
}
|
|
5884
5886
|
for (let indice = 0; indice < valorVetor.length; ++indice) {
|
|
@@ -5904,7 +5906,7 @@ async function real(interpretador, numero) {
|
|
|
5904
5906
|
if (!/^(-)?\d+(\.\d+)?$/.test(valor)) {
|
|
5905
5907
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5906
5908
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5907
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5909
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5908
5910
|
}, 'Valor não parece estar estruturado como um número (texto/valor vazio, falso ou não definido). Somente números ou textos com números podem ser convertidos para real.'));
|
|
5909
5911
|
}
|
|
5910
5912
|
return Promise.resolve(parseFloat(valor));
|
|
@@ -5926,13 +5928,13 @@ async function reduzir(interpretador, vetor, funcaoReducao, valorInicial = null)
|
|
|
5926
5928
|
if (!Array.isArray(valorVetor)) {
|
|
5927
5929
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5928
5930
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5929
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5931
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5930
5932
|
}, 'Parâmetro inválido. O primeiro parâmetro da função deve ser um vetor.'));
|
|
5931
5933
|
}
|
|
5932
5934
|
if (valorFuncaoReducao.constructor.name !== 'DeleguaFuncao') {
|
|
5933
5935
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5934
5936
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5935
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5937
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5936
5938
|
}, 'Parâmetro inválido. O segundo parâmetro da função deve ser uma função.'));
|
|
5937
5939
|
}
|
|
5938
5940
|
let resultado = valorPadrao;
|
|
@@ -5956,13 +5958,13 @@ async function tamanho(interpretador, objeto) {
|
|
|
5956
5958
|
if (typeof valorObjeto === 'number') {
|
|
5957
5959
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5958
5960
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5959
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5961
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5960
5962
|
}, 'Função global tamanho() não funciona com números.'));
|
|
5961
5963
|
}
|
|
5962
5964
|
if (valorObjeto instanceof objeto_delegua_classe_1.ObjetoDeleguaClasse) {
|
|
5963
5965
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
5964
5966
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
5965
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
5967
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
5966
5968
|
}, 'Função global tamanho não funciona com objetos complexos.'));
|
|
5967
5969
|
}
|
|
5968
5970
|
if (valorObjeto instanceof estruturas_1.DeleguaFuncao) {
|
|
@@ -6004,7 +6006,7 @@ async function todosEmCondicao(interpretador, vetor, funcaoCondicional) {
|
|
|
6004
6006
|
if (vetor === null || vetor === undefined)
|
|
6005
6007
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
6006
6008
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
6007
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
6009
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
6008
6010
|
}, 'Parâmetro inválido. O primeiro parâmetro da função todosEmCondicao() não pode ser nulo.'));
|
|
6009
6011
|
const valorVetor = vetor.hasOwnProperty('valor') ? vetor.valor : vetor;
|
|
6010
6012
|
const valorFuncaoCondicional = funcaoCondicional.hasOwnProperty('valor')
|
|
@@ -6013,13 +6015,13 @@ async function todosEmCondicao(interpretador, vetor, funcaoCondicional) {
|
|
|
6013
6015
|
if (!Array.isArray(valorVetor)) {
|
|
6014
6016
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
6015
6017
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
6016
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
6018
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
6017
6019
|
}, 'Parâmetro inválido. O primeiro parâmetro da função todosEmCondicao() deve ser um vetor.'));
|
|
6018
6020
|
}
|
|
6019
6021
|
if (valorFuncaoCondicional.constructor.name !== 'DeleguaFuncao') {
|
|
6020
6022
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
6021
6023
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
6022
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
6024
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
6023
6025
|
}, 'Parâmetro inválido. O segundo parâmetro da função todosEmCondicao() deve ser uma função.'));
|
|
6024
6026
|
}
|
|
6025
6027
|
for (let indice = 0; indice < valorVetor.length; ++indice) {
|
|
@@ -6042,7 +6044,7 @@ async function tupla(interpretador, vetor) {
|
|
|
6042
6044
|
if (!Array.isArray(valorVetor)) {
|
|
6043
6045
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
6044
6046
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
6045
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
6047
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
6046
6048
|
}, 'Argumento de função nativa `tupla` não parece ser um vetor.'));
|
|
6047
6049
|
}
|
|
6048
6050
|
switch (valorVetor.length) {
|
|
@@ -6068,7 +6070,7 @@ async function tupla(interpretador, vetor) {
|
|
|
6068
6070
|
default:
|
|
6069
6071
|
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao({
|
|
6070
6072
|
hashArquivo: interpretador.hashArquivoDeclaracaoAtual,
|
|
6071
|
-
linha: interpretador.linhaDeclaracaoAtual
|
|
6073
|
+
linha: interpretador.linhaDeclaracaoAtual,
|
|
6072
6074
|
}, 'Para ser transformado em uma tupla, vetor precisa ter de 2 a 10 elementos.'));
|
|
6073
6075
|
}
|
|
6074
6076
|
}
|
|
@@ -6081,7 +6083,7 @@ const contemComum = (nome) => {
|
|
|
6081
6083
|
return {
|
|
6082
6084
|
tipoRetorno: 'lógico',
|
|
6083
6085
|
argumentos: [
|
|
6084
|
-
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('chave', 'qualquer', true, [], 'O elemento como chave do dicionário.')
|
|
6086
|
+
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('chave', 'qualquer', true, [], 'O elemento como chave do dicionário.'),
|
|
6085
6087
|
],
|
|
6086
6088
|
implementacao: (interpretador, nomePrimitiva, valor, chave) => Promise.resolve(chave in valor),
|
|
6087
6089
|
assinaturaFormato: `dicionário.${nome}(chave: qualquer)`,
|
|
@@ -6093,7 +6095,7 @@ const contemComum = (nome) => {
|
|
|
6093
6095
|
`escreva(d.${nome}("a")) // verdadeiro\n` +
|
|
6094
6096
|
`escreva(d.${nome}("f")) // falso\n\`\`\`` +
|
|
6095
6097
|
'\n\n## Formas de uso\n',
|
|
6096
|
-
exemploCodigo: 'dicionário.contem("minhaChave")'
|
|
6098
|
+
exemploCodigo: 'dicionário.contem("minhaChave")',
|
|
6097
6099
|
};
|
|
6098
6100
|
};
|
|
6099
6101
|
exports.default = {
|
|
@@ -6111,7 +6113,7 @@ exports.default = {
|
|
|
6111
6113
|
'var d = {"a": 1, "b": 2, "c": 3}\n' +
|
|
6112
6114
|
'escreva(d.chaves()) // ["a", "b", "c"]\n```' +
|
|
6113
6115
|
'\n\n## Formas de uso\n',
|
|
6114
|
-
exemploCodigo: 'dicionário.chaves()'
|
|
6116
|
+
exemploCodigo: 'dicionário.chaves()',
|
|
6115
6117
|
},
|
|
6116
6118
|
contem: contemComum('contem'),
|
|
6117
6119
|
contém: contemComum('contém'),
|
|
@@ -6149,7 +6151,7 @@ exports.default = {
|
|
|
6149
6151
|
'var n = -5\n' +
|
|
6150
6152
|
'escreva(n.absoluto()) // 5\n```' +
|
|
6151
6153
|
'\n\n## Formas de uso\n',
|
|
6152
|
-
exemploCodigo: 'numero.absoluto()'
|
|
6154
|
+
exemploCodigo: 'numero.absoluto()',
|
|
6153
6155
|
},
|
|
6154
6156
|
arredondarParaBaixo: {
|
|
6155
6157
|
tipoRetorno: 'número',
|
|
@@ -6165,7 +6167,7 @@ exports.default = {
|
|
|
6165
6167
|
'var n = 2.5\n' +
|
|
6166
6168
|
'escreva(n.arredondarParaBaixo()) // 2\n```' +
|
|
6167
6169
|
'\n\n## Formas de uso\n',
|
|
6168
|
-
exemploCodigo: 'numero.arredondarParaBaixo()'
|
|
6170
|
+
exemploCodigo: 'numero.arredondarParaBaixo()',
|
|
6169
6171
|
},
|
|
6170
6172
|
arredondarParaCima: {
|
|
6171
6173
|
tipoRetorno: 'número',
|
|
@@ -6181,12 +6183,12 @@ exports.default = {
|
|
|
6181
6183
|
'var n = 2.5\n' +
|
|
6182
6184
|
'escreva(n.arredondarParaCima()) // 3\n```' +
|
|
6183
6185
|
'\n\n## Formas de uso\n',
|
|
6184
|
-
exemploCodigo: 'numero.arredondarParaCima()'
|
|
6186
|
+
exemploCodigo: 'numero.arredondarParaCima()',
|
|
6185
6187
|
},
|
|
6186
6188
|
formatar: {
|
|
6187
6189
|
tipoRetorno: 'texto',
|
|
6188
6190
|
argumentos: [
|
|
6189
|
-
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('opcoesFormatacao', 'dicionário', false, [], 'Dicionário com opções de formatação, como número de casas decimais.')
|
|
6191
|
+
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('opcoesFormatacao', 'dicionário', false, [], 'Dicionário com opções de formatação, como número de casas decimais.'),
|
|
6190
6192
|
],
|
|
6191
6193
|
implementacao: (interpretador, nomePrimitiva, valor, opcoes) => {
|
|
6192
6194
|
let minimoCasasDecimais = 2;
|
|
@@ -6199,7 +6201,7 @@ exports.default = {
|
|
|
6199
6201
|
}
|
|
6200
6202
|
return Promise.resolve(valor.toLocaleString('pt-BR', {
|
|
6201
6203
|
minimumFractionDigits: minimoCasasDecimais,
|
|
6202
|
-
maximumFractionDigits: maximoCasasDecimais
|
|
6204
|
+
maximumFractionDigits: maximoCasasDecimais,
|
|
6203
6205
|
}));
|
|
6204
6206
|
},
|
|
6205
6207
|
assinaturaFormato: 'número.formatar(opcoesFormatacao)',
|
|
@@ -6211,8 +6213,8 @@ exports.default = {
|
|
|
6211
6213
|
'escreva(n.formatar()) // 1.234,56\n' +
|
|
6212
6214
|
'escreva(n.formatar({ minimoCasasDecimais: 2, maximoCasasDecimais: 3 })) // 1.234,568\n```' +
|
|
6213
6215
|
'\n\n## Formas de uso\n',
|
|
6214
|
-
exemploCodigo: 'numero.formatar({ maximoCasasDecimais: 2 })'
|
|
6215
|
-
}
|
|
6216
|
+
exemploCodigo: 'numero.formatar({ maximoCasasDecimais: 2 })',
|
|
6217
|
+
},
|
|
6216
6218
|
};
|
|
6217
6219
|
|
|
6218
6220
|
},{"../informacao-variavel-ou-constante":110}],20:[function(require,module,exports){
|
|
@@ -6231,7 +6233,7 @@ exports.default = {
|
|
|
6231
6233
|
'\n\n```delegua\nvar t = " meu texto com espaços no início e no fim "\n' +
|
|
6232
6234
|
'escreva("|" + t.aparar() + "|") // "|meu texto com espaços no início e no fim|"\n```' +
|
|
6233
6235
|
'\n\n ### Formas de uso \n',
|
|
6234
|
-
exemploCodigo: 'texto.aparar()'
|
|
6236
|
+
exemploCodigo: 'texto.aparar()',
|
|
6235
6237
|
},
|
|
6236
6238
|
apararFim: {
|
|
6237
6239
|
tipoRetorno: 'texto',
|
|
@@ -6244,7 +6246,7 @@ exports.default = {
|
|
|
6244
6246
|
'\n\n```delegua\nvar t = " meu texto com espaços no início e no fim "\n' +
|
|
6245
6247
|
'escreva("|" + t.apararFim() + "|") // "| meu texto com espaços no início e no fim|"\n```' +
|
|
6246
6248
|
'\n\n ### Formas de uso \n',
|
|
6247
|
-
exemploCodigo: 'texto.apararFim()'
|
|
6249
|
+
exemploCodigo: 'texto.apararFim()',
|
|
6248
6250
|
},
|
|
6249
6251
|
apararInicio: {
|
|
6250
6252
|
tipoRetorno: 'texto',
|
|
@@ -6257,12 +6259,12 @@ exports.default = {
|
|
|
6257
6259
|
'\n\n```delegua\nvar t = " meu texto com espaços no início e no fim "\n' +
|
|
6258
6260
|
'escreva("|" + t.apararInicio() + "|") // "|meu texto com espaços no início e no fim |"\n```' +
|
|
6259
6261
|
'\n\n ### Formas de uso \n',
|
|
6260
|
-
exemploCodigo: 'texto.apararInicio()'
|
|
6262
|
+
exemploCodigo: 'texto.apararInicio()',
|
|
6261
6263
|
},
|
|
6262
6264
|
concatenar: {
|
|
6263
6265
|
tipoRetorno: 'texto',
|
|
6264
6266
|
argumentos: [
|
|
6265
|
-
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('outroTexto', 'texto', true, [], 'O texto a ser concatenado.')
|
|
6267
|
+
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('outroTexto', 'texto', true, [], 'O texto a ser concatenado.'),
|
|
6266
6268
|
],
|
|
6267
6269
|
implementacao: (interpretador, nomePrimitiva, ...texto) => Promise.resolve(''.concat(...texto)),
|
|
6268
6270
|
assinaturaFormato: 'texto.concatenar(...outroTexto: texto)',
|
|
@@ -6273,7 +6275,7 @@ exports.default = {
|
|
|
6273
6275
|
'var t2 = "dois três"\n' +
|
|
6274
6276
|
'escreva(t1.concatenar(t2)) // "umdois três"\n```' +
|
|
6275
6277
|
'\n\n ### Formas de uso \n',
|
|
6276
|
-
exemploCodigo: 'texto.concatenar(outroTexto)'
|
|
6278
|
+
exemploCodigo: 'texto.concatenar(outroTexto)',
|
|
6277
6279
|
},
|
|
6278
6280
|
dividir: {
|
|
6279
6281
|
tipoRetorno: 'texto[]',
|
|
@@ -6292,9 +6294,9 @@ exports.default = {
|
|
|
6292
6294
|
'Divide o texto pelo separador passado como parâmetro.' +
|
|
6293
6295
|
'\n\n ## Exemplo de Código\n' +
|
|
6294
6296
|
'\n\n```delegua\nvar t = "um dois três"\n' +
|
|
6295
|
-
|
|
6297
|
+
"t.dividir(' ') // ['um','dois','três']\n```" +
|
|
6296
6298
|
'\n\n ### Formas de uso \n',
|
|
6297
|
-
exemploCodigo:
|
|
6299
|
+
exemploCodigo: "texto.dividir('<delimitador (, ; ' ')>')",
|
|
6298
6300
|
},
|
|
6299
6301
|
fatiar: {
|
|
6300
6302
|
tipoRetorno: 'texto',
|
|
@@ -6313,13 +6315,12 @@ exports.default = {
|
|
|
6313
6315
|
't.fatiar(8, 12) // "três"\n' +
|
|
6314
6316
|
't.fatiar(8) // "três quatro", ou seja, seleciona tudo da posição 8 até o final do texto.\n```' +
|
|
6315
6317
|
'\n\n ### Formas de uso \n',
|
|
6316
|
-
exemploCodigo: 'texto.fatiar(início, final)\n' +
|
|
6317
|
-
'texto.fatiar(aPartirDaPosicao)'
|
|
6318
|
+
exemploCodigo: 'texto.fatiar(início, final)\n' + 'texto.fatiar(aPartirDaPosicao)',
|
|
6318
6319
|
},
|
|
6319
6320
|
inclui: {
|
|
6320
6321
|
tipoRetorno: 'texto',
|
|
6321
6322
|
argumentos: [
|
|
6322
|
-
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('elemento', 'texto', true, [], 'O elemento a ser verificado se está contido no texto.')
|
|
6323
|
+
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('elemento', 'texto', true, [], 'O elemento a ser verificado se está contido no texto.'),
|
|
6323
6324
|
],
|
|
6324
6325
|
implementacao: (interpretador, nomePrimitiva, texto, elemento) => Promise.resolve(texto.includes(elemento)),
|
|
6325
6326
|
assinaturaFormato: 'inclui(elemento: texto)',
|
|
@@ -6330,7 +6331,7 @@ exports.default = {
|
|
|
6330
6331
|
't.inclui("dois") // verdadeiro\n' +
|
|
6331
6332
|
't.inclui("quatro") // falso\n```' +
|
|
6332
6333
|
'\n\n ### Formas de uso \n',
|
|
6333
|
-
exemploCodigo:
|
|
6334
|
+
exemploCodigo: "texto.inclui('palavra')",
|
|
6334
6335
|
},
|
|
6335
6336
|
inverter: {
|
|
6336
6337
|
tipoRetorno: 'texto',
|
|
@@ -6343,7 +6344,7 @@ exports.default = {
|
|
|
6343
6344
|
'\n\n```delegua\nvar t = "um dois três"\n' +
|
|
6344
6345
|
't.inverter() // "sêrt siod mu"```' +
|
|
6345
6346
|
'\n\n ### Formas de uso \n',
|
|
6346
|
-
exemploCodigo: 'texto.inverter()'
|
|
6347
|
+
exemploCodigo: 'texto.inverter()',
|
|
6347
6348
|
},
|
|
6348
6349
|
maiusculo: {
|
|
6349
6350
|
tipoRetorno: 'texto',
|
|
@@ -6356,7 +6357,7 @@ exports.default = {
|
|
|
6356
6357
|
'\n\n```delegua\nvar t = "tudo em minúsculo"\n' +
|
|
6357
6358
|
'escreva(t.maiusculo()) // "TUDO EM MINÚSCULO"\n```' +
|
|
6358
6359
|
'\n\n ### Formas de uso \n',
|
|
6359
|
-
exemploCodigo: 'texto.maiusculo()'
|
|
6360
|
+
exemploCodigo: 'texto.maiusculo()',
|
|
6360
6361
|
},
|
|
6361
6362
|
minusculo: {
|
|
6362
6363
|
tipoRetorno: 'texto',
|
|
@@ -6369,7 +6370,7 @@ exports.default = {
|
|
|
6369
6370
|
'\n\n```delegua\nvar t = "TUDO EM MAIÚSCULO"\n' +
|
|
6370
6371
|
'escreva(t.minusculo()) // "tudo em maiúsculo"\n```' +
|
|
6371
6372
|
'\n\n ### Formas de uso \n',
|
|
6372
|
-
exemploCodigo: 'texto.minusculo()'
|
|
6373
|
+
exemploCodigo: 'texto.minusculo()',
|
|
6373
6374
|
},
|
|
6374
6375
|
substituir: {
|
|
6375
6376
|
tipoRetorno: 'texto',
|
|
@@ -6385,7 +6386,7 @@ exports.default = {
|
|
|
6385
6386
|
'\n\n```delegua\nvar t = "Eu gosto de caju"\n' +
|
|
6386
6387
|
't.substituir("caju", "graviola") // Resultado será "Eu gosto de graviola"\n```' +
|
|
6387
6388
|
'\n\n ### Formas de uso \n',
|
|
6388
|
-
exemploCodigo:
|
|
6389
|
+
exemploCodigo: "texto.substituir('palavra a ser substituída','nova palavra')",
|
|
6389
6390
|
},
|
|
6390
6391
|
subtexto: {
|
|
6391
6392
|
tipoRetorno: 'texto',
|
|
@@ -6401,7 +6402,7 @@ exports.default = {
|
|
|
6401
6402
|
'\n\n```delegua\nvar t = "Eu gosto de caju e de graviola"\n' +
|
|
6402
6403
|
't.subtexto(3, 16) // Resultado será "gosto de caju"\n```' +
|
|
6403
6404
|
'\n\n ### Formas de uso \n',
|
|
6404
|
-
exemploCodigo: 'texto.subtexto(posiçãoInicial, posiçãoFinal)'
|
|
6405
|
+
exemploCodigo: 'texto.subtexto(posiçãoInicial, posiçãoFinal)',
|
|
6405
6406
|
},
|
|
6406
6407
|
tamanho: {
|
|
6407
6408
|
tipoRetorno: 'inteiro',
|
|
@@ -6414,7 +6415,7 @@ exports.default = {
|
|
|
6414
6415
|
'\n\n```delegua\nvar t = "Um dois três quatro"\n' +
|
|
6415
6416
|
't.tamanho() // 19\n```' +
|
|
6416
6417
|
'\n\n ### Formas de uso \n',
|
|
6417
|
-
exemploCodigo: 'texto.tamanho()'
|
|
6418
|
+
exemploCodigo: 'texto.tamanho()',
|
|
6418
6419
|
},
|
|
6419
6420
|
};
|
|
6420
6421
|
|
|
@@ -6426,7 +6427,7 @@ exports.default = {
|
|
|
6426
6427
|
adicionar: {
|
|
6427
6428
|
tipoRetorno: 'qualquer[]',
|
|
6428
6429
|
argumentos: [
|
|
6429
|
-
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('elemento', 'qualquer', true, [], 'Os elementos a serem adicionados ao vetor.')
|
|
6430
|
+
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('elemento', 'qualquer', true, [], 'Os elementos a serem adicionados ao vetor.'),
|
|
6430
6431
|
],
|
|
6431
6432
|
implementacao: (interpretador, nomePrimitiva, vetor, elemento) => {
|
|
6432
6433
|
vetor.push(elemento);
|
|
@@ -6444,12 +6445,12 @@ exports.default = {
|
|
|
6444
6445
|
'v.adicionar(3)\n' +
|
|
6445
6446
|
'escreva(v) // [7, 5, 3]\n```' +
|
|
6446
6447
|
'\n\n ### Formas de uso \n',
|
|
6447
|
-
exemploCodigo: 'vetor.adicionar(elemento)'
|
|
6448
|
+
exemploCodigo: 'vetor.adicionar(elemento)',
|
|
6448
6449
|
},
|
|
6449
6450
|
concatenar: {
|
|
6450
6451
|
tipoRetorno: 'qualquer[]',
|
|
6451
6452
|
argumentos: [
|
|
6452
|
-
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('outroVetor', 'qualquer[]', true, [], 'O outro vetorm ou outros vetores, a serem concatenados a este vetor.')
|
|
6453
|
+
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('outroVetor', 'qualquer[]', true, [], 'O outro vetorm ou outros vetores, a serem concatenados a este vetor.'),
|
|
6453
6454
|
],
|
|
6454
6455
|
implementacao: (interpretador, nomePrimitiva, vetor, outroVetor) => {
|
|
6455
6456
|
return Promise.resolve(vetor.concat(outroVetor));
|
|
@@ -6461,13 +6462,11 @@ exports.default = {
|
|
|
6461
6462
|
'\n\n```delegua\nvar v = [7, 5, 3]\n' +
|
|
6462
6463
|
'escreva(v.concatenar([1, 2, 4])) // [7, 5, 3, 1, 2, 4]\n```' +
|
|
6463
6464
|
'\n\n ### Formas de uso \n',
|
|
6464
|
-
exemploCodigo: 'vetor.concatenar(...argumentos)'
|
|
6465
|
+
exemploCodigo: 'vetor.concatenar(...argumentos)',
|
|
6465
6466
|
},
|
|
6466
6467
|
empilhar: {
|
|
6467
6468
|
tipoRetorno: 'qualquer[]',
|
|
6468
|
-
argumentos: [
|
|
6469
|
-
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('elemento', 'qualquer', true, [], '')
|
|
6470
|
-
],
|
|
6469
|
+
argumentos: [new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('elemento', 'qualquer', true, [], '')],
|
|
6471
6470
|
implementacao: (interpretador, nomePrimitiva, vetor, elemento) => {
|
|
6472
6471
|
vetor.push(elemento);
|
|
6473
6472
|
return Promise.resolve(vetor);
|
|
@@ -6482,7 +6481,7 @@ exports.default = {
|
|
|
6482
6481
|
'v.empilhar(3)\n' +
|
|
6483
6482
|
'escreva(v) // [7, 5, 3]\n```' +
|
|
6484
6483
|
'\n\n ### Formas de uso \n',
|
|
6485
|
-
exemploCodigo: 'vetor.empilhar(elemento)'
|
|
6484
|
+
exemploCodigo: 'vetor.empilhar(elemento)',
|
|
6486
6485
|
},
|
|
6487
6486
|
encaixar: {
|
|
6488
6487
|
tipoRetorno: 'qualquer[]',
|
|
@@ -6522,12 +6521,12 @@ exports.default = {
|
|
|
6522
6521
|
'\n\n ### Formas de uso \n' +
|
|
6523
6522
|
'Fatiar suporta sobrecarga do método.\n\n',
|
|
6524
6523
|
exemploCodigo: 'vetor.fatiar(<a partir desta posição>)\n' +
|
|
6525
|
-
'vetor.fatiar(<a partir desta posição>, <até esta posição>)'
|
|
6524
|
+
'vetor.fatiar(<a partir desta posição>, <até esta posição>)',
|
|
6526
6525
|
},
|
|
6527
6526
|
filtrarPor: {
|
|
6528
6527
|
tipoRetorno: 'qualquer[]',
|
|
6529
6528
|
argumentos: [
|
|
6530
|
-
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('funcao', 'função', true, [], 'A função de filtragem.')
|
|
6529
|
+
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('funcao', 'função', true, [], 'A função de filtragem.'),
|
|
6531
6530
|
],
|
|
6532
6531
|
implementacao: async (interpretador, nomePrimitiva, vetor, funcao) => {
|
|
6533
6532
|
if (funcao === undefined || funcao === null) {
|
|
@@ -6536,7 +6535,8 @@ exports.default = {
|
|
|
6536
6535
|
const retorno = [];
|
|
6537
6536
|
for (let elemento of vetor) {
|
|
6538
6537
|
const resultadoChamada = await funcao.chamar(interpretador, [elemento]);
|
|
6539
|
-
if (resultadoChamada.hasOwnProperty('valorRetornado') &&
|
|
6538
|
+
if (resultadoChamada.hasOwnProperty('valorRetornado') &&
|
|
6539
|
+
resultadoChamada.valorRetornado.valor === true) {
|
|
6540
6540
|
retorno.push(elemento);
|
|
6541
6541
|
}
|
|
6542
6542
|
}
|
|
@@ -6551,12 +6551,12 @@ exports.default = {
|
|
|
6551
6551
|
'var funcaoNumerosImpares = funcao (n) { retorna n % 2 > 0 }\n' +
|
|
6552
6552
|
'escreva(v.filtrarPor(funcaoNumerosImpares)) // "[1, 3, 5]"\n```' +
|
|
6553
6553
|
'\n\n ### Formas de uso \n',
|
|
6554
|
-
exemploCodigo: 'vetor.filtrarPor(funcao (argumento) { <corpo da função com retorna> })'
|
|
6554
|
+
exemploCodigo: 'vetor.filtrarPor(funcao (argumento) { <corpo da função com retorna> })',
|
|
6555
6555
|
},
|
|
6556
6556
|
inclui: {
|
|
6557
6557
|
tipoRetorno: 'lógico',
|
|
6558
6558
|
argumentos: [
|
|
6559
|
-
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('elemento', 'qualquer', true, [], 'O elemento a ser verificado se está presente no vetor.')
|
|
6559
|
+
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('elemento', 'qualquer', true, [], 'O elemento a ser verificado se está presente no vetor.'),
|
|
6560
6560
|
],
|
|
6561
6561
|
implementacao: (interpretador, nomePrimitiva, vetor, elemento) => Promise.resolve(vetor.includes(elemento)),
|
|
6562
6562
|
assinaturaFormato: 'vetor.inclui(elemento: qualquer)',
|
|
@@ -6567,7 +6567,7 @@ exports.default = {
|
|
|
6567
6567
|
'escreva(v.inclui(2)) // verdadeiro\n' +
|
|
6568
6568
|
'escreva(v.inclui(4)) // falso\n```' +
|
|
6569
6569
|
'\n\n ### Formas de uso \n',
|
|
6570
|
-
exemploCodigo: 'vetor.inclui(elemento)'
|
|
6570
|
+
exemploCodigo: 'vetor.inclui(elemento)',
|
|
6571
6571
|
},
|
|
6572
6572
|
inverter: {
|
|
6573
6573
|
tipoRetorno: 'qualquer[]',
|
|
@@ -6580,12 +6580,12 @@ exports.default = {
|
|
|
6580
6580
|
'\n\n```delegua\nvar v = [1, 2, 3]\n' +
|
|
6581
6581
|
'escreva(v.inverter()) // [3, 2, 1]\n```' +
|
|
6582
6582
|
'\n\n ### Formas de uso \n',
|
|
6583
|
-
exemploCodigo: 'vetor.inverter()'
|
|
6583
|
+
exemploCodigo: 'vetor.inverter()',
|
|
6584
6584
|
},
|
|
6585
6585
|
juntar: {
|
|
6586
6586
|
tipoRetorno: 'texto',
|
|
6587
6587
|
argumentos: [
|
|
6588
|
-
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('separador', 'texto', true, [], 'O separador entre elementos do vetor para o texto.')
|
|
6588
|
+
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('separador', 'texto', true, [], 'O separador entre elementos do vetor para o texto.'),
|
|
6589
6589
|
],
|
|
6590
6590
|
implementacao: (interpretador, nomePrimitiva, vetor, separador) => Promise.resolve(vetor.join(separador)),
|
|
6591
6591
|
assinaturaFormato: 'vetor.juntar(separador: texto)',
|
|
@@ -6595,12 +6595,12 @@ exports.default = {
|
|
|
6595
6595
|
'\n\n```delegua\nvar v = [1, 2, 3]\n' +
|
|
6596
6596
|
'escreva(v.juntar(":")) // "1:2:3"\n```' +
|
|
6597
6597
|
'\n\n ### Formas de uso \n',
|
|
6598
|
-
exemploCodigo: 'vetor.juntar()'
|
|
6598
|
+
exemploCodigo: 'vetor.juntar()',
|
|
6599
6599
|
},
|
|
6600
6600
|
mapear: {
|
|
6601
6601
|
tipoRetorno: 'qualquer[]',
|
|
6602
6602
|
argumentos: [
|
|
6603
|
-
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('funcao', 'função', true, [], 'A função que transforma cada elemento de um vetor em outro elemento a ser retornado em um novo vetor.')
|
|
6603
|
+
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('funcao', 'função', true, [], 'A função que transforma cada elemento de um vetor em outro elemento a ser retornado em um novo vetor.'),
|
|
6604
6604
|
],
|
|
6605
6605
|
implementacao: async (interpretador, nomePrimitiva, vetor, funcao) => {
|
|
6606
6606
|
if (funcao === undefined || funcao === null) {
|
|
@@ -6622,12 +6622,12 @@ exports.default = {
|
|
|
6622
6622
|
'var funcaoPotenciasDeDois = funcao (n) { retorna n ** 2 }\n' +
|
|
6623
6623
|
'escreva(v.mapear(funcaoPotenciasDeDois)) // [1, 4, 9, 16, 25]\n```' +
|
|
6624
6624
|
'\n\n ### Formas de uso \n',
|
|
6625
|
-
exemploCodigo: 'vetor.mapear(funcao (argumento) { <corpo da função com retorna> })'
|
|
6625
|
+
exemploCodigo: 'vetor.mapear(funcao (argumento) { <corpo da função com retorna> })',
|
|
6626
6626
|
},
|
|
6627
6627
|
ordenar: {
|
|
6628
6628
|
tipoRetorno: 'qualquer[]',
|
|
6629
6629
|
argumentos: [
|
|
6630
|
-
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('funcaoOrdenacao', 'função', false, [], '(Opcional) Função para guiar a ordenação.')
|
|
6630
|
+
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('funcaoOrdenacao', 'função', false, [], '(Opcional) Função para guiar a ordenação.'),
|
|
6631
6631
|
],
|
|
6632
6632
|
implementacao: async (interpretador, nomePrimitiva, vetor, funcaoOrdenacao) => {
|
|
6633
6633
|
if (funcaoOrdenacao !== undefined && funcaoOrdenacao !== null) {
|
|
@@ -6676,12 +6676,12 @@ exports.default = {
|
|
|
6676
6676
|
'var v = ["aaa", "a", "aba", "abb", "abc"]\n' +
|
|
6677
6677
|
'escreva(v.ordenar()) // ["a", "aaa", "aba", "abb", "abc"]\n```' +
|
|
6678
6678
|
'\n\n ### Formas de uso \n',
|
|
6679
|
-
exemploCodigo: 'vetor.ordenar()'
|
|
6679
|
+
exemploCodigo: 'vetor.ordenar()',
|
|
6680
6680
|
},
|
|
6681
6681
|
remover: {
|
|
6682
6682
|
tipoRetorno: 'qualquer[]',
|
|
6683
6683
|
argumentos: [
|
|
6684
|
-
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('elemento', 'qualquer', true, [], 'O elemento a ser removido do vetor.')
|
|
6684
|
+
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('elemento', 'qualquer', true, [], 'O elemento a ser removido do vetor.'),
|
|
6685
6685
|
],
|
|
6686
6686
|
implementacao: (interpretador, nomePrimitiva, vetor, elemento) => {
|
|
6687
6687
|
const index = vetor.indexOf(elemento);
|
|
@@ -6697,7 +6697,7 @@ exports.default = {
|
|
|
6697
6697
|
'vetor.remover(2)\n' +
|
|
6698
6698
|
'escreva(vetor) // [1, 3]\n```' +
|
|
6699
6699
|
'\n\n ### Formas de uso \n',
|
|
6700
|
-
exemploCodigo: 'vetor.remover(elemento)'
|
|
6700
|
+
exemploCodigo: 'vetor.remover(elemento)',
|
|
6701
6701
|
},
|
|
6702
6702
|
removerPrimeiro: {
|
|
6703
6703
|
tipoRetorno: 'qualquer',
|
|
@@ -6715,7 +6715,7 @@ exports.default = {
|
|
|
6715
6715
|
'escreva(primeiroElemento) // 1\n' +
|
|
6716
6716
|
'escreva(vetor) // [2, 3]\n```' +
|
|
6717
6717
|
'\n\n ### Formas de uso \n',
|
|
6718
|
-
exemploCodigo: 'vetor.removerPrimeiro()'
|
|
6718
|
+
exemploCodigo: 'vetor.removerPrimeiro()',
|
|
6719
6719
|
},
|
|
6720
6720
|
removerUltimo: {
|
|
6721
6721
|
tipoRetorno: 'qualquer',
|
|
@@ -6733,7 +6733,7 @@ exports.default = {
|
|
|
6733
6733
|
'escreva(ultimoElemento) // 3\n' +
|
|
6734
6734
|
'escreva(vetor) // [1, 2]\n```' +
|
|
6735
6735
|
'\n\n ### Formas de uso \n',
|
|
6736
|
-
exemploCodigo: 'vetor.removerUltimo()'
|
|
6736
|
+
exemploCodigo: 'vetor.removerUltimo()',
|
|
6737
6737
|
},
|
|
6738
6738
|
somar: {
|
|
6739
6739
|
tipoRetorno: 'qualquer',
|
|
@@ -6748,7 +6748,7 @@ exports.default = {
|
|
|
6748
6748
|
'\n\n```delegua\nvar vetor = [1, 2, 3, 4, 5]\n' +
|
|
6749
6749
|
'escreva(vetor.somar()) // 15\n```' +
|
|
6750
6750
|
'\n\n ### Formas de uso \n',
|
|
6751
|
-
exemploCodigo: 'vetor.somar()'
|
|
6751
|
+
exemploCodigo: 'vetor.somar()',
|
|
6752
6752
|
},
|
|
6753
6753
|
tamanho: {
|
|
6754
6754
|
tipoRetorno: 'número',
|
|
@@ -6761,7 +6761,7 @@ exports.default = {
|
|
|
6761
6761
|
'\n\n```delegua\nvar vetor = [0, 1, 2, 3, 4]\n' +
|
|
6762
6762
|
'escreva(vetor.tamanho()) // 5\n```' +
|
|
6763
6763
|
'\n\n ### Formas de uso \n',
|
|
6764
|
-
exemploCodigo: 'vetor.tamanho()'
|
|
6764
|
+
exemploCodigo: 'vetor.tamanho()',
|
|
6765
6765
|
},
|
|
6766
6766
|
};
|
|
6767
6767
|
|
|
@@ -6782,10 +6782,10 @@ class AcessoElementoMatriz {
|
|
|
6782
6782
|
return await visitante.visitarExpressaoAcessoElementoMatriz(this);
|
|
6783
6783
|
}
|
|
6784
6784
|
paraTexto() {
|
|
6785
|
-
return `<acesso-elemento-matriz entidadeChamada=${this.entidadeChamada.paraTexto()} ` +
|
|
6785
|
+
return (`<acesso-elemento-matriz entidadeChamada=${this.entidadeChamada.paraTexto()} ` +
|
|
6786
6786
|
`indicePrimário=${this.indicePrimario.paraTexto()} ` +
|
|
6787
6787
|
`indiceSecundário=${this.indiceSecundario.paraTexto()} ` +
|
|
6788
|
-
|
|
6788
|
+
`/>`);
|
|
6789
6789
|
}
|
|
6790
6790
|
}
|
|
6791
6791
|
exports.AcessoElementoMatriz = AcessoElementoMatriz;
|
|
@@ -6810,9 +6810,9 @@ class AcessoIndiceVariavel {
|
|
|
6810
6810
|
return await visitante.visitarExpressaoAcessoIndiceVariavel(this);
|
|
6811
6811
|
}
|
|
6812
6812
|
paraTexto() {
|
|
6813
|
-
return `<acesso-índice-variável entidadeChamada=${this.entidadeChamada.paraTexto()} ` +
|
|
6813
|
+
return (`<acesso-índice-variável entidadeChamada=${this.entidadeChamada.paraTexto()} ` +
|
|
6814
6814
|
`índice=${this.indice.paraTexto()} ` +
|
|
6815
|
-
|
|
6815
|
+
`/>`);
|
|
6816
6816
|
}
|
|
6817
6817
|
}
|
|
6818
6818
|
exports.AcessoIndiceVariavel = AcessoIndiceVariavel;
|
|
@@ -6839,9 +6839,9 @@ class AcessoMetodoOuPropriedade {
|
|
|
6839
6839
|
return await visitante.visitarExpressaoAcessoMetodoOuPropriedade(this);
|
|
6840
6840
|
}
|
|
6841
6841
|
paraTexto() {
|
|
6842
|
-
return `<acesso-método-ou-propriedade objeto=${this.objeto.paraTexto()} ` +
|
|
6842
|
+
return (`<acesso-método-ou-propriedade objeto=${this.objeto.paraTexto()} ` +
|
|
6843
6843
|
`métodoOuPropriedade=${this.simbolo.lexema} ` +
|
|
6844
|
-
|
|
6844
|
+
`/>`);
|
|
6845
6845
|
}
|
|
6846
6846
|
}
|
|
6847
6847
|
exports.AcessoMetodoOuPropriedade = AcessoMetodoOuPropriedade;
|
|
@@ -6954,10 +6954,10 @@ class AtribuicaoPorIndice {
|
|
|
6954
6954
|
return await visitante.visitarExpressaoAtribuicaoPorIndice(this);
|
|
6955
6955
|
}
|
|
6956
6956
|
paraTexto() {
|
|
6957
|
-
return `<atribuição-por-índice objeto=${this.objeto.paraTexto()} ` +
|
|
6957
|
+
return (`<atribuição-por-índice objeto=${this.objeto.paraTexto()} ` +
|
|
6958
6958
|
`índice=${this.indice.paraTexto()} ` +
|
|
6959
6959
|
`valor=${this.valor.paraTexto()} ` +
|
|
6960
|
-
|
|
6960
|
+
`/>`);
|
|
6961
6961
|
}
|
|
6962
6962
|
}
|
|
6963
6963
|
exports.AtribuicaoPorIndice = AtribuicaoPorIndice;
|
|
@@ -6979,11 +6979,11 @@ class AtribuicaoPorIndicesMatriz {
|
|
|
6979
6979
|
return await visitante.visitarExpressaoAtribuicaoPorIndicesMatriz(this);
|
|
6980
6980
|
}
|
|
6981
6981
|
paraTexto() {
|
|
6982
|
-
return `<atribuição-por-índices-matriz objeto=${this.objeto.paraTexto()} ` +
|
|
6982
|
+
return (`<atribuição-por-índices-matriz objeto=${this.objeto.paraTexto()} ` +
|
|
6983
6983
|
`índice-primário=${this.indicePrimario.paraTexto()} ` +
|
|
6984
6984
|
`índice-secundário=${this.indiceSecundario.paraTexto()} ` +
|
|
6985
6985
|
`valor=${this.valor.paraTexto()} ` +
|
|
6986
|
-
`
|
|
6986
|
+
` />`);
|
|
6987
6987
|
}
|
|
6988
6988
|
}
|
|
6989
6989
|
exports.AtribuicaoPorIndicesMatriz = AtribuicaoPorIndicesMatriz;
|
|
@@ -7015,7 +7015,7 @@ class Atribuir {
|
|
|
7015
7015
|
return await visitante.visitarExpressaoDeAtribuicao(this);
|
|
7016
7016
|
}
|
|
7017
7017
|
paraTexto() {
|
|
7018
|
-
let indiceResolvido =
|
|
7018
|
+
let indiceResolvido = 'índice=(não definido)';
|
|
7019
7019
|
if (this.indice) {
|
|
7020
7020
|
indiceResolvido = `índice=${this.indice.paraTexto()}`;
|
|
7021
7021
|
}
|
|
@@ -7081,10 +7081,10 @@ class Binario {
|
|
|
7081
7081
|
return await visitante.visitarExpressaoBinaria(this);
|
|
7082
7082
|
}
|
|
7083
7083
|
paraTexto() {
|
|
7084
|
-
return `<binário esquerda=${this.esquerda.paraTexto()} operador=${this.operador.lexema} ` +
|
|
7084
|
+
return (`<binário esquerda=${this.esquerda.paraTexto()} operador=${this.operador.lexema} ` +
|
|
7085
7085
|
`direita=${this.direita.paraTexto()} ` +
|
|
7086
7086
|
`tipo=${this.tipo} ` +
|
|
7087
|
-
|
|
7087
|
+
`/>`);
|
|
7088
7088
|
}
|
|
7089
7089
|
}
|
|
7090
7090
|
exports.Binario = Binario;
|
|
@@ -7449,7 +7449,7 @@ class Leia {
|
|
|
7449
7449
|
return await visitante.visitarExpressaoLeia(this);
|
|
7450
7450
|
}
|
|
7451
7451
|
paraTexto() {
|
|
7452
|
-
return `<leia argumentos=[${this.argumentos.reduce((anterior, atual) => anterior += atual.paraTexto(),
|
|
7452
|
+
return `<leia argumentos=[${this.argumentos.reduce((anterior, atual) => (anterior += atual.paraTexto()), '')}] />`;
|
|
7453
7453
|
}
|
|
7454
7454
|
}
|
|
7455
7455
|
exports.Leia = Leia;
|
|
@@ -7490,9 +7490,9 @@ class Logico {
|
|
|
7490
7490
|
return await visitante.visitarExpressaoLogica(this);
|
|
7491
7491
|
}
|
|
7492
7492
|
paraTexto() {
|
|
7493
|
-
return `<lógico esquerda=${this.esquerda.paraTexto()} operador=${this.operador.lexema} ` +
|
|
7493
|
+
return (`<lógico esquerda=${this.esquerda.paraTexto()} operador=${this.operador.lexema} ` +
|
|
7494
7494
|
`direita=${this.direita.paraTexto()} ` +
|
|
7495
|
-
|
|
7495
|
+
`/>`);
|
|
7496
7496
|
}
|
|
7497
7497
|
}
|
|
7498
7498
|
exports.Logico = Logico;
|
|
@@ -7648,7 +7648,7 @@ class Deceto extends tupla_1.Tupla {
|
|
|
7648
7648
|
this.decimo = valor;
|
|
7649
7649
|
}
|
|
7650
7650
|
paraTexto() {
|
|
7651
|
-
return `<deceto primeiro=${this.primeiro.paraTexto()} ` +
|
|
7651
|
+
return (`<deceto primeiro=${this.primeiro.paraTexto()} ` +
|
|
7652
7652
|
`segundo=${this.segundo.paraTexto()} ` +
|
|
7653
7653
|
`terceiro=${this.terceiro.paraTexto()} ` +
|
|
7654
7654
|
`quarto=${this.quarto.paraTexto()} ` +
|
|
@@ -7658,7 +7658,7 @@ class Deceto extends tupla_1.Tupla {
|
|
|
7658
7658
|
`oitavo=${this.oitavo.paraTexto()} ` +
|
|
7659
7659
|
`nono=${this.nono.paraTexto()} ` +
|
|
7660
7660
|
`décimo=${this.decimo.paraTexto()} ` +
|
|
7661
|
-
`
|
|
7661
|
+
` />`);
|
|
7662
7662
|
}
|
|
7663
7663
|
}
|
|
7664
7664
|
exports.Deceto = Deceto;
|
|
@@ -7675,9 +7675,9 @@ class Dupla extends tupla_1.Tupla {
|
|
|
7675
7675
|
this.segundo = segundo;
|
|
7676
7676
|
}
|
|
7677
7677
|
paraTexto() {
|
|
7678
|
-
return `<dupla primeiro=${this.primeiro.paraTexto()} ` +
|
|
7678
|
+
return (`<dupla primeiro=${this.primeiro.paraTexto()} ` +
|
|
7679
7679
|
`segundo=${this.segundo.paraTexto()} ` +
|
|
7680
|
-
`
|
|
7680
|
+
` />`);
|
|
7681
7681
|
}
|
|
7682
7682
|
}
|
|
7683
7683
|
exports.Dupla = Dupla;
|
|
@@ -7775,7 +7775,7 @@ class Noneto extends tupla_1.Tupla {
|
|
|
7775
7775
|
this.setimo = valor;
|
|
7776
7776
|
}
|
|
7777
7777
|
paraTexto() {
|
|
7778
|
-
return `<noneto primeiro=${this.primeiro.paraTexto()} ` +
|
|
7778
|
+
return (`<noneto primeiro=${this.primeiro.paraTexto()} ` +
|
|
7779
7779
|
`segundo=${this.segundo.paraTexto()} ` +
|
|
7780
7780
|
`terceiro=${this.terceiro.paraTexto()} ` +
|
|
7781
7781
|
`quarto=${this.quarto.paraTexto()} ` +
|
|
@@ -7784,7 +7784,7 @@ class Noneto extends tupla_1.Tupla {
|
|
|
7784
7784
|
`sétimo=${this.setimo.paraTexto()} ` +
|
|
7785
7785
|
`oitavo=${this.oitavo.paraTexto()} ` +
|
|
7786
7786
|
`nono=${this.nono.paraTexto()} ` +
|
|
7787
|
-
`
|
|
7787
|
+
` />`);
|
|
7788
7788
|
}
|
|
7789
7789
|
}
|
|
7790
7790
|
exports.Noneto = Noneto;
|
|
@@ -7813,7 +7813,7 @@ class Octeto extends tupla_1.Tupla {
|
|
|
7813
7813
|
this.setimo = valor;
|
|
7814
7814
|
}
|
|
7815
7815
|
paraTexto() {
|
|
7816
|
-
return `<octeto primeiro=${this.primeiro.paraTexto()} ` +
|
|
7816
|
+
return (`<octeto primeiro=${this.primeiro.paraTexto()} ` +
|
|
7817
7817
|
`segundo=${this.segundo.paraTexto()} ` +
|
|
7818
7818
|
`terceiro=${this.terceiro.paraTexto()} ` +
|
|
7819
7819
|
`quarto=${this.quarto.paraTexto()} ` +
|
|
@@ -7821,7 +7821,7 @@ class Octeto extends tupla_1.Tupla {
|
|
|
7821
7821
|
`sexto=${this.sexto.paraTexto()} ` +
|
|
7822
7822
|
`sétimo=${this.setimo.paraTexto()} ` +
|
|
7823
7823
|
`oitavo=${this.oitavo.paraTexto()} ` +
|
|
7824
|
-
`
|
|
7824
|
+
` />`);
|
|
7825
7825
|
}
|
|
7826
7826
|
}
|
|
7827
7827
|
exports.Octeto = Octeto;
|
|
@@ -7840,11 +7840,11 @@ class Quarteto extends tupla_1.Tupla {
|
|
|
7840
7840
|
this.quarto = quarto;
|
|
7841
7841
|
}
|
|
7842
7842
|
paraTexto() {
|
|
7843
|
-
return `<quarteto primeiro=${this.primeiro.paraTexto()} ` +
|
|
7843
|
+
return (`<quarteto primeiro=${this.primeiro.paraTexto()} ` +
|
|
7844
7844
|
`segundo=${this.segundo.paraTexto()} ` +
|
|
7845
7845
|
`terceiro=${this.terceiro.paraTexto()} ` +
|
|
7846
7846
|
`quarto=${this.quarto.paraTexto()} ` +
|
|
7847
|
-
`
|
|
7847
|
+
` />`);
|
|
7848
7848
|
}
|
|
7849
7849
|
}
|
|
7850
7850
|
exports.Quarteto = Quarteto;
|
|
@@ -7864,12 +7864,12 @@ class Quinteto extends tupla_1.Tupla {
|
|
|
7864
7864
|
this.quinto = quinto;
|
|
7865
7865
|
}
|
|
7866
7866
|
paraTexto() {
|
|
7867
|
-
return `<quinteto primeiro=${this.primeiro.paraTexto()} ` +
|
|
7867
|
+
return (`<quinteto primeiro=${this.primeiro.paraTexto()} ` +
|
|
7868
7868
|
`segundo=${this.segundo.paraTexto()} ` +
|
|
7869
7869
|
`terceiro=${this.terceiro.paraTexto()} ` +
|
|
7870
7870
|
`quarto=${this.quarto.paraTexto()} ` +
|
|
7871
7871
|
`quinto=${this.quinto.paraTexto()} ` +
|
|
7872
|
-
`
|
|
7872
|
+
` />`);
|
|
7873
7873
|
}
|
|
7874
7874
|
}
|
|
7875
7875
|
exports.Quinteto = Quinteto;
|
|
@@ -7897,14 +7897,14 @@ class Septeto extends tupla_1.Tupla {
|
|
|
7897
7897
|
this.setimo = valor;
|
|
7898
7898
|
}
|
|
7899
7899
|
paraTexto() {
|
|
7900
|
-
return `<septeto primeiro=${this.primeiro.paraTexto()} ` +
|
|
7900
|
+
return (`<septeto primeiro=${this.primeiro.paraTexto()} ` +
|
|
7901
7901
|
`segundo=${this.segundo.paraTexto()} ` +
|
|
7902
7902
|
`terceiro=${this.terceiro.paraTexto()} ` +
|
|
7903
7903
|
`quarto=${this.quarto.paraTexto()} ` +
|
|
7904
7904
|
`quinto=${this.quinto.paraTexto()} ` +
|
|
7905
7905
|
`sexto=${this.sexto.paraTexto()} ` +
|
|
7906
7906
|
`sétimo=${this.setimo.paraTexto()} ` +
|
|
7907
|
-
`
|
|
7907
|
+
` />`);
|
|
7908
7908
|
}
|
|
7909
7909
|
}
|
|
7910
7910
|
exports.Septeto = Septeto;
|
|
@@ -7925,13 +7925,13 @@ class Sexteto extends tupla_1.Tupla {
|
|
|
7925
7925
|
this.sexto = sexto;
|
|
7926
7926
|
}
|
|
7927
7927
|
paraTexto() {
|
|
7928
|
-
return `<sexteto primeiro=${this.primeiro.paraTexto()} ` +
|
|
7928
|
+
return (`<sexteto primeiro=${this.primeiro.paraTexto()} ` +
|
|
7929
7929
|
`segundo=${this.segundo.paraTexto()} ` +
|
|
7930
7930
|
`terceiro=${this.terceiro.paraTexto()} ` +
|
|
7931
7931
|
`quarto=${this.quarto.paraTexto()} ` +
|
|
7932
7932
|
`quinto=${this.quinto.paraTexto()} ` +
|
|
7933
7933
|
`sexto=${this.sexto.paraTexto()} ` +
|
|
7934
|
-
`
|
|
7934
|
+
` />`);
|
|
7935
7935
|
}
|
|
7936
7936
|
}
|
|
7937
7937
|
exports.Sexteto = Sexteto;
|
|
@@ -7949,10 +7949,10 @@ class Trio extends tupla_1.Tupla {
|
|
|
7949
7949
|
this.terceiro = terceiro;
|
|
7950
7950
|
}
|
|
7951
7951
|
paraTexto() {
|
|
7952
|
-
return `<trio primeiro=${this.primeiro.paraTexto()} ` +
|
|
7952
|
+
return (`<trio primeiro=${this.primeiro.paraTexto()} ` +
|
|
7953
7953
|
`segundo=${this.segundo.paraTexto()} ` +
|
|
7954
7954
|
`terceiro=${this.terceiro.paraTexto()} ` +
|
|
7955
|
-
`
|
|
7955
|
+
` />`);
|
|
7956
7956
|
}
|
|
7957
7957
|
}
|
|
7958
7958
|
exports.Trio = Trio;
|
|
@@ -8019,7 +8019,7 @@ class Vetor {
|
|
|
8019
8019
|
return await visitante.visitarExpressaoVetor(this);
|
|
8020
8020
|
}
|
|
8021
8021
|
paraTexto() {
|
|
8022
|
-
return `<vetor tipo=${this.tipo} valores=${this.valores.reduce((anterior, atual) => anterior += atual.paraTexto(),
|
|
8022
|
+
return `<vetor tipo=${this.tipo} valores=${this.valores.reduce((anterior, atual) => (anterior += atual.paraTexto()), '')} />`;
|
|
8023
8023
|
}
|
|
8024
8024
|
}
|
|
8025
8025
|
exports.Vetor = Vetor;
|
|
@@ -8059,11 +8059,11 @@ class Bloco extends declaracao_1.Declaracao {
|
|
|
8059
8059
|
return await visitante.visitarExpressaoBloco(this);
|
|
8060
8060
|
}
|
|
8061
8061
|
paraTexto() {
|
|
8062
|
-
let resultado =
|
|
8062
|
+
let resultado = '<bloco>';
|
|
8063
8063
|
for (const declaracao of this.declaracoes) {
|
|
8064
8064
|
resultado += `${declaracao.paraTexto()}`;
|
|
8065
8065
|
}
|
|
8066
|
-
resultado +=
|
|
8066
|
+
resultado += '</bloco>';
|
|
8067
8067
|
return resultado;
|
|
8068
8068
|
}
|
|
8069
8069
|
}
|
|
@@ -8113,7 +8113,7 @@ class Classe extends declaracao_1.Declaracao {
|
|
|
8113
8113
|
if (this.superClasse) {
|
|
8114
8114
|
resultado += `herda=${this.superClasse} `;
|
|
8115
8115
|
}
|
|
8116
|
-
resultado +=
|
|
8116
|
+
resultado += '>';
|
|
8117
8117
|
for (const propriedade of this.propriedades) {
|
|
8118
8118
|
resultado += `${propriedade.paraTexto()}`;
|
|
8119
8119
|
}
|
|
@@ -8307,7 +8307,7 @@ class EscrevaMesmaLinha extends declaracao_1.Declaracao {
|
|
|
8307
8307
|
return await visitante.visitarDeclaracaoEscrevaMesmaLinha(this);
|
|
8308
8308
|
}
|
|
8309
8309
|
paraTexto() {
|
|
8310
|
-
return `<escreva-mesma-linha argumentos=${this.argumentos.reduce((anterior, atual) => anterior += atual.paraTexto(),
|
|
8310
|
+
return `<escreva-mesma-linha argumentos=${this.argumentos.reduce((anterior, atual) => (anterior += atual.paraTexto()), '')} />`;
|
|
8311
8311
|
}
|
|
8312
8312
|
}
|
|
8313
8313
|
exports.EscrevaMesmaLinha = EscrevaMesmaLinha;
|
|
@@ -8326,7 +8326,7 @@ class Escreva extends declaracao_1.Declaracao {
|
|
|
8326
8326
|
return await visitante.visitarDeclaracaoEscreva(this);
|
|
8327
8327
|
}
|
|
8328
8328
|
paraTexto() {
|
|
8329
|
-
return `<escreva argumentos=${this.argumentos.reduce((anterior, atual) => anterior += atual.paraTexto(),
|
|
8329
|
+
return `<escreva argumentos=${this.argumentos.reduce((anterior, atual) => (anterior += atual.paraTexto()), '')} />`;
|
|
8330
8330
|
}
|
|
8331
8331
|
}
|
|
8332
8332
|
exports.Escreva = Escreva;
|
|
@@ -8496,7 +8496,7 @@ __exportStar(require("./var-multiplo"), exports);
|
|
|
8496
8496
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8497
8497
|
exports.InicioAlgoritmo = void 0;
|
|
8498
8498
|
const declaracao_1 = require("./declaracao");
|
|
8499
|
-
// TODO: Localizar dialeto que usa este construto e mover
|
|
8499
|
+
// TODO: Localizar dialeto que usa este construto e mover
|
|
8500
8500
|
// esta classe para ele.
|
|
8501
8501
|
class InicioAlgoritmo extends declaracao_1.Declaracao {
|
|
8502
8502
|
constructor(linha, hashArquivo) {
|
|
@@ -8558,9 +8558,9 @@ class Para extends declaracao_1.Declaracao {
|
|
|
8558
8558
|
return await visitante.visitarDeclaracaoPara(this);
|
|
8559
8559
|
}
|
|
8560
8560
|
paraTexto() {
|
|
8561
|
-
let inicializador =
|
|
8561
|
+
let inicializador = '';
|
|
8562
8562
|
if (Array.isArray(this.inicializador)) {
|
|
8563
|
-
inicializador = this.inicializador.reduce((anterior, atual) => anterior += atual.paraTexto() + `
|
|
8563
|
+
inicializador = this.inicializador.reduce((anterior, atual) => (anterior += atual.paraTexto() + ` `), 'inicialização=');
|
|
8564
8564
|
}
|
|
8565
8565
|
else if (this.inicializador) {
|
|
8566
8566
|
inicializador = `inicialização=${this.inicializador.paraTexto()} `;
|
|
@@ -9973,7 +9973,7 @@ function tipoInferenciaParaTipoDadosElementar(tipoInferencia) {
|
|
|
9973
9973
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9974
9974
|
exports.InformacaoVariavelOuConstante = void 0;
|
|
9975
9975
|
class InformacaoVariavelOuConstante {
|
|
9976
|
-
constructor(nome, tipo, obrigatorio = true, argumentos = [], documentacao =
|
|
9976
|
+
constructor(nome, tipo, obrigatorio = true, argumentos = [], documentacao = '') {
|
|
9977
9977
|
this.argumentos = [];
|
|
9978
9978
|
this.nome = nome;
|
|
9979
9979
|
this.tipo = tipo;
|
|
@@ -11119,7 +11119,7 @@ class InterpretadorBase {
|
|
|
11119
11119
|
return valor;
|
|
11120
11120
|
}
|
|
11121
11121
|
const valorAnteriorIncremento = valor;
|
|
11122
|
-
// TODO: Provavelmente isso está incorreto. Descobrir se operando resolve para
|
|
11122
|
+
// TODO: Provavelmente isso está incorreto. Descobrir se operando resolve para
|
|
11123
11123
|
// `Construto` ou para `Simbolo`.
|
|
11124
11124
|
this.pilhaEscoposExecucao.atribuirVariavel(expressao.operando.simbolo, ++valor);
|
|
11125
11125
|
return valorAnteriorIncremento;
|
|
@@ -11132,7 +11132,7 @@ class InterpretadorBase {
|
|
|
11132
11132
|
return valor;
|
|
11133
11133
|
}
|
|
11134
11134
|
const valorAnteriorDecremento = valor;
|
|
11135
|
-
// TODO: Provavelmente isso está incorreto. Descobrir se operando resolve para
|
|
11135
|
+
// TODO: Provavelmente isso está incorreto. Descobrir se operando resolve para
|
|
11136
11136
|
// `Construto` ou para `Simbolo`.
|
|
11137
11137
|
this.pilhaEscoposExecucao.atribuirVariavel(expressao.operando.simbolo, --valor);
|
|
11138
11138
|
return valorAnteriorDecremento;
|
|
@@ -11538,8 +11538,7 @@ class InterpretadorBase {
|
|
|
11538
11538
|
// para vetor de duplas.
|
|
11539
11539
|
// TODO: Converter elementos para `Construto` se necessário.
|
|
11540
11540
|
if (declaracao.vetor.tipo === 'dicionário') {
|
|
11541
|
-
valorVetorResolvido = Object.entries(valorVetorResolvido)
|
|
11542
|
-
.map(v => new construtos_1.Dupla(v[0], v[1]));
|
|
11541
|
+
valorVetorResolvido = Object.entries(valorVetorResolvido).map((v) => new construtos_1.Dupla(v[0], v[1]));
|
|
11543
11542
|
}
|
|
11544
11543
|
if (!Array.isArray(valorVetorResolvido)) {
|
|
11545
11544
|
return Promise.reject("Variável ou literal provida em instrução 'para cada' não é um vetor.");
|
|
@@ -11746,7 +11745,7 @@ class InterpretadorBase {
|
|
|
11746
11745
|
this.funcaoDeRetornoMesmaLinha(formatoTexto);
|
|
11747
11746
|
return {
|
|
11748
11747
|
tipo: 'vazio',
|
|
11749
|
-
tipoExplicito: false
|
|
11748
|
+
tipoExplicito: false,
|
|
11750
11749
|
};
|
|
11751
11750
|
}
|
|
11752
11751
|
catch (erro) {
|
|
@@ -11769,7 +11768,7 @@ class InterpretadorBase {
|
|
|
11769
11768
|
this.funcaoDeRetorno(formatoTexto);
|
|
11770
11769
|
return {
|
|
11771
11770
|
tipo: 'vazio',
|
|
11772
|
-
tipoExplicito: false
|
|
11771
|
+
tipoExplicito: false,
|
|
11773
11772
|
};
|
|
11774
11773
|
}
|
|
11775
11774
|
catch (erro) {
|
|
@@ -11829,7 +11828,7 @@ class InterpretadorBase {
|
|
|
11829
11828
|
this.pilhaEscoposExecucao.definirConstante(declaracao.simbolo.lexema, valorFinal, declaracao.tipo);
|
|
11830
11829
|
return {
|
|
11831
11830
|
tipo: declaracao.tipo,
|
|
11832
|
-
tipoExplicito: declaracao.tipoExplicito
|
|
11831
|
+
tipoExplicito: declaracao.tipoExplicito,
|
|
11833
11832
|
};
|
|
11834
11833
|
}
|
|
11835
11834
|
/**
|
|
@@ -12032,7 +12031,7 @@ class InterpretadorBase {
|
|
|
12032
12031
|
if (objeto.constructor === Object) {
|
|
12033
12032
|
if (expressao.simbolo.lexema in primitivas_dicionario_1.default) {
|
|
12034
12033
|
const metodoDePrimitivaDicionario = primitivas_dicionario_1.default[expressao.simbolo.lexema].implementacao;
|
|
12035
|
-
return new metodo_primitiva_1.MetodoPrimitiva(
|
|
12034
|
+
return new metodo_primitiva_1.MetodoPrimitiva('', objeto, metodoDePrimitivaDicionario);
|
|
12036
12035
|
}
|
|
12037
12036
|
return objeto[expressao.simbolo.lexema];
|
|
12038
12037
|
}
|
|
@@ -12076,8 +12075,7 @@ class InterpretadorBase {
|
|
|
12076
12075
|
dicionario[chaveLogico] = promises[1];
|
|
12077
12076
|
continue;
|
|
12078
12077
|
}
|
|
12079
|
-
dicionario[promises[0]] =
|
|
12080
|
-
this.resolverValor(promises[1]);
|
|
12078
|
+
dicionario[promises[0]] = this.resolverValor(promises[1]);
|
|
12081
12079
|
}
|
|
12082
12080
|
return dicionario;
|
|
12083
12081
|
}
|
|
@@ -12086,7 +12084,7 @@ class InterpretadorBase {
|
|
|
12086
12084
|
for (let i = 0; i < expressao.valores.length; i++) {
|
|
12087
12085
|
valores.push(await this.avaliar(expressao.valores[i]));
|
|
12088
12086
|
}
|
|
12089
|
-
return valores.filter(v => v !== null && v !== undefined);
|
|
12087
|
+
return valores.filter((v) => v !== null && v !== undefined);
|
|
12090
12088
|
}
|
|
12091
12089
|
visitarExpressaoSuper(expressao) {
|
|
12092
12090
|
const objeto = this.pilhaEscoposExecucao.obterVariavelPorNome('isto');
|
|
@@ -12104,8 +12102,8 @@ class InterpretadorBase {
|
|
|
12104
12102
|
tipoResolvido = tipoResolvido.replace('função<', '').replace('>', '');
|
|
12105
12103
|
}
|
|
12106
12104
|
this.pilhaEscoposExecucao.definirVariavel(declaracao.simbolo.lexema, valorFinal, tipoResolvido);
|
|
12107
|
-
// TODO: É relevante registrar uma declaração de variável no
|
|
12108
|
-
// resultado do interpretador?
|
|
12105
|
+
// TODO: É relevante registrar uma declaração de variável no
|
|
12106
|
+
// resultado do interpretador?
|
|
12109
12107
|
/* return {
|
|
12110
12108
|
tipo: declaracao.tipo,
|
|
12111
12109
|
tipoExplicito: declaracao.tipoExplicito
|
|
@@ -12133,8 +12131,7 @@ class InterpretadorBase {
|
|
|
12133
12131
|
}
|
|
12134
12132
|
if (objeto.valor instanceof estruturas_1.ObjetoPadrao)
|
|
12135
12133
|
return objeto.valor.paraTexto();
|
|
12136
|
-
if (objeto instanceof estruturas_1.ObjetoDeleguaClasse ||
|
|
12137
|
-
objeto instanceof estruturas_1.DeleguaFuncao)
|
|
12134
|
+
if (objeto instanceof estruturas_1.ObjetoDeleguaClasse || objeto instanceof estruturas_1.DeleguaFuncao)
|
|
12138
12135
|
return objeto.paraTexto();
|
|
12139
12136
|
if (objeto instanceof quebras_1.RetornoQuebra) {
|
|
12140
12137
|
if (typeof objeto.valor === 'boolean')
|
|
@@ -12221,7 +12218,7 @@ class InterpretadorBase {
|
|
|
12221
12218
|
hashArquivo: declaracao.hashArquivo,
|
|
12222
12219
|
linha: declaracao.linha,
|
|
12223
12220
|
valorRetornado: resultado,
|
|
12224
|
-
tipo: tipoResultado
|
|
12221
|
+
tipo: tipoResultado,
|
|
12225
12222
|
};
|
|
12226
12223
|
}
|
|
12227
12224
|
/**
|
|
@@ -12238,7 +12235,7 @@ class InterpretadorBase {
|
|
|
12238
12235
|
const ultimoEscopo = this.pilhaEscoposExecucao.topoDaPilha();
|
|
12239
12236
|
let retornoExecucao;
|
|
12240
12237
|
try {
|
|
12241
|
-
for (; !(retornoExecucao instanceof quebras_1.Quebra) &&
|
|
12238
|
+
for (; !(retornoExecucao && retornoExecucao.valorRetornado instanceof quebras_1.Quebra) &&
|
|
12242
12239
|
ultimoEscopo.declaracaoAtual < ultimoEscopo.declaracoes.length; ultimoEscopo.declaracaoAtual++) {
|
|
12243
12240
|
const declaracaoAtual = ultimoEscopo.declaracoes[ultimoEscopo.declaracaoAtual];
|
|
12244
12241
|
this.linhaDeclaracaoAtual = declaracaoAtual.linha;
|
|
@@ -12394,8 +12391,7 @@ class Interpretador extends interpretador_base_1.InterpretadorBase {
|
|
|
12394
12391
|
}
|
|
12395
12392
|
if (objeto.valor instanceof estruturas_1.ObjetoPadrao)
|
|
12396
12393
|
return objeto.valor.paraTexto();
|
|
12397
|
-
if (objeto instanceof estruturas_1.ObjetoDeleguaClasse ||
|
|
12398
|
-
objeto instanceof estruturas_1.DeleguaFuncao)
|
|
12394
|
+
if (objeto instanceof estruturas_1.ObjetoDeleguaClasse || objeto instanceof estruturas_1.DeleguaFuncao)
|
|
12399
12395
|
return objeto.paraTexto();
|
|
12400
12396
|
if (objeto instanceof quebras_1.RetornoQuebra) {
|
|
12401
12397
|
if (typeof objeto.valor === 'boolean')
|
|
@@ -12471,7 +12467,7 @@ class Interpretador extends interpretador_base_1.InterpretadorBase {
|
|
|
12471
12467
|
this.pilhaEscoposExecucao.registrarReferenciaFuncao(declaracao.id, funcao);
|
|
12472
12468
|
return {
|
|
12473
12469
|
tipo: `função<${funcao.declaracao.tipo || 'qualquer'}>`,
|
|
12474
|
-
tipoExplicito: funcao.declaracao.tipoExplicito
|
|
12470
|
+
tipoExplicito: funcao.declaracao.tipoExplicito,
|
|
12475
12471
|
};
|
|
12476
12472
|
}
|
|
12477
12473
|
async visitarExpressaoAcessoIndiceVariavel(expressao) {
|
|
@@ -12675,7 +12671,7 @@ class Interpretador extends interpretador_base_1.InterpretadorBase {
|
|
|
12675
12671
|
}
|
|
12676
12672
|
break;
|
|
12677
12673
|
}
|
|
12678
|
-
// Objeto de uma classe JavaScript regular (ou seja, com construtor e propriedades)
|
|
12674
|
+
// Objeto de uma classe JavaScript regular (ou seja, com construtor e propriedades)
|
|
12679
12675
|
// que possua a propriedade.
|
|
12680
12676
|
// Exemplos: classes de LinConEs, como `RetornoComando`, ou bibliotecas globais com objetos próprios.
|
|
12681
12677
|
if (objeto.hasOwnProperty && objeto.hasOwnProperty(expressao.simbolo.lexema)) {
|
|
@@ -12701,7 +12697,7 @@ class Interpretador extends interpretador_base_1.InterpretadorBase {
|
|
|
12701
12697
|
// Outro caso que `instanceof` simplesmente não funciona para casos em Liquido,
|
|
12702
12698
|
// então testamos também o nome do construtor.
|
|
12703
12699
|
if (objeto instanceof estruturas_1.ObjetoDeleguaClasse ||
|
|
12704
|
-
objeto.constructor && objeto.constructor.name === 'ObjetoDeleguaClasse') {
|
|
12700
|
+
(objeto.constructor && objeto.constructor.name === 'ObjetoDeleguaClasse')) {
|
|
12705
12701
|
return objeto.obterMetodo(expressao.nomePropriedade) || null;
|
|
12706
12702
|
}
|
|
12707
12703
|
// Objeto simples do JavaScript, ou dicionário de Delégua.
|
|
@@ -12944,7 +12940,7 @@ class Interpretador extends interpretador_base_1.InterpretadorBase {
|
|
|
12944
12940
|
return valorTipoDe.tipo;
|
|
12945
12941
|
case 'Vetor':
|
|
12946
12942
|
const vetor = valorTipoDe;
|
|
12947
|
-
const apenasValores = vetor.valores.filter(v => !['ComentarioComoConstruto', 'Separador'].includes(v.constructor.name));
|
|
12943
|
+
const apenasValores = vetor.valores.filter((v) => !['ComentarioComoConstruto', 'Separador'].includes(v.constructor.name));
|
|
12948
12944
|
return (0, inferenciador_1.inferirTipoVariavel)(apenasValores);
|
|
12949
12945
|
default:
|
|
12950
12946
|
return (0, inferenciador_1.inferirTipoVariavel)(valorTipoDe);
|
|
@@ -12990,7 +12986,8 @@ class Interpretador extends interpretador_base_1.InterpretadorBase {
|
|
|
12990
12986
|
const escopoFinalizado = this.pilhaEscoposExecucao.removerUltimo();
|
|
12991
12987
|
const escopoAnterior = this.pilhaEscoposExecucao.topoDaPilha();
|
|
12992
12988
|
this.montao.excluirReferencias(...escopoFinalizado.espacoMemoria.enderecosMontao);
|
|
12993
|
-
if (manterAmbiente ||
|
|
12989
|
+
if (manterAmbiente ||
|
|
12990
|
+
(retornoExecucao && retornoExecucao.valorRetornado.preservarEscopo === true)) {
|
|
12994
12991
|
escopoAnterior.espacoMemoria.valores = Object.assign(escopoAnterior.espacoMemoria.valores, ultimoEscopo.espacoMemoria.valores);
|
|
12995
12992
|
}
|
|
12996
12993
|
}
|
|
@@ -13430,8 +13427,8 @@ class LexadorCalango {
|
|
|
13430
13427
|
eFinalDoCodigo() {
|
|
13431
13428
|
if (this.linha > this.codigo.length - 1)
|
|
13432
13429
|
return true;
|
|
13433
|
-
return this.linha == this.codigo.length - 1 &&
|
|
13434
|
-
this.codigo[this.codigo.length - 1].length <= this.atual;
|
|
13430
|
+
return (this.linha == this.codigo.length - 1 &&
|
|
13431
|
+
this.codigo[this.codigo.length - 1].length <= this.atual);
|
|
13435
13432
|
}
|
|
13436
13433
|
eUltimaLinha() {
|
|
13437
13434
|
return this.linha >= this.codigo.length - 1;
|
|
@@ -13505,7 +13502,8 @@ class LexadorCalango {
|
|
|
13505
13502
|
}
|
|
13506
13503
|
identificarPalavraChave() {
|
|
13507
13504
|
const linhaPrimeiroCaracter = this.linha;
|
|
13508
|
-
while (this.eAlfabetoOuDigito(this.simboloAtual()) &&
|
|
13505
|
+
while (this.eAlfabetoOuDigito(this.simboloAtual()) &&
|
|
13506
|
+
this.linha === linhaPrimeiroCaracter) {
|
|
13509
13507
|
this.avancar();
|
|
13510
13508
|
}
|
|
13511
13509
|
let textoPalavraChave;
|
|
@@ -13604,7 +13602,7 @@ class LexadorCalango {
|
|
|
13604
13602
|
}
|
|
13605
13603
|
return {
|
|
13606
13604
|
simbolos: this.simbolos,
|
|
13607
|
-
erros: this.erros
|
|
13605
|
+
erros: this.erros,
|
|
13608
13606
|
};
|
|
13609
13607
|
}
|
|
13610
13608
|
}
|
|
@@ -16284,7 +16282,7 @@ class Quebra {
|
|
|
16284
16282
|
}
|
|
16285
16283
|
exports.Quebra = Quebra;
|
|
16286
16284
|
class RetornoQuebra extends Quebra {
|
|
16287
|
-
constructor(valor, tipo =
|
|
16285
|
+
constructor(valor, tipo = 'qualquer') {
|
|
16288
16286
|
super();
|
|
16289
16287
|
this.valor = valor;
|
|
16290
16288
|
this.tipo = tipo;
|