@designliquido/delegua 0.25.8 → 0.25.9

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 (181) hide show
  1. package/README.md +34 -12
  2. package/bin/package.json +2 -2
  3. package/fontes/analisador-semantico/analisador-semantico.d.ts +2 -0
  4. package/fontes/analisador-semantico/analisador-semantico.js +91 -2
  5. package/fontes/analisador-semantico/analisador-semantico.js.map +1 -1
  6. package/fontes/analisador-semantico/dialetos/index.d.ts +1 -1
  7. package/fontes/analisador-semantico/dialetos/index.js.map +1 -1
  8. package/fontes/analisador-semantico/pilha-variaveis.d.ts +2 -2
  9. package/fontes/analisador-semantico/pilha-variaveis.js.map +1 -1
  10. package/fontes/avaliador-sintatico/avaliador-sintatico-base.js +1 -1
  11. package/fontes/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
  12. package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +2 -3
  13. package/fontes/avaliador-sintatico/avaliador-sintatico.js +8 -93
  14. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  15. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js +5 -1
  16. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js.map +1 -1
  17. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
  18. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.d.ts +5 -5
  19. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js +6 -6
  20. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js.map +1 -1
  21. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-mapler.js +9 -9
  22. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-mapler.js.map +1 -1
  23. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +4 -4
  24. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
  25. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.d.ts +5 -5
  26. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.js +6 -6
  27. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.js.map +1 -1
  28. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.js +9 -8
  29. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.js.map +1 -1
  30. package/fontes/avaliador-sintatico/dialetos/potigol/avaliador-sintatico-potigol.js +19 -24
  31. package/fontes/avaliador-sintatico/dialetos/potigol/avaliador-sintatico-potigol.js.map +1 -1
  32. package/fontes/avaliador-sintatico/dialetos/potigol/micro-avaliador-sintatico-potigol.d.ts +5 -5
  33. package/fontes/avaliador-sintatico/dialetos/potigol/micro-avaliador-sintatico-potigol.js.map +1 -1
  34. package/fontes/avaliador-sintatico/dialetos/visualg/avaliador-sintatico-visualg.js +21 -25
  35. package/fontes/avaliador-sintatico/dialetos/visualg/avaliador-sintatico-visualg.js.map +1 -1
  36. package/fontes/avaliador-sintatico/dialetos/visualg/parametro-visualg.d.ts +1 -1
  37. package/fontes/avaliador-sintatico/micro-avaliador-sintatico-base.d.ts +5 -5
  38. package/fontes/avaliador-sintatico/micro-avaliador-sintatico-base.js.map +1 -1
  39. package/fontes/avaliador-sintatico/micro-avaliador-sintatico.d.ts +6 -6
  40. package/fontes/avaliador-sintatico/micro-avaliador-sintatico.js.map +1 -1
  41. package/fontes/avaliador-sintatico/traducao/avaliador-sintatico-javascript.js +1 -1
  42. package/fontes/bibliotecas/dialetos/potigol/biblioteca-global.d.ts +2 -2
  43. package/fontes/bibliotecas/dialetos/potigol/biblioteca-global.js.map +1 -1
  44. package/fontes/bibliotecas/dialetos/potigol/primitivas-numero.d.ts +1 -1
  45. package/fontes/bibliotecas/dialetos/potigol/primitivas-numero.js +1 -1
  46. package/fontes/bibliotecas/dialetos/potigol/primitivas-numero.js.map +1 -1
  47. package/fontes/bibliotecas/dialetos/potigol/primitivas-texto.d.ts +1 -1
  48. package/fontes/bibliotecas/dialetos/potigol/primitivas-texto.js +6 -6
  49. package/fontes/bibliotecas/dialetos/potigol/primitivas-texto.js.map +1 -1
  50. package/fontes/bibliotecas/dialetos/potigol/primitivas-vetor.d.ts +1 -1
  51. package/fontes/bibliotecas/dialetos/potigol/primitivas-vetor.js.map +1 -1
  52. package/fontes/bibliotecas/dialetos/visualg/caracteres.d.ts +2 -2
  53. package/fontes/bibliotecas/dialetos/visualg/caracteres.js.map +1 -1
  54. package/fontes/bibliotecas/dialetos/visualg/numerica.d.ts +2 -2
  55. package/fontes/bibliotecas/dialetos/visualg/numerica.js +2 -2
  56. package/fontes/bibliotecas/dialetos/visualg/numerica.js.map +1 -1
  57. package/fontes/bibliotecas/primitivas-texto.d.ts +1 -1
  58. package/fontes/bibliotecas/primitivas-texto.js +2 -2
  59. package/fontes/bibliotecas/primitivas-texto.js.map +1 -1
  60. package/fontes/bibliotecas/primitivas-vetor.d.ts +2 -2
  61. package/fontes/bibliotecas/primitivas-vetor.js +7 -5
  62. package/fontes/bibliotecas/primitivas-vetor.js.map +1 -1
  63. package/fontes/construtos/constante-ou-variavel.js.map +1 -1
  64. package/fontes/construtos/funcao.js.map +1 -1
  65. package/fontes/construtos/tuplas/deceto.d.ts +1 -1
  66. package/fontes/construtos/tuplas/deceto.js.map +1 -1
  67. package/fontes/construtos/tuplas/dupla.d.ts +1 -1
  68. package/fontes/construtos/tuplas/index.js +2 -2
  69. package/fontes/construtos/tuplas/index.js.map +1 -1
  70. package/fontes/construtos/tuplas/noneto.d.ts +1 -1
  71. package/fontes/construtos/tuplas/noneto.js.map +1 -1
  72. package/fontes/construtos/tuplas/octeto.d.ts +1 -1
  73. package/fontes/construtos/tuplas/octeto.js.map +1 -1
  74. package/fontes/construtos/tuplas/quarteto.d.ts +1 -1
  75. package/fontes/construtos/tuplas/quinteto.d.ts +1 -1
  76. package/fontes/construtos/tuplas/septeto.d.ts +1 -1
  77. package/fontes/construtos/tuplas/sexteto.d.ts +1 -1
  78. package/fontes/construtos/tuplas/trio.d.ts +1 -1
  79. package/fontes/construtos/tuplas/tupla.d.ts +2 -2
  80. package/fontes/construtos/tuplas/tupla.js +1 -1
  81. package/fontes/construtos/tuplas/tupla.js.map +1 -1
  82. package/fontes/declaracoes/const-multiplo.js.map +1 -1
  83. package/fontes/declaracoes/const.js.map +1 -1
  84. package/fontes/declaracoes/para-cada.d.ts +2 -2
  85. package/fontes/declaracoes/para-cada.js.map +1 -1
  86. package/fontes/declaracoes/propriedade-classe.d.ts +2 -2
  87. package/fontes/estruturas/chamavel.d.ts +1 -1
  88. package/fontes/estruturas/delegua-funcao.js +9 -9
  89. package/fontes/estruturas/delegua-funcao.js.map +1 -1
  90. package/fontes/interfaces/erros/erro-analisador-semantico.d.ts +1 -1
  91. package/fontes/interfaces/parametro-interface.d.ts +6 -1
  92. package/fontes/interfaces/retornos/retorno-analisador-semantico.d.ts +1 -1
  93. package/fontes/interpretador/dialetos/birl/interpretador-birl.js +4 -4
  94. package/fontes/interpretador/dialetos/birl/interpretador-birl.js.map +1 -1
  95. package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +7 -7
  96. package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
  97. package/fontes/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js.map +1 -1
  98. package/fontes/interpretador/dialetos/index.js.map +1 -1
  99. package/fontes/interpretador/dialetos/mapler/comum.d.ts +2 -2
  100. package/fontes/interpretador/dialetos/mapler/comum.js +3 -9
  101. package/fontes/interpretador/dialetos/mapler/comum.js.map +1 -1
  102. package/fontes/interpretador/dialetos/mapler/interpretador-mapler-com-depuracao.js +1 -1
  103. package/fontes/interpretador/dialetos/mapler/interpretador-mapler.js.map +1 -1
  104. package/fontes/interpretador/dialetos/portugol-studio/comum.d.ts +2 -2
  105. package/fontes/interpretador/dialetos/portugol-studio/comum.js +3 -1
  106. package/fontes/interpretador/dialetos/portugol-studio/comum.js.map +1 -1
  107. package/fontes/interpretador/dialetos/portugol-studio/interpretador-portugol-studio-com-depuracao.d.ts +2 -2
  108. package/fontes/interpretador/dialetos/portugol-studio/interpretador-portugol-studio-com-depuracao.js.map +1 -1
  109. package/fontes/interpretador/dialetos/portugol-studio/interpretador-portugol-studio.d.ts +2 -2
  110. package/fontes/interpretador/dialetos/portugol-studio/interpretador-portugol-studio.js.map +1 -1
  111. package/fontes/interpretador/dialetos/potigol/comum.d.ts +11 -11
  112. package/fontes/interpretador/dialetos/potigol/comum.js +13 -13
  113. package/fontes/interpretador/dialetos/potigol/comum.js.map +1 -1
  114. package/fontes/interpretador/dialetos/potigol/inferenciador.js.map +1 -1
  115. package/fontes/interpretador/dialetos/potigol/interpretador-potigol-com-depuracao.d.ts +2 -2
  116. package/fontes/interpretador/dialetos/potigol/interpretador-potigol-com-depuracao.js.map +1 -1
  117. package/fontes/interpretador/dialetos/potigol/interpretador-potigol.d.ts +2 -2
  118. package/fontes/interpretador/dialetos/visualg/comum.d.ts +3 -3
  119. package/fontes/interpretador/dialetos/visualg/comum.js +11 -25
  120. package/fontes/interpretador/dialetos/visualg/comum.js.map +1 -1
  121. package/fontes/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.js +5 -3
  122. package/fontes/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.js.map +1 -1
  123. package/fontes/interpretador/dialetos/visualg/interpretador-visualg.js.map +1 -1
  124. package/fontes/interpretador/inferenciador.js.map +1 -1
  125. package/fontes/interpretador/interpretador-base.js +29 -30
  126. package/fontes/interpretador/interpretador-base.js.map +1 -1
  127. package/fontes/interpretador/interpretador-com-depuracao.js +3 -3
  128. package/fontes/interpretador/interpretador-com-depuracao.js.map +1 -1
  129. package/fontes/interpretador/pilha-escopos-execucao.js +5 -5
  130. package/fontes/lexador/dialetos/lexador-guarani.d.ts +3 -3
  131. package/fontes/lexador/dialetos/lexador-mapler.js.map +1 -1
  132. package/fontes/lexador/dialetos/lexador-portugol-ipt.d.ts +3 -3
  133. package/fontes/lexador/dialetos/lexador-portugol-ipt.js +2 -3
  134. package/fontes/lexador/dialetos/lexador-portugol-ipt.js.map +1 -1
  135. package/fontes/lexador/dialetos/lexador-portugol-studio.js.map +1 -1
  136. package/fontes/lexador/dialetos/lexador-potigol.d.ts +3 -3
  137. package/fontes/lexador/dialetos/lexador-potigol.js.map +1 -1
  138. package/fontes/lexador/dialetos/palavras-reservadas/guarani.js +1 -1
  139. package/fontes/lexador/dialetos/palavras-reservadas/guarani.js.map +1 -1
  140. package/fontes/lexador/dialetos/palavras-reservadas/portugol-ipt.js +1 -1
  141. package/fontes/lexador/dialetos/palavras-reservadas/portugol-studio.js +1 -1
  142. package/fontes/lexador/dialetos/palavras-reservadas/portugol-studio.js.map +1 -1
  143. package/fontes/lexador/dialetos/palavras-reservadas/potigol.js +1 -1
  144. package/fontes/lexador/dialetos/palavras-reservadas/potigol.js.map +1 -1
  145. package/fontes/lexador/dialetos/palavras-reservadas/rantiaquin.js.map +1 -1
  146. package/fontes/lexador/dialetos/palavras-reservadas/visualg.js +1 -1
  147. package/fontes/lexador/lexador-base.js.map +1 -1
  148. package/fontes/lexador/lexador.js.map +1 -1
  149. package/fontes/lexador/micro-lexador.d.ts +3 -3
  150. package/fontes/lexador/palavras-reservadas.js +1 -1
  151. package/fontes/lexador/palavras-reservadas.js.map +1 -1
  152. package/fontes/lexador/traducao/lexador-javascript.d.ts +5 -5
  153. package/fontes/lexador/traducao/lexador-javascript.js +14 -14
  154. package/fontes/lexador/traducao/lexador-javascript.js.map +1 -1
  155. package/fontes/tipos-de-simbolos/birl.js.map +1 -1
  156. package/fontes/tipos-de-simbolos/guarani.js +1 -1
  157. package/fontes/tipos-de-simbolos/guarani.js.map +1 -1
  158. package/fontes/tipos-de-simbolos/portugol-studio.js +1 -1
  159. package/fontes/tipos-de-simbolos/potigol.js +1 -1
  160. package/fontes/tipos-de-simbolos/potigol.js.map +1 -1
  161. package/fontes/tipos-de-simbolos/rantiaquin.js.map +1 -1
  162. package/fontes/tipos-de-simbolos/visualg.js +1 -1
  163. package/fontes/tradutores/python/python3-lexer.d.ts +5 -5
  164. package/fontes/tradutores/python/python3-lexer.js +841 -566
  165. package/fontes/tradutores/python/python3-lexer.js.map +1 -1
  166. package/fontes/tradutores/tradutor-assembly-x64.js +13 -13
  167. package/fontes/tradutores/tradutor-assemblyscript.js +1 -1
  168. package/fontes/tradutores/tradutor-assemblyscript.js.map +1 -1
  169. package/fontes/tradutores/tradutor-javascript.d.ts +1 -1
  170. package/fontes/tradutores/tradutor-javascript.js +12 -13
  171. package/fontes/tradutores/tradutor-javascript.js.map +1 -1
  172. package/fontes/tradutores/tradutor-portugol-ipt.d.ts +3 -3
  173. package/fontes/tradutores/tradutor-portugol-ipt.js +1 -1
  174. package/fontes/tradutores/tradutor-portugol-ipt.js.map +1 -1
  175. package/fontes/tradutores/tradutor-python.d.ts +3 -3
  176. package/fontes/tradutores/tradutor-python.js +4 -5
  177. package/fontes/tradutores/tradutor-python.js.map +1 -1
  178. package/fontes/tradutores/tradutor-reverso-python.js +1 -1
  179. package/fontes/tradutores/tradutor-reverso-python.js.map +1 -1
  180. package/fontes/tradutores/tradutor-reverso-visualg.js.map +1 -1
  181. package/package.json +2 -2
package/README.md CHANGED
@@ -47,19 +47,41 @@ Delégua é uma linguagem de programação baseada na língua portuguesa, cujo c
47
47
 
48
48
  Delégua tem retrocompatibilidade com a linguagem Égua e compreende sua extensão de arquivo (`.egua`). Em outras palavras, todo programa escrito em Égua funciona em Delégua, mas Delégua tem capacidades a mais, [conforme mencionado em documentação](https://github.com/DesignLiquido/delegua/wiki).
49
49
 
50
+ ## Vantagens de programar em português
51
+
52
+ - **Acessibilidade e Compreensão:** Programar em sua língua materna, como o português, pode tornar os conceitos de programação mais acessíveis e fáceis de entender, especialmente para iniciantes. Isso reduz a barreira de entrada para novos programadores.
53
+
54
+ - **Facilita o Aprendizado:** A programação em português permite que os aprendizes concentrem-se nos conceitos de programação em vez de lidar com a barreira do idioma. Isso pode acelerar o processo de aprendizado, especialmente para pessoas que não têm fluência em inglês.
55
+
56
+ - **Melhor Comunicação e Documentação:** Programar em seu idioma nativo pode levar a uma comunicação mais clara e eficaz com colegas e clientes locais. Além disso, a documentação em português pode ser mais fácil de compreender e seguir.
57
+
58
+ - **Contribuição para a Identidade Cultural:** Linguagens de programação em português contribuem para a preservação da identidade cultural e linguística, promovendo o uso e a adoção do idioma em contextos tecnológicos.
59
+
60
+ - **Facilita a Localização de Erros:** Programar em português pode tornar mais fácil a localização e correção de erros de código, uma vez que os desenvolvedores podem compreender rapidamente o contexto dos problemas.
61
+
50
62
  ## Características
63
+ Delégua, a linguagem de programação totalmente em português, possui uma série de características que a tornam única e atraente:
64
+
65
+ ### Acessibilidade
66
+ - **Simples e Completa:** Delégua é projetada para ser acessível a programadores de todos os níveis, desde iniciantes até experientes. Sua simplicidade e completude facilitam a aprendizagem.
51
67
 
52
- - **Simples e Completa.** Podendo ser usada por pessoas com ou sem experiência em programação.
53
- - **Totalmente em Português.** Desenvolvida totalmente em português (mesmo) para quebrar a barreira do inglês.
54
- - **Grátis.** Sem planos, sem limitações e sem propaganda. A licença é MIT.
55
- - **Código aberto (_open source_).** Todo o código fonte disponível para estudar, modificar e contribuir. Usamos 100% TypeScript. As gramáticas são escritas em ANTLR4.
56
- - **Linguagem Científica.** Apoiamos e encorajamos o desenvolvimento e aprimoramento da ciência e da educação. Temos diferentes pacotes e bibliotecas para física, matemática, etc.
57
- - **Modular.** Escreva múltiplos fontes e os reuse em seu código.
58
- - **Orientada a Objetos.** Classes, objetos e herança são implementados em Delégua e Pituguês.
59
- - **Multidialetos.** Execute algoritmos em [Portugol VisuAlg](https://pt.wikipedia.org/wiki/Visualg), [Portugol Studio](http://lite.acad.univali.br/portugol/), [Portugol Mapler](https://portugol.sourceforge.io/) e [Portugol IPT](http://orion.ipt.pt/~manso/Portugol/menuEsquerda.html).
68
+ - **Totalmente em Português:** Uma característica distintiva é que Delégua é desenvolvida inteiramente em português(mesmo), tornando-a acessível e amigável para aqueles que preferem programar em seu idioma nativo.
69
+
70
+ ### Tecnologia Moderna
71
+ - **Código aberto (_open source_):** Delégua é uma linguagem de código aberto e gratuita, licenciada sob a MIT License, permitindo o uso sem restrições.
72
+
73
+ - **Modularidade:** A linguagem suporta a criação de módulos reutilizáveis, promovendo a organização e a manutenção do código.
74
+
75
+ - **Orientada a Objetos:** Delégua oferece recursos completos de programação orientada a objetos, incluindo classes, objetos e herança.
76
+
77
+ - **Multidialetos.** Execute algoritmos em [Portugol VisuAlg](https://pt.wikipedia.org/wiki/Visualg), [Portugol Studio](http://lite.acad.univali.br/portugol/), [Portugol Mapler](https://portugol.sourceforge.io/) e [Portugol IPT](http://orion.ipt.pt/~manso/Portugol/menuEsquerda.html).
78
+
79
+ ### Flexibilidade e Potencial
60
80
  - **Depurável.** Usando um editor com suporte à depuração como o [Visual Studio Code](https://code.visualstudio.com), você pode inspecionar o seu programa, suas variáveis e executar linha por linha.
61
- - **Portável.** Escreva sua aplicação e coloque Delégua dentro dela. Funciona em qualquer sistema operacional e qualquer navegador de internet.
62
- - **Traduzível.** Traduza de Delégua para Python ou JavaScript, ou ainda de Python ou JavaScript para Delégua.
81
+
82
+ - **Portabilidade:** Delégua é executável em qualquer dispositivo que interprete JavaScript, tornando-a versátil e compatível com diversos sistemas operacionais e qualquer navegador de internet.
83
+
84
+ - **Traduzibilidade:** A capacidade de traduzir programas entre Delégua, Python e JavaScript aumenta a flexibilidade e as opções de desenvolvimento.
63
85
 
64
86
  ## Aplicações
65
87
 
@@ -68,12 +90,12 @@ Delégua tem retrocompatibilidade com a linguagem Égua e compreende sua extens
68
90
 
69
91
  ## Instalação
70
92
 
71
- Delégua executa em qualquer dispositivo que interprete JavaScript, ou seja, computadores, celulares e tablets. Você não precisa instalar nada se não quiser. Utilize uma das seguintes opções:
93
+ Delégua executa em qualquer dispositivo que interprete JavaScript, ou seja, computadores, celulares e tablets. Você não precisa instalar nada se não quiser. Utilize uma das seguintes opções:
72
94
 
73
95
  - [Dentro do Visual Studio Code, instale a extensão da Design Líquido](https://marketplace.visualstudio.com/items?itemName=designliquido.designliquido-vscode). [Aprenda como executar e depurar seu programa aqui](https://www.youtube.com/watch?v=TQxLekzvBv8);
74
96
  - [Utilize nosso editor online](https://designliquido.github.io/delegua-web/).
75
97
 
76
- Para instalar no seu computador, veja o projeto [@designliquido/delegua-node](https://github.com/DesignLiquido/delegua-node).
98
+ Para instalar no seu computador, veja o projeto [@designliquido/delegua-node](https://github.com/DesignLiquido/delegua-node).
77
99
 
78
100
  ## Documentação
79
101
 
package/bin/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@designliquido/delegua",
3
- "version": "0.25.7",
3
+ "version": "0.25.8",
4
4
  "description": "Linguagem de programação simples e moderna usando português estruturado, com suporte a múltiplos dialetos",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -14,7 +14,7 @@
14
14
  "observar-testes-unitarios": "jest --watchAll",
15
15
  "observar-testes-unitarios-com-coverage": "jest --coverage --watchAll",
16
16
  "lint": "eslint . --ext .ts",
17
- "prettier-format": "prettier --config .prettierrc 'fontes/**/*.ts' --write"
17
+ "prettier-format": "prettier --config .prettierrc --write fontes/**/*.ts"
18
18
  },
19
19
  "repository": {
20
20
  "type": "git",
@@ -11,6 +11,7 @@ interface VariavelHipoteticaInterface {
11
11
  tipo: TiposDadosInterface;
12
12
  subtipo?: 'texto' | 'número' | 'inteiro' | 'longo' | 'lógico';
13
13
  imutavel: boolean;
14
+ valor?: any;
14
15
  }
15
16
  export declare class AnalisadorSemantico implements AnalisadorSemanticoInterface {
16
17
  pilhaVariaveis: PilhaVariaveis;
@@ -21,6 +22,7 @@ export declare class AnalisadorSemantico implements AnalisadorSemanticoInterface
21
22
  erros: ErroAnalisadorSemantico[];
22
23
  constructor();
23
24
  erro(simbolo: SimboloInterface, mensagemDeErro: string): void;
25
+ verificarTipoAtribuido(declaracao: Var | Const): void;
24
26
  visitarExpressaoTipoDe(expressao: TipoDe): Promise<any>;
25
27
  visitarExpressaoFalhar(expressao: any): Promise<any>;
26
28
  visitarExpressaoLiteral(expressao: Literal): Promise<any>;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AnalisadorSemantico = void 0;
4
4
  const construtos_1 = require("../construtos");
5
+ const declaracoes_1 = require("../declaracoes");
5
6
  const pilha_variaveis_1 = require("./pilha-variaveis");
6
7
  class AnalisadorSemantico {
7
8
  constructor() {
@@ -18,6 +19,43 @@ class AnalisadorSemantico {
18
19
  linha: simbolo.linha,
19
20
  });
20
21
  }
22
+ verificarTipoAtribuido(declaracao) {
23
+ if (declaracao.tipo) {
24
+ if (['vetor', 'qualquer[]', 'inteiro[]', 'texto[]'].includes(declaracao.tipo)) {
25
+ if (declaracao.inicializador instanceof construtos_1.Vetor) {
26
+ const vetor = declaracao.inicializador;
27
+ if (declaracao.tipo === 'inteiro[]') {
28
+ const v = vetor.valores.find(v => typeof (v === null || v === void 0 ? void 0 : v.valor) !== 'number');
29
+ if (v) {
30
+ this.erro(declaracao.simbolo, `Atribuição inválida para '${declaracao.simbolo.lexema}', é esperado um vetor de 'inteiros' ou 'real'.`);
31
+ }
32
+ }
33
+ if (declaracao.tipo === 'texto[]') {
34
+ const v = vetor.valores.find(v => typeof (v === null || v === void 0 ? void 0 : v.valor) !== 'string');
35
+ if (v) {
36
+ this.erro(declaracao.simbolo, `Atribuição inválida para '${declaracao.simbolo.lexema}', é esperado um vetor de 'texto'.`);
37
+ }
38
+ }
39
+ }
40
+ else {
41
+ this.erro(declaracao.simbolo, `Atribuição inválida para '${declaracao.simbolo.lexema}', é esperado um vetor de elementos.`);
42
+ }
43
+ }
44
+ if (declaracao.inicializador instanceof construtos_1.Literal) {
45
+ const literal = declaracao.inicializador;
46
+ if (declaracao.tipo === 'texto') {
47
+ if (typeof literal.valor !== 'string') {
48
+ this.erro(declaracao.simbolo, `Atribuição inválida para '${declaracao.simbolo.lexema}', é esperado um 'texto'.`);
49
+ }
50
+ }
51
+ if (['inteiro', 'real'].includes(declaracao.tipo)) {
52
+ if (typeof literal.valor !== 'number') {
53
+ this.erro(declaracao.simbolo, `Atribuição inválida '${declaracao.simbolo.lexema}', é esperado um 'número'.`);
54
+ }
55
+ }
56
+ }
57
+ }
58
+ }
21
59
  visitarExpressaoTipoDe(expressao) {
22
60
  return Promise.resolve();
23
61
  }
@@ -75,13 +113,13 @@ class AnalisadorSemantico {
75
113
  let valores = expressao.valor.valores;
76
114
  if (!['qualquer[]'].includes(valor.tipo)) {
77
115
  if (valor.tipo === 'texto[]') {
78
- if (!valores.every(v => typeof v.valor === 'string')) {
116
+ if (!valores.every((v) => typeof v.valor === 'string')) {
79
117
  this.erro(expressao.simbolo, `Esperado tipo '${valor.tipo}' na atribuição.`);
80
118
  return Promise.resolve();
81
119
  }
82
120
  }
83
121
  if (['inteiro[]', 'numero[]'].includes(valor.tipo)) {
84
- if (!valores.every(v => typeof v.valor === 'number')) {
122
+ if (!valores.every((v) => typeof v.valor === 'number')) {
85
123
  this.erro(expressao.simbolo, `Esperado tipo '${valor.tipo}' na atribuição.`);
86
124
  return Promise.resolve();
87
125
  }
@@ -128,6 +166,17 @@ class AnalisadorSemantico {
128
166
  return Promise.resolve();
129
167
  }
130
168
  visitarDeclaracaoEscolha(declaracao) {
169
+ var _a, _b;
170
+ const identificadorOuLiteral = declaracao.identificadorOuLiteral;
171
+ const valor = (_b = this.variaveis[(_a = identificadorOuLiteral.simbolo) === null || _a === void 0 ? void 0 : _a.lexema]) === null || _b === void 0 ? void 0 : _b.valor;
172
+ const tipo = typeof valor;
173
+ for (let caminho of declaracao.caminhos) {
174
+ for (let condicao of caminho.condicoes) {
175
+ if (typeof (condicao === null || condicao === void 0 ? void 0 : condicao.valor) !== tipo) {
176
+ this.erro(condicao, `'caso ${condicao.valor}:' não é do mesmo tipo esperado em 'escolha'`);
177
+ }
178
+ }
179
+ }
131
180
  return Promise.resolve();
132
181
  }
133
182
  visitarDeclaracaoTente(declaracao) {
@@ -149,6 +198,7 @@ class AnalisadorSemantico {
149
198
  return Promise.resolve();
150
199
  }
151
200
  visitarDeclaracaoConst(declaracao) {
201
+ this.verificarTipoAtribuido(declaracao);
152
202
  if (this.variaveis.hasOwnProperty(declaracao.simbolo.lexema)) {
153
203
  this.erros.push({
154
204
  simbolo: declaracao.simbolo,
@@ -161,6 +211,7 @@ class AnalisadorSemantico {
161
211
  this.variaveis[declaracao.simbolo.lexema] = {
162
212
  imutavel: true,
163
213
  tipo: declaracao.tipo,
214
+ valor: declaracao.inicializador.valor
164
215
  };
165
216
  }
166
217
  return Promise.resolve();
@@ -169,9 +220,11 @@ class AnalisadorSemantico {
169
220
  return Promise.resolve();
170
221
  }
171
222
  visitarDeclaracaoVar(declaracao) {
223
+ this.verificarTipoAtribuido(declaracao);
172
224
  this.variaveis[declaracao.simbolo.lexema] = {
173
225
  imutavel: false,
174
226
  tipo: declaracao.tipo,
227
+ valor: declaracao.inicializador.valor
175
228
  };
176
229
  return Promise.resolve();
177
230
  }
@@ -200,6 +253,42 @@ class AnalisadorSemantico {
200
253
  return Promise.resolve();
201
254
  }
202
255
  visitarDeclaracaoDefinicaoFuncao(declaracao) {
256
+ for (let parametro of declaracao.funcao.parametros) {
257
+ if (parametro.hasOwnProperty('tipoDado') && !parametro.tipoDado.tipo) {
258
+ this.erro(declaracao.simbolo, `O tipo '${parametro.tipoDado.nome}' não é válido.`);
259
+ }
260
+ }
261
+ if (declaracao.funcao.tipoRetorno === undefined) {
262
+ this.erro(declaracao.simbolo, `Declaração de retorno da função é inválido.`);
263
+ }
264
+ let tipoRetornoFuncao = declaracao.funcao.tipoRetorno;
265
+ if (tipoRetornoFuncao) {
266
+ let funcaoContemRetorno = declaracao.funcao.corpo.find((c) => c instanceof declaracoes_1.Retorna);
267
+ if (funcaoContemRetorno) {
268
+ if (tipoRetornoFuncao === 'vazio') {
269
+ this.erro(declaracao.simbolo, `A função não pode ter nenhum tipo de retorno.`);
270
+ return Promise.resolve();
271
+ }
272
+ const tipoValor = typeof funcaoContemRetorno.valor.valor;
273
+ if (!['qualquer'].includes(tipoRetornoFuncao)) {
274
+ if (tipoValor === 'string') {
275
+ if (tipoRetornoFuncao != 'texto') {
276
+ this.erro(declaracao.simbolo, `Esperado retorno do tipo '${tipoRetornoFuncao}' dentro da função.`);
277
+ }
278
+ }
279
+ if (tipoValor === 'number') {
280
+ if (!['inteiro', 'real'].includes(tipoRetornoFuncao)) {
281
+ this.erro(declaracao.simbolo, `Esperado retorno do tipo '${tipoRetornoFuncao}' dentro da função.`);
282
+ }
283
+ }
284
+ }
285
+ }
286
+ else {
287
+ if (tipoRetornoFuncao !== 'vazio') {
288
+ this.erro(declaracao.simbolo, `Esperado retorno do tipo '${tipoRetornoFuncao}' dentro da função.`);
289
+ }
290
+ }
291
+ }
203
292
  return Promise.resolve();
204
293
  }
205
294
  visitarDeclaracaoClasse(declaracao) {
@@ -1 +1 @@
1
- {"version":3,"file":"analisador-semantico.js","sourceRoot":"","sources":["../../../fontes/analisador-semantico/analisador-semantico.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analisador-semantico.js","sourceRoot":"","sources":["../../../fontes/analisador-semantico/analisador-semantico.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export * from "./analisador-semantico-birl";
1
+ export * from './analisador-semantico-birl';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../fontes/analisador-semantico/dialetos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../fontes/analisador-semantico/dialetos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C"}
@@ -1,5 +1,5 @@
1
- import { VariavelInterface } from "../interfaces";
2
- import { PilhaInterface } from "../interfaces";
1
+ import { VariavelInterface } from '../interfaces';
2
+ import { PilhaInterface } from '../interfaces';
3
3
  export declare class PilhaVariaveis implements PilhaInterface<{
4
4
  [nomeVariavel: string]: VariavelInterface;
5
5
  }> {
@@ -1 +1 @@
1
- {"version":3,"file":"pilha-variaveis.js","sourceRoot":"","sources":["../../../fontes/analisador-semantico/pilha-variaveis.ts"],"names":[],"mappings":";;;AAGA,MAAa,cAAc;IAGvB;QACI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,QAAQ,CAAC,IAAoD;QACzD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,MAAM,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,MAAM,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;CACJ;AAxBD,wCAwBC"}
1
+ {"version":3,"file":"pilha-variaveis.js","sourceRoot":"","sources":["../../../fontes/analisador-semantico/pilha-variaveis.ts"],"names":[],"mappings":";;;AAGA,MAAa,cAAc;IAGvB;QACI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,QAAQ,CAAC,IAAmD;QACxD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,MAAM,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,aAAa;QACT,IAAI,IAAI,CAAC,MAAM,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;CACJ;AAxBD,wCAwBC"}
@@ -15,7 +15,7 @@ const comum_1 = __importDefault(require("../tipos-de-simbolos/comum"));
15
15
  */
16
16
  class AvaliadorSintaticoBase {
17
17
  declaracaoDeVariaveis() {
18
- throw new Error("Método não implementado.");
18
+ throw new Error('Método não implementado.');
19
19
  }
20
20
  consumir(tipo, mensagemDeErro) {
21
21
  if (this.verificarTipoSimboloAtual(tipo))
@@ -1 +1 @@
1
- {"version":3,"file":"avaliador-sintatico-base.js","sourceRoot":"","sources":["../../../fontes/avaliador-sintatico/avaliador-sintatico-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"avaliador-sintatico-base.js","sourceRoot":"","sources":["../../../fontes/avaliador-sintatico/avaliador-sintatico-base.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { Classe, Continua, Declaracao, Enquanto, Escolha, Escreva, Expressao, Fa
5
5
  import { RetornoAvaliadorSintatico } from '../interfaces/retornos/retorno-avaliador-sintatico';
6
6
  import { RetornoLexador } from '../interfaces/retornos/retorno-lexador';
7
7
  import { RetornoDeclaracao } from './retornos';
8
+ import { TiposDadosInterface } from '../interfaces/tipos-dados-interface';
8
9
  /**
9
10
  * O avaliador sintático (_Parser_) é responsável por transformar os símbolos do Lexador em estruturas de alto nível.
10
11
  * Essas estruturas de alto nível são as partes que executam lógica de programação de fato.
@@ -23,9 +24,8 @@ export declare class AvaliadorSintatico implements AvaliadorSintaticoInterface<S
23
24
  consumir(tipo: string, mensagemDeErro: string): SimboloInterface;
24
25
  verificarTipoSimboloAtual(tipo: string): boolean;
25
26
  verificarTipoProximoSimbolo(tipo: string): boolean;
26
- verificarDefinicaoTipoAtual(): string;
27
+ verificarDefinicaoTipoAtual(): TiposDadosInterface;
27
28
  simboloAtual(): SimboloInterface;
28
- simboloAnterior(): SimboloInterface;
29
29
  estaNoFinal(): boolean;
30
30
  avancarEDevolverAnterior(): SimboloInterface;
31
31
  verificarSeSimboloAtualEIgualA(...argumentos: string[]): boolean;
@@ -85,7 +85,6 @@ export declare class AvaliadorSintatico implements AvaliadorSintaticoInterface<S
85
85
  * ocorrer em blocos de escopo elementares.
86
86
  */
87
87
  resolverDeclaracao(): any;
88
- verificarTipoAtribuido(tipo: string, inicializador: any): void;
89
88
  /**
90
89
  * Caso símbolo atual seja `var`, devolve uma declaração de variável.
91
90
  * @returns Um Construto do tipo Var.
@@ -62,9 +62,6 @@ class AvaliadorSintatico {
62
62
  simboloAtual() {
63
63
  return this.simbolos[this.atual];
64
64
  }
65
- simboloAnterior() {
66
- return this.simbolos[this.atual - 1];
67
- }
68
65
  estaNoFinal() {
69
66
  return this.atual === this.simbolos.length;
70
67
  }
@@ -696,45 +693,6 @@ class AvaliadorSintatico {
696
693
  }
697
694
  return this.declaracaoExpressao();
698
695
  }
699
- verificarTipoAtribuido(tipo, inicializador) {
700
- if (tipo) {
701
- if (['vetor', 'qualquer[]', 'inteiro[]', 'texto[]'].includes(tipo)) {
702
- if (inicializador instanceof construtos_1.Vetor) {
703
- const vetor = inicializador;
704
- if (tipo === 'inteiro[]') {
705
- for (let elemento of vetor.valores) {
706
- if (typeof elemento.valor !== 'number') {
707
- throw this.erro(this.simboloAtual(), "Atribuição inválida, é esperado um vetor de 'inteiros' ou 'real'.");
708
- }
709
- }
710
- }
711
- if (tipo === 'texto[]') {
712
- for (let elemento of vetor.valores) {
713
- if (typeof elemento.valor !== 'string') {
714
- throw this.erro(this.simboloAtual(), "Atribuição inválida, é esperado um vetor de 'texto'.");
715
- }
716
- }
717
- }
718
- }
719
- else {
720
- throw this.erro(this.simboloAtual(), 'Atribuição inválida, é esperado um vetor de elementos.');
721
- }
722
- }
723
- if (inicializador instanceof construtos_1.Literal) {
724
- const literal = inicializador;
725
- if (tipo === 'texto') {
726
- if (typeof literal.valor !== 'string') {
727
- throw this.erro(this.simboloAtual(), "Atribuição inválida, é esperado um 'texto'.");
728
- }
729
- }
730
- if (['inteiro', 'real'].includes(tipo)) {
731
- if (typeof literal.valor !== 'number') {
732
- throw this.erro(this.simboloAtual(), "Atribuição inválida, é esperado um 'número'.");
733
- }
734
- }
735
- }
736
- }
737
- }
738
696
  /**
739
697
  * Caso símbolo atual seja `var`, devolve uma declaração de variável.
740
698
  * @returns Um Construto do tipo Var.
@@ -747,11 +705,7 @@ class AvaliadorSintatico {
747
705
  identificadores.push(this.consumir(delegua_1.default.IDENTIFICADOR, 'Esperado nome da variável.'));
748
706
  } while (this.verificarSeSimboloAtualEIgualA(delegua_1.default.VIRGULA));
749
707
  if (this.verificarSeSimboloAtualEIgualA(delegua_1.default.DOIS_PONTOS)) {
750
- const tipoVariavel = this.verificarDefinicaoTipoAtual();
751
- if (!tipoVariavel) {
752
- throw this.erro(this.simboloAtual(), 'Tipo definido na variável não é válido.');
753
- }
754
- tipo = tipoVariavel;
708
+ tipo = this.verificarDefinicaoTipoAtual();
755
709
  this.avancarEDevolverAnterior();
756
710
  }
757
711
  if (!this.verificarSeSimboloAtualEIgualA(delegua_1.default.IGUAL)) {
@@ -769,9 +723,7 @@ class AvaliadorSintatico {
769
723
  throw this.erro(this.simboloAtual(), 'Quantidade de identificadores à esquerda do igual é diferente da quantidade de valores à direita.');
770
724
  }
771
725
  for (let [indice, identificador] of identificadores.entries()) {
772
- const inicializador = inicializadores[indice];
773
- this.verificarTipoAtribuido(tipo, inicializador);
774
- retorno.push(new declaracoes_1.Var(identificador, inicializador, tipo));
726
+ retorno.push(new declaracoes_1.Var(identificador, inicializadores[indice], tipo));
775
727
  }
776
728
  this.verificarSeSimboloAtualEIgualA(delegua_1.default.PONTO_E_VIRGULA);
777
729
  return retorno;
@@ -787,11 +739,7 @@ class AvaliadorSintatico {
787
739
  identificadores.push(this.consumir(delegua_1.default.IDENTIFICADOR, 'Esperado nome da constante.'));
788
740
  } while (this.verificarSeSimboloAtualEIgualA(delegua_1.default.VIRGULA));
789
741
  if (this.verificarSeSimboloAtualEIgualA(delegua_1.default.DOIS_PONTOS)) {
790
- const tipoConstante = this.verificarDefinicaoTipoAtual();
791
- if (!tipoConstante) {
792
- throw this.erro(this.simboloAtual(), 'Tipo definido na constante não é válido.');
793
- }
794
- tipo = tipoConstante;
742
+ tipo = this.verificarDefinicaoTipoAtual();
795
743
  this.avancarEDevolverAnterior();
796
744
  }
797
745
  this.consumir(delegua_1.default.IGUAL, "Esperado '=' após identificador em instrução 'constante'.");
@@ -804,8 +752,6 @@ class AvaliadorSintatico {
804
752
  }
805
753
  let retorno = [];
806
754
  for (let [indice, identificador] of identificadores.entries()) {
807
- const inicializador = inicializadores[indice];
808
- this.verificarTipoAtribuido(tipo, inicializador);
809
755
  retorno.push(new declaracoes_1.Const(identificador, inicializadores[indice], tipo));
810
756
  }
811
757
  this.verificarSeSimboloAtualEIgualA(delegua_1.default.PONTO_E_VIRGULA);
@@ -845,13 +791,11 @@ class AvaliadorSintatico {
845
791
  break;
846
792
  if (this.verificarSeSimboloAtualEIgualA(delegua_1.default.DOIS_PONTOS)) {
847
793
  let tipoDadoParametro = this.verificarDefinicaoTipoAtual();
848
- if (!tipoDadoParametro) {
849
- this.erro(this.simboloAtual(), `O tipo '${this.simboloAtual().lexema}' não é válido.`);
850
- }
851
- else {
852
- parametro.tipo = tipoDadoParametro;
853
- this.avancarEDevolverAnterior();
854
- }
794
+ parametro.tipoDado = {
795
+ nome: this.simboloAtual().lexema,
796
+ tipo: tipoDadoParametro
797
+ };
798
+ this.avancarEDevolverAnterior();
855
799
  }
856
800
  parametros.push(parametro);
857
801
  } while (this.verificarSeSimboloAtualEIgualA(delegua_1.default.VIRGULA));
@@ -869,39 +813,10 @@ class AvaliadorSintatico {
869
813
  let tipoRetorno = null;
870
814
  if (this.verificarSeSimboloAtualEIgualA(delegua_1.default.DOIS_PONTOS)) {
871
815
  tipoRetorno = this.verificarDefinicaoTipoAtual();
872
- if (!tipoRetorno) {
873
- this.erro(this.simboloAtual(), `Esperado um tipo de retorno válido após ':'`);
874
- }
875
816
  this.avancarEDevolverAnterior();
876
817
  }
877
818
  this.consumir(delegua_1.default.CHAVE_ESQUERDA, `Esperado '{' antes do escopo do ${tipo}.`);
878
819
  const corpo = this.blocoEscopo();
879
- if (tipoRetorno) {
880
- let funcaoContemRetorno = corpo.find((c) => c instanceof declaracoes_1.Retorna);
881
- if (funcaoContemRetorno) {
882
- if (tipoRetorno === 'vazio') {
883
- throw this.erro(this.simboloAtual(), `A função não pode ter nenhum tipo de retorno.`);
884
- }
885
- const tipoValor = typeof funcaoContemRetorno.valor.valor;
886
- if (!['qualquer'].includes(tipoRetorno)) {
887
- if (tipoValor === 'string') {
888
- if (tipoRetorno != 'texto') {
889
- this.erro(this.simboloAtual(), `Esperado retorno do tipo '${tipoRetorno}' dentro da função.`);
890
- }
891
- }
892
- if (tipoValor === 'number') {
893
- if (!['inteiro', 'real'].includes(tipoRetorno)) {
894
- this.erro(this.simboloAtual(), `Esperado retorno do tipo '${tipoRetorno}' dentro da função.`);
895
- }
896
- }
897
- }
898
- }
899
- else {
900
- if (tipoRetorno !== 'vazio') {
901
- this.erro(this.simboloAtual(), `Esperado retorno do tipo '${tipoRetorno}' dentro da função.`);
902
- }
903
- }
904
- }
905
820
  return new construtos_1.FuncaoConstruto(this.hashArquivo, Number(parenteseEsquerdo.linha), parametros, corpo, tipoRetorno);
906
821
  }
907
822
  declaracaoDeClasse() {