@designliquido/delegua 0.15.1 → 0.15.3

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 (344) 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 +534 -534
  21. package/fontes/avaliador-sintatico/dialetos/index.d.ts +5 -5
  22. package/fontes/avaliador-sintatico/dialetos/index.js +21 -21
  23. package/fontes/avaliador-sintatico/erro-avaliador-sintatico.d.ts +5 -5
  24. package/fontes/avaliador-sintatico/erro-avaliador-sintatico.js +11 -11
  25. package/fontes/avaliador-sintatico/index.d.ts +2 -2
  26. package/fontes/avaliador-sintatico/index.js +18 -18
  27. package/fontes/avaliador-sintatico/retornos/index.d.ts +3 -3
  28. package/fontes/avaliador-sintatico/retornos/index.js +19 -19
  29. package/fontes/avaliador-sintatico/retornos/retorno-declaracao.d.ts +3 -3
  30. package/fontes/avaliador-sintatico/retornos/retorno-declaracao.js +2 -2
  31. package/fontes/avaliador-sintatico/retornos/retorno-primario.d.ts +3 -3
  32. package/fontes/avaliador-sintatico/retornos/retorno-primario.js +2 -2
  33. package/fontes/avaliador-sintatico/retornos/retorno-resolver-declaracao.d.ts +2 -2
  34. package/fontes/avaliador-sintatico/retornos/retorno-resolver-declaracao.js +2 -2
  35. package/fontes/bibliotecas/biblioteca-global.d.ts +3 -3
  36. package/fontes/bibliotecas/biblioteca-global.js +315 -315
  37. package/fontes/bibliotecas/dialetos/egua-classico/biblioteca-global.d.ts +1 -1
  38. package/fontes/bibliotecas/dialetos/egua-classico/biblioteca-global.js +230 -230
  39. package/fontes/bibliotecas/dialetos/egua-classico/index.d.ts +2 -2
  40. package/fontes/bibliotecas/dialetos/egua-classico/index.js +32 -32
  41. package/fontes/bibliotecas/dialetos/egua-classico/matematica.d.ts +1 -1
  42. package/fontes/bibliotecas/dialetos/egua-classico/matematica.js +478 -478
  43. package/fontes/bibliotecas/dialetos/egua-classico/tempo.d.ts +1 -1
  44. package/fontes/bibliotecas/dialetos/egua-classico/tempo.js +39 -39
  45. package/fontes/bibliotecas/dialetos/egua-classico/textos.d.ts +8 -8
  46. package/fontes/bibliotecas/dialetos/egua-classico/textos.js +201 -201
  47. package/fontes/bibliotecas/dialetos/visualg/caracteres.d.ts +3 -0
  48. package/fontes/bibliotecas/dialetos/visualg/caracteres.js +35 -0
  49. package/fontes/bibliotecas/dialetos/visualg/caracteres.js.map +1 -0
  50. package/fontes/bibliotecas/dialetos/visualg/index.d.ts +2 -0
  51. package/fontes/bibliotecas/dialetos/visualg/index.js +18 -0
  52. package/fontes/bibliotecas/dialetos/visualg/index.js.map +1 -1
  53. package/fontes/bibliotecas/dialetos/visualg/numerica.d.ts +3 -0
  54. package/fontes/bibliotecas/dialetos/visualg/numerica.js +65 -0
  55. package/fontes/bibliotecas/dialetos/visualg/numerica.js.map +1 -0
  56. package/fontes/bibliotecas/primitivas-texto.d.ts +11 -11
  57. package/fontes/bibliotecas/primitivas-texto.js +12 -12
  58. package/fontes/bibliotecas/primitivas-vetor.d.ts +15 -15
  59. package/fontes/bibliotecas/primitivas-vetor.js +33 -33
  60. package/fontes/construtos/acesso-indice-variavel.d.ts +15 -15
  61. package/fontes/construtos/acesso-indice-variavel.js +20 -20
  62. package/fontes/construtos/acesso-metodo.d.ts +14 -14
  63. package/fontes/construtos/acesso-metodo.js +19 -19
  64. package/fontes/construtos/agrupamento.d.ts +14 -14
  65. package/fontes/construtos/agrupamento.js +19 -19
  66. package/fontes/construtos/atribuicao-sobrescrita.d.ts +11 -11
  67. package/fontes/construtos/atribuicao-sobrescrita.js +16 -16
  68. package/fontes/construtos/atribuir.d.ts +10 -10
  69. package/fontes/construtos/atribuir.js +15 -15
  70. package/fontes/construtos/binario.d.ts +22 -22
  71. package/fontes/construtos/binario.js +27 -27
  72. package/fontes/construtos/chamada.d.ts +13 -13
  73. package/fontes/construtos/chamada.js +36 -36
  74. package/fontes/construtos/construto.d.ts +7 -7
  75. package/fontes/construtos/construto.js +2 -2
  76. package/fontes/construtos/definir-valor.d.ts +11 -11
  77. package/fontes/construtos/definir-valor.js +16 -16
  78. package/fontes/construtos/dicionario.d.ts +10 -10
  79. package/fontes/construtos/dicionario.js +15 -15
  80. package/fontes/construtos/formatacao-escrita.d.ts +16 -16
  81. package/fontes/construtos/formatacao-escrita.js +21 -21
  82. package/fontes/construtos/funcao.d.ts +10 -10
  83. package/fontes/construtos/funcao.js +15 -15
  84. package/fontes/construtos/index.d.ts +19 -19
  85. package/fontes/construtos/index.js +35 -35
  86. package/fontes/construtos/isto.d.ts +9 -9
  87. package/fontes/construtos/isto.js +14 -14
  88. package/fontes/construtos/literal.d.ts +10 -10
  89. package/fontes/construtos/literal.js +14 -14
  90. package/fontes/construtos/logico.d.ts +11 -11
  91. package/fontes/construtos/logico.js +16 -16
  92. package/fontes/construtos/super.d.ts +10 -10
  93. package/fontes/construtos/super.js +15 -15
  94. package/fontes/construtos/unario.d.ts +11 -11
  95. package/fontes/construtos/unario.js +16 -16
  96. package/fontes/construtos/variavel.d.ts +9 -9
  97. package/fontes/construtos/variavel.js +14 -14
  98. package/fontes/construtos/vetor.d.ts +9 -9
  99. package/fontes/construtos/vetor.js +14 -14
  100. package/fontes/declaracoes/bloco.d.ts +7 -7
  101. package/fontes/declaracoes/bloco.js +14 -14
  102. package/fontes/declaracoes/classe.d.ts +9 -9
  103. package/fontes/declaracoes/classe.js +16 -16
  104. package/fontes/declaracoes/continua.d.ts +6 -6
  105. package/fontes/declaracoes/continua.js +13 -13
  106. package/fontes/declaracoes/declaracao.d.ts +8 -8
  107. package/fontes/declaracoes/declaracao.js +17 -17
  108. package/fontes/declaracoes/enquanto.d.ts +9 -9
  109. package/fontes/declaracoes/enquanto.js +15 -15
  110. package/fontes/declaracoes/escolha.d.ts +14 -14
  111. package/fontes/declaracoes/escolha.js +19 -19
  112. package/fontes/declaracoes/escreva-mesma-linha.d.ts +8 -8
  113. package/fontes/declaracoes/escreva-mesma-linha.js +14 -14
  114. package/fontes/declaracoes/escreva.d.ts +8 -8
  115. package/fontes/declaracoes/escreva.js +14 -14
  116. package/fontes/declaracoes/expressao.d.ts +8 -8
  117. package/fontes/declaracoes/expressao.js +14 -14
  118. package/fontes/declaracoes/fazer.d.ts +8 -8
  119. package/fontes/declaracoes/fazer.js +15 -15
  120. package/fontes/declaracoes/funcao.d.ts +9 -9
  121. package/fontes/declaracoes/funcao.js +15 -15
  122. package/fontes/declaracoes/importar.d.ts +9 -9
  123. package/fontes/declaracoes/importar.js +15 -15
  124. package/fontes/declaracoes/index.d.ts +19 -19
  125. package/fontes/declaracoes/index.js +35 -35
  126. package/fontes/declaracoes/leia.d.ts +12 -12
  127. package/fontes/declaracoes/leia.js +18 -18
  128. package/fontes/declaracoes/para.d.ts +10 -10
  129. package/fontes/declaracoes/para.js +17 -17
  130. package/fontes/declaracoes/retorna.d.ts +8 -8
  131. package/fontes/declaracoes/retorna.js +15 -15
  132. package/fontes/declaracoes/se.d.ts +11 -11
  133. package/fontes/declaracoes/se.js +17 -17
  134. package/fontes/declaracoes/sustar.d.ts +6 -6
  135. package/fontes/declaracoes/sustar.js +13 -13
  136. package/fontes/declaracoes/tente.d.ts +14 -14
  137. package/fontes/declaracoes/tente.js +20 -20
  138. package/fontes/declaracoes/var.d.ts +9 -9
  139. package/fontes/declaracoes/var.js +15 -15
  140. package/fontes/depuracao/cyrb53.d.ts +9 -9
  141. package/fontes/depuracao/cyrb53.js +22 -22
  142. package/fontes/depuracao/index.d.ts +2 -2
  143. package/fontes/depuracao/index.js +23 -23
  144. package/fontes/depuracao/ponto-parada.d.ts +4 -4
  145. package/fontes/depuracao/ponto-parada.js +2 -2
  146. package/fontes/espaco-variaveis.d.ts +19 -19
  147. package/fontes/espaco-variaveis.js +19 -19
  148. package/fontes/estruturas/chamavel.d.ts +5 -5
  149. package/fontes/estruturas/chamavel.js +12 -12
  150. package/fontes/estruturas/classe-padrao.d.ts +17 -17
  151. package/fontes/estruturas/classe-padrao.js +28 -28
  152. package/fontes/estruturas/delegua-classe.d.ts +16 -16
  153. package/fontes/estruturas/delegua-classe.js +38 -38
  154. package/fontes/estruturas/delegua-funcao.d.ts +18 -18
  155. package/fontes/estruturas/delegua-funcao.js +60 -60
  156. package/fontes/estruturas/funcao-padrao.d.ts +12 -12
  157. package/fontes/estruturas/funcao-padrao.js +22 -22
  158. package/fontes/estruturas/index.d.ts +9 -9
  159. package/fontes/estruturas/index.js +25 -25
  160. package/fontes/estruturas/metodo-primitiva.d.ts +17 -17
  161. package/fontes/estruturas/metodo-primitiva.js +26 -26
  162. package/fontes/estruturas/modulo.d.ts +9 -9
  163. package/fontes/estruturas/modulo.js +13 -13
  164. package/fontes/estruturas/objeto-delegua-classe.d.ts +10 -10
  165. package/fontes/estruturas/objeto-delegua-classe.js +26 -26
  166. package/fontes/estruturas/objeto-padrao.d.ts +9 -9
  167. package/fontes/estruturas/objeto-padrao.js +21 -21
  168. package/fontes/excecoes/erro-em-tempo-de-execucao.d.ts +7 -7
  169. package/fontes/excecoes/erro-em-tempo-de-execucao.js +13 -13
  170. package/fontes/excecoes/index.d.ts +1 -1
  171. package/fontes/excecoes/index.js +17 -17
  172. package/fontes/formatadores/delegua.d.ts +18 -18
  173. package/fontes/formatadores/delegua.js +82 -82
  174. package/fontes/formatadores/index.d.ts +1 -1
  175. package/fontes/formatadores/index.js +17 -17
  176. package/fontes/interfaces/avaliador-sintatico-interface.d.ts +57 -57
  177. package/fontes/interfaces/avaliador-sintatico-interface.js +2 -2
  178. package/fontes/interfaces/construtos/index.d.ts +4 -4
  179. package/fontes/interfaces/construtos/index.js +2 -2
  180. package/fontes/interfaces/escopo-execucao.d.ts +11 -11
  181. package/fontes/interfaces/escopo-execucao.js +2 -2
  182. package/fontes/interfaces/index.d.ts +11 -11
  183. package/fontes/interfaces/index.js +27 -27
  184. package/fontes/interfaces/interpretador-com-depuracao-interface.d.ts +17 -17
  185. package/fontes/interfaces/interpretador-com-depuracao-interface.js +2 -2
  186. package/fontes/interfaces/interpretador-interface.d.ts +55 -55
  187. package/fontes/interfaces/interpretador-interface.js +2 -2
  188. package/fontes/interfaces/lexador-interface.d.ts +23 -23
  189. package/fontes/interfaces/lexador-interface.js +2 -2
  190. package/fontes/interfaces/parametro-interface.d.ts +6 -6
  191. package/fontes/interfaces/parametro-interface.js +2 -2
  192. package/fontes/interfaces/pilha-escopos-execucao-interface.d.ts +25 -25
  193. package/fontes/interfaces/pilha-escopos-execucao-interface.js +2 -2
  194. package/fontes/interfaces/pilha-interface.d.ts +7 -7
  195. package/fontes/interfaces/pilha-interface.js +2 -2
  196. package/fontes/interfaces/resolvedor-interface.d.ts +41 -41
  197. package/fontes/interfaces/resolvedor-interface.js +2 -2
  198. package/fontes/interfaces/retornos/index.d.ts +4 -4
  199. package/fontes/interfaces/retornos/index.js +20 -20
  200. package/fontes/interfaces/retornos/retorno-avaliador-sintatico.d.ts +6 -6
  201. package/fontes/interfaces/retornos/retorno-avaliador-sintatico.js +2 -2
  202. package/fontes/interfaces/retornos/retorno-execucao-interface.d.ts +5 -5
  203. package/fontes/interfaces/retornos/retorno-execucao-interface.js +2 -2
  204. package/fontes/interfaces/retornos/retorno-interpretador.d.ts +5 -5
  205. package/fontes/interfaces/retornos/retorno-interpretador.js +2 -2
  206. package/fontes/interfaces/retornos/retorno-lexador.d.ts +10 -10
  207. package/fontes/interfaces/retornos/retorno-lexador.js +2 -2
  208. package/fontes/interfaces/simbolo-interface.d.ts +7 -7
  209. package/fontes/interfaces/simbolo-interface.js +2 -2
  210. package/fontes/interfaces/tradutor-interface.d.ts +4 -4
  211. package/fontes/interfaces/tradutor-interface.js +2 -2
  212. package/fontes/interfaces/variavel-interface.d.ts +4 -4
  213. package/fontes/interfaces/variavel-interface.js +2 -2
  214. package/fontes/interpretador/dialetos/egua-classico/index.d.ts +1 -1
  215. package/fontes/interpretador/dialetos/egua-classico/index.js +17 -17
  216. package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts +99 -99
  217. package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +743 -743
  218. package/fontes/interpretador/dialetos/egua-classico/resolvedor/erro-resolvedor.d.ts +5 -5
  219. package/fontes/interpretador/dialetos/egua-classico/resolvedor/erro-resolvedor.js +11 -11
  220. package/fontes/interpretador/dialetos/egua-classico/resolvedor/index.d.ts +3 -3
  221. package/fontes/interpretador/dialetos/egua-classico/resolvedor/index.js +19 -19
  222. package/fontes/interpretador/dialetos/egua-classico/resolvedor/pilha-escopos.d.ts +9 -9
  223. package/fontes/interpretador/dialetos/egua-classico/resolvedor/pilha-escopos.js +25 -25
  224. package/fontes/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts +87 -87
  225. package/fontes/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js +387 -387
  226. package/fontes/interpretador/dialetos/egua-classico/resolvedor/retorno-resolvedor.d.ts +6 -6
  227. package/fontes/interpretador/dialetos/egua-classico/resolvedor/retorno-resolvedor.js +2 -2
  228. package/fontes/interpretador/dialetos/index.d.ts +4 -4
  229. package/fontes/interpretador/dialetos/index.js +20 -20
  230. package/fontes/interpretador/dialetos/portugol-studio/interpretador-portugol-studio.d.ts +12 -12
  231. package/fontes/interpretador/dialetos/portugol-studio/interpretador-portugol-studio.js +26 -26
  232. package/fontes/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.d.ts +40 -40
  233. package/fontes/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.js +96 -96
  234. package/fontes/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.js.map +1 -1
  235. package/fontes/interpretador/dialetos/visualg/interpretador-visualg.d.ts +53 -46
  236. package/fontes/interpretador/dialetos/visualg/interpretador-visualg.js +194 -102
  237. package/fontes/interpretador/dialetos/visualg/interpretador-visualg.js.map +1 -1
  238. package/fontes/interpretador/erro-interpretador.d.ts +8 -8
  239. package/fontes/interpretador/erro-interpretador.js +2 -2
  240. package/fontes/interpretador/index.d.ts +4 -4
  241. package/fontes/interpretador/index.js +20 -20
  242. package/fontes/interpretador/inferenciador.d.ts +1 -1
  243. package/fontes/interpretador/inferenciador.js +31 -31
  244. package/fontes/interpretador/interpretador-base.d.ts +186 -188
  245. package/fontes/interpretador/interpretador-base.js +1001 -1000
  246. package/fontes/interpretador/interpretador-base.js.map +1 -1
  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/interpretador-com-depuracao.js.map +1 -1
  250. package/fontes/interpretador/pilha-escopos-execucao.d.ts +38 -38
  251. package/fontes/interpretador/pilha-escopos-execucao.js +158 -158
  252. package/fontes/lexador/dialetos/index.d.ts +6 -6
  253. package/fontes/lexador/dialetos/index.js +22 -22
  254. package/fontes/lexador/dialetos/lexador-birl.d.ts +12 -12
  255. package/fontes/lexador/dialetos/lexador-birl.js +211 -211
  256. package/fontes/lexador/dialetos/lexador-egua-classico.d.ts +36 -36
  257. package/fontes/lexador/dialetos/lexador-egua-classico.js +286 -286
  258. package/fontes/lexador/dialetos/lexador-eguap.d.ts +51 -51
  259. package/fontes/lexador/dialetos/lexador-eguap.js +398 -398
  260. package/fontes/lexador/dialetos/lexador-guarani.d.ts +9 -9
  261. package/fontes/lexador/dialetos/lexador-guarani.js +113 -113
  262. package/fontes/lexador/dialetos/lexador-portugol-ipt.d.ts +33 -33
  263. package/fontes/lexador/dialetos/lexador-portugol-ipt.js +195 -195
  264. package/fontes/lexador/dialetos/lexador-portugol-studio.d.ts +21 -21
  265. package/fontes/lexador/dialetos/lexador-portugol-studio.js +280 -280
  266. package/fontes/lexador/dialetos/lexador-visualg.d.ts +18 -18
  267. package/fontes/lexador/dialetos/lexador-visualg.js +218 -218
  268. package/fontes/lexador/dialetos/palavras-reservadas/birl.d.ts +46 -46
  269. package/fontes/lexador/dialetos/palavras-reservadas/birl.js +63 -63
  270. package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.d.ts +36 -36
  271. package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.js +41 -41
  272. package/fontes/lexador/dialetos/palavras-reservadas/guarani.d.ts +4 -4
  273. package/fontes/lexador/dialetos/palavras-reservadas/guarani.js +9 -9
  274. package/fontes/lexador/dialetos/palavras-reservadas/index.d.ts +3 -3
  275. package/fontes/lexador/dialetos/palavras-reservadas/index.js +19 -19
  276. package/fontes/lexador/dialetos/palavras-reservadas/portugol-ipt.d.ts +6 -6
  277. package/fontes/lexador/dialetos/palavras-reservadas/portugol-ipt.js +11 -11
  278. package/fontes/lexador/dialetos/palavras-reservadas/portugol-studio.d.ts +23 -23
  279. package/fontes/lexador/dialetos/palavras-reservadas/portugol-studio.js +28 -28
  280. package/fontes/lexador/dialetos/palavras-reservadas/rantiaquin.d.ts +2 -2
  281. package/fontes/lexador/dialetos/palavras-reservadas/rantiaquin.js +3 -3
  282. package/fontes/lexador/dialetos/palavras-reservadas/visualg.d.ts +60 -60
  283. package/fontes/lexador/dialetos/palavras-reservadas/visualg.js +65 -65
  284. package/fontes/lexador/dialetos/pragma.d.ts +8 -8
  285. package/fontes/lexador/dialetos/pragma.js +2 -2
  286. package/fontes/lexador/erro-lexador.d.ts +5 -5
  287. package/fontes/lexador/erro-lexador.js +2 -2
  288. package/fontes/lexador/index.d.ts +2 -2
  289. package/fontes/lexador/index.js +18 -18
  290. package/fontes/lexador/lexador-base-linha-unica.d.ts +28 -28
  291. package/fontes/lexador/lexador-base-linha-unica.js +82 -82
  292. package/fontes/lexador/lexador-base.d.ts +41 -41
  293. package/fontes/lexador/lexador-base.js +112 -112
  294. package/fontes/lexador/lexador.d.ts +43 -43
  295. package/fontes/lexador/lexador.js +412 -412
  296. package/fontes/lexador/palavras-reservadas.d.ts +36 -36
  297. package/fontes/lexador/palavras-reservadas.js +41 -41
  298. package/fontes/lexador/simbolo.d.ts +10 -10
  299. package/fontes/lexador/simbolo.js +16 -16
  300. package/fontes/quebras/index.d.ts +10 -10
  301. package/fontes/quebras/index.js +19 -19
  302. package/fontes/tipos-de-simbolos/birl.d.ts +71 -71
  303. package/fontes/tipos-de-simbolos/birl.js +78 -78
  304. package/fontes/tipos-de-simbolos/comum.d.ts +22 -22
  305. package/fontes/tipos-de-simbolos/comum.js +23 -23
  306. package/fontes/tipos-de-simbolos/delegua.d.ts +80 -80
  307. package/fontes/tipos-de-simbolos/delegua.js +81 -81
  308. package/fontes/tipos-de-simbolos/egua-classico.d.ts +77 -77
  309. package/fontes/tipos-de-simbolos/egua-classico.js +78 -78
  310. package/fontes/tipos-de-simbolos/eguap.d.ts +73 -73
  311. package/fontes/tipos-de-simbolos/eguap.js +74 -74
  312. package/fontes/tipos-de-simbolos/guarani.d.ts +14 -14
  313. package/fontes/tipos-de-simbolos/guarani.js +15 -15
  314. package/fontes/tipos-de-simbolos/portugol-ipt.d.ts +28 -28
  315. package/fontes/tipos-de-simbolos/portugol-ipt.js +29 -29
  316. package/fontes/tipos-de-simbolos/portugol-studio.d.ts +53 -53
  317. package/fontes/tipos-de-simbolos/portugol-studio.js +54 -54
  318. package/fontes/tipos-de-simbolos/rantiaquin.d.ts +2 -2
  319. package/fontes/tipos-de-simbolos/rantiaquin.js +3 -3
  320. package/fontes/tipos-de-simbolos/visualg.d.ts +68 -68
  321. package/fontes/tipos-de-simbolos/visualg.js +69 -69
  322. package/fontes/tradutores/dicionarios/dicionario-delegua-javascript.d.ts +2 -2
  323. package/fontes/tradutores/dicionarios/dicionario-delegua-javascript.js +10 -10
  324. package/fontes/tradutores/dicionarios/index.d.ts +1 -1
  325. package/fontes/tradutores/dicionarios/index.js +17 -17
  326. package/fontes/tradutores/index.d.ts +2 -2
  327. package/fontes/tradutores/index.js +18 -18
  328. package/fontes/tradutores/python/python3-lexer.d.ts +152 -152
  329. package/fontes/tradutores/python/python3-lexer.js +1226 -1226
  330. package/fontes/tradutores/python/python3-listener.d.ts +953 -953
  331. package/fontes/tradutores/python/python3-listener.js +2 -2
  332. package/fontes/tradutores/python/python3-parser.d.ts +1330 -1330
  333. package/fontes/tradutores/python/python3-parser.js +11156 -11156
  334. package/fontes/tradutores/python/python3-visitor.d.ts +612 -612
  335. package/fontes/tradutores/python/python3-visitor.js +2 -2
  336. package/fontes/tradutores/tradutor-javascript.d.ts +83 -83
  337. package/fontes/tradutores/tradutor-javascript.js +470 -470
  338. package/fontes/tradutores/tradutor-python.d.ts +1 -1
  339. package/fontes/tradutores/tradutor-python.js +34 -34
  340. package/fontes/tradutores/tradutor-reverso-javascript.d.ts +47 -47
  341. package/fontes/tradutores/tradutor-reverso-javascript.js +342 -342
  342. package/index.d.ts +5 -5
  343. package/index.js +23 -23
  344. 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