@designliquido/potigol 0.8.17 → 0.9.0

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.
Files changed (98) hide show
  1. package/analisador-semantico/analisador-semantico-potigol.d.ts +18 -3
  2. package/analisador-semantico/analisador-semantico-potigol.d.ts.map +1 -1
  3. package/analisador-semantico/analisador-semantico-potigol.js +255 -3
  4. package/analisador-semantico/analisador-semantico-potigol.js.map +1 -1
  5. package/avaliador-sintatico/avaliador-sintatico-potigol.d.ts +9 -2
  6. package/avaliador-sintatico/avaliador-sintatico-potigol.d.ts.map +1 -1
  7. package/avaliador-sintatico/avaliador-sintatico-potigol.js +147 -45
  8. package/avaliador-sintatico/avaliador-sintatico-potigol.js.map +1 -1
  9. package/bibliotecas/biblioteca-global.d.ts +2 -2
  10. package/bibliotecas/biblioteca-global.d.ts.map +1 -1
  11. package/bibliotecas/biblioteca-global.js +27 -4
  12. package/bibliotecas/biblioteca-global.js.map +1 -1
  13. package/bibliotecas/primitivas-cubo.d.ts +10 -0
  14. package/bibliotecas/primitivas-cubo.d.ts.map +1 -0
  15. package/bibliotecas/primitivas-cubo.js +14 -0
  16. package/bibliotecas/primitivas-cubo.js.map +1 -0
  17. package/bibliotecas/primitivas-matriz.d.ts +9 -0
  18. package/bibliotecas/primitivas-matriz.d.ts.map +1 -0
  19. package/bibliotecas/primitivas-matriz.js +13 -0
  20. package/bibliotecas/primitivas-matriz.js.map +1 -0
  21. package/bibliotecas/primitivas-numero.d.ts +2 -2
  22. package/bibliotecas/primitivas-numero.d.ts.map +1 -1
  23. package/bibliotecas/primitivas-numero.js +5 -1
  24. package/bibliotecas/primitivas-numero.js.map +1 -1
  25. package/bibliotecas/primitivas-texto.d.ts +29 -25
  26. package/bibliotecas/primitivas-texto.d.ts.map +1 -1
  27. package/bibliotecas/primitivas-texto.js +115 -4
  28. package/bibliotecas/primitivas-texto.js.map +1 -1
  29. package/bibliotecas/primitivas-vetor.d.ts +6 -3
  30. package/bibliotecas/primitivas-vetor.d.ts.map +1 -1
  31. package/bibliotecas/primitivas-vetor.js +49 -10
  32. package/bibliotecas/primitivas-vetor.js.map +1 -1
  33. package/declaracoes/alias-tipo.d.ts +11 -0
  34. package/declaracoes/alias-tipo.d.ts.map +1 -0
  35. package/declaracoes/alias-tipo.js +19 -0
  36. package/declaracoes/alias-tipo.js.map +1 -0
  37. package/declaracoes/index.d.ts +2 -0
  38. package/declaracoes/index.d.ts.map +1 -1
  39. package/declaracoes/index.js +2 -0
  40. package/declaracoes/index.js.map +1 -1
  41. package/declaracoes/para-gere.d.ts +16 -0
  42. package/declaracoes/para-gere.d.ts.map +1 -0
  43. package/declaracoes/para-gere.js +23 -0
  44. package/declaracoes/para-gere.js.map +1 -0
  45. package/formatador/formatador-potigol.d.ts +16 -12
  46. package/formatador/formatador-potigol.d.ts.map +1 -1
  47. package/formatador/formatador-potigol.js +262 -89
  48. package/formatador/formatador-potigol.js.map +1 -1
  49. package/interfaces/visitante-comum-potigol-interface.d.ts +3 -1
  50. package/interfaces/visitante-comum-potigol-interface.d.ts.map +1 -1
  51. package/interpretador/comum.d.ts +4 -2
  52. package/interpretador/comum.d.ts.map +1 -1
  53. package/interpretador/comum.js +159 -11
  54. package/interpretador/comum.js.map +1 -1
  55. package/interpretador/estruturas/cubo.d.ts +47 -0
  56. package/interpretador/estruturas/cubo.d.ts.map +1 -0
  57. package/interpretador/estruturas/cubo.js +106 -0
  58. package/interpretador/estruturas/cubo.js.map +1 -0
  59. package/interpretador/estruturas/index.d.ts +2 -0
  60. package/interpretador/estruturas/index.d.ts.map +1 -1
  61. package/interpretador/estruturas/index.js +2 -0
  62. package/interpretador/estruturas/index.js.map +1 -1
  63. package/interpretador/estruturas/matriz.d.ts +40 -0
  64. package/interpretador/estruturas/matriz.d.ts.map +1 -0
  65. package/interpretador/estruturas/matriz.js +84 -0
  66. package/interpretador/estruturas/matriz.js.map +1 -0
  67. package/interpretador/inferenciador.d.ts +1 -1
  68. package/interpretador/inferenciador.d.ts.map +1 -1
  69. package/interpretador/inferenciador.js +20 -2
  70. package/interpretador/inferenciador.js.map +1 -1
  71. package/interpretador/interpretador-potigol-com-depuracao.d.ts +5 -2
  72. package/interpretador/interpretador-potigol-com-depuracao.d.ts.map +1 -1
  73. package/interpretador/interpretador-potigol-com-depuracao.js +9 -0
  74. package/interpretador/interpretador-potigol-com-depuracao.js.map +1 -1
  75. package/interpretador/interpretador-potigol.d.ts +7 -2
  76. package/interpretador/interpretador-potigol.d.ts.map +1 -1
  77. package/interpretador/interpretador-potigol.js +44 -0
  78. package/interpretador/interpretador-potigol.js.map +1 -1
  79. package/lexador/lexador-potigol.d.ts.map +1 -1
  80. package/lexador/lexador-potigol.js +13 -1
  81. package/lexador/lexador-potigol.js.map +1 -1
  82. package/lexador/palavras-reservadas.d.ts +9 -0
  83. package/lexador/palavras-reservadas.d.ts.map +1 -1
  84. package/lexador/palavras-reservadas.js +9 -0
  85. package/lexador/palavras-reservadas.js.map +1 -1
  86. package/package.json +4 -4
  87. package/tipos-de-dados.d.ts +3 -0
  88. package/tipos-de-dados.d.ts.map +1 -1
  89. package/tipos-de-dados.js +3 -0
  90. package/tipos-de-dados.js.map +1 -1
  91. package/tipos-de-simbolos/lexico-regular.d.ts +8 -0
  92. package/tipos-de-simbolos/lexico-regular.d.ts.map +1 -1
  93. package/tipos-de-simbolos/lexico-regular.js +8 -0
  94. package/tipos-de-simbolos/lexico-regular.js.map +1 -1
  95. package/tipos-de-simbolos/micro-lexico.d.ts +1 -0
  96. package/tipos-de-simbolos/micro-lexico.d.ts.map +1 -1
  97. package/tipos-de-simbolos/micro-lexico.js +1 -0
  98. package/tipos-de-simbolos/micro-lexico.js.map +1 -1
@@ -35,6 +35,7 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
35
35
  };
36
36
  this.declaracoes = [];
37
37
  this.pilhaEscoposVariaveisConhecidas = new pilha_escopos_variaveis_conhecidas_1.PilhaEscoposVariaveisConhecidas();
38
+ this.tiposDefinidosEmCodigo = {};
38
39
  }
39
40
  /**
40
41
  * Com não há um `leia()` genérico em Potigol, mas sim três tipos de `leia` fortemente
@@ -42,7 +43,7 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
42
43
  * @see primario
43
44
  */
44
45
  declaracaoLeia() {
45
- throw new Error('Método não implementado.');
46
+ throw this.erro(this.simbolos[this.atual] || this.simboloAnterior(), "Potigol não possui um comando genérico 'leia'. Use uma das formas tipadas, como 'leia_inteiro', 'leia_real' ou 'leia_texto'.");
46
47
  }
47
48
  /**
48
49
  * Testa se o primeiro parâmetro na lista de símbolos
@@ -54,7 +55,7 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
54
55
  testePrimeiroParametro(simbolos) {
55
56
  let atual = 0;
56
57
  // Primeiro teste: literal ou identificador
57
- if ([lexico_regular_1.default.INTEIRO, lexico_regular_1.default.LOGICO, lexico_regular_1.default.REAL, lexico_regular_1.default.TEXTO].includes(simbolos[atual].tipo)) {
58
+ if ([lexico_regular_1.default.INTEIRO, lexico_regular_1.default.INTEIRO_GRANDE, lexico_regular_1.default.LOGICO, lexico_regular_1.default.REAL, lexico_regular_1.default.TEXTO, lexico_regular_1.default.MATRIZ, lexico_regular_1.default.CUBO].includes(simbolos[atual].tipo)) {
58
59
  return false;
59
60
  }
60
61
  // Segundo teste: vírgula imediatamente após identificador,
@@ -162,7 +163,8 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
162
163
  * @param mensagemErro A mensagem de erro caso o símbolo atual não seja de tipo.
163
164
  */
164
165
  verificacaoTipo(simbolo, mensagemErro) {
165
- if (![lexico_regular_1.default.INTEIRO, lexico_regular_1.default.LOGICO, lexico_regular_1.default.REAL, lexico_regular_1.default.TEXTO].includes(simbolo.tipo)) {
166
+ if (![lexico_regular_1.default.INTEIRO, lexico_regular_1.default.INTEIRO_GRANDE, lexico_regular_1.default.LOGICO, lexico_regular_1.default.REAL, lexico_regular_1.default.TEXTO, lexico_regular_1.default.MATRIZ, lexico_regular_1.default.CUBO].includes(simbolo.tipo)
167
+ && !(simbolo.lexema in this.tiposDefinidosEmCodigo)) {
166
168
  throw this.erro(simbolo, mensagemErro);
167
169
  }
168
170
  }
@@ -236,6 +238,13 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
236
238
  logicaArgumentosTipados(primeiroArgumento) {
237
239
  // Quando esta função executa, já sabemos que o próximo símbolo será um
238
240
  // dois-pontos.
241
+ const simboloPrimeiroArgumento = primeiroArgumento.simbolo;
242
+ const simbolosEntreParenteses = [];
243
+ while (!this.verificarTipoSimboloAtual(lexico_regular_1.default.PARENTESE_DIREITO)) {
244
+ simbolosEntreParenteses.push(this.avancarEDevolverAnterior());
245
+ }
246
+ const todosOsSimbolos = [simboloPrimeiroArgumento, ...simbolosEntreParenteses];
247
+ return this.logicaComumParametrosPotigol(todosOsSimbolos);
239
248
  }
240
249
  logicaFuncaoAnonimaOuTupla(primeiroConstruto) {
241
250
  const simbolosEntreParenteses = [];
@@ -298,9 +307,23 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
298
307
  switch (this.simbolos[this.atual].tipo) {
299
308
  case lexico_regular_1.default.DOIS_PONTOS:
300
309
  const argumentosFuncao = this.logicaArgumentosTipados(expressao);
301
- // TODO: Terminar.
302
- console.log('argumentosFuncao', argumentosFuncao);
303
- break;
310
+ if (!argumentosFuncao.tipagemDefinida) {
311
+ throw this.erro(this.simbolos[this.atual], 'Não foi encontrado um tipo válido na definição de parâmetros para função.');
312
+ }
313
+ this.consumir(lexico_regular_1.default.PARENTESE_DIREITO, "Esperado ')' após parâmetros.");
314
+ const tipoUltimoParametro = argumentosFuncao.parametros[argumentosFuncao.parametros.length - 1].tipoDado;
315
+ for (const parametro of argumentosFuncao.parametros) {
316
+ if (parametro.tipoDado === undefined) {
317
+ parametro.tipoDado = tipoUltimoParametro;
318
+ }
319
+ }
320
+ let tipoRetorno = undefined;
321
+ if (this.verificarSeSimboloAtualEIgualA(lexico_regular_1.default.DOIS_PONTOS)) {
322
+ this.verificacaoTipo(this.simbolos[this.atual], 'Esperado tipo válido após dois-pontos como retorno de função.');
323
+ tipoRetorno = this.avancarEDevolverAnterior();
324
+ }
325
+ this.consumir(lexico_regular_1.default.SETA, `Esperado seta para definição de corpo de função anônima após leitura de parâmetros. Atual: ${this.simbolos[this.atual].tipo}.`);
326
+ return this.declaracaoFuncaoPotigolIniciadaPorIgualOuSeta({ hashArquivo: expressao.hashArquivo, linha: expressao.linha }, argumentosFuncao.parametros, tipoRetorno);
304
327
  case lexico_regular_1.default.VIRGULA:
305
328
  return this.logicaFuncaoAnonimaOuTupla(expressao);
306
329
  default:
@@ -323,6 +346,7 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
323
346
  return new construtos_1.Vetor(this.hashArquivo, Number(simboloAtual.linha), valores);
324
347
  case lexico_regular_1.default.CARACTERE:
325
348
  case lexico_regular_1.default.INTEIRO:
349
+ case lexico_regular_1.default.INTEIRO_GRANDE:
326
350
  case lexico_regular_1.default.LOGICO:
327
351
  case lexico_regular_1.default.REAL:
328
352
  case lexico_regular_1.default.TEXTO:
@@ -330,6 +354,7 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
330
354
  const dicionarioTiposDelegua = {
331
355
  CARACTERE: 'texto',
332
356
  INTEIRO: 'inteiro',
357
+ INTEIRO_GRANDE: 'InteiroGrande',
333
358
  LOGICO: 'lógico',
334
359
  REAL: 'número',
335
360
  TEXTO: 'texto',
@@ -377,8 +402,9 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
377
402
  */
378
403
  async concatenacaoLista() {
379
404
  let expressao = await this.formato();
380
- if (this.atual < this.simbolos.length) {
381
- if (this.simbolos[this.atual].tipo === lexico_regular_1.default.DOIS_PONTOS &&
405
+ while (true) {
406
+ if (this.simbolos[this.atual] &&
407
+ this.simbolos[this.atual].tipo === lexico_regular_1.default.DOIS_PONTOS &&
382
408
  this.verificarTipoProximoSimbolo(lexico_regular_1.default.DOIS_PONTOS)) {
383
409
  const primeiroDoisPontos = this.avancarEDevolverAnterior();
384
410
  this.avancarEDevolverAnterior();
@@ -392,6 +418,15 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
392
418
  const ladoDireitoComoConstante = new construtos_1.Constante(ladoDireito.hashArquivo, ladoDireito.simbolo);
393
419
  expressao = new construtos_1.Binario(this.hashArquivo, expressao, new lexador_1.Simbolo(lexico_regular_1.default.CONCATENACAO_LISTA, '::', '::', primeiroDoisPontos.linha, primeiroDoisPontos.hashArquivo), ladoDireitoComoConstante);
394
420
  }
421
+ else if (this.simbolos[this.atual] &&
422
+ this.simbolos[this.atual].tipo === lexico_regular_1.default.PONTO_PONTO) {
423
+ const simboloRange = this.avancarEDevolverAnterior();
424
+ const ladoDireito = await this.formato();
425
+ expressao = new construtos_1.Binario(this.hashArquivo, expressao, simboloRange, ladoDireito);
426
+ }
427
+ else {
428
+ break;
429
+ }
395
430
  }
396
431
  return expressao;
397
432
  }
@@ -463,10 +498,9 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
463
498
  }
464
499
  verificarDefinicaoTipoAtual() {
465
500
  const tipos = [...Object.values(tipos_de_dados_1.default)];
466
- // TODO: Habilitar isso no futuro.
467
- /* if (this.simbolos[this.atual].lexema in this.tiposDefinidosEmCodigo) {
468
- return this.simbolos[this.atual].lexema;
469
- } */
501
+ if (this.simbolos[this.atual].lexema in this.tiposDefinidosEmCodigo) {
502
+ return this.tiposDefinidosEmCodigo[this.simbolos[this.atual].lexema];
503
+ }
470
504
  const lexemaElementar = this.simbolos[this.atual].lexema.toLowerCase();
471
505
  const tipoElementarResolvido = tipos.find((tipo) => tipo.toLowerCase() === lexemaElementar);
472
506
  if (!tipoElementarResolvido) {
@@ -642,6 +676,7 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
642
676
  // Só que, se a avaliação entra na dica, só
643
677
  // podemos ter uma constante apenas.
644
678
  this.avancarEDevolverAnterior();
679
+ const simboloTipo = this.simbolos[this.atual];
645
680
  if (![
646
681
  lexico_regular_1.default.CARACTERE,
647
682
  lexico_regular_1.default.INTEIRO,
@@ -649,7 +684,8 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
649
684
  lexico_regular_1.default.LÓGICO,
650
685
  lexico_regular_1.default.REAL,
651
686
  lexico_regular_1.default.TEXTO,
652
- ].includes(this.simbolos[this.atual].tipo)) {
687
+ ].includes(simboloTipo.tipo)
688
+ && !(simboloTipo.lexema in this.tiposDefinidosEmCodigo)) {
653
689
  throw this.erro(this.simbolos[this.atual], 'Esperado tipo após dois-pontos e nome de identificador.');
654
690
  }
655
691
  return this.avancarEDevolverAnterior();
@@ -708,15 +744,26 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
708
744
  declaracoes.push(await this.resolverDeclaracaoForaDeBloco());
709
745
  } while (![lexico_regular_1.default.SENAO, lexico_regular_1.default.FIM].includes(this.simbolos[this.atual].tipo));
710
746
  let caminhoSenao = null;
711
- if (this.verificarSeSimboloAtualEIgualA(lexico_regular_1.default.SENAO)) {
712
- const simboloSenao = this.simbolos[this.atual - 1];
713
- const declaracoesSenao = [];
714
- do {
715
- declaracoesSenao.push(await this.resolverDeclaracaoForaDeBloco());
716
- } while (![lexico_regular_1.default.FIM].includes(this.simbolos[this.atual].tipo));
717
- caminhoSenao = new declaracoes_1.Bloco(this.hashArquivo, Number(simboloSenao.linha), declaracoesSenao.filter((d) => d));
747
+ let consumirFimExterno = true;
748
+ if (this.verificarSeSimboloAtualEIgualA(lexico_regular_1.default.SENAO) || this.verificarSeSimboloAtualEIgualA(lexico_regular_1.default.SENAOSE)) {
749
+ const ehSenaose = this.simbolos[this.atual - 1].tipo === lexico_regular_1.default.SENAOSE;
750
+ if (this.simbolos[this.atual].tipo === lexico_regular_1.default.SE || ehSenaose) {
751
+ // "senao se" ou "senaose": o Se aninhado vai consumir o próprio fim
752
+ caminhoSenao = await this.declaracaoSe();
753
+ consumirFimExterno = false;
754
+ }
755
+ else {
756
+ const simboloSenao = this.simbolos[this.atual - 1];
757
+ const declaracoesSenao = [];
758
+ do {
759
+ declaracoesSenao.push(await this.resolverDeclaracaoForaDeBloco());
760
+ } while (![lexico_regular_1.default.FIM].includes(this.simbolos[this.atual].tipo));
761
+ caminhoSenao = new declaracoes_1.Bloco(this.hashArquivo, Number(simboloSenao.linha), declaracoesSenao.filter((d) => d));
762
+ }
763
+ }
764
+ if (consumirFimExterno) {
765
+ this.consumir(lexico_regular_1.default.FIM, "Esperado palavra-chave 'fim' para fechamento de declaração 'se'.");
718
766
  }
719
- this.consumir(lexico_regular_1.default.FIM, "Esperado palavra-chave 'fim' para fechamento de declaração 'se'.");
720
767
  return new declaracoes_1.Se(condicao, new declaracoes_1.Bloco(this.hashArquivo, Number(simboloSe.linha), declaracoes.filter((d) => d)), [], caminhoSenao);
721
768
  }
722
769
  async declaracaoEnquanto() {
@@ -733,6 +780,19 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
733
780
  async declaracaoPara() {
734
781
  const simboloPara = this.avancarEDevolverAnterior();
735
782
  const variavelIteracao = this.consumir(lexico_regular_1.default.IDENTIFICADOR, "Esperado identificador de variável após 'para'.");
783
+ if (this.verificarSeSimboloAtualEIgualA(lexico_regular_1.default.EM)) {
784
+ const colecao = await this.expressao();
785
+ this.consumir(lexico_regular_1.default.FACA, "Esperado palavra reservada 'faca' após coleção em laço 'para ... em'.");
786
+ const declaracoesBloco = [];
787
+ let simboloAtual = this.simbolos[this.atual];
788
+ while (simboloAtual.tipo !== lexico_regular_1.default.FIM) {
789
+ declaracoesBloco.push(await this.resolverDeclaracaoForaDeBloco());
790
+ simboloAtual = this.simbolos[this.atual];
791
+ }
792
+ this.consumir(lexico_regular_1.default.FIM, '');
793
+ const corpo = new declaracoes_1.Bloco(this.hashArquivo, Number(simboloPara.linha) + 1, declaracoesBloco.filter((d) => d));
794
+ return new declaracoes_1.ParaCada(this.hashArquivo, Number(simboloPara.linha), new construtos_1.Variavel(this.hashArquivo, variavelIteracao), colecao, corpo);
795
+ }
736
796
  this.consumir(lexico_regular_1.default.DE, "Esperado palavra reservada 'de' após variável de controle de 'para'.");
737
797
  const literalOuVariavelInicio = await this.adicaoOuSubtracao();
738
798
  this.consumir(lexico_regular_1.default.ATE, "Esperado palavra reservada 'ate' após valor inicial do laço de repetição 'para'.");
@@ -768,7 +828,24 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
768
828
  resolverIncrementoEmExecucao = true;
769
829
  }
770
830
  }
771
- this.consumir(lexico_regular_1.default.FACA, "Esperado palavra reservada 'faca' após valor final do laço de repetição 'para'.");
831
+ let condicaoGere = undefined;
832
+ if (this.verificarSeSimboloAtualEIgualA(lexico_regular_1.default.SE)) {
833
+ condicaoGere = await this.expressao();
834
+ }
835
+ if (this.verificarSeSimboloAtualEIgualA(lexico_regular_1.default.GERE)) {
836
+ const declaracoesGere = [];
837
+ let simboloAtualBlocoGere = this.simbolos[this.atual];
838
+ while (simboloAtualBlocoGere.tipo !== lexico_regular_1.default.FIM) {
839
+ declaracoesGere.push(await this.resolverDeclaracaoForaDeBloco());
840
+ simboloAtualBlocoGere = this.simbolos[this.atual];
841
+ }
842
+ this.consumir(lexico_regular_1.default.FIM, "Esperado 'fim' após bloco de 'gere'.");
843
+ return new declaracoes_2.ParaGere(this.hashArquivo, Number(simboloPara.linha), variavelIteracao, literalOuVariavelInicio, literalOuVariavelFim, declaracoesGere.filter((d) => d), passo, condicaoGere);
844
+ }
845
+ if (condicaoGere) {
846
+ throw this.erro(this.simbolos[this.atual] || this.simboloAnterior(), "A guarda 'se' em laço 'para' só é suportada com a forma 'gere' neste dialeto.");
847
+ }
848
+ this.consumir(lexico_regular_1.default.FACA, "Esperado palavra reservada 'faca' após valor final do laço de repetição 'para', ou 'gere' para compreensão.");
772
849
  const declaracoesBlocoPara = [];
773
850
  let simboloAtualBlocoPara = this.simbolos[this.atual];
774
851
  while (simboloAtualBlocoPara.tipo !== lexico_regular_1.default.FIM) {
@@ -809,6 +886,13 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
809
886
  continue;
810
887
  }
811
888
  const caminhoCondicoes = [await this.expressao()];
889
+ while (this.verificarSeSimboloAtualEIgualA(lexico_regular_1.default.VIRGULA)) {
890
+ caminhoCondicoes.push(await this.expressao());
891
+ }
892
+ let guarda = null;
893
+ if (this.verificarSeSimboloAtualEIgualA(lexico_regular_1.default.SE)) {
894
+ guarda = await this.expressao();
895
+ }
812
896
  this.consumir(lexico_regular_1.default.SETA, "Esperado '=>' após palavra reservada 'caso'.");
813
897
  const declaracoes = [await this.resolverDeclaracaoForaDeBloco()];
814
898
  // TODO: Verificar se Potigol admite bloco de escopo para `escolha`.
@@ -819,39 +903,42 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
819
903
  caminhos.push({
820
904
  condicoes: caminhoCondicoes,
821
905
  declaracoes,
906
+ guarda,
822
907
  });
823
908
  }
824
909
  return new declaracoes_1.Escolha(condicao, caminhos, caminhoPadrao);
825
910
  }
826
911
  declaracaoFazer() {
827
- throw new Error('Método não implementado.');
912
+ throw this.erro(this.simbolos[this.atual] || this.simboloAnterior(), "A construção iniciada por 'faca' não é suportada como declaração isolada neste dialeto. Use 'enquanto ... faca ... fim' ou 'para ... faca ... fim'.");
828
913
  }
829
- /**
830
- * Uma declaração de tipo nada mais é do que um declaração de classe.
831
- * Em Potigol, classe e tipo são praticamente a mesma coisa.
832
- *
833
- * @returns Um construto do tipo `Classe`.
834
- */
835
- async declaracaoTipo() {
914
+ declaracaoUse() {
915
+ this.avancarEDevolverAnterior();
916
+ const caminho = this.consumir(lexico_regular_1.default.TEXTO, "Esperado caminho textual após 'use'.");
917
+ return new declaracoes_1.Importar(new construtos_1.Literal(this.hashArquivo, Number(caminho.linha), caminho.literal, 'texto'));
918
+ }
919
+ async declaracaoTipoOuAlias() {
836
920
  const simboloTipo = this.avancarEDevolverAnterior();
837
- const construto = await this.primario();
838
- // TODO: Verificar se Potigol trabalha com herança.
839
- /* let superClasse = null;
840
- if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos.HERDA)) {
841
- this.consumir(tiposDeSimbolos.IDENTIFICADOR, 'Esperado nome da Superclasse.');
842
- superClasse = new Variavel(this.hashArquivo, this.simbolos[this.atual - 1]);
843
- } */
921
+ const tipoAbstrato = this.verificarSeSimboloAtualEIgualA(lexico_regular_1.default.ABSTRATO);
922
+ const simboloNomeTipo = this.consumir(lexico_regular_1.default.IDENTIFICADOR, "Esperado nome após palavra reservada 'tipo'.");
923
+ if (this.verificarSeSimboloAtualEIgualA(lexico_regular_1.default.IGUAL)) {
924
+ if (tipoAbstrato) {
925
+ throw this.erro(this.simboloAnterior(), "Não é permitido declarar alias com 'tipo abstrato'. Use 'tipo Nome = Tipo' ou 'tipo abstrato Nome ... fim'.");
926
+ }
927
+ const tipoOriginal = this.verificarDefinicaoTipoAtual();
928
+ this.avancarEDevolverAnterior();
929
+ this.tiposDefinidosEmCodigo[simboloNomeTipo.lexema] = tipoOriginal;
930
+ return new declaracoes_2.AliasTipo(simboloNomeTipo, tipoOriginal);
931
+ }
932
+ const construto = new construtos_2.ConstanteOuVariavel(this.hashArquivo, simboloNomeTipo);
844
933
  const metodos = [];
845
934
  const propriedades = [];
846
935
  while (!this.estaNoFinal() && !this.verificarTipoSimboloAtual(lexico_regular_1.default.FIM)) {
847
936
  const identificador = this.consumir(lexico_regular_1.default.IDENTIFICADOR, 'Esperado nome de propriedade ou método.');
848
937
  if (this.simbolos[this.atual].tipo === lexico_regular_1.default.PARENTESE_ESQUERDO) {
849
- // Método
850
938
  const construtoMetodo = new construtos_1.Constante(identificador.hashArquivo, identificador);
851
939
  metodos.push(await this.declaracaoDeFuncaoOuMetodo(construtoMetodo));
852
940
  }
853
941
  else {
854
- // Propriedade
855
942
  this.consumir(lexico_regular_1.default.DOIS_PONTOS, 'Esperado dois-pontos após nome de propriedade em declaração de tipo.');
856
943
  this.verificacaoTipo(this.simbolos[this.atual], 'Esperado tipo do argumento após dois-pontos, em definição de função.');
857
944
  const tipoPropriedade = this.avancarEDevolverAnterior();
@@ -859,9 +946,6 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
859
946
  }
860
947
  }
861
948
  this.consumir(lexico_regular_1.default.FIM, "Esperado 'fim' após o escopo do tipo.");
862
- // Depois de verificadas todas as propriedades anotadas com tipo,
863
- // Precisamos gerar um construtor com todas elas na ordem em que
864
- // foram lidas.
865
949
  const instrucoesConstrutor = [];
866
950
  for (let propriedade of propriedades) {
867
951
  instrucoesConstrutor.push(new declaracoes_1.Expressao(new construtos_1.DefinirValor(propriedade.hashArquivo, propriedade.linha, new construtos_1.Isto(propriedade.hashArquivo, propriedade.linha, new lexador_1.Simbolo(lexico_regular_1.default.ISTO, 'isto', undefined, simboloTipo.linha, simboloTipo.hashArquivo)), propriedade.nome, new construtos_1.Variavel(propriedade.hashArquivo, propriedade.nome))));
@@ -872,7 +956,20 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
872
956
  })), instrucoesConstrutor);
873
957
  const construtor = new declaracoes_1.FuncaoDeclaracao(new lexador_1.Simbolo(lexico_regular_1.default.CONSTRUTOR, 'construtor', undefined, simboloTipo.hashArquivo, simboloTipo.linha), construtorConstruto, undefined);
874
958
  metodos.unshift(construtor);
875
- return new declaracoes_1.Classe(construto.simbolo, undefined, metodos, propriedades);
959
+ return new declaracoes_1.Classe(construto.simbolo, undefined, metodos, propriedades, undefined, tipoAbstrato);
960
+ }
961
+ /**
962
+ * Uma declaração de tipo nada mais é do que um declaração de classe.
963
+ * Em Potigol, classe e tipo são praticamente a mesma coisa.
964
+ *
965
+ * @returns Um construto do tipo `Classe`.
966
+ */
967
+ async declaracaoTipo() {
968
+ const declaracaoTipo = await this.declaracaoTipoOuAlias();
969
+ if (declaracaoTipo instanceof declaracoes_2.AliasTipo) {
970
+ throw this.erro(declaracaoTipo.simbolo, 'Alias de tipo não pode ser usado em um contexto que exige declaração de classe.');
971
+ }
972
+ return declaracaoTipo;
876
973
  }
877
974
  async atribuir() {
878
975
  const expressao = await this.ou();
@@ -918,7 +1015,7 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
918
1015
  * `leia_textos`.
919
1016
  */
920
1017
  async expressaoLeia() {
921
- throw new Error('Método não implementado.');
1018
+ throw this.erro(this.simbolos[this.atual] || this.simboloAnterior(), "Potigol não possui uma expressão genérica 'leia'. Use uma das formas tipadas, como 'leia_inteiro', 'leia_real', 'leia_texto', 'leia_inteiros', 'leia_reais' ou 'leia_textos'.");
922
1019
  }
923
1020
  /**
924
1021
  * Em Potigol, uma definição de função pode simplesmente começar com um
@@ -956,6 +1053,8 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
956
1053
  return this.declaracaoEscolha();
957
1054
  case lexico_regular_1.default.ESCREVA:
958
1055
  return this.declaracaoEscreva();
1056
+ case lexico_regular_1.default.FACA:
1057
+ return this.declaracaoFazer();
959
1058
  case lexico_regular_1.default.IMPRIMA:
960
1059
  return this.declaracaoImprima();
961
1060
  case lexico_regular_1.default.PARA:
@@ -963,7 +1062,9 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
963
1062
  case lexico_regular_1.default.SE:
964
1063
  return this.declaracaoSe();
965
1064
  case lexico_regular_1.default.TIPO:
966
- return this.declaracaoTipo();
1065
+ return this.declaracaoTipoOuAlias();
1066
+ case lexico_regular_1.default.USE:
1067
+ return this.declaracaoUse();
967
1068
  case lexico_regular_1.default.VAL:
968
1069
  return this.declaracaoDeConstanteExplicita();
969
1070
  case lexico_regular_1.default.VARIAVEL:
@@ -979,6 +1080,7 @@ class AvaliadorSintaticoPotigol extends avaliador_sintatico_base_1.AvaliadorSint
979
1080
  this.blocos = 0;
980
1081
  this.pilhaEscoposVariaveisConhecidas = new pilha_escopos_variaveis_conhecidas_1.PilhaEscoposVariaveisConhecidas();
981
1082
  this.pilhaEscoposVariaveisConhecidas.empilhar([]);
1083
+ this.tiposDefinidosEmCodigo = {};
982
1084
  this.hashArquivo = hashArquivo || 0;
983
1085
  this.simbolos = (retornoLexador === null || retornoLexador === void 0 ? void 0 : retornoLexador.simbolos) || [];
984
1086
  this.declaracoes = [];
@@ -1 +1 @@
1
- {"version":3,"file":"avaliador-sintatico-potigol.js","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico-potigol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"avaliador-sintatico-potigol.js","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico-potigol.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { InterpretadorPotigolInterface } from '../interfaces';
2
2
  export declare function abs(interpretador: InterpretadorPotigolInterface, valor: number): Promise<number>;
3
- export declare function aleatorio(): Promise<number>;
3
+ export declare function aleatorio(interpretadorOuPrimeiro?: InterpretadorPotigolInterface | number, primeiroOuUltimo?: number | Array<any>, ultimo?: number): Promise<any>;
4
4
  export declare function arccos(interpretador: InterpretadorPotigolInterface, valor: number): Promise<number>;
5
5
  export declare function arcsen(interpretador: InterpretadorPotigolInterface, valor: number): Promise<number>;
6
6
  export declare function arctg(interpretador: InterpretadorPotigolInterface, valor: number): Promise<number>;
@@ -8,7 +8,7 @@ export declare function cos(interpretador: InterpretadorPotigolInterface, valor:
8
8
  export declare function log(interpretador: InterpretadorPotigolInterface, valor: number): Promise<number>;
9
9
  export declare function log10(interpretador: InterpretadorPotigolInterface, valor: number): Promise<number>;
10
10
  export declare function pi(): Promise<number>;
11
- export declare function raiz(interpretador: InterpretadorPotigolInterface, valor: number): Promise<number>;
11
+ export declare function raiz(interpretadorOuValor: InterpretadorPotigolInterface | number, valorOuIndice: number, indice?: number): Promise<number>;
12
12
  export declare function sen(interpretador: InterpretadorPotigolInterface, valor: number): Promise<number>;
13
13
  export declare function tg(interpretador: InterpretadorPotigolInterface, valor: number): Promise<number>;
14
14
  //# sourceMappingURL=biblioteca-global.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"biblioteca-global.d.ts","sourceRoot":"","sources":["../../fontes/bibliotecas/biblioteca-global.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAE9D,wBAAsB,GAAG,CAAC,aAAa,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEtG;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAEjD;AAED,wBAAsB,MAAM,CAAC,aAAa,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEzG;AAED,wBAAsB,MAAM,CAAC,aAAa,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEzG;AAED,wBAAsB,KAAK,CAAC,aAAa,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAExG;AAED,wBAAsB,GAAG,CAAC,aAAa,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEtG;AAED,wBAAsB,GAAG,CAAC,aAAa,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEtG;AAED,wBAAsB,KAAK,CAAC,aAAa,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAExG;AAED,wBAAsB,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,CAE1C;AAED,wBAAsB,IAAI,CAAC,aAAa,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,mBAErF;AAED,wBAAsB,GAAG,CAAC,aAAa,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,mBAEpF;AAED,wBAAsB,EAAE,CAAC,aAAa,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,mBAEnF"}
1
+ {"version":3,"file":"biblioteca-global.d.ts","sourceRoot":"","sources":["../../fontes/bibliotecas/biblioteca-global.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAE9D,wBAAsB,GAAG,CAAC,aAAa,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEtG;AAED,wBAAsB,SAAS,CAC3B,uBAAuB,CAAC,EAAE,6BAA6B,GAAG,MAAM,EAChE,gBAAgB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,EACtC,MAAM,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,GAAG,CAAC,CA0Bd;AAED,wBAAsB,MAAM,CAAC,aAAa,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEzG;AAED,wBAAsB,MAAM,CAAC,aAAa,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEzG;AAED,wBAAsB,KAAK,CAAC,aAAa,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAExG;AAED,wBAAsB,GAAG,CAAC,aAAa,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEtG;AAED,wBAAsB,GAAG,CAAC,aAAa,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEtG;AAED,wBAAsB,KAAK,CAAC,aAAa,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAExG;AAED,wBAAsB,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,CAE1C;AAED,wBAAsB,IAAI,CACtB,oBAAoB,EAAE,6BAA6B,GAAG,MAAM,EAC5D,aAAa,EAAE,MAAM,EACrB,MAAM,SAAI,mBAKb;AAED,wBAAsB,GAAG,CAAC,aAAa,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,mBAEpF;AAED,wBAAsB,EAAE,CAAC,aAAa,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,mBAEnF"}
@@ -15,8 +15,29 @@ exports.tg = tg;
15
15
  async function abs(interpretador, valor) {
16
16
  return Promise.resolve(Math.abs(valor));
17
17
  }
18
- async function aleatorio() {
19
- return Promise.resolve(Math.random());
18
+ async function aleatorio(interpretadorOuPrimeiro, primeiroOuUltimo, ultimo) {
19
+ // Sobrecarga: aleatorio(lista) — retorna elemento aleatório da lista
20
+ if (Array.isArray(primeiroOuUltimo)) {
21
+ const lista = primeiroOuUltimo;
22
+ if (lista.length === 0)
23
+ return Promise.resolve(undefined);
24
+ return Promise.resolve(lista[Math.floor(Math.random() * lista.length)]);
25
+ }
26
+ const primeiroArgumentoEValor = typeof interpretadorOuPrimeiro === 'number';
27
+ const primeiro = primeiroArgumentoEValor ? interpretadorOuPrimeiro : primeiroOuUltimo;
28
+ const segundo = primeiroArgumentoEValor ? primeiroOuUltimo : ultimo;
29
+ if (typeof primeiro !== 'number') {
30
+ return Promise.resolve(Math.random());
31
+ }
32
+ if (typeof segundo !== 'number') {
33
+ const maximo = Math.trunc(primeiro);
34
+ const aleatorioNoIntervalo = Math.floor(Math.random() * maximo) + 1;
35
+ return Promise.resolve(aleatorioNoIntervalo);
36
+ }
37
+ const minimo = Math.min(Math.trunc(primeiro), Math.trunc(segundo));
38
+ const maximo = Math.max(Math.trunc(primeiro), Math.trunc(segundo));
39
+ const faixa = maximo - minimo + 1;
40
+ return Promise.resolve(Math.floor(Math.random() * faixa) + minimo);
20
41
  }
21
42
  async function arccos(interpretador, valor) {
22
43
  return Promise.resolve(Math.acos(valor));
@@ -39,8 +60,10 @@ async function log10(interpretador, valor) {
39
60
  async function pi() {
40
61
  return Promise.resolve(Math.PI);
41
62
  }
42
- async function raiz(interpretador, valor) {
43
- return Promise.resolve(Math.sqrt(valor));
63
+ async function raiz(interpretadorOuValor, valorOuIndice, indice = 2) {
64
+ const valor = typeof interpretadorOuValor === 'number' ? interpretadorOuValor : valorOuIndice;
65
+ const indiceEfetivo = typeof interpretadorOuValor === 'number' ? valorOuIndice : indice;
66
+ return Promise.resolve(Math.pow(valor, 1 / indiceEfetivo));
44
67
  }
45
68
  async function sen(interpretador, valor) {
46
69
  return Promise.resolve(Math.sin(valor));