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