@designliquido/delegua 0.50.2 → 0.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (474) hide show
  1. package/avaliador-sintatico/avaliador-sintatico-base.d.ts +1 -1
  2. package/avaliador-sintatico/avaliador-sintatico-base.d.ts.map +1 -1
  3. package/avaliador-sintatico/avaliador-sintatico-base.js +4 -4
  4. package/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
  5. package/avaliador-sintatico/avaliador-sintatico.d.ts +2 -6
  6. package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
  7. package/avaliador-sintatico/avaliador-sintatico.js +4 -54
  8. package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  9. package/avaliador-sintatico/comum.d.ts +4 -1
  10. package/avaliador-sintatico/comum.d.ts.map +1 -1
  11. package/avaliador-sintatico/comum.js +88 -0
  12. package/avaliador-sintatico/comum.js.map +1 -1
  13. package/avaliador-sintatico/dialetos/avaliador-sintatico-calango.d.ts +33 -0
  14. package/avaliador-sintatico/dialetos/avaliador-sintatico-calango.d.ts.map +1 -0
  15. package/avaliador-sintatico/dialetos/avaliador-sintatico-calango.js +231 -0
  16. package/avaliador-sintatico/dialetos/avaliador-sintatico-calango.js.map +1 -0
  17. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts +1 -0
  18. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts.map +1 -1
  19. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +180 -140
  20. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
  21. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.d.ts +1 -2
  22. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.d.ts.map +1 -1
  23. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.js.map +1 -1
  24. package/avaliador-sintatico/micro-avaliador-sintatico.d.ts.map +1 -1
  25. package/avaliador-sintatico/micro-avaliador-sintatico.js +8 -12
  26. package/avaliador-sintatico/micro-avaliador-sintatico.js.map +1 -1
  27. package/avaliador-sintatico/traducao/avaliador-sintatico-javascript.d.ts +1 -1
  28. package/avaliador-sintatico/traducao/avaliador-sintatico-javascript.d.ts.map +1 -1
  29. package/avaliador-sintatico/traducao/avaliador-sintatico-javascript.js.map +1 -1
  30. package/bibliotecas/biblioteca-global.d.ts.map +1 -1
  31. package/bibliotecas/biblioteca-global.js +18 -6
  32. package/bibliotecas/biblioteca-global.js.map +1 -1
  33. package/bibliotecas/primitivas-vetor.d.ts.map +1 -1
  34. package/bibliotecas/primitivas-vetor.js +6 -3
  35. package/bibliotecas/primitivas-vetor.js.map +1 -1
  36. package/bin/package.json +1 -1
  37. package/construtos/acesso-elemento-matriz.d.ts +4 -3
  38. package/construtos/acesso-elemento-matriz.d.ts.map +1 -1
  39. package/construtos/acesso-elemento-matriz.js +6 -0
  40. package/construtos/acesso-elemento-matriz.js.map +1 -1
  41. package/construtos/acesso-indice-variavel.d.ts +1 -0
  42. package/construtos/acesso-indice-variavel.d.ts.map +1 -1
  43. package/construtos/acesso-indice-variavel.js +5 -0
  44. package/construtos/acesso-indice-variavel.js.map +1 -1
  45. package/construtos/acesso-metodo-ou-propriedade.d.ts +1 -0
  46. package/construtos/acesso-metodo-ou-propriedade.d.ts.map +1 -1
  47. package/construtos/acesso-metodo-ou-propriedade.js +5 -0
  48. package/construtos/acesso-metodo-ou-propriedade.js.map +1 -1
  49. package/construtos/acesso-metodo.d.ts +1 -0
  50. package/construtos/acesso-metodo.d.ts.map +1 -1
  51. package/construtos/acesso-metodo.js +3 -0
  52. package/construtos/acesso-metodo.js.map +1 -1
  53. package/construtos/acesso-propriedade.d.ts +1 -0
  54. package/construtos/acesso-propriedade.d.ts.map +1 -1
  55. package/construtos/acesso-propriedade.js +3 -0
  56. package/construtos/acesso-propriedade.js.map +1 -1
  57. package/construtos/agrupamento.d.ts +1 -0
  58. package/construtos/agrupamento.d.ts.map +1 -1
  59. package/construtos/agrupamento.js +3 -0
  60. package/construtos/agrupamento.js.map +1 -1
  61. package/construtos/argumento-referencia-funcao.d.ts +1 -0
  62. package/construtos/argumento-referencia-funcao.d.ts.map +1 -1
  63. package/construtos/argumento-referencia-funcao.js +3 -0
  64. package/construtos/argumento-referencia-funcao.js.map +1 -1
  65. package/construtos/atribuicao-por-indice.d.ts +1 -0
  66. package/construtos/atribuicao-por-indice.d.ts.map +1 -1
  67. package/construtos/atribuicao-por-indice.js +6 -0
  68. package/construtos/atribuicao-por-indice.js.map +1 -1
  69. package/construtos/atribuicao-por-indices-matriz.d.ts +6 -5
  70. package/construtos/atribuicao-por-indices-matriz.d.ts.map +1 -1
  71. package/construtos/atribuicao-por-indices-matriz.js +7 -0
  72. package/construtos/atribuicao-por-indices-matriz.js.map +1 -1
  73. package/construtos/atribuir.d.ts +3 -2
  74. package/construtos/atribuir.d.ts.map +1 -1
  75. package/construtos/atribuir.js +7 -0
  76. package/construtos/atribuir.js.map +1 -1
  77. package/construtos/binario.d.ts +1 -0
  78. package/construtos/binario.d.ts.map +1 -1
  79. package/construtos/binario.js +6 -0
  80. package/construtos/binario.js.map +1 -1
  81. package/construtos/chamada.d.ts +1 -0
  82. package/construtos/chamada.d.ts.map +1 -1
  83. package/construtos/chamada.js +4 -0
  84. package/construtos/chamada.js.map +1 -1
  85. package/construtos/comentario-como-construto.d.ts +1 -0
  86. package/construtos/comentario-como-construto.d.ts.map +1 -1
  87. package/construtos/comentario-como-construto.js +3 -0
  88. package/construtos/comentario-como-construto.js.map +1 -1
  89. package/construtos/componente-linguagem.d.ts +1 -0
  90. package/construtos/componente-linguagem.d.ts.map +1 -1
  91. package/construtos/componente-linguagem.js +3 -0
  92. package/construtos/componente-linguagem.js.map +1 -1
  93. package/construtos/constante.d.ts +1 -0
  94. package/construtos/constante.d.ts.map +1 -1
  95. package/construtos/constante.js +3 -0
  96. package/construtos/constante.js.map +1 -1
  97. package/construtos/construto.d.ts +1 -0
  98. package/construtos/construto.d.ts.map +1 -1
  99. package/construtos/decorador.d.ts +1 -0
  100. package/construtos/decorador.d.ts.map +1 -1
  101. package/construtos/decorador.js +4 -0
  102. package/construtos/decorador.js.map +1 -1
  103. package/construtos/definir-valor.d.ts +1 -0
  104. package/construtos/definir-valor.d.ts.map +1 -1
  105. package/construtos/definir-valor.js +3 -0
  106. package/construtos/definir-valor.js.map +1 -1
  107. package/construtos/dicionario.d.ts +1 -0
  108. package/construtos/dicionario.d.ts.map +1 -1
  109. package/construtos/dicionario.js +3 -0
  110. package/construtos/dicionario.js.map +1 -1
  111. package/construtos/expressao-regular.d.ts +1 -0
  112. package/construtos/expressao-regular.d.ts.map +1 -1
  113. package/construtos/expressao-regular.js +3 -0
  114. package/construtos/expressao-regular.js.map +1 -1
  115. package/construtos/fim-para.d.ts +1 -0
  116. package/construtos/fim-para.d.ts.map +1 -1
  117. package/construtos/fim-para.js +3 -0
  118. package/construtos/fim-para.js.map +1 -1
  119. package/construtos/formatacao-escrita.d.ts +1 -0
  120. package/construtos/formatacao-escrita.d.ts.map +1 -1
  121. package/construtos/formatacao-escrita.js +3 -0
  122. package/construtos/formatacao-escrita.js.map +1 -1
  123. package/construtos/funcao.d.ts +1 -0
  124. package/construtos/funcao.d.ts.map +1 -1
  125. package/construtos/funcao.js +4 -0
  126. package/construtos/funcao.js.map +1 -1
  127. package/construtos/index.d.ts +1 -0
  128. package/construtos/index.d.ts.map +1 -1
  129. package/construtos/index.js +1 -0
  130. package/construtos/index.js.map +1 -1
  131. package/construtos/isto.d.ts +1 -0
  132. package/construtos/isto.d.ts.map +1 -1
  133. package/construtos/isto.js +3 -0
  134. package/construtos/isto.js.map +1 -1
  135. package/construtos/leia.d.ts +1 -0
  136. package/construtos/leia.d.ts.map +1 -1
  137. package/construtos/leia.js +3 -0
  138. package/construtos/leia.js.map +1 -1
  139. package/construtos/literal.d.ts +1 -0
  140. package/construtos/literal.d.ts.map +1 -1
  141. package/construtos/literal.js +3 -0
  142. package/construtos/literal.js.map +1 -1
  143. package/construtos/logico.d.ts +1 -0
  144. package/construtos/logico.d.ts.map +1 -1
  145. package/construtos/logico.js +5 -0
  146. package/construtos/logico.js.map +1 -1
  147. package/construtos/referencia-biblioteca-global.d.ts +1 -0
  148. package/construtos/referencia-biblioteca-global.d.ts.map +1 -1
  149. package/construtos/referencia-biblioteca-global.js +3 -0
  150. package/construtos/referencia-biblioteca-global.js.map +1 -1
  151. package/construtos/referencia-funcao.d.ts +1 -0
  152. package/construtos/referencia-funcao.d.ts.map +1 -1
  153. package/construtos/referencia-funcao.js +3 -0
  154. package/construtos/referencia-funcao.js.map +1 -1
  155. package/construtos/separador.d.ts +1 -0
  156. package/construtos/separador.d.ts.map +1 -1
  157. package/construtos/separador.js +3 -0
  158. package/construtos/separador.js.map +1 -1
  159. package/construtos/super.d.ts +1 -0
  160. package/construtos/super.d.ts.map +1 -1
  161. package/construtos/super.js +3 -0
  162. package/construtos/super.js.map +1 -1
  163. package/construtos/tipo-de.d.ts +1 -0
  164. package/construtos/tipo-de.d.ts.map +1 -1
  165. package/construtos/tipo-de.js +3 -0
  166. package/construtos/tipo-de.js.map +1 -1
  167. package/construtos/tupla.d.ts +11 -0
  168. package/construtos/tupla.d.ts.map +1 -0
  169. package/construtos/tupla.js.map +1 -0
  170. package/construtos/tuplas/deceto.d.ts +14 -12
  171. package/construtos/tuplas/deceto.d.ts.map +1 -1
  172. package/construtos/tuplas/deceto.js +15 -1
  173. package/construtos/tuplas/deceto.js.map +1 -1
  174. package/construtos/tuplas/dupla.d.ts +6 -4
  175. package/construtos/tuplas/dupla.d.ts.map +1 -1
  176. package/construtos/tuplas/dupla.js +6 -1
  177. package/construtos/tuplas/dupla.js.map +1 -1
  178. package/construtos/tuplas/index.d.ts +0 -1
  179. package/construtos/tuplas/index.d.ts.map +1 -1
  180. package/construtos/tuplas/index.js +0 -1
  181. package/construtos/tuplas/index.js.map +1 -1
  182. package/construtos/tuplas/noneto.d.ts +13 -11
  183. package/construtos/tuplas/noneto.d.ts.map +1 -1
  184. package/construtos/tuplas/noneto.js +13 -1
  185. package/construtos/tuplas/noneto.js.map +1 -1
  186. package/construtos/tuplas/octeto.d.ts +12 -10
  187. package/construtos/tuplas/octeto.d.ts.map +1 -1
  188. package/construtos/tuplas/octeto.js +12 -1
  189. package/construtos/tuplas/octeto.js.map +1 -1
  190. package/construtos/tuplas/quarteto.d.ts +8 -6
  191. package/construtos/tuplas/quarteto.d.ts.map +1 -1
  192. package/construtos/tuplas/quarteto.js +8 -1
  193. package/construtos/tuplas/quarteto.js.map +1 -1
  194. package/construtos/tuplas/quinteto.d.ts +9 -7
  195. package/construtos/tuplas/quinteto.d.ts.map +1 -1
  196. package/construtos/tuplas/quinteto.js +9 -1
  197. package/construtos/tuplas/quinteto.js.map +1 -1
  198. package/construtos/tuplas/septeto.d.ts +11 -9
  199. package/construtos/tuplas/septeto.d.ts.map +1 -1
  200. package/construtos/tuplas/septeto.js +11 -1
  201. package/construtos/tuplas/septeto.js.map +1 -1
  202. package/construtos/tuplas/sexteto.d.ts +10 -8
  203. package/construtos/tuplas/sexteto.d.ts.map +1 -1
  204. package/construtos/tuplas/sexteto.js +10 -1
  205. package/construtos/tuplas/sexteto.js.map +1 -1
  206. package/construtos/tuplas/trio.d.ts +7 -5
  207. package/construtos/tuplas/trio.d.ts.map +1 -1
  208. package/construtos/tuplas/trio.js +7 -1
  209. package/construtos/tuplas/trio.js.map +1 -1
  210. package/construtos/unario.d.ts +2 -1
  211. package/construtos/unario.d.ts.map +1 -1
  212. package/construtos/unario.js +3 -0
  213. package/construtos/unario.js.map +1 -1
  214. package/construtos/variavel.d.ts +1 -0
  215. package/construtos/variavel.d.ts.map +1 -1
  216. package/construtos/variavel.js +3 -0
  217. package/construtos/variavel.js.map +1 -1
  218. package/construtos/vetor.d.ts +1 -0
  219. package/construtos/vetor.d.ts.map +1 -1
  220. package/construtos/vetor.js +3 -0
  221. package/construtos/vetor.js.map +1 -1
  222. package/declaracoes/aleatorio.d.ts +1 -0
  223. package/declaracoes/aleatorio.d.ts.map +1 -1
  224. package/declaracoes/aleatorio.js +4 -0
  225. package/declaracoes/aleatorio.js.map +1 -1
  226. package/declaracoes/bloco.d.ts +3 -2
  227. package/declaracoes/bloco.d.ts.map +1 -1
  228. package/declaracoes/bloco.js +8 -0
  229. package/declaracoes/bloco.js.map +1 -1
  230. package/declaracoes/cabecalho-programa.d.ts +4 -0
  231. package/declaracoes/cabecalho-programa.d.ts.map +1 -1
  232. package/declaracoes/cabecalho-programa.js +6 -0
  233. package/declaracoes/cabecalho-programa.js.map +1 -1
  234. package/declaracoes/classe.d.ts +1 -0
  235. package/declaracoes/classe.d.ts.map +1 -1
  236. package/declaracoes/classe.js +15 -0
  237. package/declaracoes/classe.js.map +1 -1
  238. package/declaracoes/comentario.d.ts +1 -0
  239. package/declaracoes/comentario.d.ts.map +1 -1
  240. package/declaracoes/comentario.js +3 -0
  241. package/declaracoes/comentario.js.map +1 -1
  242. package/declaracoes/const-multiplo.d.ts +1 -0
  243. package/declaracoes/const-multiplo.d.ts.map +1 -1
  244. package/declaracoes/const-multiplo.js +4 -0
  245. package/declaracoes/const-multiplo.js.map +1 -1
  246. package/declaracoes/const.d.ts +1 -0
  247. package/declaracoes/const.d.ts.map +1 -1
  248. package/declaracoes/const.js +3 -0
  249. package/declaracoes/const.js.map +1 -1
  250. package/declaracoes/continua.d.ts +1 -0
  251. package/declaracoes/continua.d.ts.map +1 -1
  252. package/declaracoes/continua.js +3 -0
  253. package/declaracoes/continua.js.map +1 -1
  254. package/declaracoes/declaracao.d.ts +3 -1
  255. package/declaracoes/declaracao.d.ts.map +1 -1
  256. package/declaracoes/declaracao.js +3 -0
  257. package/declaracoes/declaracao.js.map +1 -1
  258. package/declaracoes/enquanto.d.ts +1 -0
  259. package/declaracoes/enquanto.d.ts.map +1 -1
  260. package/declaracoes/enquanto.js +4 -0
  261. package/declaracoes/enquanto.js.map +1 -1
  262. package/declaracoes/escolha.d.ts +1 -0
  263. package/declaracoes/escolha.d.ts.map +1 -1
  264. package/declaracoes/escolha.js +4 -0
  265. package/declaracoes/escolha.js.map +1 -1
  266. package/declaracoes/escreva-mesma-linha.d.ts +1 -0
  267. package/declaracoes/escreva-mesma-linha.d.ts.map +1 -1
  268. package/declaracoes/escreva-mesma-linha.js +3 -0
  269. package/declaracoes/escreva-mesma-linha.js.map +1 -1
  270. package/declaracoes/escreva.d.ts +1 -0
  271. package/declaracoes/escreva.d.ts.map +1 -1
  272. package/declaracoes/escreva.js +3 -0
  273. package/declaracoes/escreva.js.map +1 -1
  274. package/declaracoes/expressao.d.ts +1 -0
  275. package/declaracoes/expressao.d.ts.map +1 -1
  276. package/declaracoes/expressao.js +3 -0
  277. package/declaracoes/expressao.js.map +1 -1
  278. package/declaracoes/falhar.d.ts +1 -0
  279. package/declaracoes/falhar.d.ts.map +1 -1
  280. package/declaracoes/falhar.js +3 -0
  281. package/declaracoes/falhar.js.map +1 -1
  282. package/declaracoes/fazer.d.ts +2 -1
  283. package/declaracoes/fazer.d.ts.map +1 -1
  284. package/declaracoes/fazer.js +4 -0
  285. package/declaracoes/fazer.js.map +1 -1
  286. package/declaracoes/funcao.d.ts +1 -0
  287. package/declaracoes/funcao.d.ts.map +1 -1
  288. package/declaracoes/funcao.js +4 -0
  289. package/declaracoes/funcao.js.map +1 -1
  290. package/declaracoes/importar.d.ts +1 -0
  291. package/declaracoes/importar.d.ts.map +1 -1
  292. package/declaracoes/importar.js +3 -0
  293. package/declaracoes/importar.js.map +1 -1
  294. package/declaracoes/inicio-algoritmo.d.ts +1 -0
  295. package/declaracoes/inicio-algoritmo.d.ts.map +1 -1
  296. package/declaracoes/inicio-algoritmo.js +5 -0
  297. package/declaracoes/inicio-algoritmo.js.map +1 -1
  298. package/declaracoes/para-cada.d.ts +1 -0
  299. package/declaracoes/para-cada.d.ts.map +1 -1
  300. package/declaracoes/para-cada.js +4 -0
  301. package/declaracoes/para-cada.js.map +1 -1
  302. package/declaracoes/para.d.ts +2 -1
  303. package/declaracoes/para.d.ts.map +1 -1
  304. package/declaracoes/para.js +11 -0
  305. package/declaracoes/para.js.map +1 -1
  306. package/declaracoes/propriedade-classe.d.ts +1 -0
  307. package/declaracoes/propriedade-classe.d.ts.map +1 -1
  308. package/declaracoes/propriedade-classe.js +3 -0
  309. package/declaracoes/propriedade-classe.js.map +1 -1
  310. package/declaracoes/retorna.d.ts +1 -0
  311. package/declaracoes/retorna.d.ts.map +1 -1
  312. package/declaracoes/retorna.js +3 -0
  313. package/declaracoes/retorna.js.map +1 -1
  314. package/declaracoes/se.d.ts +3 -2
  315. package/declaracoes/se.d.ts.map +1 -1
  316. package/declaracoes/se.js +4 -0
  317. package/declaracoes/se.js.map +1 -1
  318. package/declaracoes/sustar.d.ts +1 -0
  319. package/declaracoes/sustar.d.ts.map +1 -1
  320. package/declaracoes/sustar.js +3 -0
  321. package/declaracoes/sustar.js.map +1 -1
  322. package/declaracoes/tendo-como.d.ts +1 -0
  323. package/declaracoes/tendo-como.d.ts.map +1 -1
  324. package/declaracoes/tendo-como.js +4 -0
  325. package/declaracoes/tendo-como.js.map +1 -1
  326. package/declaracoes/tente.d.ts +3 -2
  327. package/declaracoes/tente.d.ts.map +1 -1
  328. package/declaracoes/tente.js +4 -0
  329. package/declaracoes/tente.js.map +1 -1
  330. package/declaracoes/var-multiplo.d.ts +1 -0
  331. package/declaracoes/var-multiplo.d.ts.map +1 -1
  332. package/declaracoes/var-multiplo.js +4 -0
  333. package/declaracoes/var-multiplo.js.map +1 -1
  334. package/declaracoes/var.d.ts +1 -0
  335. package/declaracoes/var.d.ts.map +1 -1
  336. package/declaracoes/var.js +3 -0
  337. package/declaracoes/var.js.map +1 -1
  338. package/interfaces/avaliador-sintatico-interface.d.ts +2 -0
  339. package/interfaces/avaliador-sintatico-interface.d.ts.map +1 -1
  340. package/interfaces/index.d.ts +1 -0
  341. package/interfaces/index.d.ts.map +1 -1
  342. package/interfaces/index.js +1 -0
  343. package/interfaces/index.js.map +1 -1
  344. package/interfaces/interpretador-interface.d.ts +3 -2
  345. package/interfaces/interpretador-interface.d.ts.map +1 -1
  346. package/interfaces/resultado-parcial-interpretador-interface.d.ts +8 -0
  347. package/interfaces/resultado-parcial-interpretador-interface.d.ts.map +1 -0
  348. package/interfaces/resultado-parcial-interpretador-interface.js +3 -0
  349. package/interfaces/resultado-parcial-interpretador-interface.js.map +1 -0
  350. package/interfaces/retornos/index.d.ts +1 -1
  351. package/interfaces/retornos/index.d.ts.map +1 -1
  352. package/interfaces/retornos/index.js +1 -1
  353. package/interfaces/retornos/index.js.map +1 -1
  354. package/interfaces/retornos/retorno-interpretador-interface.d.ts +7 -0
  355. package/interfaces/retornos/retorno-interpretador-interface.d.ts.map +1 -0
  356. package/interfaces/retornos/{retorno-interpretador.js → retorno-interpretador-interface.js} +1 -1
  357. package/interfaces/retornos/retorno-interpretador-interface.js.map +1 -0
  358. package/interfaces/variavel-interface.d.ts +2 -3
  359. package/interfaces/variavel-interface.d.ts.map +1 -1
  360. package/interpretador/depuracao/comum.d.ts.map +1 -1
  361. package/interpretador/depuracao/comum.js +2 -1
  362. package/interpretador/depuracao/comum.js.map +1 -1
  363. package/interpretador/depuracao/interpretador-base-com-depuracao.d.ts +2 -2
  364. package/interpretador/depuracao/interpretador-base-com-depuracao.d.ts.map +1 -1
  365. package/interpretador/depuracao/interpretador-base-com-depuracao.js.map +1 -1
  366. package/interpretador/depuracao/interpretador-com-depuracao.d.ts +2 -2
  367. package/interpretador/depuracao/interpretador-com-depuracao.d.ts.map +1 -1
  368. package/interpretador/depuracao/interpretador-com-depuracao.js.map +1 -1
  369. package/interpretador/dialetos/calango/interpretador-calango.d.ts +5 -0
  370. package/interpretador/dialetos/calango/interpretador-calango.d.ts.map +1 -0
  371. package/interpretador/dialetos/calango/interpretador-calango.js +8 -0
  372. package/interpretador/dialetos/calango/interpretador-calango.js.map +1 -0
  373. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts +3 -3
  374. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts.map +1 -1
  375. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +1 -0
  376. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
  377. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts +3 -2
  378. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts.map +1 -1
  379. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js +3 -0
  380. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js.map +1 -1
  381. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts +5 -5
  382. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts.map +1 -1
  383. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js.map +1 -1
  384. package/interpretador/estruturas/classe-padrao.js +2 -2
  385. package/interpretador/estruturas/classe-padrao.js.map +1 -1
  386. package/interpretador/estruturas/delegua-funcao.js +3 -3
  387. package/interpretador/estruturas/delegua-funcao.js.map +1 -1
  388. package/interpretador/estruturas/descritor-tipo-classe.js +2 -2
  389. package/interpretador/estruturas/descritor-tipo-classe.js.map +1 -1
  390. package/interpretador/estruturas/funcao-padrao.js +1 -1
  391. package/interpretador/estruturas/funcao-padrao.js.map +1 -1
  392. package/interpretador/estruturas/metodo-primitiva.js +1 -1
  393. package/interpretador/estruturas/metodo-primitiva.js.map +1 -1
  394. package/interpretador/estruturas/modulo.js +1 -1
  395. package/interpretador/estruturas/modulo.js.map +1 -1
  396. package/interpretador/estruturas/objeto-delegua-classe.js +1 -1
  397. package/interpretador/estruturas/objeto-delegua-classe.js.map +1 -1
  398. package/interpretador/estruturas/objeto-padrao.js +1 -1
  399. package/interpretador/estruturas/objeto-padrao.js.map +1 -1
  400. package/interpretador/estruturas/referencia-montao.js +1 -1
  401. package/interpretador/estruturas/referencia-montao.js.map +1 -1
  402. package/interpretador/interpretador-base.d.ts +25 -13
  403. package/interpretador/interpretador-base.d.ts.map +1 -1
  404. package/interpretador/interpretador-base.js +125 -49
  405. package/interpretador/interpretador-base.js.map +1 -1
  406. package/interpretador/interpretador-com-depuracao.d.ts +2 -2
  407. package/interpretador/interpretador-com-depuracao.d.ts.map +1 -1
  408. package/interpretador/interpretador-com-depuracao.js +2 -1
  409. package/interpretador/interpretador-com-depuracao.js.map +1 -1
  410. package/interpretador/interpretador.d.ts +8 -6
  411. package/interpretador/interpretador.d.ts.map +1 -1
  412. package/interpretador/interpretador.js +32 -29
  413. package/interpretador/interpretador.js.map +1 -1
  414. package/interpretador/pilha-escopos-execucao.d.ts.map +1 -1
  415. package/interpretador/pilha-escopos-execucao.js +8 -3
  416. package/interpretador/pilha-escopos-execucao.js.map +1 -1
  417. package/lexador/dialetos/index.d.ts +1 -0
  418. package/lexador/dialetos/index.d.ts.map +1 -1
  419. package/lexador/dialetos/index.js +1 -0
  420. package/lexador/dialetos/index.js.map +1 -1
  421. package/lexador/dialetos/lexador-calango.d.ts +29 -0
  422. package/lexador/dialetos/lexador-calango.d.ts.map +1 -0
  423. package/lexador/dialetos/lexador-calango.js +231 -0
  424. package/lexador/dialetos/lexador-calango.js.map +1 -0
  425. package/lexador/dialetos/lexador-pitugues.d.ts.map +1 -1
  426. package/lexador/dialetos/lexador-pitugues.js +4 -0
  427. package/lexador/dialetos/lexador-pitugues.js.map +1 -1
  428. package/lexador/dialetos/palavras-reservadas/calango.d.ts +15 -0
  429. package/lexador/dialetos/palavras-reservadas/calango.d.ts.map +1 -0
  430. package/lexador/dialetos/palavras-reservadas/calango.js +20 -0
  431. package/lexador/dialetos/palavras-reservadas/calango.js.map +1 -0
  432. package/lexador/micro-lexador.d.ts.map +1 -1
  433. package/lexador/micro-lexador.js +8 -0
  434. package/lexador/micro-lexador.js.map +1 -1
  435. package/package.json +1 -1
  436. package/quebras/index.d.ts +2 -1
  437. package/quebras/index.d.ts.map +1 -1
  438. package/quebras/index.js +2 -1
  439. package/quebras/index.js.map +1 -1
  440. package/tipos-de-dados/dialetos/pitugues.d.ts +28 -0
  441. package/tipos-de-dados/dialetos/pitugues.d.ts.map +1 -0
  442. package/tipos-de-dados/dialetos/pitugues.js +29 -0
  443. package/tipos-de-dados/dialetos/pitugues.js.map +1 -0
  444. package/tipos-de-simbolos/calango.d.ts +42 -0
  445. package/tipos-de-simbolos/calango.d.ts.map +1 -0
  446. package/tipos-de-simbolos/calango.js +43 -0
  447. package/tipos-de-simbolos/calango.js.map +1 -0
  448. package/tipos-de-simbolos/pitugues.d.ts +1 -0
  449. package/tipos-de-simbolos/pitugues.d.ts.map +1 -1
  450. package/tipos-de-simbolos/pitugues.js +1 -0
  451. package/tipos-de-simbolos/pitugues.js.map +1 -1
  452. package/tradutores/index.d.ts +1 -0
  453. package/tradutores/index.d.ts.map +1 -1
  454. package/tradutores/index.js +1 -0
  455. package/tradutores/index.js.map +1 -1
  456. package/tradutores/tradutor-assemblyscript.js.map +1 -1
  457. package/tradutores/tradutor-calango.d.ts +22 -0
  458. package/tradutores/tradutor-calango.d.ts.map +1 -0
  459. package/tradutores/tradutor-calango.js +61 -0
  460. package/tradutores/tradutor-calango.js.map +1 -0
  461. package/tradutores/tradutor-javascript.js +1 -1
  462. package/tradutores/tradutor-javascript.js.map +1 -1
  463. package/tradutores/tradutor-python.js +1 -1
  464. package/tradutores/tradutor-python.js.map +1 -1
  465. package/tradutores/tradutor-reverso-tenda.js +1 -1
  466. package/tradutores/tradutor-reverso-tenda.js.map +1 -1
  467. package/umd/delegua.js +1570 -649
  468. package/construtos/tuplas/tupla.d.ts +0 -9
  469. package/construtos/tuplas/tupla.d.ts.map +0 -1
  470. package/construtos/tuplas/tupla.js.map +0 -1
  471. package/interfaces/retornos/retorno-interpretador.d.ts +0 -6
  472. package/interfaces/retornos/retorno-interpretador.d.ts.map +0 -1
  473. package/interfaces/retornos/retorno-interpretador.js.map +0 -1
  474. /package/construtos/{tuplas/tupla.js → tupla.js} +0 -0
@@ -13,12 +13,13 @@ const inferenciador_1 = require("../../inferenciador");
13
13
  const pilha_escopos_1 = require("../pilha-escopos");
14
14
  const informacao_escopo_1 = require("../informacao-escopo");
15
15
  const informacao_variavel_ou_constante_1 = require("../../informacao-variavel-ou-constante");
16
- const pitugues_1 = __importDefault(require("../../tipos-de-simbolos/pitugues"));
16
+ const comum_1 = require("../comum");
17
+ const pitugues_1 = __importDefault(require("../../tipos-de-dados/dialetos/pitugues"));
18
+ const pitugues_2 = __importDefault(require("../../tipos-de-simbolos/pitugues"));
17
19
  const primitivas_dicionario_1 = __importDefault(require("../../bibliotecas/primitivas-dicionario"));
18
20
  const primitivas_numero_1 = __importDefault(require("../../bibliotecas/primitivas-numero"));
19
21
  const primitivas_texto_1 = __importDefault(require("../../bibliotecas/primitivas-texto"));
20
22
  const primitivas_vetor_1 = __importDefault(require("../../bibliotecas/primitivas-vetor"));
21
- const comum_1 = require("../comum");
22
23
  /**
23
24
  * O avaliador sintático (_Parser_) é responsável por transformar os símbolos do Lexador em estruturas de alto nível.
24
25
  * Essas estruturas de alto nível são as partes que executam lógica de programação de fato.
@@ -113,12 +114,12 @@ class AvaliadorSintaticoPitugues {
113
114
  }
114
115
  expressaoLeia() {
115
116
  const simboloLeia = this.avancarEDevolverAnterior();
116
- this.consumir(pitugues_1.default.PARENTESE_ESQUERDO, "Esperado '(' antes dos valores em leia.");
117
+ this.consumir(pitugues_2.default.PARENTESE_ESQUERDO, "Esperado '(' antes dos valores em leia.");
117
118
  const argumentos = [];
118
119
  do {
119
120
  argumentos.push(this.expressao());
120
- } while (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.VIRGULA));
121
- this.consumir(pitugues_1.default.PARENTESE_DIREITO, "Esperado ')' após os valores em leia.");
121
+ } while (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.VIRGULA));
122
+ this.consumir(pitugues_2.default.PARENTESE_DIREITO, "Esperado ')' após os valores em leia.");
122
123
  return new construtos_1.Leia(simboloLeia, argumentos);
123
124
  }
124
125
  declaracaoDeConstantes() {
@@ -131,19 +132,19 @@ class AvaliadorSintaticoPitugues {
131
132
  return this.declaracaoDesestruturacaoConstante();
132
133
  } */
133
134
  do {
134
- identificadores.push(this.consumir(pitugues_1.default.IDENTIFICADOR, 'Esperado nome da constante.'));
135
- } while (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.VIRGULA));
135
+ identificadores.push(this.consumir(pitugues_2.default.IDENTIFICADOR, 'Esperado nome da constante.'));
136
+ } while (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.VIRGULA));
136
137
  // TODO: Discutir com comunidade como seria melhor fazer
137
138
  // dicas de tipos.
138
139
  /* if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos.DOIS_PONTOS)) {
139
140
  tipo = this.verificarDefinicaoTipoAtual();
140
141
  this.avancarEDevolverAnterior();
141
142
  } */
142
- this.consumir(pitugues_1.default.IGUAL, "Esperado '=' após identificador em instrução 'constante'.");
143
+ this.consumir(pitugues_2.default.IGUAL, "Esperado '=' após identificador em instrução 'constante'.");
143
144
  const inicializadores = [];
144
145
  do {
145
146
  inicializadores.push(this.expressao());
146
- } while (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.VIRGULA));
147
+ } while (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.VIRGULA));
147
148
  // TODO: Muito provavelmente, com desestruturação, essa validação
148
149
  // não será necessária.
149
150
  /* if (identificadores.length !== inicializadores.length) {
@@ -173,20 +174,20 @@ class AvaliadorSintaticoPitugues {
173
174
  let retorno = [];
174
175
  let tipo = 'qualquer';
175
176
  do {
176
- identificadores.push(this.consumir(pitugues_1.default.IDENTIFICADOR, 'Esperado nome de variável.'));
177
- } while (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.VIRGULA));
178
- if (!this.verificarSeSimboloAtualEIgualA(pitugues_1.default.IGUAL)) {
177
+ identificadores.push(this.consumir(pitugues_2.default.IDENTIFICADOR, 'Esperado nome de variável.'));
178
+ } while (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.VIRGULA));
179
+ if (!this.verificarSeSimboloAtualEIgualA(pitugues_2.default.IGUAL)) {
179
180
  // Inicialização de variáveis sem valor.
180
181
  for (let [indice, identificador] of identificadores.entries()) {
181
182
  retorno.push(new declaracoes_1.Var(identificador, null));
182
183
  }
183
- this.verificarSeSimboloAtualEIgualA(pitugues_1.default.PONTO_E_VIRGULA);
184
+ this.verificarSeSimboloAtualEIgualA(pitugues_2.default.PONTO_E_VIRGULA);
184
185
  return retorno;
185
186
  }
186
187
  const inicializadores = [];
187
188
  do {
188
189
  inicializadores.push(this.expressao());
189
- } while (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.VIRGULA));
190
+ } while (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.VIRGULA));
190
191
  if (identificadores.length !== inicializadores.length) {
191
192
  throw this.erro(this.simboloAtual(), 'Quantidade de identificadores à esquerda do igual é diferente da quantidade de valores à direita.');
192
193
  }
@@ -202,15 +203,15 @@ class AvaliadorSintaticoPitugues {
202
203
  this.avancarEDevolverAnterior();
203
204
  while (!this.estaNoFinal()) {
204
205
  switch (this.simboloAtual().tipo) {
205
- case pitugues_1.default.CLASSE:
206
- case pitugues_1.default.FUNCAO:
207
- case pitugues_1.default.FUNÇÃO:
208
- case pitugues_1.default.VARIAVEL:
209
- case pitugues_1.default.PARA:
210
- case pitugues_1.default.SE:
211
- case pitugues_1.default.ENQUANTO:
212
- case pitugues_1.default.ESCREVA:
213
- case pitugues_1.default.RETORNA:
206
+ case pitugues_2.default.CLASSE:
207
+ case pitugues_2.default.FUNCAO:
208
+ case pitugues_2.default.FUNÇÃO:
209
+ case pitugues_2.default.VARIAVEL:
210
+ case pitugues_2.default.PARA:
211
+ case pitugues_2.default.SE:
212
+ case pitugues_2.default.ENQUANTO:
213
+ case pitugues_2.default.ESCREVA:
214
+ case pitugues_2.default.RETORNA:
214
215
  return;
215
216
  }
216
217
  this.avancarEDevolverAnterior();
@@ -267,64 +268,64 @@ class AvaliadorSintaticoPitugues {
267
268
  const simboloAtual = this.simbolos[this.atual];
268
269
  let valores = [];
269
270
  switch (simboloAtual.tipo) {
270
- case pitugues_1.default.COLCHETE_ESQUERDO:
271
+ case pitugues_2.default.COLCHETE_ESQUERDO:
271
272
  this.avancarEDevolverAnterior();
272
- if (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.COLCHETE_DIREITO)) {
273
+ if (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.COLCHETE_DIREITO)) {
273
274
  return new construtos_1.Vetor(this.hashArquivo, simboloAtual.linha, [], 0, 'qualquer[]');
274
275
  }
275
- while (!this.verificarSeSimboloAtualEIgualA(pitugues_1.default.COLCHETE_DIREITO)) {
276
+ while (!this.verificarSeSimboloAtualEIgualA(pitugues_2.default.COLCHETE_DIREITO)) {
276
277
  const valor = this.atribuir();
277
278
  valores.push(valor);
278
- if (this.simbolos[this.atual].tipo !== pitugues_1.default.COLCHETE_DIREITO) {
279
- this.consumir(pitugues_1.default.VIRGULA, 'Esperado vírgula antes da próxima expressão.');
279
+ if (this.simbolos[this.atual].tipo !== pitugues_2.default.COLCHETE_DIREITO) {
280
+ this.consumir(pitugues_2.default.VIRGULA, 'Esperado vírgula antes da próxima expressão.');
280
281
  }
281
282
  }
282
283
  const tipoVetor = (0, inferenciador_1.inferirTipoVariavel)(valores);
283
284
  return new construtos_1.Vetor(this.hashArquivo, simboloAtual.linha, valores, valores.length, tipoVetor);
284
- case pitugues_1.default.CHAVE_ESQUERDA:
285
+ case pitugues_2.default.CHAVE_ESQUERDA:
285
286
  this.avancarEDevolverAnterior();
286
287
  const chaves = [];
287
- if (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.CHAVE_DIREITA)) {
288
+ if (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.CHAVE_DIREITA)) {
288
289
  return new construtos_1.Dicionario(this.hashArquivo, simboloAtual.linha, [], []);
289
290
  }
290
- while (!this.verificarSeSimboloAtualEIgualA(pitugues_1.default.CHAVE_DIREITA)) {
291
+ while (!this.verificarSeSimboloAtualEIgualA(pitugues_2.default.CHAVE_DIREITA)) {
291
292
  const chave = this.atribuir();
292
- this.consumir(pitugues_1.default.DOIS_PONTOS, "Esperado ':' entre chave e valor.");
293
+ this.consumir(pitugues_2.default.DOIS_PONTOS, "Esperado ':' entre chave e valor.");
293
294
  const valor = this.atribuir();
294
295
  chaves.push(chave);
295
296
  valores.push(valor);
296
- if (this.simboloAtual().tipo !== pitugues_1.default.CHAVE_DIREITA) {
297
- this.consumir(pitugues_1.default.VIRGULA, 'Esperado vírgula antes da próxima expressão.');
297
+ if (this.simboloAtual().tipo !== pitugues_2.default.CHAVE_DIREITA) {
298
+ this.consumir(pitugues_2.default.VIRGULA, 'Esperado vírgula antes da próxima expressão.');
298
299
  }
299
300
  }
300
301
  return new construtos_1.Dicionario(this.hashArquivo, simboloAtual.linha, chaves, valores);
301
- case pitugues_1.default.FALSO:
302
- case pitugues_1.default.VERDADEIRO:
302
+ case pitugues_2.default.FALSO:
303
+ case pitugues_2.default.VERDADEIRO:
303
304
  const simboloLogico = this.avancarEDevolverAnterior();
304
- return new construtos_1.Literal(this.hashArquivo, simboloAtual.linha, simboloLogico.tipo === pitugues_1.default.VERDADEIRO, 'lógico');
305
- case pitugues_1.default.FUNCAO:
306
- case pitugues_1.default.FUNÇÃO:
305
+ return new construtos_1.Literal(this.hashArquivo, simboloAtual.linha, simboloLogico.tipo === pitugues_2.default.VERDADEIRO, 'lógico');
306
+ case pitugues_2.default.FUNCAO:
307
+ case pitugues_2.default.FUNÇÃO:
307
308
  const simboloFuncao = this.avancarEDevolverAnterior();
308
309
  const corpoDaFuncao = this.corpoDaFuncao(simboloFuncao.lexema);
309
310
  this.pilhaEscopos.definirInformacoesVariavel(simboloFuncao.lexema, new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante(simboloFuncao.lexema, 'função'));
310
311
  return corpoDaFuncao;
311
- case pitugues_1.default.IMPORTAR:
312
+ case pitugues_2.default.IMPORTAR:
312
313
  return this.declaracaoImportar();
313
- case pitugues_1.default.NULO:
314
+ case pitugues_2.default.NULO:
314
315
  this.avancarEDevolverAnterior();
315
316
  return new construtos_1.Literal(this.hashArquivo, simboloAtual.linha, null);
316
- case pitugues_1.default.ISTO:
317
+ case pitugues_2.default.ISTO:
317
318
  const simboloIsto = this.avancarEDevolverAnterior();
318
319
  return new construtos_1.Isto(this.hashArquivo, simboloAtual.linha, simboloIsto);
319
- case pitugues_1.default.LEIA:
320
+ case pitugues_2.default.LEIA:
320
321
  return this.expressaoLeia();
321
- case pitugues_1.default.NUMERO:
322
- case pitugues_1.default.TEXTO:
322
+ case pitugues_2.default.NUMERO:
323
+ case pitugues_2.default.TEXTO:
323
324
  const simboloLiteral = this.avancarEDevolverAnterior();
324
325
  const tipoInferido = (0, inferenciador_1.inferirTipoVariavel)(simboloLiteral.literal);
325
326
  const tipoDadosElementar = (0, inferenciador_1.tipoInferenciaParaTipoDadosElementar)(tipoInferido);
326
327
  return new construtos_1.Literal(this.hashArquivo, Number(simboloLiteral.linha), simboloLiteral.literal, tipoDadosElementar);
327
- case pitugues_1.default.IDENTIFICADOR:
328
+ case pitugues_2.default.IDENTIFICADOR:
328
329
  const simboloIdentificador = this.avancarEDevolverAnterior();
329
330
  let tipoOperando;
330
331
  if (simboloIdentificador.lexema in this.tiposDefinidosEmCodigo) {
@@ -339,12 +340,12 @@ class AvaliadorSintaticoPitugues {
339
340
  }
340
341
  }
341
342
  return new construtos_1.Variavel(this.hashArquivo, simboloIdentificador, tipoOperando);
342
- case pitugues_1.default.PARENTESE_ESQUERDO:
343
+ case pitugues_2.default.PARENTESE_ESQUERDO:
343
344
  this.avancarEDevolverAnterior();
344
345
  const expressao = this.expressao();
345
- this.consumir(pitugues_1.default.PARENTESE_DIREITO, "Esperado ')' após a expressão.");
346
+ this.consumir(pitugues_2.default.PARENTESE_DIREITO, "Esperado ')' após a expressão.");
346
347
  return new construtos_1.Agrupamento(this.hashArquivo, simboloAtual.linha, expressao);
347
- case pitugues_1.default.SUPER:
348
+ case pitugues_2.default.SUPER:
348
349
  const simboloSuper = this.avancarEDevolverAnterior();
349
350
  return new construtos_1.Super(this.hashArquivo, simboloSuper, this.superclasseAtual);
350
351
  }
@@ -352,30 +353,30 @@ class AvaliadorSintaticoPitugues {
352
353
  }
353
354
  finalizarChamada(entidadeChamada) {
354
355
  const argumentos = [];
355
- if (!this.verificarTipoSimboloAtual(pitugues_1.default.PARENTESE_DIREITO)) {
356
+ if (!this.verificarTipoSimboloAtual(pitugues_2.default.PARENTESE_DIREITO)) {
356
357
  do {
357
358
  if (argumentos.length >= 255) {
358
359
  throw this.erro(this.simboloAtual(), 'Não pode haver mais de 255 argumentos.');
359
360
  }
360
361
  argumentos.push(this.expressao());
361
- } while (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.VIRGULA));
362
+ } while (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.VIRGULA));
362
363
  }
363
- this.consumir(pitugues_1.default.PARENTESE_DIREITO, "Esperado ')' após os argumentos.");
364
+ this.consumir(pitugues_2.default.PARENTESE_DIREITO, "Esperado ')' após os argumentos.");
364
365
  return new construtos_1.Chamada(this.hashArquivo, entidadeChamada, argumentos);
365
366
  }
366
367
  chamar() {
367
368
  let expressao = this.primario();
368
369
  while (true) {
369
- if (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.PARENTESE_ESQUERDO)) {
370
+ if (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.PARENTESE_ESQUERDO)) {
370
371
  expressao = this.finalizarChamada(expressao);
371
372
  }
372
- else if (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.PONTO)) {
373
- const nome = this.consumir(pitugues_1.default.IDENTIFICADOR, "Esperado nome do método após '.'.");
373
+ else if (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.PONTO)) {
374
+ const nome = this.consumir(pitugues_2.default.IDENTIFICADOR, "Esperado nome do método após '.'.");
374
375
  expressao = new construtos_1.AcessoMetodoOuPropriedade(this.hashArquivo, expressao, nome);
375
376
  }
376
- else if (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.COLCHETE_ESQUERDO)) {
377
+ else if (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.COLCHETE_ESQUERDO)) {
377
378
  const indice = this.expressao();
378
- const simboloFechamento = this.consumir(pitugues_1.default.COLCHETE_DIREITO, "Esperado ']' após escrita do indice.");
379
+ const simboloFechamento = this.consumir(pitugues_2.default.COLCHETE_DIREITO, "Esperado ']' após escrita do indice.");
379
380
  expressao = new construtos_1.AcessoIndiceVariavel(this.hashArquivo, expressao, indice, simboloFechamento);
380
381
  }
381
382
  else {
@@ -385,7 +386,7 @@ class AvaliadorSintaticoPitugues {
385
386
  return expressao;
386
387
  }
387
388
  unario() {
388
- if (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.NEGACAO, pitugues_1.default.SUBTRACAO, pitugues_1.default.BIT_NOT)) {
389
+ if (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.NEGACAO, pitugues_2.default.SUBTRACAO, pitugues_2.default.BIT_NOT)) {
389
390
  const operador = this.simboloAnterior();
390
391
  const direito = this.unario();
391
392
  return new construtos_1.Unario(this.hashArquivo, operador, direito);
@@ -394,7 +395,7 @@ class AvaliadorSintaticoPitugues {
394
395
  }
395
396
  exponenciacao() {
396
397
  let expressao = this.unario();
397
- while (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.EXPONENCIACAO)) {
398
+ while (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.EXPONENCIACAO)) {
398
399
  const operador = this.simboloAnterior();
399
400
  const direito = this.unario();
400
401
  expressao = new construtos_1.Binario(this.hashArquivo, expressao, operador, direito);
@@ -403,7 +404,7 @@ class AvaliadorSintaticoPitugues {
403
404
  }
404
405
  multiplicar() {
405
406
  let expressao = this.exponenciacao();
406
- while (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.DIVISAO, pitugues_1.default.DIVISAO_INTEIRA, pitugues_1.default.MULTIPLICACAO, pitugues_1.default.MODULO)) {
407
+ while (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.DIVISAO, pitugues_2.default.DIVISAO_INTEIRA, pitugues_2.default.MULTIPLICACAO, pitugues_2.default.MODULO)) {
407
408
  const operador = this.simboloAnterior();
408
409
  const direito = this.exponenciacao();
409
410
  expressao = new construtos_1.Binario(this.hashArquivo, expressao, operador, direito);
@@ -412,7 +413,7 @@ class AvaliadorSintaticoPitugues {
412
413
  }
413
414
  adicaoOuSubtracao() {
414
415
  let expressao = this.multiplicar();
415
- while (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.SUBTRACAO, pitugues_1.default.ADICAO)) {
416
+ while (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.SUBTRACAO, pitugues_2.default.ADICAO)) {
416
417
  const operador = this.simboloAnterior();
417
418
  const direito = this.multiplicar();
418
419
  expressao = new construtos_1.Binario(this.hashArquivo, expressao, operador, direito);
@@ -421,7 +422,7 @@ class AvaliadorSintaticoPitugues {
421
422
  }
422
423
  bitShift() {
423
424
  let expressao = this.adicaoOuSubtracao();
424
- while (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.MENOR_MENOR, pitugues_1.default.MAIOR_MAIOR)) {
425
+ while (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.MENOR_MENOR, pitugues_2.default.MAIOR_MAIOR)) {
425
426
  const operador = this.simboloAnterior();
426
427
  const direito = this.adicaoOuSubtracao();
427
428
  expressao = new construtos_1.Binario(this.hashArquivo, expressao, operador, direito);
@@ -430,7 +431,7 @@ class AvaliadorSintaticoPitugues {
430
431
  }
431
432
  bitE() {
432
433
  let expressao = this.bitShift();
433
- while (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.BIT_AND)) {
434
+ while (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.BIT_AND)) {
434
435
  const operador = this.simboloAnterior();
435
436
  const direito = this.bitShift();
436
437
  expressao = new construtos_1.Binario(this.hashArquivo, expressao, operador, direito);
@@ -439,7 +440,7 @@ class AvaliadorSintaticoPitugues {
439
440
  }
440
441
  bitOu() {
441
442
  let expressao = this.bitE();
442
- while (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.BIT_OR, pitugues_1.default.BIT_XOR)) {
443
+ while (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.BIT_OR, pitugues_2.default.BIT_XOR)) {
443
444
  const operador = this.simboloAnterior();
444
445
  const direito = this.bitE();
445
446
  expressao = new construtos_1.Binario(this.hashArquivo, expressao, operador, direito);
@@ -448,7 +449,7 @@ class AvaliadorSintaticoPitugues {
448
449
  }
449
450
  comparar() {
450
451
  let expressao = this.bitOu();
451
- while (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.MAIOR, pitugues_1.default.MAIOR_IGUAL, pitugues_1.default.MENOR, pitugues_1.default.MENOR_IGUAL)) {
452
+ while (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.MAIOR, pitugues_2.default.MAIOR_IGUAL, pitugues_2.default.MENOR, pitugues_2.default.MENOR_IGUAL)) {
452
453
  const operador = this.simboloAnterior();
453
454
  const direito = this.bitOu();
454
455
  expressao = new construtos_1.Binario(this.hashArquivo, expressao, operador, direito);
@@ -457,7 +458,7 @@ class AvaliadorSintaticoPitugues {
457
458
  }
458
459
  comparacaoIgualdade() {
459
460
  let expressao = this.comparar();
460
- while (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.DIFERENTE, pitugues_1.default.IGUAL_IGUAL)) {
461
+ while (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.DIFERENTE, pitugues_2.default.IGUAL_IGUAL)) {
461
462
  const operador = this.simboloAnterior();
462
463
  const direito = this.comparar();
463
464
  expressao = new construtos_1.Binario(this.hashArquivo, expressao, operador, direito);
@@ -466,7 +467,7 @@ class AvaliadorSintaticoPitugues {
466
467
  }
467
468
  em() {
468
469
  let expressao = this.comparacaoIgualdade();
469
- while (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.EM)) {
470
+ while (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.EM)) {
470
471
  const operador = this.simboloAnterior();
471
472
  const direito = this.comparacaoIgualdade();
472
473
  expressao = new construtos_1.Logico(this.hashArquivo, expressao, operador, direito);
@@ -475,7 +476,7 @@ class AvaliadorSintaticoPitugues {
475
476
  }
476
477
  e() {
477
478
  let expressao = this.em();
478
- while (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.E)) {
479
+ while (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.E)) {
479
480
  const operador = this.simboloAnterior();
480
481
  const direito = this.em();
481
482
  expressao = new construtos_1.Logico(this.hashArquivo, expressao, operador, direito);
@@ -484,7 +485,7 @@ class AvaliadorSintaticoPitugues {
484
485
  }
485
486
  ou() {
486
487
  let expressao = this.e();
487
- while (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.OU)) {
488
+ while (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.OU)) {
488
489
  const operador = this.simboloAnterior();
489
490
  const direito = this.e();
490
491
  expressao = new construtos_1.Logico(this.hashArquivo, expressao, operador, direito);
@@ -493,8 +494,8 @@ class AvaliadorSintaticoPitugues {
493
494
  }
494
495
  atribuir() {
495
496
  const expressao = this.ou();
496
- if (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.IGUAL) ||
497
- this.verificarSeSimboloAtualEIgualA(pitugues_1.default.MAIS_IGUAL)) {
497
+ if (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.IGUAL) ||
498
+ this.verificarSeSimboloAtualEIgualA(pitugues_2.default.MAIS_IGUAL)) {
498
499
  const igual = this.simboloAnterior();
499
500
  const valor = this.atribuir();
500
501
  if (expressao instanceof construtos_1.Variavel) {
@@ -516,12 +517,12 @@ class AvaliadorSintaticoPitugues {
516
517
  }
517
518
  declaracaoEscreva() {
518
519
  const simboloAtual = this.simboloAtual();
519
- this.consumir(pitugues_1.default.PARENTESE_ESQUERDO, "Esperado '(' antes dos valores em escreva.");
520
+ this.consumir(pitugues_2.default.PARENTESE_ESQUERDO, "Esperado '(' antes dos valores em escreva.");
520
521
  const argumentos = [];
521
522
  do {
522
523
  argumentos.push(this.expressao());
523
- } while (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.VIRGULA));
524
- this.consumir(pitugues_1.default.PARENTESE_DIREITO, "Esperado ')' após os valores em escreva.");
524
+ } while (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.VIRGULA));
525
+ this.consumir(pitugues_2.default.PARENTESE_DIREITO, "Esperado ')' após os valores em escreva.");
525
526
  return new declaracoes_1.Escreva(Number(simboloAtual.linha), simboloAtual.hashArquivo, argumentos);
526
527
  }
527
528
  declaracaoExpressao() {
@@ -591,18 +592,18 @@ class AvaliadorSintaticoPitugues {
591
592
  try {
592
593
  this.blocos += 1;
593
594
  const condicao = this.expressao();
594
- this.consumir(pitugues_1.default.DOIS_PONTOS, "Esperado ':' após 'escolha'.");
595
+ this.consumir(pitugues_2.default.DOIS_PONTOS, "Esperado ':' após 'escolha'.");
595
596
  const caminhos = [];
596
597
  let caminhoPadrao = null;
597
598
  while (!this.estaNoFinal() &&
598
- [pitugues_1.default.CASO, pitugues_1.default.PADRAO].includes(this.simbolos[this.atual].tipo)) {
599
- if (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.CASO)) {
599
+ [pitugues_2.default.CASO, pitugues_2.default.PADRAO].includes(this.simbolos[this.atual].tipo)) {
600
+ if (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.CASO)) {
600
601
  const caminhoCondicoes = [this.expressao()];
601
- this.consumir(pitugues_1.default.DOIS_PONTOS, "Esperado ':' após o 'caso'.");
602
- while (this.verificarTipoSimboloAtual(pitugues_1.default.CASO)) {
603
- this.consumir(pitugues_1.default.CASO, null);
602
+ this.consumir(pitugues_2.default.DOIS_PONTOS, "Esperado ':' após o 'caso'.");
603
+ while (this.verificarTipoSimboloAtual(pitugues_2.default.CASO)) {
604
+ this.consumir(pitugues_2.default.CASO, null);
604
605
  caminhoCondicoes.push(this.expressao());
605
- this.consumir(pitugues_1.default.DOIS_PONTOS, "Esperado ':' após declaração do 'caso'.");
606
+ this.consumir(pitugues_2.default.DOIS_PONTOS, "Esperado ':' após declaração do 'caso'.");
606
607
  }
607
608
  // Como dois-pontos é um símbolo usado para conferir se há um início de bloco,
608
609
  // não podemos simplesmente chamar `this.resolverDeclaracao()` porque o dois-pontos já
@@ -615,13 +616,13 @@ class AvaliadorSintaticoPitugues {
615
616
  declaracoes,
616
617
  });
617
618
  }
618
- else if (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.PADRAO)) {
619
+ else if (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.PADRAO)) {
619
620
  if (caminhoPadrao !== null) {
620
621
  const excecao = new erro_avaliador_sintatico_1.ErroAvaliadorSintatico(this.simboloAtual(), "Você só pode ter um caminho padrão em cada declaração de 'escolha'.");
621
622
  this.erros.push(excecao);
622
623
  throw excecao;
623
624
  }
624
- this.consumir(pitugues_1.default.DOIS_PONTOS, "Esperado ':' após declaração do 'padrao'.");
625
+ this.consumir(pitugues_2.default.DOIS_PONTOS, "Esperado ':' após declaração do 'padrao'.");
625
626
  // Como dois-pontos é um símbolo usado para conferir se há um início de bloco,
626
627
  // não podemos simplesmente chamar `this.resolverDeclaracao()` porque o dois-pontos já
627
628
  // foi consumido na verificação.
@@ -640,8 +641,8 @@ class AvaliadorSintaticoPitugues {
640
641
  }
641
642
  }
642
643
  declaracaoParaCada(simboloPara) {
643
- const nomeVariavelIteracao = this.consumir(pitugues_1.default.IDENTIFICADOR, "Esperado identificador de variável de iteração para instrução 'para cada'.");
644
- if (!this.verificarSeSimboloAtualEIgualA(pitugues_1.default.DE, pitugues_1.default.EM)) {
644
+ const nomeVariavelIteracao = this.consumir(pitugues_2.default.IDENTIFICADOR, "Esperado identificador de variável de iteração para instrução 'para cada'.");
645
+ if (!this.verificarSeSimboloAtualEIgualA(pitugues_2.default.DE, pitugues_2.default.EM)) {
645
646
  throw this.erro(this.simbolos[this.atual], "Esperado palavras reservadas 'em' ou 'de' após variável de iteração em instrução 'para cada'.");
646
647
  }
647
648
  const vetor = this.expressao();
@@ -659,21 +660,21 @@ class AvaliadorSintaticoPitugues {
659
660
  }
660
661
  declaracaoParaTradicional(simboloPara) {
661
662
  let inicializador;
662
- if (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.PONTO_E_VIRGULA)) {
663
+ if (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.PONTO_E_VIRGULA)) {
663
664
  inicializador = null;
664
665
  }
665
- else if (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.VARIAVEL)) {
666
+ else if (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.VARIAVEL)) {
666
667
  inicializador = this.declaracaoDeVariaveis();
667
668
  }
668
669
  else {
669
670
  inicializador = this.declaracaoExpressao();
670
671
  }
671
672
  let condicao = null;
672
- if (!this.verificarTipoSimboloAtual(pitugues_1.default.PONTO_E_VIRGULA)) {
673
+ if (!this.verificarTipoSimboloAtual(pitugues_2.default.PONTO_E_VIRGULA)) {
673
674
  condicao = this.expressao();
674
675
  }
675
676
  let incrementar = null;
676
- if (this.simbolos[this.atual].tipo !== pitugues_1.default.DOIS_PONTOS) {
677
+ if (this.simbolos[this.atual].tipo !== pitugues_2.default.DOIS_PONTOS) {
677
678
  incrementar = this.expressao();
678
679
  }
679
680
  const corpo = this.resolverDeclaracao();
@@ -683,7 +684,7 @@ class AvaliadorSintaticoPitugues {
683
684
  try {
684
685
  const simboloPara = this.simboloAnterior();
685
686
  this.blocos += 1;
686
- if (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.CADA)) {
687
+ if (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.CADA)) {
687
688
  return this.declaracaoParaCada(simboloPara);
688
689
  }
689
690
  return this.declaracaoParaTradicional(simboloPara);
@@ -699,7 +700,7 @@ class AvaliadorSintaticoPitugues {
699
700
  const condicao = this.expressao();
700
701
  const caminhoEntao = this.resolverDeclaracao();
701
702
  let caminhoSenao = null;
702
- if (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.SENAO, pitugues_1.default.SENÃO)) {
703
+ if (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.SENAO, pitugues_2.default.SENÃO)) {
703
704
  caminhoSenao = this.resolverDeclaracao();
704
705
  }
705
706
  return new declaracoes_1.Se(condicao, caminhoEntao, [], caminhoSenao);
@@ -719,35 +720,35 @@ class AvaliadorSintaticoPitugues {
719
720
  declaracaoRetorna() {
720
721
  const palavraChave = this.simboloAnterior();
721
722
  let valor = null;
722
- if (!this.verificarTipoSimboloAtual(pitugues_1.default.PONTO_E_VIRGULA)) {
723
+ if (!this.verificarTipoSimboloAtual(pitugues_2.default.PONTO_E_VIRGULA)) {
723
724
  valor = this.expressao();
724
725
  }
725
726
  return new declaracoes_1.Retorna(palavraChave, valor);
726
727
  }
727
728
  declaracaoImportar() {
728
729
  this.avancarEDevolverAnterior();
729
- this.consumir(pitugues_1.default.PARENTESE_ESQUERDO, "Esperado '(' após declaração.");
730
+ this.consumir(pitugues_2.default.PARENTESE_ESQUERDO, "Esperado '(' após declaração.");
730
731
  const caminho = this.expressao();
731
- this.consumir(pitugues_1.default.PARENTESE_DIREITO, "Esperado ')' após declaração.");
732
+ this.consumir(pitugues_2.default.PARENTESE_DIREITO, "Esperado ')' após declaração.");
732
733
  return new declaracoes_1.Importar(caminho);
733
734
  }
734
735
  declaracaoTente() {
735
736
  const simboloTente = this.simboloAnterior();
736
- this.consumir(pitugues_1.default.DOIS_PONTOS, "Esperado ':' após a declaração 'tente'.");
737
+ this.consumir(pitugues_2.default.DOIS_PONTOS, "Esperado ':' após a declaração 'tente'.");
737
738
  const blocoTente = this.blocoEscopo();
738
739
  let blocoPegue = null;
739
- if (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.PEGUE)) {
740
- this.consumir(pitugues_1.default.DOIS_PONTOS, "Esperado ':' após a declaração 'pegue'.");
740
+ if (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.PEGUE)) {
741
+ this.consumir(pitugues_2.default.DOIS_PONTOS, "Esperado ':' após a declaração 'pegue'.");
741
742
  blocoPegue = this.blocoEscopo();
742
743
  }
743
744
  let blocoSenao = null;
744
- if (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.SENAO, pitugues_1.default.SENÃO)) {
745
- this.consumir(pitugues_1.default.DOIS_PONTOS, "Esperado ':' após a declaração 'senão'.");
745
+ if (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.SENAO, pitugues_2.default.SENÃO)) {
746
+ this.consumir(pitugues_2.default.DOIS_PONTOS, "Esperado ':' após a declaração 'senão'.");
746
747
  blocoSenao = this.blocoEscopo();
747
748
  }
748
749
  let blocoFinalmente = null;
749
- if (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.FINALMENTE)) {
750
- this.consumir(pitugues_1.default.DOIS_PONTOS, "Esperado ':' após a declaração 'pegue'.");
750
+ if (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.FINALMENTE)) {
751
+ this.consumir(pitugues_2.default.DOIS_PONTOS, "Esperado ':' após a declaração 'pegue'.");
751
752
  blocoFinalmente = this.blocoEscopo();
752
753
  }
753
754
  return new declaracoes_1.Tente(simboloTente.hashArquivo, Number(simboloTente.linha), blocoTente, blocoPegue, blocoSenao, blocoFinalmente);
@@ -757,7 +758,7 @@ class AvaliadorSintaticoPitugues {
757
758
  try {
758
759
  this.blocos += 1;
759
760
  const declaracaoOuBlocoFazer = this.resolverDeclaracao();
760
- this.consumir(pitugues_1.default.ENQUANTO, "Esperado declaração do 'enquanto' após o escopo da declaração 'fazer'.");
761
+ this.consumir(pitugues_2.default.ENQUANTO, "Esperado declaração do 'enquanto' após o escopo da declaração 'fazer'.");
761
762
  const condicaoEnquanto = this.expressao();
762
763
  return new declaracoes_1.Fazer(simboloFazer.hashArquivo, Number(simboloFazer.linha), declaracaoOuBlocoFazer, condicaoEnquanto);
763
764
  }
@@ -767,48 +768,48 @@ class AvaliadorSintaticoPitugues {
767
768
  }
768
769
  resolverDeclaracao() {
769
770
  switch (this.simbolos[this.atual].tipo) {
770
- case pitugues_1.default.CONSTANTE:
771
+ case pitugues_2.default.CONSTANTE:
771
772
  this.avancarEDevolverAnterior();
772
773
  return this.declaracaoDeConstantes();
773
- case pitugues_1.default.CONTINUA:
774
+ case pitugues_2.default.CONTINUA:
774
775
  this.avancarEDevolverAnterior();
775
776
  return this.declaracaoContinua();
776
- case pitugues_1.default.DOIS_PONTOS:
777
+ case pitugues_2.default.DOIS_PONTOS:
777
778
  this.avancarEDevolverAnterior();
778
779
  const simboloInicioBloco = this.simboloAnterior();
779
780
  return new declaracoes_1.Bloco(simboloInicioBloco.hashArquivo, Number(simboloInicioBloco.linha), this.blocoEscopo());
780
- case pitugues_1.default.ENQUANTO:
781
+ case pitugues_2.default.ENQUANTO:
781
782
  this.avancarEDevolverAnterior();
782
783
  return this.declaracaoEnquanto();
783
- case pitugues_1.default.ESCOLHA:
784
+ case pitugues_2.default.ESCOLHA:
784
785
  this.avancarEDevolverAnterior();
785
786
  return this.declaracaoEscolha();
786
- case pitugues_1.default.IMPRIMA:
787
- case pitugues_1.default.ESCREVA:
787
+ case pitugues_2.default.IMPRIMA:
788
+ case pitugues_2.default.ESCREVA:
788
789
  this.avancarEDevolverAnterior();
789
790
  return this.declaracaoEscreva();
790
- case pitugues_1.default.FALHAR:
791
+ case pitugues_2.default.FALHAR:
791
792
  this.avancarEDevolverAnterior();
792
793
  return this.declaracaoFalhar();
793
- case pitugues_1.default.FAZER:
794
+ case pitugues_2.default.FAZER:
794
795
  this.avancarEDevolverAnterior();
795
796
  return this.declaracaoFazer();
796
- case pitugues_1.default.PARA:
797
+ case pitugues_2.default.PARA:
797
798
  this.avancarEDevolverAnterior();
798
799
  return this.declaracaoPara();
799
- case pitugues_1.default.SUSTAR:
800
+ case pitugues_2.default.SUSTAR:
800
801
  this.avancarEDevolverAnterior();
801
802
  return this.declaracaoSustar();
802
- case pitugues_1.default.SE:
803
+ case pitugues_2.default.SE:
803
804
  this.avancarEDevolverAnterior();
804
805
  return this.declaracaoSe();
805
- case pitugues_1.default.RETORNA:
806
+ case pitugues_2.default.RETORNA:
806
807
  this.avancarEDevolverAnterior();
807
808
  return this.declaracaoRetorna();
808
- case pitugues_1.default.TENTE:
809
+ case pitugues_2.default.TENTE:
809
810
  this.avancarEDevolverAnterior();
810
811
  return this.declaracaoTente();
811
- case pitugues_1.default.VARIAVEL:
812
+ case pitugues_2.default.VARIAVEL:
812
813
  this.avancarEDevolverAnterior();
813
814
  return this.declaracaoDeVariaveis();
814
815
  }
@@ -816,8 +817,8 @@ class AvaliadorSintaticoPitugues {
816
817
  }
817
818
  funcao(tipo, construtor) {
818
819
  const simbolo = !construtor
819
- ? this.consumir(pitugues_1.default.IDENTIFICADOR, `Esperado nome ${tipo}.`)
820
- : new lexador_1.Simbolo(pitugues_1.default.CONSTRUTOR, 'construtor', null, -1, -1);
820
+ ? this.consumir(pitugues_2.default.IDENTIFICADOR, `Esperado nome ${tipo}.`)
821
+ : new lexador_1.Simbolo(pitugues_2.default.CONSTRUTOR, 'construtor', null, -1, -1);
821
822
  // Se houver chamadas recursivas à função, precisamos definir um tipo
822
823
  // para ela. Vai ser atualizado após avaliação do corpo da função.
823
824
  this.pilhaEscopos.definirInformacoesVariavel(simbolo.lexema, new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante(simbolo.lexema, 'qualquer'));
@@ -835,55 +836,94 @@ class AvaliadorSintaticoPitugues {
835
836
  throw this.erro(this.simboloAtual(), 'Função não pode ter mais de 255 parâmetros.');
836
837
  }
837
838
  const parametro = {};
838
- if (this.simboloAtual().tipo === pitugues_1.default.MULTIPLICACAO) {
839
- this.consumir(pitugues_1.default.MULTIPLICACAO, null);
839
+ if (this.simboloAtual().tipo === pitugues_2.default.MULTIPLICACAO) {
840
+ this.consumir(pitugues_2.default.MULTIPLICACAO, null);
840
841
  parametro.abrangencia = 'multiplo';
841
842
  }
842
843
  else {
843
844
  parametro.abrangencia = 'padrao';
844
845
  }
845
- parametro.nome = this.consumir(pitugues_1.default.IDENTIFICADOR, 'Esperado nome do parâmetro.');
846
- if (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.IGUAL)) {
846
+ parametro.nome = this.consumir(pitugues_2.default.IDENTIFICADOR, 'Esperado nome do parâmetro.');
847
+ if (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.IGUAL)) {
847
848
  parametro.valorPadrao = this.primario();
848
849
  }
849
850
  this.pilhaEscopos.definirInformacoesVariavel(parametro.nome.lexema, new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante(parametro.nome.lexema, parametro.tipoDado || 'qualquer'));
850
851
  parametros.push(parametro);
851
852
  if (parametro.abrangencia === 'multiplo')
852
853
  break;
853
- } while (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.VIRGULA));
854
+ } while (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.VIRGULA));
854
855
  return parametros;
855
856
  }
857
+ verificarDefinicaoTipoAtual() {
858
+ const tipos = [...Object.values(pitugues_1.default)];
859
+ if (this.simbolos[this.atual].lexema in this.tiposDefinidosEmCodigo) {
860
+ return this.simbolos[this.atual].lexema;
861
+ }
862
+ const lexemaElementar = this.simbolos[this.atual].lexema.toLowerCase();
863
+ const tipoElementarResolvido = tipos.find((tipo) => tipo === lexemaElementar);
864
+ if (!tipoElementarResolvido) {
865
+ throw this.erro(this.simbolos[this.atual], `Tipo de dados desconhecido: '${this.simbolos[this.atual].lexema}'.`);
866
+ }
867
+ if (this.verificarTipoProximoSimbolo(pitugues_2.default.COLCHETE_ESQUERDO)) {
868
+ const tiposVetores = [
869
+ 'inteiro[]',
870
+ 'numero[]',
871
+ 'número[]',
872
+ 'qualquer[]',
873
+ 'real[]',
874
+ 'texto[]',
875
+ ];
876
+ this.avancarEDevolverAnterior();
877
+ if (!this.verificarTipoProximoSimbolo(pitugues_2.default.COLCHETE_DIREITO)) {
878
+ throw this.erro(this.simbolos[this.atual], `Esperado símbolo de fechamento do vetor: ']'. Atual: ${this.simbolos[this.atual].lexema}`);
879
+ }
880
+ const tipoVetor = tiposVetores.find((tipo) => tipo === `${lexemaElementar}[]`);
881
+ this.avancarEDevolverAnterior();
882
+ return tipoVetor;
883
+ }
884
+ return tipoElementarResolvido;
885
+ }
856
886
  corpoDaFuncao(tipo) {
857
- this.consumir(pitugues_1.default.PARENTESE_ESQUERDO, `Esperado '(' após o nome ${tipo}.`);
887
+ // O parêntese esquerdo é considerado o símbolo inicial para
888
+ // fins de localização.
889
+ const parenteseEsquerdo = this.consumir(pitugues_2.default.PARENTESE_ESQUERDO, `Esperado '(' após o nome ${tipo}.`);
858
890
  let parametros = [];
859
- if (!this.verificarTipoSimboloAtual(pitugues_1.default.PARENTESE_DIREITO)) {
891
+ if (!this.verificarTipoSimboloAtual(pitugues_2.default.PARENTESE_DIREITO)) {
860
892
  parametros = this.logicaComumParametros();
861
893
  }
862
- this.consumir(pitugues_1.default.PARENTESE_DIREITO, "Esperado ')' após parâmetros.");
863
- this.consumir(pitugues_1.default.DOIS_PONTOS, `Esperado ':' antes do escopo do ${tipo}.`);
894
+ this.consumir(pitugues_2.default.PARENTESE_DIREITO, "Esperado ')' após parâmetros.");
895
+ let tipoRetorno = 'qualquer';
896
+ let definicaoExplicitaDeTipo = false;
897
+ if (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.SETA)) {
898
+ tipoRetorno = this.verificarDefinicaoTipoAtual();
899
+ this.avancarEDevolverAnterior();
900
+ definicaoExplicitaDeTipo = true;
901
+ }
902
+ this.consumir(pitugues_2.default.DOIS_PONTOS, `Esperado ':' antes do escopo do ${tipo}.`);
864
903
  const corpo = this.blocoEscopo();
865
- return new construtos_1.FuncaoConstruto(this.hashArquivo, 0, parametros, corpo);
904
+ tipoRetorno = (0, comum_1.logicaDescobertaRetornoFuncao)(this, corpo, tipoRetorno, definicaoExplicitaDeTipo, parenteseEsquerdo);
905
+ return new construtos_1.FuncaoConstruto(this.hashArquivo, 0, parametros, corpo, tipoRetorno, definicaoExplicitaDeTipo);
866
906
  }
867
907
  declaracaoDeClasse() {
868
- const simbolo = this.consumir(pitugues_1.default.IDENTIFICADOR, 'Esperado nome da classe.');
908
+ const simbolo = this.consumir(pitugues_2.default.IDENTIFICADOR, 'Esperado nome da classe.');
869
909
  let superClasse = null;
870
- if (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.HERDA)) {
871
- const simboloSuperclasse = this.consumir(pitugues_1.default.IDENTIFICADOR, 'Esperado nome da Superclasse.');
910
+ if (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.HERDA)) {
911
+ const simboloSuperclasse = this.consumir(pitugues_2.default.IDENTIFICADOR, 'Esperado nome da Superclasse.');
872
912
  this.superclasseAtual = simboloSuperclasse.lexema;
873
913
  superClasse = new construtos_1.Variavel(this.hashArquivo, this.simboloAnterior());
874
914
  }
875
- this.consumir(pitugues_1.default.DOIS_PONTOS, "Esperado ':' antes do escopo da classe.");
915
+ this.consumir(pitugues_2.default.DOIS_PONTOS, "Esperado ':' antes do escopo da classe.");
876
916
  const metodos = [];
877
917
  while (!this.estaNoFinal() &&
878
- this.verificarSeSimboloAtualEIgualA(pitugues_1.default.CONSTRUTOR, pitugues_1.default.FUNCAO, pitugues_1.default.FUNÇÃO)) {
879
- metodos.push(this.funcao('método', this.simbolos[this.atual - 1].tipo === pitugues_1.default.CONSTRUTOR));
918
+ this.verificarSeSimboloAtualEIgualA(pitugues_2.default.CONSTRUTOR, pitugues_2.default.FUNCAO, pitugues_2.default.FUNÇÃO)) {
919
+ metodos.push(this.funcao('método', this.simbolos[this.atual - 1].tipo === pitugues_2.default.CONSTRUTOR));
880
920
  }
881
921
  this.superclasseAtual = undefined;
882
922
  return new declaracoes_1.Classe(simbolo, superClasse, metodos);
883
923
  }
884
924
  declaracaoFalhar() {
885
925
  const simboloFalha = this.simbolos[this.atual - 1];
886
- const textoFalha = this.consumir(pitugues_1.default.TEXTO, 'Esperado texto para explicar falha.');
926
+ const textoFalha = this.consumir(pitugues_2.default.TEXTO, 'Esperado texto para explicar falha.');
887
927
  return new declaracoes_1.Falhar(simboloFalha, textoFalha.literal);
888
928
  }
889
929
  /**
@@ -893,13 +933,13 @@ class AvaliadorSintaticoPitugues {
893
933
  */
894
934
  resolverDeclaracaoForaDeBloco() {
895
935
  try {
896
- if ((this.verificarTipoSimboloAtual(pitugues_1.default.FUNCAO) ||
897
- this.verificarTipoSimboloAtual(pitugues_1.default.FUNÇÃO)) &&
898
- this.verificarTipoProximoSimbolo(pitugues_1.default.IDENTIFICADOR)) {
936
+ if ((this.verificarTipoSimboloAtual(pitugues_2.default.FUNCAO) ||
937
+ this.verificarTipoSimboloAtual(pitugues_2.default.FUNÇÃO)) &&
938
+ this.verificarTipoProximoSimbolo(pitugues_2.default.IDENTIFICADOR)) {
899
939
  this.avancarEDevolverAnterior();
900
940
  return this.funcao('funcao');
901
941
  }
902
- if (this.verificarSeSimboloAtualEIgualA(pitugues_1.default.CLASSE))
942
+ if (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.CLASSE))
903
943
  return this.declaracaoDeClasse();
904
944
  return this.resolverDeclaracao();
905
945
  }