@designliquido/delegua 0.15.2 → 0.15.4

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 (347) hide show
  1. package/README.md +85 -85
  2. package/bin/delegua +2 -2
  3. package/bin/package.json +88 -88
  4. package/fontes/avaliador-sintatico/avaliador-sintatico-base.d.ts +67 -67
  5. package/fontes/avaliador-sintatico/avaliador-sintatico-base.js +215 -215
  6. package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +92 -92
  7. package/fontes/avaliador-sintatico/avaliador-sintatico.js +857 -857
  8. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.d.ts +27 -27
  9. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js +319 -294
  10. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js.map +1 -1
  11. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.d.ts +69 -69
  12. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +640 -640
  13. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.d.ts +84 -84
  14. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +714 -714
  15. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.d.ts +20 -20
  16. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js +149 -149
  17. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.d.ts +49 -49
  18. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.js +419 -419
  19. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.d.ts +73 -73
  20. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js +537 -534
  21. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js.map +1 -1
  22. package/fontes/avaliador-sintatico/dialetos/index.d.ts +5 -5
  23. package/fontes/avaliador-sintatico/dialetos/index.js +21 -21
  24. package/fontes/avaliador-sintatico/erro-avaliador-sintatico.d.ts +5 -5
  25. package/fontes/avaliador-sintatico/erro-avaliador-sintatico.js +11 -11
  26. package/fontes/avaliador-sintatico/index.d.ts +2 -2
  27. package/fontes/avaliador-sintatico/index.js +18 -18
  28. package/fontes/avaliador-sintatico/retornos/index.d.ts +3 -3
  29. package/fontes/avaliador-sintatico/retornos/index.js +19 -19
  30. package/fontes/avaliador-sintatico/retornos/retorno-declaracao.d.ts +3 -3
  31. package/fontes/avaliador-sintatico/retornos/retorno-declaracao.js +2 -2
  32. package/fontes/avaliador-sintatico/retornos/retorno-primario.d.ts +3 -3
  33. package/fontes/avaliador-sintatico/retornos/retorno-primario.js +2 -2
  34. package/fontes/avaliador-sintatico/retornos/retorno-resolver-declaracao.d.ts +2 -2
  35. package/fontes/avaliador-sintatico/retornos/retorno-resolver-declaracao.js +2 -2
  36. package/fontes/bibliotecas/biblioteca-global.d.ts +3 -3
  37. package/fontes/bibliotecas/biblioteca-global.js +315 -315
  38. package/fontes/bibliotecas/dialetos/egua-classico/biblioteca-global.d.ts +1 -1
  39. package/fontes/bibliotecas/dialetos/egua-classico/biblioteca-global.js +230 -230
  40. package/fontes/bibliotecas/dialetos/egua-classico/index.d.ts +2 -2
  41. package/fontes/bibliotecas/dialetos/egua-classico/index.js +32 -32
  42. package/fontes/bibliotecas/dialetos/egua-classico/matematica.d.ts +1 -1
  43. package/fontes/bibliotecas/dialetos/egua-classico/matematica.js +478 -478
  44. package/fontes/bibliotecas/dialetos/egua-classico/tempo.d.ts +1 -1
  45. package/fontes/bibliotecas/dialetos/egua-classico/tempo.js +39 -39
  46. package/fontes/bibliotecas/dialetos/egua-classico/textos.d.ts +8 -8
  47. package/fontes/bibliotecas/dialetos/egua-classico/textos.js +201 -201
  48. package/fontes/bibliotecas/dialetos/visualg/caracteres.d.ts +3 -0
  49. package/fontes/bibliotecas/dialetos/visualg/caracteres.js +35 -0
  50. package/fontes/bibliotecas/dialetos/visualg/caracteres.js.map +1 -0
  51. package/fontes/bibliotecas/dialetos/visualg/index.d.ts +2 -0
  52. package/fontes/bibliotecas/dialetos/visualg/index.js +18 -0
  53. package/fontes/bibliotecas/dialetos/visualg/index.js.map +1 -1
  54. package/fontes/bibliotecas/dialetos/visualg/numerica.d.ts +3 -0
  55. package/fontes/bibliotecas/dialetos/visualg/numerica.js +65 -0
  56. package/fontes/bibliotecas/dialetos/visualg/numerica.js.map +1 -0
  57. package/fontes/bibliotecas/primitivas-texto.d.ts +11 -11
  58. package/fontes/bibliotecas/primitivas-texto.js +12 -12
  59. package/fontes/bibliotecas/primitivas-vetor.d.ts +15 -15
  60. package/fontes/bibliotecas/primitivas-vetor.js +33 -33
  61. package/fontes/construtos/acesso-indice-variavel.d.ts +15 -15
  62. package/fontes/construtos/acesso-indice-variavel.js +20 -20
  63. package/fontes/construtos/acesso-metodo.d.ts +14 -14
  64. package/fontes/construtos/acesso-metodo.js +19 -19
  65. package/fontes/construtos/agrupamento.d.ts +14 -14
  66. package/fontes/construtos/agrupamento.js +19 -19
  67. package/fontes/construtos/atribuicao-sobrescrita.d.ts +11 -11
  68. package/fontes/construtos/atribuicao-sobrescrita.js +16 -16
  69. package/fontes/construtos/atribuir.d.ts +10 -10
  70. package/fontes/construtos/atribuir.js +15 -15
  71. package/fontes/construtos/binario.d.ts +22 -22
  72. package/fontes/construtos/binario.js +27 -27
  73. package/fontes/construtos/chamada.d.ts +13 -13
  74. package/fontes/construtos/chamada.js +36 -36
  75. package/fontes/construtos/construto.d.ts +7 -7
  76. package/fontes/construtos/construto.js +2 -2
  77. package/fontes/construtos/definir-valor.d.ts +11 -11
  78. package/fontes/construtos/definir-valor.js +16 -16
  79. package/fontes/construtos/dicionario.d.ts +10 -10
  80. package/fontes/construtos/dicionario.js +15 -15
  81. package/fontes/construtos/formatacao-escrita.d.ts +16 -16
  82. package/fontes/construtos/formatacao-escrita.js +21 -21
  83. package/fontes/construtos/funcao.d.ts +10 -10
  84. package/fontes/construtos/funcao.js +15 -15
  85. package/fontes/construtos/index.d.ts +19 -19
  86. package/fontes/construtos/index.js +35 -35
  87. package/fontes/construtos/isto.d.ts +9 -9
  88. package/fontes/construtos/isto.js +14 -14
  89. package/fontes/construtos/literal.d.ts +10 -10
  90. package/fontes/construtos/literal.js +14 -14
  91. package/fontes/construtos/logico.d.ts +11 -11
  92. package/fontes/construtos/logico.js +16 -16
  93. package/fontes/construtos/super.d.ts +10 -10
  94. package/fontes/construtos/super.js +15 -15
  95. package/fontes/construtos/unario.d.ts +11 -11
  96. package/fontes/construtos/unario.js +16 -16
  97. package/fontes/construtos/variavel.d.ts +9 -9
  98. package/fontes/construtos/variavel.js +14 -14
  99. package/fontes/construtos/vetor.d.ts +9 -9
  100. package/fontes/construtos/vetor.js +14 -14
  101. package/fontes/declaracoes/bloco.d.ts +7 -7
  102. package/fontes/declaracoes/bloco.js +14 -14
  103. package/fontes/declaracoes/classe.d.ts +9 -9
  104. package/fontes/declaracoes/classe.js +16 -16
  105. package/fontes/declaracoes/continua.d.ts +6 -6
  106. package/fontes/declaracoes/continua.js +13 -13
  107. package/fontes/declaracoes/declaracao.d.ts +8 -8
  108. package/fontes/declaracoes/declaracao.js +17 -17
  109. package/fontes/declaracoes/enquanto.d.ts +9 -9
  110. package/fontes/declaracoes/enquanto.js +15 -15
  111. package/fontes/declaracoes/escolha.d.ts +14 -14
  112. package/fontes/declaracoes/escolha.js +19 -19
  113. package/fontes/declaracoes/escreva-mesma-linha.d.ts +8 -8
  114. package/fontes/declaracoes/escreva-mesma-linha.js +14 -14
  115. package/fontes/declaracoes/escreva.d.ts +8 -8
  116. package/fontes/declaracoes/escreva.js +14 -14
  117. package/fontes/declaracoes/expressao.d.ts +8 -8
  118. package/fontes/declaracoes/expressao.js +14 -14
  119. package/fontes/declaracoes/fazer.d.ts +8 -8
  120. package/fontes/declaracoes/fazer.js +15 -15
  121. package/fontes/declaracoes/funcao.d.ts +9 -9
  122. package/fontes/declaracoes/funcao.js +15 -15
  123. package/fontes/declaracoes/importar.d.ts +9 -9
  124. package/fontes/declaracoes/importar.js +15 -15
  125. package/fontes/declaracoes/index.d.ts +19 -19
  126. package/fontes/declaracoes/index.js +35 -35
  127. package/fontes/declaracoes/leia.d.ts +12 -12
  128. package/fontes/declaracoes/leia.js +18 -18
  129. package/fontes/declaracoes/para.d.ts +10 -10
  130. package/fontes/declaracoes/para.js +17 -17
  131. package/fontes/declaracoes/retorna.d.ts +8 -8
  132. package/fontes/declaracoes/retorna.js +15 -15
  133. package/fontes/declaracoes/se.d.ts +11 -11
  134. package/fontes/declaracoes/se.js +17 -17
  135. package/fontes/declaracoes/sustar.d.ts +6 -6
  136. package/fontes/declaracoes/sustar.js +13 -13
  137. package/fontes/declaracoes/tente.d.ts +14 -14
  138. package/fontes/declaracoes/tente.js +20 -20
  139. package/fontes/declaracoes/var.d.ts +9 -9
  140. package/fontes/declaracoes/var.js +15 -15
  141. package/fontes/depuracao/cyrb53.d.ts +9 -9
  142. package/fontes/depuracao/cyrb53.js +22 -22
  143. package/fontes/depuracao/index.d.ts +2 -2
  144. package/fontes/depuracao/index.js +23 -23
  145. package/fontes/depuracao/ponto-parada.d.ts +4 -4
  146. package/fontes/depuracao/ponto-parada.js +2 -2
  147. package/fontes/espaco-variaveis.d.ts +19 -19
  148. package/fontes/espaco-variaveis.js +19 -19
  149. package/fontes/estruturas/chamavel.d.ts +5 -5
  150. package/fontes/estruturas/chamavel.js +12 -12
  151. package/fontes/estruturas/classe-padrao.d.ts +17 -17
  152. package/fontes/estruturas/classe-padrao.js +28 -28
  153. package/fontes/estruturas/delegua-classe.d.ts +16 -16
  154. package/fontes/estruturas/delegua-classe.js +38 -38
  155. package/fontes/estruturas/delegua-funcao.d.ts +18 -18
  156. package/fontes/estruturas/delegua-funcao.js +60 -60
  157. package/fontes/estruturas/funcao-padrao.d.ts +12 -12
  158. package/fontes/estruturas/funcao-padrao.js +22 -22
  159. package/fontes/estruturas/index.d.ts +9 -9
  160. package/fontes/estruturas/index.js +25 -25
  161. package/fontes/estruturas/metodo-primitiva.d.ts +17 -17
  162. package/fontes/estruturas/metodo-primitiva.js +26 -26
  163. package/fontes/estruturas/modulo.d.ts +9 -9
  164. package/fontes/estruturas/modulo.js +13 -13
  165. package/fontes/estruturas/objeto-delegua-classe.d.ts +10 -10
  166. package/fontes/estruturas/objeto-delegua-classe.js +26 -26
  167. package/fontes/estruturas/objeto-padrao.d.ts +9 -9
  168. package/fontes/estruturas/objeto-padrao.js +21 -21
  169. package/fontes/excecoes/erro-em-tempo-de-execucao.d.ts +7 -7
  170. package/fontes/excecoes/erro-em-tempo-de-execucao.js +13 -13
  171. package/fontes/excecoes/index.d.ts +1 -1
  172. package/fontes/excecoes/index.js +17 -17
  173. package/fontes/formatadores/delegua.d.ts +18 -18
  174. package/fontes/formatadores/delegua.js +82 -82
  175. package/fontes/formatadores/index.d.ts +1 -1
  176. package/fontes/formatadores/index.js +17 -17
  177. package/fontes/interfaces/avaliador-sintatico-interface.d.ts +57 -57
  178. package/fontes/interfaces/avaliador-sintatico-interface.js +2 -2
  179. package/fontes/interfaces/construtos/index.d.ts +4 -4
  180. package/fontes/interfaces/construtos/index.js +2 -2
  181. package/fontes/interfaces/escopo-execucao.d.ts +11 -11
  182. package/fontes/interfaces/escopo-execucao.js +2 -2
  183. package/fontes/interfaces/index.d.ts +11 -11
  184. package/fontes/interfaces/index.js +27 -27
  185. package/fontes/interfaces/interpretador-com-depuracao-interface.d.ts +17 -17
  186. package/fontes/interfaces/interpretador-com-depuracao-interface.js +2 -2
  187. package/fontes/interfaces/interpretador-interface.d.ts +55 -55
  188. package/fontes/interfaces/interpretador-interface.js +2 -2
  189. package/fontes/interfaces/lexador-interface.d.ts +23 -23
  190. package/fontes/interfaces/lexador-interface.js +2 -2
  191. package/fontes/interfaces/parametro-interface.d.ts +6 -6
  192. package/fontes/interfaces/parametro-interface.js +2 -2
  193. package/fontes/interfaces/pilha-escopos-execucao-interface.d.ts +25 -25
  194. package/fontes/interfaces/pilha-escopos-execucao-interface.js +2 -2
  195. package/fontes/interfaces/pilha-interface.d.ts +7 -7
  196. package/fontes/interfaces/pilha-interface.js +2 -2
  197. package/fontes/interfaces/resolvedor-interface.d.ts +41 -41
  198. package/fontes/interfaces/resolvedor-interface.js +2 -2
  199. package/fontes/interfaces/retornos/index.d.ts +4 -4
  200. package/fontes/interfaces/retornos/index.js +20 -20
  201. package/fontes/interfaces/retornos/retorno-avaliador-sintatico.d.ts +6 -6
  202. package/fontes/interfaces/retornos/retorno-avaliador-sintatico.js +2 -2
  203. package/fontes/interfaces/retornos/retorno-execucao-interface.d.ts +5 -5
  204. package/fontes/interfaces/retornos/retorno-execucao-interface.js +2 -2
  205. package/fontes/interfaces/retornos/retorno-interpretador.d.ts +5 -5
  206. package/fontes/interfaces/retornos/retorno-interpretador.js +2 -2
  207. package/fontes/interfaces/retornos/retorno-lexador.d.ts +10 -10
  208. package/fontes/interfaces/retornos/retorno-lexador.js +2 -2
  209. package/fontes/interfaces/simbolo-interface.d.ts +7 -7
  210. package/fontes/interfaces/simbolo-interface.js +2 -2
  211. package/fontes/interfaces/tradutor-interface.d.ts +4 -4
  212. package/fontes/interfaces/tradutor-interface.js +2 -2
  213. package/fontes/interfaces/variavel-interface.d.ts +4 -4
  214. package/fontes/interfaces/variavel-interface.js +2 -2
  215. package/fontes/interpretador/dialetos/egua-classico/index.d.ts +1 -1
  216. package/fontes/interpretador/dialetos/egua-classico/index.js +17 -17
  217. package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts +99 -99
  218. package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +743 -743
  219. package/fontes/interpretador/dialetos/egua-classico/resolvedor/erro-resolvedor.d.ts +5 -5
  220. package/fontes/interpretador/dialetos/egua-classico/resolvedor/erro-resolvedor.js +11 -11
  221. package/fontes/interpretador/dialetos/egua-classico/resolvedor/index.d.ts +3 -3
  222. package/fontes/interpretador/dialetos/egua-classico/resolvedor/index.js +19 -19
  223. package/fontes/interpretador/dialetos/egua-classico/resolvedor/pilha-escopos.d.ts +9 -9
  224. package/fontes/interpretador/dialetos/egua-classico/resolvedor/pilha-escopos.js +25 -25
  225. package/fontes/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts +87 -87
  226. package/fontes/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js +387 -387
  227. package/fontes/interpretador/dialetos/egua-classico/resolvedor/retorno-resolvedor.d.ts +6 -6
  228. package/fontes/interpretador/dialetos/egua-classico/resolvedor/retorno-resolvedor.js +2 -2
  229. package/fontes/interpretador/dialetos/index.d.ts +4 -4
  230. package/fontes/interpretador/dialetos/index.js +20 -20
  231. package/fontes/interpretador/dialetos/portugol-studio/interpretador-portugol-studio.d.ts +12 -12
  232. package/fontes/interpretador/dialetos/portugol-studio/interpretador-portugol-studio.js +26 -26
  233. package/fontes/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.d.ts +43 -40
  234. package/fontes/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.js +102 -96
  235. package/fontes/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.js.map +1 -1
  236. package/fontes/interpretador/dialetos/visualg/interpretador-visualg.d.ts +53 -46
  237. package/fontes/interpretador/dialetos/visualg/interpretador-visualg.js +194 -102
  238. package/fontes/interpretador/dialetos/visualg/interpretador-visualg.js.map +1 -1
  239. package/fontes/interpretador/erro-interpretador.d.ts +8 -8
  240. package/fontes/interpretador/erro-interpretador.js +2 -2
  241. package/fontes/interpretador/index.d.ts +4 -4
  242. package/fontes/interpretador/index.js +20 -20
  243. package/fontes/interpretador/inferenciador.d.ts +1 -1
  244. package/fontes/interpretador/inferenciador.js +31 -31
  245. package/fontes/interpretador/interpretador-base.d.ts +186 -186
  246. package/fontes/interpretador/interpretador-base.js +1001 -1001
  247. package/fontes/interpretador/interpretador-com-depuracao.d.ts +199 -199
  248. package/fontes/interpretador/interpretador-com-depuracao.js +516 -516
  249. package/fontes/interpretador/pilha-escopos-execucao.d.ts +38 -38
  250. package/fontes/interpretador/pilha-escopos-execucao.js +158 -158
  251. package/fontes/lexador/dialetos/index.d.ts +6 -6
  252. package/fontes/lexador/dialetos/index.js +22 -22
  253. package/fontes/lexador/dialetos/lexador-birl.d.ts +12 -12
  254. package/fontes/lexador/dialetos/lexador-birl.js +211 -211
  255. package/fontes/lexador/dialetos/lexador-egua-classico.d.ts +36 -36
  256. package/fontes/lexador/dialetos/lexador-egua-classico.js +286 -286
  257. package/fontes/lexador/dialetos/lexador-eguap.d.ts +51 -51
  258. package/fontes/lexador/dialetos/lexador-eguap.js +398 -398
  259. package/fontes/lexador/dialetos/lexador-guarani.d.ts +9 -9
  260. package/fontes/lexador/dialetos/lexador-guarani.js +113 -113
  261. package/fontes/lexador/dialetos/lexador-portugol-ipt.d.ts +33 -33
  262. package/fontes/lexador/dialetos/lexador-portugol-ipt.js +195 -195
  263. package/fontes/lexador/dialetos/lexador-portugol-studio.d.ts +21 -21
  264. package/fontes/lexador/dialetos/lexador-portugol-studio.js +280 -280
  265. package/fontes/lexador/dialetos/lexador-visualg.d.ts +18 -18
  266. package/fontes/lexador/dialetos/lexador-visualg.js +218 -218
  267. package/fontes/lexador/dialetos/palavras-reservadas/birl.d.ts +46 -46
  268. package/fontes/lexador/dialetos/palavras-reservadas/birl.js +63 -63
  269. package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.d.ts +36 -36
  270. package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.js +41 -41
  271. package/fontes/lexador/dialetos/palavras-reservadas/guarani.d.ts +4 -4
  272. package/fontes/lexador/dialetos/palavras-reservadas/guarani.js +9 -9
  273. package/fontes/lexador/dialetos/palavras-reservadas/index.d.ts +3 -3
  274. package/fontes/lexador/dialetos/palavras-reservadas/index.js +19 -19
  275. package/fontes/lexador/dialetos/palavras-reservadas/portugol-ipt.d.ts +6 -6
  276. package/fontes/lexador/dialetos/palavras-reservadas/portugol-ipt.js +11 -11
  277. package/fontes/lexador/dialetos/palavras-reservadas/portugol-studio.d.ts +23 -23
  278. package/fontes/lexador/dialetos/palavras-reservadas/portugol-studio.js +28 -28
  279. package/fontes/lexador/dialetos/palavras-reservadas/rantiaquin.d.ts +2 -2
  280. package/fontes/lexador/dialetos/palavras-reservadas/rantiaquin.js +3 -3
  281. package/fontes/lexador/dialetos/palavras-reservadas/visualg.d.ts +60 -60
  282. package/fontes/lexador/dialetos/palavras-reservadas/visualg.js +65 -65
  283. package/fontes/lexador/dialetos/pragma.d.ts +8 -8
  284. package/fontes/lexador/dialetos/pragma.js +2 -2
  285. package/fontes/lexador/erro-lexador.d.ts +5 -5
  286. package/fontes/lexador/erro-lexador.js +2 -2
  287. package/fontes/lexador/index.d.ts +2 -2
  288. package/fontes/lexador/index.js +18 -18
  289. package/fontes/lexador/lexador-base-linha-unica.d.ts +28 -28
  290. package/fontes/lexador/lexador-base-linha-unica.js +82 -82
  291. package/fontes/lexador/lexador-base.d.ts +41 -41
  292. package/fontes/lexador/lexador-base.js +112 -112
  293. package/fontes/lexador/lexador.d.ts +43 -43
  294. package/fontes/lexador/lexador.js +412 -412
  295. package/fontes/lexador/palavras-reservadas.d.ts +36 -36
  296. package/fontes/lexador/palavras-reservadas.js +41 -41
  297. package/fontes/lexador/simbolo.d.ts +10 -10
  298. package/fontes/lexador/simbolo.js +16 -16
  299. package/fontes/quebras/index.d.ts +10 -10
  300. package/fontes/quebras/index.js +19 -19
  301. package/fontes/tipos-de-simbolos/birl.d.ts +71 -71
  302. package/fontes/tipos-de-simbolos/birl.js +78 -78
  303. package/fontes/tipos-de-simbolos/comum.d.ts +22 -22
  304. package/fontes/tipos-de-simbolos/comum.js +23 -23
  305. package/fontes/tipos-de-simbolos/delegua.d.ts +80 -80
  306. package/fontes/tipos-de-simbolos/delegua.js +81 -81
  307. package/fontes/tipos-de-simbolos/egua-classico.d.ts +77 -77
  308. package/fontes/tipos-de-simbolos/egua-classico.js +78 -78
  309. package/fontes/tipos-de-simbolos/eguap.d.ts +73 -73
  310. package/fontes/tipos-de-simbolos/eguap.js +74 -74
  311. package/fontes/tipos-de-simbolos/guarani.d.ts +14 -14
  312. package/fontes/tipos-de-simbolos/guarani.js +15 -15
  313. package/fontes/tipos-de-simbolos/portugol-ipt.d.ts +28 -28
  314. package/fontes/tipos-de-simbolos/portugol-ipt.js +29 -29
  315. package/fontes/tipos-de-simbolos/portugol-studio.d.ts +53 -53
  316. package/fontes/tipos-de-simbolos/portugol-studio.js +54 -54
  317. package/fontes/tipos-de-simbolos/rantiaquin.d.ts +2 -2
  318. package/fontes/tipos-de-simbolos/rantiaquin.js +3 -3
  319. package/fontes/tipos-de-simbolos/visualg.d.ts +68 -68
  320. package/fontes/tipos-de-simbolos/visualg.js +69 -69
  321. package/fontes/tradutores/dicionarios/dicionario-delegua-javascript.d.ts +2 -2
  322. package/fontes/tradutores/dicionarios/dicionario-delegua-javascript.js +10 -10
  323. package/fontes/tradutores/dicionarios/index.d.ts +1 -1
  324. package/fontes/tradutores/dicionarios/index.js +17 -17
  325. package/fontes/tradutores/index.d.ts +2 -2
  326. package/fontes/tradutores/index.js +18 -18
  327. package/fontes/tradutores/python/python3-lexer.d.ts +152 -152
  328. package/fontes/tradutores/python/python3-lexer.js +1226 -1226
  329. package/fontes/tradutores/python/python3-listener.d.ts +953 -953
  330. package/fontes/tradutores/python/python3-listener.js +2 -2
  331. package/fontes/tradutores/python/python3-parser.d.ts +1330 -1330
  332. package/fontes/tradutores/python/python3-parser.js +11156 -11156
  333. package/fontes/tradutores/python/python3-visitor.d.ts +612 -612
  334. package/fontes/tradutores/python/python3-visitor.js +2 -2
  335. package/fontes/tradutores/tradutor-javascript.d.ts +83 -83
  336. package/fontes/tradutores/tradutor-javascript.js +470 -470
  337. package/fontes/tradutores/tradutor-python.d.ts +1 -1
  338. package/fontes/tradutores/tradutor-python.js +34 -34
  339. package/fontes/tradutores/tradutor-reverso-javascript.d.ts +47 -47
  340. package/fontes/tradutores/tradutor-reverso-javascript.js +339 -342
  341. package/fontes/tradutores/tradutor-reverso-javascript.js.map +1 -1
  342. package/fontes/tradutores/tradutor-visualg.d.ts +38 -0
  343. package/fontes/tradutores/tradutor-visualg.js +485 -0
  344. package/fontes/tradutores/tradutor-visualg.js.map +1 -0
  345. package/index.d.ts +5 -5
  346. package/index.js +23 -23
  347. package/package.json +88 -88
@@ -1,295 +1,320 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.AvaliadorSintaticoBirl = void 0;
7
- const construtos_1 = require("../../construtos");
8
- const declaracoes_1 = require("../../declaracoes");
9
- const avaliador_sintatico_base_1 = require("../avaliador-sintatico-base");
10
- const birl_1 = __importDefault(require("../../tipos-de-simbolos/birl"));
11
- class AvaliadorSintaticoBirl extends avaliador_sintatico_base_1.AvaliadorSintaticoBase {
12
- validarSegmentoHoraDoShow() {
13
- this.consumir(birl_1.default.HORA, 'Esperado expressão `HORA DO SHOW` para iniciar o programa');
14
- this.consumir(birl_1.default.DO, 'Esperado expressão `HORA DO SHOW` para iniciar o programa');
15
- this.consumir(birl_1.default.SHOW, 'Esperado expressão `HORA DO SHOW` para iniciar o programa');
16
- this.blocos += 1;
17
- }
18
- validarSegmentoBirlFinal() {
19
- this.consumir(birl_1.default.BIRL, 'Esperado expressão `BIRL` para fechamento do programa');
20
- this.blocos -= 1;
21
- }
22
- primario() {
23
- const simboloAtual = this.simbolos[this.atual];
24
- if (this.verificarSeSimboloAtualEIgualA(birl_1.default.NEGATIVO))
25
- return new construtos_1.Literal(this.hashArquivo, Number(simboloAtual.linha), false);
26
- if (this.verificarSeSimboloAtualEIgualA(birl_1.default.POSITIVO))
27
- return new construtos_1.Literal(this.hashArquivo, Number(simboloAtual.linha), true);
28
- if (this.verificarSeSimboloAtualEIgualA(birl_1.default.IDENTIFICADOR)) {
29
- return new construtos_1.Variavel(this.hashArquivo, this.simbolos[this.atual - 1]);
30
- }
31
- if (this.verificarSeSimboloAtualEIgualA(birl_1.default.NUMERO, birl_1.default.FRANGAO, birl_1.default.FRANGÃO, birl_1.default.FRANGO, birl_1.default.TEXTO)) {
32
- const simboloAnterior = this.simbolos[this.atual - 1];
33
- return new construtos_1.Literal(this.hashArquivo, Number(simboloAnterior.linha), simboloAnterior.literal);
34
- }
35
- if (this.verificarSeSimboloAtualEIgualA(birl_1.default.PARENTESE_ESQUERDO)) {
36
- const expressao = this.expressao();
37
- this.consumir(birl_1.default.PARENTESE_DIREITO, "Esperado ')' após a expressão.");
38
- return new construtos_1.Agrupamento(this.hashArquivo, Number(simboloAtual.linha), expressao);
39
- }
40
- }
41
- chamar() {
42
- return this.primario();
43
- }
44
- atribuir() {
45
- const expressao = this.ou();
46
- if (this.verificarSeSimboloAtualEIgualA(birl_1.default.IGUAL)) {
47
- const igual = this.simboloAnterior();
48
- const valor = this.atribuir();
49
- if (expressao instanceof construtos_1.Variavel) {
50
- const simbolo = expressao.simbolo;
51
- return new construtos_1.Atribuir(this.hashArquivo, simbolo, valor);
52
- }
53
- else if (expressao instanceof construtos_1.AcessoMetodo) {
54
- const get = expressao;
55
- return new construtos_1.DefinirValor(this.hashArquivo, 0, get.objeto, get.simbolo, valor);
56
- }
57
- else if (expressao instanceof construtos_1.AcessoIndiceVariavel) {
58
- return new construtos_1.AtribuicaoSobrescrita(this.hashArquivo, 0, expressao.entidadeChamada, expressao.indice, valor);
59
- }
60
- this.erro(igual, 'Tarefa de atribuição inválida');
61
- }
62
- return expressao;
63
- }
64
- blocoEscopo() {
65
- throw new Error('Método não implementado.');
66
- }
67
- declaracaoEnquanto() {
68
- this.consumir(birl_1.default.NEGATIVA, 'Esperado expressão `NEGATIVA` para iniciar o bloco `ENQUANTO`.');
69
- this.consumir(birl_1.default.BAMBAM, 'Esperado expressão `BAMBAM` após `NEGATIVA` para iniciar o bloco `ENQUANTO`.');
70
- this.consumir(birl_1.default.PARENTESE_ESQUERDO, 'Esperado expressão `(` após `BAMBAM` para iniciar o bloco `ENQUANTO`.');
71
- const codicao = this.expressao();
72
- this.consumir(birl_1.default.PARENTESE_DIREITO, 'Esperado expressão `)` após a condição para iniciar o bloco `ENQUANTO`.');
73
- const declaracoes = [];
74
- while (!this.verificarSeSimboloAtualEIgualA(birl_1.default.BIRL)) {
75
- declaracoes.push(this.declaracao());
76
- }
77
- this.consumir(birl_1.default.BIRL, 'Esperado expressão `BIRL` para fechar o bloco `ENQUANTO`.');
78
- return new declaracoes_1.Enquanto(codicao, declaracoes);
79
- }
80
- declaracaoExpressao() {
81
- const expressao = this.expressao();
82
- this.consumir(birl_1.default.PONTO_E_VIRGULA, "Esperado ';' após expressão.");
83
- return new declaracoes_1.Expressao(expressao);
84
- }
85
- declaracaoPara() {
86
- const simboloPara = this.consumir(birl_1.default.MAIS, 'Esperado expressão `MAIS` para iniciar o bloco `PARA`.');
87
- this.consumir(birl_1.default.QUERO, 'Esperado expressão `QUERO` após `MAIS` para iniciar o bloco `PARA`.');
88
- this.consumir(birl_1.default.MAIS, 'Esperado expressão `MAIS` após `QUERO` para iniciar o bloco `PARA`.');
89
- this.consumir(birl_1.default.PARENTESE_ESQUERDO, 'Esperado expressão `(` após `MAIS` para iniciar o bloco `PARA`.');
90
- let inicializador;
91
- if (this.verificarSeSimboloAtualEIgualA(birl_1.default.PONTO_E_VIRGULA)) {
92
- inicializador = null;
93
- }
94
- else if (this.verificarSeSimboloAtualEIgualA(birl_1.default.MONSTRO)) {
95
- inicializador = this.declaracaoDeVariavel();
96
- }
97
- else {
98
- inicializador = this.declaracaoExpressao();
99
- }
100
- let condicao = null;
101
- if (!this.verificarTipoSimboloAtual(birl_1.default.PONTO_E_VIRGULA)) {
102
- condicao = this.expressao();
103
- }
104
- let incrementar = null;
105
- if (!this.verificarTipoSimboloAtual(birl_1.default.PARENTESE_DIREITO)) {
106
- incrementar = this.expressao();
107
- }
108
- this.consumir(birl_1.default.PARENTESE_DIREITO, 'Esperado expressão `)` após a condição para iniciar o bloco `PARA`.');
109
- const declaracao = [];
110
- while (!this.verificarSeSimboloAtualEIgualA(birl_1.default.BIRL)) {
111
- declaracao.push(this.declaracao());
112
- }
113
- this.consumir(birl_1.default.BIRL, 'Esperado expressão `BIRL` para fechar o bloco `PARA`.');
114
- return new declaracoes_1.Para(this.hashArquivo, simboloPara.linha, 0, 0, 0, 0);
115
- }
116
- declaracaoEscolha() {
117
- throw new Error('Método não implementado.');
118
- }
119
- declaracaoEscreva() {
120
- const primeiroSimbolo = this.consumir(birl_1.default.CE, 'Esperado expressão `CE` para escrever mensagem.');
121
- this.consumir(birl_1.default.QUER, 'Esperado expressão `QUER` após `CE` para escrever mensagem.');
122
- this.consumir(birl_1.default.VER, 'Esperado expressão `VER` após `QUER` para escrever mensagem.');
123
- this.consumir(birl_1.default.ESSA, 'Esperado expressão `ESSA` após `VER` para escrever mensagem.');
124
- this.consumir(birl_1.default.PORRA, 'Esperado expressão `PORRA` após `ESSA` para escrever mensagem.');
125
- this.consumir(birl_1.default.INTERROGACAO, 'Esperado interrogação após `PORRA` para escrever mensagem.');
126
- this.consumir(birl_1.default.PARENTESE_ESQUERDO, 'Esperado parêntese esquerdo após interrogação para escrever mensagem.');
127
- const argumento = this.declaracao();
128
- this.consumir(birl_1.default.PARENTESE_DIREITO, 'Esperado parêntese direito após argumento para escrever mensagem.');
129
- return new declaracoes_1.Escreva(Number(primeiroSimbolo.linha), this.hashArquivo, [argumento]);
130
- }
131
- declaracaoFazer() {
132
- throw new Error('Método não implementado.');
133
- }
134
- declaracaoCaracteres() {
135
- if (this.verificarTipoSimboloAtual(birl_1.default.BICEPS)) {
136
- this.consumir(birl_1.default.BICEPS, '');
137
- }
138
- const simboloCaractere = this.consumir(birl_1.default.FRANGO, '');
139
- const inicializacoes = [];
140
- do {
141
- const identificador = this.consumir(birl_1.default.IDENTIFICADOR, "Esperado identificador após palavra reservada 'FRANGO'.");
142
- inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloCaractere.hashArquivo), 0)));
143
- // Inicialização de variáveis que podem ter valor definido;
144
- let valorInicializacao;
145
- if (this.verificarSeSimboloAtualEIgualA(birl_1.default.IGUAL)) {
146
- this.consumir(birl_1.default.TEXTO, "Esperado ' para começar o texto.");
147
- const literalInicializacao = this.consumir(birl_1.default.IDENTIFICADOR, 'Esperado literal de FRANGO após símbolo de igual em declaração de variável.');
148
- this.consumir(birl_1.default.TEXTO, "Esperado ' para terminar o texto.");
149
- valorInicializacao = String(literalInicializacao.literal);
150
- }
151
- inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloCaractere.linha), valorInicializacao)));
152
- } while (this.verificarSeSimboloAtualEIgualA(birl_1.default.VIRGULA));
153
- return inicializacoes;
154
- }
155
- declaracaoInteiros() {
156
- let simboloInteiro;
157
- if (this.verificarTipoSimboloAtual(birl_1.default.MONSTRO)) {
158
- simboloInteiro = this.consumir(birl_1.default.MONSTRO, '');
159
- }
160
- else if (this.verificarTipoSimboloAtual(birl_1.default.MONSTRINHO)) {
161
- simboloInteiro = this.consumir(birl_1.default.MONSTRINHO, '');
162
- }
163
- else if (this.verificarTipoSimboloAtual(birl_1.default.MONSTRAO)) {
164
- simboloInteiro = this.consumir(birl_1.default.MONSTRAO, '');
165
- }
166
- else {
167
- throw new Error('Simbolo referente a inteiro não especificado.');
168
- }
169
- const inicializacoes = [];
170
- do {
171
- const identificador = this.consumir(birl_1.default.IDENTIFICADOR, `Esperado identificador após palavra reservada '${simboloInteiro.lexema}'.`);
172
- inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloInteiro.linha), 0)));
173
- // Inicializações de variáveis podem ter valores definidos.
174
- let valorInicializacao = 0x00;
175
- if (this.verificarSeSimboloAtualEIgualA(birl_1.default.IGUAL)) {
176
- const literalInicializacao = this.consumir(birl_1.default.NUMERO, `Esperado literal de ${simboloInteiro.lexema} após símbolo de igual em declaração de variável.`);
177
- valorInicializacao = Number(literalInicializacao.literal);
178
- }
179
- inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloInteiro.linha), valorInicializacao)));
180
- } while (this.verificarSeSimboloAtualEIgualA(birl_1.default.VIRGULA));
181
- return inicializacoes;
182
- }
183
- declaracaoPontoFlutuante() {
184
- const simboloFloat = this.consumir(birl_1.default.TRAPEZIO, '');
185
- if (this.verificarTipoSimboloAtual(birl_1.default.DESCENDENTE)) {
186
- this.consumir(birl_1.default.DESCENDENTE, '');
187
- }
188
- const inicializacoes = [];
189
- do {
190
- const identificador = this.consumir(birl_1.default.IDENTIFICADOR, "Esperado identificador após palavra reservada 'TRAPEZIO'.");
191
- inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloFloat.linha), 0)));
192
- // Inicializações de variáveis que podem ter valores definidos
193
- let valorInicializacao = 0x00;
194
- if (this.verificarSeSimboloAtualEIgualA(birl_1.default.IGUAL)) {
195
- const literalInicializacao = this.consumir(birl_1.default.NUMERO, 'Esperado literal de TRAPEZIO após símbolo de igual em declaração de variavel.');
196
- valorInicializacao = parseFloat(literalInicializacao.literal);
197
- }
198
- inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloFloat.linha), valorInicializacao)));
199
- } while (this.verificarSeSimboloAtualEIgualA(birl_1.default.VIRGULA));
200
- return inicializacoes;
201
- }
202
- declaracaoRetorna() {
203
- const primeiroSimbolo = this.consumir(birl_1.default.BORA, 'Esperado expressão `BORA` para retornar valor.');
204
- this.consumir(birl_1.default.CUMPADE, 'Esperado expressão `CUMPADE` após `BORA` para retornar valor.');
205
- // this.consumir(tiposDeSimbolos.INTERROGACAO, 'Esperado interrogação após `CUMPADE` para retornar valor.');
206
- const valor = this.declaracao();
207
- return new declaracoes_1.Retorna(primeiroSimbolo, valor);
208
- }
209
- declaracaoLeia() {
210
- const primeiroSimbolo = this.consumir(birl_1.default.QUE, 'Esperado expressão `QUE` para ler valor.');
211
- this.consumir(birl_1.default.QUE, 'Esperado expressão `QUE` após `QUE` para ler valor.');
212
- this.consumir(birl_1.default.CE, 'Esperado expressão `CE` após `QUE` para ler valor.');
213
- this.consumir(birl_1.default.QUER, 'Esperado expressão `QUER` após `CE` para ler valor.');
214
- this.consumir(birl_1.default.MONSTRAO, 'Esperado expressão `MONSTRAO` após `QUER` para ler valor.');
215
- this.consumir(birl_1.default.INTERROGACAO, 'Esperado interrogação após `MONSTRAO` para ler valor.');
216
- this.consumir(birl_1.default.PARENTESE_ESQUERDO, 'Esperado parêntese esquerdo após interrogação para ler valor.');
217
- const simbolo = this.consumir(birl_1.default.TEXTO, 'Esperado texto após parêntese esquerdo para ler valor.');
218
- const ponteiro = this.consumir(birl_1.default.IDENTIFICADOR, 'Esperado identificador após texto para ler valor.');
219
- this.consumir(birl_1.default.PARENTESE_DIREITO, 'Esperado parêntese direito após identificador para ler valor.');
220
- this.consumir(birl_1.default.PONTO_E_VIRGULA, 'Esperado ponto e vírgula após parêntese direito para ler valor.');
221
- return new declaracoes_1.Leia(Number(primeiroSimbolo.linha), this.hashArquivo, []);
222
- }
223
- declaracaoSe() {
224
- throw new Error('Método não implementado.');
225
- }
226
- corpoDaFuncao(tipo) {
227
- throw new Error('Método não implementado.');
228
- }
229
- declaracao() {
230
- const simboloAtual = this.simbolos[this.atual];
231
- switch (simboloAtual.tipo) {
232
- case birl_1.default.BORA: // BORA CUMPADE?
233
- return this.declaracaoRetorna();
234
- case birl_1.default.QUE:
235
- return this.declaracaoLeia();
236
- case birl_1.default.ELE:
237
- // Retornar uma declaração de IF
238
- case birl_1.default.NEGATIVA:
239
- // Retornar uma declaração de WHILE
240
- case birl_1.default.MAIS:
241
- return this.declaracaoPara();
242
- // Declaração de inteiros
243
- case birl_1.default.MONSTRO:
244
- case birl_1.default.MONSTRINHO:
245
- case birl_1.default.MONSTRAO:
246
- return this.declaracaoInteiros();
247
- case birl_1.default.BICEPS:
248
- case birl_1.default.FRANGO:
249
- return this.declaracaoCaracteres();
250
- case birl_1.default.TRAPEZIO:
251
- return this.declaracaoPontoFlutuante();
252
- case birl_1.default.VAMO:
253
- // Retornar uma declaração de continue
254
- case birl_1.default.SAI:
255
- // Retornar uma declaração de break
256
- case birl_1.default.OH:
257
- // Retornar uma declaração de funcao
258
- case birl_1.default.AJUDA:
259
- // Retornar uma declaração de chamar funcao
260
- case birl_1.default.CE: // "CE QUER VER ESSA PORRA?"
261
- return this.declaracaoEscreva();
262
- case birl_1.default.PONTO_E_VIRGULA:
263
- case birl_1.default.QUEBRA_LINHA:
264
- this.avancarEDevolverAnterior();
265
- return null;
266
- default:
267
- return this.expressao();
268
- }
269
- }
270
- analisar(retornoLexador, hashArquivo) {
271
- this.erros = [];
272
- this.blocos = 0;
273
- this.atual = 0;
274
- // 1 validação
275
- /* if (this.blocos > 0) {
276
- throw new ErroAvaliadorSintatico(
277
- null,
278
- 'Quantidade de blocos abertos não corresponde com a quantidade de blocos fechados'
279
- );
280
- } */
281
- this.simbolos = retornoLexador.simbolos;
282
- const declaracoes = [];
283
- this.validarSegmentoHoraDoShow();
284
- while (!this.estaNoFinal() && this.simbolos[this.atual].tipo !== birl_1.default.BIRL) {
285
- declaracoes.push(this.declaracao());
286
- }
287
- this.validarSegmentoBirlFinal();
288
- return {
289
- declaracoes: declaracoes.filter((d) => d),
290
- erros: this.erros,
291
- };
292
- }
293
- }
294
- exports.AvaliadorSintaticoBirl = AvaliadorSintaticoBirl;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AvaliadorSintaticoBirl = void 0;
7
+ const construtos_1 = require("../../construtos");
8
+ const declaracoes_1 = require("../../declaracoes");
9
+ const avaliador_sintatico_base_1 = require("../avaliador-sintatico-base");
10
+ const birl_1 = __importDefault(require("../../tipos-de-simbolos/birl"));
11
+ class AvaliadorSintaticoBirl extends avaliador_sintatico_base_1.AvaliadorSintaticoBase {
12
+ validarSegmentoHoraDoShow() {
13
+ this.consumir(birl_1.default.HORA, 'Esperado expressão `HORA DO SHOW` para iniciar o programa');
14
+ this.consumir(birl_1.default.DO, 'Esperado expressão `HORA DO SHOW` para iniciar o programa');
15
+ this.consumir(birl_1.default.SHOW, 'Esperado expressão `HORA DO SHOW` para iniciar o programa');
16
+ this.blocos += 1;
17
+ }
18
+ validarSegmentoBirlFinal() {
19
+ this.consumir(birl_1.default.BIRL, 'Esperado expressão `BIRL` para fechamento do programa');
20
+ this.blocos -= 1;
21
+ }
22
+ primario() {
23
+ const simboloAtual = this.simbolos[this.atual];
24
+ if (this.verificarSeSimboloAtualEIgualA(birl_1.default.NEGATIVO))
25
+ return new construtos_1.Literal(this.hashArquivo, Number(simboloAtual.linha), false);
26
+ if (this.verificarSeSimboloAtualEIgualA(birl_1.default.POSITIVO))
27
+ return new construtos_1.Literal(this.hashArquivo, Number(simboloAtual.linha), true);
28
+ if (this.verificarSeSimboloAtualEIgualA(birl_1.default.IDENTIFICADOR)) {
29
+ return new construtos_1.Variavel(this.hashArquivo, this.simbolos[this.atual - 1]);
30
+ }
31
+ if (this.verificarSeSimboloAtualEIgualA(birl_1.default.NUMERO, birl_1.default.FRANGAO, birl_1.default.FRANGÃO, birl_1.default.FRANGO, birl_1.default.TEXTO)) {
32
+ const simboloAnterior = this.simbolos[this.atual - 1];
33
+ return new construtos_1.Literal(this.hashArquivo, Number(simboloAnterior.linha), simboloAnterior.literal);
34
+ }
35
+ if (this.verificarSeSimboloAtualEIgualA(birl_1.default.PARENTESE_ESQUERDO)) {
36
+ const expressao = this.expressao();
37
+ this.consumir(birl_1.default.PARENTESE_DIREITO, "Esperado ')' após a expressão.");
38
+ return new construtos_1.Agrupamento(this.hashArquivo, Number(simboloAtual.linha), expressao);
39
+ }
40
+ }
41
+ chamar() {
42
+ return this.primario();
43
+ }
44
+ atribuir() {
45
+ const expressao = this.ou();
46
+ if (this.verificarSeSimboloAtualEIgualA(birl_1.default.IGUAL)) {
47
+ const igual = this.simboloAnterior();
48
+ const valor = this.atribuir();
49
+ if (expressao instanceof construtos_1.Variavel) {
50
+ const simbolo = expressao.simbolo;
51
+ return new construtos_1.Atribuir(this.hashArquivo, simbolo, valor);
52
+ }
53
+ else if (expressao instanceof construtos_1.AcessoMetodo) {
54
+ const get = expressao;
55
+ return new construtos_1.DefinirValor(this.hashArquivo, 0, get.objeto, get.simbolo, valor);
56
+ }
57
+ else if (expressao instanceof construtos_1.AcessoIndiceVariavel) {
58
+ return new construtos_1.AtribuicaoSobrescrita(this.hashArquivo, 0, expressao.entidadeChamada, expressao.indice, valor);
59
+ }
60
+ this.erro(igual, 'Tarefa de atribuição inválida');
61
+ }
62
+ return expressao;
63
+ }
64
+ blocoEscopo() {
65
+ throw new Error('Método não implementado.');
66
+ }
67
+ declaracaoEnquanto() {
68
+ this.consumir(birl_1.default.NEGATIVA, 'Esperado expressão `NEGATIVA` para iniciar o bloco `ENQUANTO`.');
69
+ this.consumir(birl_1.default.BAMBAM, 'Esperado expressão `BAMBAM` após `NEGATIVA` para iniciar o bloco `ENQUANTO`.');
70
+ this.consumir(birl_1.default.PARENTESE_ESQUERDO, 'Esperado expressão `(` após `BAMBAM` para iniciar o bloco `ENQUANTO`.');
71
+ const codicao = this.expressao();
72
+ this.consumir(birl_1.default.PARENTESE_DIREITO, 'Esperado expressão `)` após a condição para iniciar o bloco `ENQUANTO`.');
73
+ const declaracoes = [];
74
+ while (!this.verificarSeSimboloAtualEIgualA(birl_1.default.BIRL)) {
75
+ declaracoes.push(this.declaracao());
76
+ }
77
+ this.consumir(birl_1.default.BIRL, 'Esperado expressão `BIRL` para fechar o bloco `ENQUANTO`.');
78
+ return new declaracoes_1.Enquanto(codicao, declaracoes);
79
+ }
80
+ declaracaoExpressao() {
81
+ const expressao = this.expressao();
82
+ this.consumir(birl_1.default.PONTO_E_VIRGULA, "Esperado ';' após expressão.");
83
+ return new declaracoes_1.Expressao(expressao);
84
+ }
85
+ declaracaoPara() {
86
+ const simboloPara = this.consumir(birl_1.default.MAIS, 'Esperado expressão `MAIS` para iniciar o bloco `PARA`.');
87
+ this.consumir(birl_1.default.QUERO, 'Esperado expressão `QUERO` após `MAIS` para iniciar o bloco `PARA`.');
88
+ this.consumir(birl_1.default.MAIS, 'Esperado expressão `MAIS` após `QUERO` para iniciar o bloco `PARA`.');
89
+ this.consumir(birl_1.default.PARENTESE_ESQUERDO, 'Esperado expressão `(` após `MAIS` para iniciar o bloco `PARA`.');
90
+ let inicializador;
91
+ if (this.verificarSeSimboloAtualEIgualA(birl_1.default.PONTO_E_VIRGULA)) {
92
+ inicializador = null;
93
+ }
94
+ else if (this.verificarSeSimboloAtualEIgualA(birl_1.default.MONSTRO)) {
95
+ inicializador = this.declaracaoDeVariavel();
96
+ }
97
+ else {
98
+ inicializador = this.declaracaoExpressao();
99
+ }
100
+ let condicao = null;
101
+ if (!this.verificarTipoSimboloAtual(birl_1.default.PONTO_E_VIRGULA)) {
102
+ condicao = this.expressao();
103
+ }
104
+ let incrementar = null;
105
+ if (!this.verificarTipoSimboloAtual(birl_1.default.PARENTESE_DIREITO)) {
106
+ incrementar = this.expressao();
107
+ }
108
+ this.consumir(birl_1.default.PARENTESE_DIREITO, 'Esperado expressão `)` após a condição para iniciar o bloco `PARA`.');
109
+ const declaracao = [];
110
+ while (!this.verificarSeSimboloAtualEIgualA(birl_1.default.BIRL)) {
111
+ declaracao.push(this.declaracao());
112
+ }
113
+ this.consumir(birl_1.default.BIRL, 'Esperado expressão `BIRL` para fechar o bloco `PARA`.');
114
+ return new declaracoes_1.Para(this.hashArquivo, simboloPara.linha, 0, 0, 0, 0);
115
+ }
116
+ declaracaoEscolha() {
117
+ throw new Error('Método não implementado.');
118
+ }
119
+ declaracaoEscreva() {
120
+ const primeiroSimbolo = this.consumir(birl_1.default.CE, 'Esperado expressão `CE` para escrever mensagem.');
121
+ this.consumir(birl_1.default.QUER, 'Esperado expressão `QUER` após `CE` para escrever mensagem.');
122
+ this.consumir(birl_1.default.VER, 'Esperado expressão `VER` após `QUER` para escrever mensagem.');
123
+ this.consumir(birl_1.default.ESSA, 'Esperado expressão `ESSA` após `VER` para escrever mensagem.');
124
+ this.consumir(birl_1.default.PORRA, 'Esperado expressão `PORRA` após `ESSA` para escrever mensagem.');
125
+ this.consumir(birl_1.default.INTERROGACAO, 'Esperado interrogação após `PORRA` para escrever mensagem.');
126
+ this.consumir(birl_1.default.PARENTESE_ESQUERDO, 'Esperado parêntese esquerdo após interrogação para escrever mensagem.');
127
+ const argumento = this.declaracao();
128
+ this.consumir(birl_1.default.PARENTESE_DIREITO, 'Esperado parêntese direito após argumento para escrever mensagem.');
129
+ return new declaracoes_1.Escreva(Number(primeiroSimbolo.linha), this.hashArquivo, [argumento]);
130
+ }
131
+ declaracaoFazer() {
132
+ throw new Error('Método não implementado.');
133
+ }
134
+ declaracaoCaracteres() {
135
+ if (this.verificarTipoSimboloAtual(birl_1.default.BICEPS)) {
136
+ this.consumir(birl_1.default.BICEPS, '');
137
+ }
138
+ const simboloCaractere = this.consumir(birl_1.default.FRANGO, '');
139
+ const inicializacoes = [];
140
+ do {
141
+ const identificador = this.consumir(birl_1.default.IDENTIFICADOR, "Esperado identificador após palavra reservada 'FRANGO'.");
142
+ inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloCaractere.hashArquivo), 0)));
143
+ // Inicialização de variáveis que podem ter valor definido;
144
+ let valorInicializacao;
145
+ if (this.verificarSeSimboloAtualEIgualA(birl_1.default.IGUAL)) {
146
+ this.consumir(birl_1.default.TEXTO, "Esperado ' para começar o texto.");
147
+ const literalInicializacao = this.consumir(birl_1.default.IDENTIFICADOR, 'Esperado literal de FRANGO após símbolo de igual em declaração de variável.');
148
+ this.consumir(birl_1.default.TEXTO, "Esperado ' para terminar o texto.");
149
+ valorInicializacao = String(literalInicializacao.literal);
150
+ }
151
+ inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloCaractere.linha), valorInicializacao)));
152
+ } while (this.verificarSeSimboloAtualEIgualA(birl_1.default.VIRGULA));
153
+ return inicializacoes;
154
+ }
155
+ declaracaoInteiros() {
156
+ let simboloInteiro;
157
+ if (this.verificarTipoSimboloAtual(birl_1.default.MONSTRO)) {
158
+ simboloInteiro = this.consumir(birl_1.default.MONSTRO, '');
159
+ }
160
+ else if (this.verificarTipoSimboloAtual(birl_1.default.MONSTRINHO)) {
161
+ simboloInteiro = this.consumir(birl_1.default.MONSTRINHO, '');
162
+ }
163
+ else if (this.verificarTipoSimboloAtual(birl_1.default.MONSTRAO)) {
164
+ simboloInteiro = this.consumir(birl_1.default.MONSTRAO, '');
165
+ }
166
+ else {
167
+ throw new Error('Simbolo referente a inteiro não especificado.');
168
+ }
169
+ const inicializacoes = [];
170
+ do {
171
+ const identificador = this.consumir(birl_1.default.IDENTIFICADOR, `Esperado identificador após palavra reservada '${simboloInteiro.lexema}'.`);
172
+ inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloInteiro.linha), 0)));
173
+ // Inicializações de variáveis podem ter valores definidos.
174
+ let valorInicializacao = 0x00;
175
+ if (this.verificarSeSimboloAtualEIgualA(birl_1.default.IGUAL)) {
176
+ const literalInicializacao = this.consumir(birl_1.default.NUMERO, `Esperado literal de ${simboloInteiro.lexema} após símbolo de igual em declaração de variável.`);
177
+ valorInicializacao = Number(literalInicializacao.literal);
178
+ }
179
+ inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloInteiro.linha), valorInicializacao)));
180
+ } while (this.verificarSeSimboloAtualEIgualA(birl_1.default.VIRGULA));
181
+ return inicializacoes;
182
+ }
183
+ declaracaoPontoFlutuante() {
184
+ const simboloFloat = this.consumir(birl_1.default.TRAPEZIO, '');
185
+ if (this.verificarTipoSimboloAtual(birl_1.default.DESCENDENTE)) {
186
+ this.consumir(birl_1.default.DESCENDENTE, '');
187
+ }
188
+ const inicializacoes = [];
189
+ do {
190
+ const identificador = this.consumir(birl_1.default.IDENTIFICADOR, "Esperado identificador após palavra reservada 'TRAPEZIO'.");
191
+ inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloFloat.linha), 0)));
192
+ // Inicializações de variáveis que podem ter valores definidos
193
+ let valorInicializacao = 0x00;
194
+ if (this.verificarSeSimboloAtualEIgualA(birl_1.default.IGUAL)) {
195
+ const literalInicializacao = this.consumir(birl_1.default.NUMERO, 'Esperado literal de TRAPEZIO após símbolo de igual em declaração de variavel.');
196
+ valorInicializacao = parseFloat(literalInicializacao.literal);
197
+ }
198
+ inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloFloat.linha), valorInicializacao)));
199
+ } while (this.verificarSeSimboloAtualEIgualA(birl_1.default.VIRGULA));
200
+ return inicializacoes;
201
+ }
202
+ declaracaoRetorna() {
203
+ const primeiroSimbolo = this.consumir(birl_1.default.BORA, 'Esperado expressão `BORA` para retornar valor.');
204
+ this.consumir(birl_1.default.CUMPADE, 'Esperado expressão `CUMPADE` após `BORA` para retornar valor.');
205
+ // this.consumir(tiposDeSimbolos.INTERROGACAO, 'Esperado interrogação após `CUMPADE` para retornar valor.');
206
+ const valor = this.declaracao();
207
+ return new declaracoes_1.Retorna(primeiroSimbolo, valor);
208
+ }
209
+ declaracaoLeia() {
210
+ const primeiroSimbolo = this.consumir(birl_1.default.QUE, 'Esperado expressão `QUE` para ler valor.');
211
+ this.consumir(birl_1.default.QUE, 'Esperado expressão `QUE` após `QUE` para ler valor.');
212
+ this.consumir(birl_1.default.CE, 'Esperado expressão `CE` após `QUE` para ler valor.');
213
+ this.consumir(birl_1.default.QUER, 'Esperado expressão `QUER` após `CE` para ler valor.');
214
+ this.consumir(birl_1.default.MONSTRAO, 'Esperado expressão `MONSTRAO` após `QUER` para ler valor.');
215
+ this.consumir(birl_1.default.INTERROGACAO, 'Esperado interrogação após `MONSTRAO` para ler valor.');
216
+ this.consumir(birl_1.default.PARENTESE_ESQUERDO, 'Esperado parêntese esquerdo após interrogação para ler valor.');
217
+ const simbolo = this.consumir(birl_1.default.TEXTO, 'Esperado texto após parêntese esquerdo para ler valor.');
218
+ const ponteiro = this.consumir(birl_1.default.IDENTIFICADOR, 'Esperado identificador após texto para ler valor.');
219
+ this.consumir(birl_1.default.PARENTESE_DIREITO, 'Esperado parêntese direito após identificador para ler valor.');
220
+ this.consumir(birl_1.default.PONTO_E_VIRGULA, 'Esperado ponto e vírgula após parêntese direito para ler valor.');
221
+ return new declaracoes_1.Leia(Number(primeiroSimbolo.linha), this.hashArquivo, []);
222
+ }
223
+ declaracaoSe() {
224
+ const simboloSe = this.consumir(birl_1.default.ELE, 'Esperado expressão `ELE` para condição.');
225
+ this.consumir(birl_1.default.QUE, 'Esperado expressão `QUE` após `ELE` para condição.');
226
+ this.consumir(birl_1.default.A, 'Esperado expressão `A` após `QUE` para condição.');
227
+ this.consumir(birl_1.default.GENTE, 'Esperado expressão `GENTE` após `A` para condição.');
228
+ this.consumir(birl_1.default.QUER, 'Esperado expressão `QUER` após `GENTE` para condição.');
229
+ this.consumir(birl_1.default.INTERROGACAO, 'Esperado interrogação após `QUER` para condição.');
230
+ const condicao = this.declaracao();
231
+ this.consumir(birl_1.default.QUEBRA_LINHA, 'Esperado quebra de linha após expressão de condição para condição.');
232
+ const declaracoes = [];
233
+ while (this.verificarTipoSimboloAtual(birl_1.default.QUEBRA_LINHA)) {
234
+ this.consumir(birl_1.default.QUEBRA_LINHA, '');
235
+ }
236
+ do {
237
+ declaracoes.push(this.declaracao());
238
+ this.avancarEDevolverAnterior();
239
+ } while (![birl_1.default.BIRL].includes(this.simbolos[this.atual].tipo));
240
+ let caminhoSenao = null;
241
+ if (this.verificarTipoSimboloAtual(birl_1.default.NAO)) {
242
+ const simboloSenao = this.consumir(birl_1.default.NAO, 'Esperado expressão `NAO` após expressão de condição.');
243
+ this.consumir(birl_1.default.VAI, 'Esperado expressão `VAI` após `NAO`.');
244
+ this.consumir(birl_1.default.DAR, 'Esperado expressão `DAR` após `VAI`.');
245
+ this.consumir(birl_1.default.NAO, 'Esperado expressão `NAO` após `DAR`.');
246
+ const declaracaoSenao = [];
247
+ do {
248
+ declaracaoSenao.push(this.declaracao());
249
+ } while (![birl_1.default.BIRL].includes(this.simbolos[this.atual].tipo));
250
+ caminhoSenao = new declaracoes_1.Bloco(this.hashArquivo, Number(simboloSe.linha), declaracaoSenao.filter((d) => d));
251
+ }
252
+ this.consumir(birl_1.default.BIRL, 'Esperado expressão `BIRL` após expressão de condição.');
253
+ return new declaracoes_1.Se(condicao, new declaracoes_1.Bloco(this.hashArquivo, Number(simboloSe.linha), declaracoes.filter((d) => d)), [], caminhoSenao);
254
+ }
255
+ corpoDaFuncao(tipo) {
256
+ throw new Error('Método não implementado.');
257
+ }
258
+ declaracao() {
259
+ const simboloAtual = this.simbolos[this.atual];
260
+ switch (simboloAtual.tipo) {
261
+ case birl_1.default.BORA: // BORA CUMPADE?
262
+ return this.declaracaoRetorna();
263
+ case birl_1.default.QUE:
264
+ return this.declaracaoLeia();
265
+ case birl_1.default.ELE:
266
+ return this.declaracaoSe();
267
+ case birl_1.default.NEGATIVA:
268
+ // Retornar uma declaração de WHILE
269
+ case birl_1.default.MAIS:
270
+ return this.declaracaoPara();
271
+ // Declaração de inteiros
272
+ case birl_1.default.MONSTRO:
273
+ case birl_1.default.MONSTRINHO:
274
+ case birl_1.default.MONSTRAO:
275
+ return this.declaracaoInteiros();
276
+ case birl_1.default.BICEPS:
277
+ case birl_1.default.FRANGO:
278
+ return this.declaracaoCaracteres();
279
+ case birl_1.default.TRAPEZIO:
280
+ return this.declaracaoPontoFlutuante();
281
+ case birl_1.default.OH:
282
+ // Retornar uma declaração de funcao
283
+ case birl_1.default.AJUDA:
284
+ // Retornar uma declaração de chamar funcao
285
+ case birl_1.default.CE: // "CE QUER VER ESSA PORRA?"
286
+ return this.declaracaoEscreva();
287
+ case birl_1.default.PONTO_E_VIRGULA:
288
+ case birl_1.default.QUEBRA_LINHA:
289
+ this.avancarEDevolverAnterior();
290
+ return null;
291
+ default:
292
+ return this.expressao();
293
+ }
294
+ }
295
+ analisar(retornoLexador, hashArquivo) {
296
+ this.erros = [];
297
+ this.blocos = 0;
298
+ this.atual = 0;
299
+ // 1 validação
300
+ /* if (this.blocos > 0) {
301
+ throw new ErroAvaliadorSintatico(
302
+ null,
303
+ 'Quantidade de blocos abertos não corresponde com a quantidade de blocos fechados'
304
+ );
305
+ } */
306
+ this.simbolos = retornoLexador.simbolos;
307
+ const declaracoes = [];
308
+ this.validarSegmentoHoraDoShow();
309
+ while (!this.estaNoFinal() && this.simbolos[this.atual].tipo !== birl_1.default.BIRL) {
310
+ declaracoes.push(this.declaracao());
311
+ }
312
+ this.validarSegmentoBirlFinal();
313
+ return {
314
+ declaracoes: declaracoes.filter((d) => d),
315
+ erros: this.erros,
316
+ };
317
+ }
318
+ }
319
+ exports.AvaliadorSintaticoBirl = AvaliadorSintaticoBirl;
295
320
  //# sourceMappingURL=avaliador-sintatico-birl.js.map