@designliquido/delegua 1.16.3 → 1.17.1

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 (121) hide show
  1. package/analisador-semantico/dialetos/analisador-semantico-pitugues.d.ts +2 -1
  2. package/analisador-semantico/dialetos/analisador-semantico-pitugues.d.ts.map +1 -1
  3. package/analisador-semantico/dialetos/analisador-semantico-pitugues.js +87 -12
  4. package/analisador-semantico/dialetos/analisador-semantico-pitugues.js.map +1 -1
  5. package/avaliador-sintatico/avaliador-sintatico-base.d.ts +1 -1
  6. package/avaliador-sintatico/avaliador-sintatico-base.d.ts.map +1 -1
  7. package/avaliador-sintatico/avaliador-sintatico.d.ts +4 -4
  8. package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
  9. package/avaliador-sintatico/avaliador-sintatico.js +55 -20
  10. package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  11. package/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.d.ts +68 -11
  12. package/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.d.ts.map +1 -1
  13. package/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.js +433 -62
  14. package/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.js.map +1 -1
  15. package/bibliotecas/dialetos/pitugues/biblioteca-global.d.ts +9 -0
  16. package/bibliotecas/dialetos/pitugues/biblioteca-global.d.ts.map +1 -1
  17. package/bibliotecas/dialetos/pitugues/biblioteca-global.js +30 -0
  18. package/bibliotecas/dialetos/pitugues/biblioteca-global.js.map +1 -1
  19. package/bibliotecas/primitivas-dicionario.d.ts.map +1 -1
  20. package/bibliotecas/primitivas-dicionario.js +31 -0
  21. package/bibliotecas/primitivas-dicionario.js.map +1 -1
  22. package/bin/package.json +1 -1
  23. package/construtos/ajuda-como-construto.d.ts +2 -2
  24. package/construtos/ajuda-como-construto.d.ts.map +1 -1
  25. package/construtos/ajuda-como-construto.js.map +1 -1
  26. package/declaracoes/se.d.ts +4 -7
  27. package/declaracoes/se.d.ts.map +1 -1
  28. package/declaracoes/se.js.map +1 -1
  29. package/declaracoes/var.d.ts +2 -2
  30. package/declaracoes/var.d.ts.map +1 -1
  31. package/declaracoes/var.js.map +1 -1
  32. package/estilizador/quebrador-linha.d.ts.map +1 -1
  33. package/estilizador/quebrador-linha.js +13 -0
  34. package/estilizador/quebrador-linha.js.map +1 -1
  35. package/estilizador/regras/index.d.ts +1 -0
  36. package/estilizador/regras/index.d.ts.map +1 -1
  37. package/estilizador/regras/index.js +1 -0
  38. package/estilizador/regras/index.js.map +1 -1
  39. package/estilizador/regras/regra-convencao-nomenclatura.d.ts +3 -0
  40. package/estilizador/regras/regra-convencao-nomenclatura.d.ts.map +1 -1
  41. package/estilizador/regras/regra-convencao-nomenclatura.js +34 -14
  42. package/estilizador/regras/regra-convencao-nomenclatura.js.map +1 -1
  43. package/estilizador/regras/regra-explicitar-tipos-parametros.d.ts +16 -0
  44. package/estilizador/regras/regra-explicitar-tipos-parametros.d.ts.map +1 -0
  45. package/estilizador/regras/regra-explicitar-tipos-parametros.js +50 -0
  46. package/estilizador/regras/regra-explicitar-tipos-parametros.js.map +1 -0
  47. package/formatadores/formatador-delegua.d.ts +1 -0
  48. package/formatadores/formatador-delegua.d.ts.map +1 -1
  49. package/formatadores/formatador-delegua.js +9 -3
  50. package/formatadores/formatador-delegua.js.map +1 -1
  51. package/interfaces/declaracoes/caminho-se-senao-interface.d.ts +7 -0
  52. package/interfaces/declaracoes/caminho-se-senao-interface.d.ts.map +1 -0
  53. package/interfaces/declaracoes/caminho-se-senao-interface.js +3 -0
  54. package/interfaces/declaracoes/caminho-se-senao-interface.js.map +1 -0
  55. package/interfaces/declaracoes/index.d.ts +2 -0
  56. package/interfaces/declaracoes/index.d.ts.map +1 -0
  57. package/interfaces/declaracoes/index.js +18 -0
  58. package/interfaces/declaracoes/index.js.map +1 -0
  59. package/interfaces/interpretador-interface.d.ts +1 -1
  60. package/interfaces/interpretador-interface.d.ts.map +1 -1
  61. package/interpretador/argumento-interface.d.ts +1 -1
  62. package/interpretador/argumento-interface.d.ts.map +1 -1
  63. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts +60 -107
  64. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts.map +1 -1
  65. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js +435 -336
  66. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js.map +1 -1
  67. package/interpretador/estruturas/chamavel.d.ts +1 -1
  68. package/interpretador/estruturas/chamavel.d.ts.map +1 -1
  69. package/interpretador/estruturas/chamavel.js +3 -0
  70. package/interpretador/estruturas/chamavel.js.map +1 -1
  71. package/interpretador/estruturas/delegua-funcao.d.ts +2 -2
  72. package/interpretador/estruturas/delegua-funcao.d.ts.map +1 -1
  73. package/interpretador/estruturas/delegua-funcao.js +2 -2
  74. package/interpretador/estruturas/delegua-funcao.js.map +1 -1
  75. package/interpretador/estruturas/funcao-padrao.d.ts +2 -2
  76. package/interpretador/estruturas/funcao-padrao.d.ts.map +1 -1
  77. package/interpretador/estruturas/funcao-padrao.js +4 -2
  78. package/interpretador/estruturas/funcao-padrao.js.map +1 -1
  79. package/interpretador/estruturas/metodo-polimorfico.d.ts +1 -1
  80. package/interpretador/estruturas/metodo-polimorfico.d.ts.map +1 -1
  81. package/interpretador/estruturas/metodo-polimorfico.js +2 -2
  82. package/interpretador/estruturas/metodo-polimorfico.js.map +1 -1
  83. package/interpretador/interpretador-base.d.ts +18 -11
  84. package/interpretador/interpretador-base.d.ts.map +1 -1
  85. package/interpretador/interpretador-base.js +116 -232
  86. package/interpretador/interpretador-base.js.map +1 -1
  87. package/interpretador/interpretador.d.ts +2 -6
  88. package/interpretador/interpretador.d.ts.map +1 -1
  89. package/interpretador/interpretador.js +126 -11
  90. package/interpretador/interpretador.js.map +1 -1
  91. package/lexador/dialetos/lexador-portugol-ipt.d.ts.map +1 -1
  92. package/lexador/dialetos/lexador-portugol-ipt.js +71 -19
  93. package/lexador/dialetos/lexador-portugol-ipt.js.map +1 -1
  94. package/lexador/dialetos/palavras-reservadas/portugol-ipt.d.ts +34 -6
  95. package/lexador/dialetos/palavras-reservadas/portugol-ipt.d.ts.map +1 -1
  96. package/lexador/dialetos/palavras-reservadas/portugol-ipt.js +44 -6
  97. package/lexador/dialetos/palavras-reservadas/portugol-ipt.js.map +1 -1
  98. package/lexador/lexador.d.ts.map +1 -1
  99. package/lexador/lexador.js +20 -1
  100. package/lexador/lexador.js.map +1 -1
  101. package/lexador/palavras-reservadas.d.ts +2 -86
  102. package/lexador/palavras-reservadas.d.ts.map +1 -1
  103. package/lexador/palavras-reservadas.js.map +1 -1
  104. package/package.json +1 -1
  105. package/tipos-de-simbolos/delegua.d.ts +1 -0
  106. package/tipos-de-simbolos/delegua.d.ts.map +1 -1
  107. package/tipos-de-simbolos/delegua.js +1 -0
  108. package/tipos-de-simbolos/delegua.js.map +1 -1
  109. package/tipos-de-simbolos/portugol-ipt.d.ts +43 -19
  110. package/tipos-de-simbolos/portugol-ipt.d.ts.map +1 -1
  111. package/tipos-de-simbolos/portugol-ipt.js +59 -19
  112. package/tipos-de-simbolos/portugol-ipt.js.map +1 -1
  113. package/tradutores/tradutor-assemblyscript.js +1 -1
  114. package/tradutores/tradutor-assemblyscript.js.map +1 -1
  115. package/tradutores/tradutor-javascript.js +1 -1
  116. package/tradutores/tradutor-javascript.js.map +1 -1
  117. package/tradutores/tradutor-portugol-ipt.d.ts +34 -12
  118. package/tradutores/tradutor-portugol-ipt.d.ts.map +1 -1
  119. package/tradutores/tradutor-portugol-ipt.js +309 -19
  120. package/tradutores/tradutor-portugol-ipt.js.map +1 -1
  121. package/umd/delegua.js +1748 -857
@@ -1,35 +1,92 @@
1
1
  import { Construto, FuncaoConstruto, Leia } from '../../construtos';
2
- import { Escreva, Declaracao, Se, Enquanto, Para, Escolha, Fazer, Var } from '../../declaracoes';
2
+ import { Declaracao, Enquanto, Escolha, Escreva, Fazer, Para, Se } from '../../declaracoes';
3
3
  import { RetornoLexador, RetornoAvaliadorSintatico } from '../../interfaces/retornos';
4
4
  import { AvaliadorSintaticoBase } from '../avaliador-sintatico-base';
5
5
  import { SimboloInterface } from '../../interfaces';
6
6
  export declare class AvaliadorSintaticoPortugolIpt extends AvaliadorSintaticoBase {
7
+ private simboloAtualEh;
8
+ private fechamentoEnquantoAtual;
9
+ private consumirFechamentoEnquanto;
10
+ private fechamentoEscolheAtual;
11
+ private consumirFechamentoEscolhe;
12
+ private avaliarExpressaoNumericaConstante;
13
+ /**
14
+ * Consome quebras de linha opcionais.
15
+ */
16
+ private consumirQuebrasLinha;
17
+ /**
18
+ * Coleta declarações até encontrar um token cujo tipo esteja em `tiposParada`.
19
+ * O token de parada NÃO é consumido.
20
+ */
21
+ private resolverBloco;
7
22
  primario(): Promise<Construto>;
8
23
  /**
9
- * Aparentemente, o Portugol IPT não suporta chamadas de função.
10
- * @returns O retorno da chamada de `primario()`.
24
+ * Suporta chamadas de funções embutidas: SEN(x), COS(x), POTENCIA(b,e), etc.
11
25
  */
12
26
  chamar(): Promise<Construto>;
27
+ /**
28
+ * Override de `unario()` para incluir operadores unários aritméticos.
29
+ * `NAO` é tratado em `e()` para ter precedência menor que comparações.
30
+ */
31
+ protected unario(): Promise<Construto>;
32
+ /**
33
+ * Override de `e()` para suportar o operador lógico `NAO` com precedência
34
+ * menor que comparações: `nao x = 0` → `nao (x = 0)`.
35
+ */
36
+ protected e(): Promise<Construto>;
37
+ /**
38
+ * Override de `ou()` para incluir o operador lógico `XOU`.
39
+ */
40
+ protected ou(): Promise<Construto>;
13
41
  atribuir(): Promise<Construto>;
14
42
  /**
15
- * A declaração escreva (ou escrever) do Portugol IPT é sempre na mesma linha.
43
+ * `escrever expr [, expr ...]`
16
44
  */
17
45
  declaracaoEscreva(): Promise<Escreva>;
18
- blocoEscopo(): Promise<Declaracao[]>;
46
+ /**
47
+ * `se cond entao ... [senao ...] fimse`
48
+ */
19
49
  declaracaoSe(): Promise<Se>;
50
+ /**
51
+ * `enquanto cond faz ... fimenquanto`
52
+ */
20
53
  declaracaoEnquanto(): Promise<Enquanto>;
54
+ /**
55
+ * `para v de ini ate fim [passo p]` + corpo + `proximo`
56
+ */
21
57
  declaracaoPara(): Promise<Para>;
58
+ /**
59
+ * `repete ... ate cond`
60
+ * Semântica: executa o corpo e repete enquanto a condição for FALSA (repeat-until).
61
+ * Mapeado para `Fazer` com a condição invertida via `nao`.
62
+ */
63
+ private declaracaoRepete;
64
+ /**
65
+ * `faz ... enquanto cond`
66
+ * O `enquanto` de fechamento é distinguido no lexer (FAZENQUANTO) do `enquanto` de abertura.
67
+ */
68
+ declaracaoFazer(): Promise<Fazer>;
69
+ /**
70
+ * `escolhe expr caso v[, v...]: instr ... [defeito: instr] fimescolhe`
71
+ */
22
72
  declaracaoEscolha(): Escolha;
23
- declaracaoFazer(): Fazer;
24
- declaracaoInteiros(): Promise<Var[]>;
73
+ private declaracaoEscolhaAsync;
25
74
  /**
26
- * Análise de uma declaração `leia()`. No VisuAlg, `leia()` aceita 1..N argumentos.
27
- * @returns Uma declaração `Leia`.
75
+ * `ler var [, var ...]`
28
76
  */
29
77
  expressaoLeia(): Promise<Leia>;
30
- corpoDaFuncao(tipo: string): Promise<FuncaoConstruto>;
78
+ /**
79
+ * Declara variáveis de um dado tipo, com suporte a arrays e valor inicial.
80
+ * Ex: `inteiro x`, `real y = 3.14`, `logico v[5]`
81
+ */
82
+ private declaracaoVariaveis;
83
+ /**
84
+ * `constante tipo nome = valor`
85
+ */
86
+ private declaracaoConstante;
31
87
  resolverDeclaracaoForaDeBloco(): Promise<Declaracao | Declaracao[]>;
32
- private validarSegmentoInicio;
88
+ blocoEscopo(): Promise<Declaracao[]>;
89
+ corpoDaFuncao(_tipo: string): Promise<FuncaoConstruto>;
33
90
  analisar(retornoLexador: RetornoLexador<SimboloInterface>, hashArquivo: number): Promise<RetornoAvaliadorSintatico<Declaracao>>;
34
91
  }
35
92
  //# sourceMappingURL=avaliador-sintatico-portugol-ipt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"avaliador-sintatico-portugol-ipt.d.ts","sourceRoot":"","sources":["../../../fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,SAAS,EAET,eAAe,EACf,IAAI,EAGP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACH,OAAO,EACP,UAAU,EACV,EAAE,EACF,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,KAAK,EAEL,GAAG,EAGN,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAIpD,qBAAa,6BAA8B,SAAQ,sBAAsB;IAC/D,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC;IA2BpC;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC;IAI5B,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC;IA2BpC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAgB3C,WAAW,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAI9B,YAAY,IAAI,OAAO,CAAC,EAAE,CAAC;IAkCjC,kBAAkB,IAAI,OAAO,CAAC,QAAQ,CAAC;IAIvC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,iBAAiB,IAAI,OAAO;IAI5B,eAAe,IAAI,KAAK;IAIlB,kBAAkB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAoC1C;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAWpC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAI/C,6BAA6B,IAAI,OAAO,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;IAmBzE,OAAO,CAAC,qBAAqB;IAOvB,QAAQ,CACV,cAAc,EAAE,cAAc,CAAC,gBAAgB,CAAC,EAChD,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;CA6BpD"}
1
+ {"version":3,"file":"avaliador-sintatico-portugol-ipt.d.ts","sourceRoot":"","sources":["../../../fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.ts"],"names":[],"mappings":"AAAA,OAAO,EAOH,SAAS,EAET,eAAe,EACf,IAAI,EAMP,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAGH,UAAU,EACV,QAAQ,EACR,OAAO,EACP,OAAO,EAGP,KAAK,EAEL,IAAI,EACJ,EAAE,EAEL,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAMpD,qBAAa,6BAA8B,SAAQ,sBAAsB;IAErE,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,0BAA0B;IASlC,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,yBAAyB;IASjC,OAAO,CAAC,iCAAiC;IAiDzC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;;OAGG;YACW,aAAa;IAsBrB,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC;IAmCpC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC;IA4BlC;;;OAGG;cACa,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC;IAc5C;;;OAGG;cACa,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC;IAoBvC;;OAEG;cACa,EAAE,IAAI,OAAO,CAAC,SAAS,CAAC;IAclC,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC;IA6BpC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAc3C;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,EAAE,CAAC;IAyBjC;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,QAAQ,CAAC;IA4B7C;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IA4CrC;;;;OAIG;YACW,gBAAgB;IAkB9B;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,KAAK,CAAC;IAYvC;;OAEG;IACH,iBAAiB,IAAI,OAAO;YASd,sBAAsB;IAgDpC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IASpC;;;OAGG;YACW,mBAAmB;IAuDjC;;OAEG;YACW,mBAAmB;IA2C3B,6BAA6B,IAAI,OAAO,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC;IAoDzE,WAAW,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAIpC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAMhD,QAAQ,CACV,cAAc,EAAE,cAAc,CAAC,gBAAgB,CAAC,EAChD,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;CA+BpD"}