@designliquido/delegua 0.2.0 → 0.2.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 (421) hide show
  1. package/bin/package.json +12 -7
  2. package/coverage/lcov-report/block-navigation.d.ts +1 -0
  3. package/coverage/lcov-report/block-navigation.js +70 -0
  4. package/coverage/lcov-report/block-navigation.js.map +1 -0
  5. package/coverage/lcov-report/prettify.d.ts +0 -0
  6. package/coverage/lcov-report/prettify.js +477 -0
  7. package/coverage/lcov-report/prettify.js.map +1 -0
  8. package/coverage/lcov-report/sorter.d.ts +1 -0
  9. package/coverage/lcov-report/sorter.js +163 -0
  10. package/coverage/lcov-report/sorter.js.map +1 -0
  11. package/{src → fontes}/ambiente.d.ts +4 -3
  12. package/{src → fontes}/ambiente.js +7 -7
  13. package/fontes/ambiente.js.map +1 -0
  14. package/fontes/avaliador-sintatico/dialetos/egua-classico.d.ts +63 -0
  15. package/{src → fontes}/avaliador-sintatico/dialetos/egua-classico.js +230 -217
  16. package/fontes/avaliador-sintatico/dialetos/egua-classico.js.map +1 -0
  17. package/{src → fontes}/avaliador-sintatico/dialetos/index.d.ts +0 -0
  18. package/{src → fontes}/avaliador-sintatico/dialetos/index.js +5 -1
  19. package/fontes/avaliador-sintatico/dialetos/index.js.map +1 -0
  20. package/fontes/avaliador-sintatico/erro-avaliador-sintatico.d.ts +5 -0
  21. package/fontes/avaliador-sintatico/erro-avaliador-sintatico.js +30 -0
  22. package/fontes/avaliador-sintatico/erro-avaliador-sintatico.js.map +1 -0
  23. package/fontes/avaliador-sintatico/index.d.ts +66 -0
  24. package/{src → fontes}/avaliador-sintatico/index.js +261 -237
  25. package/fontes/avaliador-sintatico/index.js.map +1 -0
  26. package/fontes/avaliador-sintatico/retorno-avaliador-sintatico.d.ts +6 -0
  27. package/fontes/avaliador-sintatico/retorno-avaliador-sintatico.js +3 -0
  28. package/fontes/avaliador-sintatico/retorno-avaliador-sintatico.js.map +1 -0
  29. package/{src → fontes}/bibliotecas/biblioteca-global.d.ts +0 -0
  30. package/{src → fontes}/bibliotecas/biblioteca-global.js +4 -4
  31. package/fontes/bibliotecas/biblioteca-global.js.map +1 -0
  32. package/{src → fontes}/bibliotecas/importar-biblioteca.d.ts +0 -0
  33. package/{src → fontes}/bibliotecas/importar-biblioteca.js +0 -0
  34. package/fontes/bibliotecas/importar-biblioteca.js.map +1 -0
  35. package/fontes/construtos/acesso-indice-variavel.d.ts +13 -0
  36. package/fontes/construtos/acesso-indice-variavel.js +21 -0
  37. package/fontes/construtos/acesso-indice-variavel.js.map +1 -0
  38. package/fontes/construtos/acesso-metodo.d.ts +13 -0
  39. package/fontes/construtos/acesso-metodo.js +20 -0
  40. package/fontes/construtos/acesso-metodo.js.map +1 -0
  41. package/fontes/construtos/agrupamento.d.ts +7 -0
  42. package/fontes/construtos/agrupamento.js +15 -0
  43. package/fontes/construtos/agrupamento.js.map +1 -0
  44. package/fontes/construtos/atribuicao-sobrescrita.d.ts +9 -0
  45. package/{src → fontes}/construtos/atribuicao-sobrescrita.js +2 -1
  46. package/fontes/construtos/atribuicao-sobrescrita.js.map +1 -0
  47. package/fontes/construtos/atribuir.d.ts +9 -0
  48. package/{src → fontes}/construtos/atribuir.js +3 -2
  49. package/fontes/construtos/atribuir.js.map +1 -0
  50. package/{src → fontes}/construtos/binario.d.ts +3 -2
  51. package/{src → fontes}/construtos/binario.js +1 -0
  52. package/fontes/construtos/binario.js.map +1 -0
  53. package/fontes/construtos/chamada.d.ts +9 -0
  54. package/{src → fontes}/construtos/chamada.js +1 -0
  55. package/fontes/construtos/chamada.js.map +1 -0
  56. package/fontes/construtos/conjunto.d.ts +9 -0
  57. package/{src → fontes}/construtos/conjunto.js +2 -1
  58. package/fontes/construtos/conjunto.js.map +1 -0
  59. package/fontes/construtos/construto.d.ts +4 -0
  60. package/{src/construtos/expr.js → fontes/construtos/construto.js} +1 -1
  61. package/fontes/construtos/construto.js.map +1 -0
  62. package/fontes/construtos/dicionario.d.ts +8 -0
  63. package/{src → fontes}/construtos/dicionario.js +2 -1
  64. package/fontes/construtos/dicionario.js.map +1 -0
  65. package/fontes/construtos/funcao.d.ts +8 -0
  66. package/{src → fontes}/construtos/funcao.js +2 -1
  67. package/fontes/construtos/funcao.js.map +1 -0
  68. package/{src → fontes}/construtos/index.d.ts +5 -5
  69. package/{src → fontes}/construtos/index.js +10 -6
  70. package/fontes/construtos/index.js.map +1 -0
  71. package/fontes/construtos/isto.d.ts +7 -0
  72. package/{src → fontes}/construtos/isto.js +2 -1
  73. package/fontes/construtos/isto.js.map +1 -0
  74. package/fontes/construtos/literal.d.ts +7 -0
  75. package/{src → fontes}/construtos/literal.js +2 -1
  76. package/fontes/construtos/literal.js.map +1 -0
  77. package/{src/construtos/logical.d.ts → fontes/construtos/logico.d.ts} +3 -2
  78. package/fontes/construtos/logico.js +17 -0
  79. package/fontes/construtos/logico.js.map +1 -0
  80. package/fontes/construtos/super.d.ts +8 -0
  81. package/{src → fontes}/construtos/super.js +2 -1
  82. package/fontes/construtos/super.js.map +1 -0
  83. package/{src → fontes}/construtos/unario.d.ts +3 -2
  84. package/{src → fontes}/construtos/unario.js +1 -0
  85. package/fontes/construtos/unario.js.map +1 -0
  86. package/fontes/construtos/variavel.d.ts +8 -0
  87. package/{src → fontes}/construtos/variavel.js +3 -2
  88. package/fontes/construtos/variavel.js.map +1 -0
  89. package/fontes/construtos/vetor.d.ts +7 -0
  90. package/{src → fontes}/construtos/vetor.js +2 -1
  91. package/fontes/construtos/vetor.js.map +1 -0
  92. package/fontes/declaracoes/bloco.d.ts +6 -0
  93. package/{src → fontes}/declaracoes/bloco.js +3 -3
  94. package/fontes/declaracoes/bloco.js.map +1 -0
  95. package/fontes/declaracoes/classe.d.ts +9 -0
  96. package/{src → fontes}/declaracoes/classe.js +5 -5
  97. package/fontes/declaracoes/classe.js.map +1 -0
  98. package/fontes/declaracoes/continua.d.ts +5 -0
  99. package/{src → fontes}/declaracoes/continua.js +3 -3
  100. package/fontes/declaracoes/continua.js.map +1 -0
  101. package/fontes/declaracoes/declaracao.d.ts +5 -0
  102. package/fontes/declaracoes/declaracao.js +12 -0
  103. package/fontes/declaracoes/declaracao.js.map +1 -0
  104. package/{src → fontes}/declaracoes/enquanto.d.ts +2 -2
  105. package/{src → fontes}/declaracoes/enquanto.js +3 -3
  106. package/fontes/declaracoes/enquanto.js.map +1 -0
  107. package/fontes/declaracoes/escolha.d.ts +8 -0
  108. package/{src → fontes}/declaracoes/escolha.js +6 -6
  109. package/fontes/declaracoes/escolha.js.map +1 -0
  110. package/fontes/declaracoes/escreva.d.ts +6 -0
  111. package/{src → fontes}/declaracoes/escreva.js +3 -3
  112. package/fontes/declaracoes/escreva.js.map +1 -0
  113. package/fontes/declaracoes/expressao.d.ts +7 -0
  114. package/{src → fontes}/declaracoes/expressao.js +3 -3
  115. package/fontes/declaracoes/expressao.js.map +1 -0
  116. package/fontes/declaracoes/fazer.d.ts +7 -0
  117. package/{src → fontes}/declaracoes/fazer.js +6 -6
  118. package/fontes/declaracoes/fazer.js.map +1 -0
  119. package/fontes/declaracoes/funcao.d.ts +8 -0
  120. package/{src → fontes}/declaracoes/funcao.js +5 -5
  121. package/fontes/declaracoes/funcao.js.map +1 -0
  122. package/fontes/declaracoes/importar.d.ts +8 -0
  123. package/{src → fontes}/declaracoes/importar.js +5 -5
  124. package/fontes/declaracoes/importar.js.map +1 -0
  125. package/{src → fontes}/declaracoes/index.d.ts +2 -2
  126. package/{src → fontes}/declaracoes/index.js +7 -3
  127. package/fontes/declaracoes/index.js.map +1 -0
  128. package/fontes/declaracoes/para.d.ts +9 -0
  129. package/{src → fontes}/declaracoes/para.js +4 -4
  130. package/fontes/declaracoes/para.js.map +1 -0
  131. package/{src → fontes}/declaracoes/retorna.d.ts +2 -2
  132. package/{src → fontes}/declaracoes/retorna.js +3 -3
  133. package/fontes/declaracoes/retorna.js.map +1 -0
  134. package/fontes/declaracoes/se.d.ts +9 -0
  135. package/{src → fontes}/declaracoes/se.js +7 -7
  136. package/fontes/declaracoes/se.js.map +1 -0
  137. package/fontes/declaracoes/sustar.d.ts +5 -0
  138. package/{src/declaracoes/pausa.js → fontes/declaracoes/sustar.js} +12 -12
  139. package/fontes/declaracoes/sustar.js.map +1 -0
  140. package/fontes/declaracoes/tente.d.ts +9 -0
  141. package/{src → fontes}/declaracoes/tente.js +8 -8
  142. package/fontes/declaracoes/tente.js.map +1 -0
  143. package/fontes/declaracoes/var.d.ts +8 -0
  144. package/{src → fontes}/declaracoes/var.js +5 -5
  145. package/fontes/declaracoes/var.js.map +1 -0
  146. package/fontes/delegua.d.ts +20 -0
  147. package/fontes/delegua.js +174 -0
  148. package/fontes/delegua.js.map +1 -0
  149. package/{src → fontes}/estruturas/chamavel.d.ts +0 -0
  150. package/{src → fontes}/estruturas/chamavel.js +0 -0
  151. package/fontes/estruturas/chamavel.js.map +1 -0
  152. package/{src → fontes}/estruturas/classe.d.ts +0 -0
  153. package/{src → fontes}/estruturas/classe.js +0 -0
  154. package/fontes/estruturas/classe.js.map +1 -0
  155. package/{src → fontes}/estruturas/funcao-padrao.d.ts +0 -0
  156. package/{src → fontes}/estruturas/funcao-padrao.js +0 -0
  157. package/fontes/estruturas/funcao-padrao.js.map +1 -0
  158. package/{src → fontes}/estruturas/funcao.d.ts +0 -0
  159. package/{src → fontes}/estruturas/funcao.js +1 -1
  160. package/fontes/estruturas/funcao.js.map +1 -0
  161. package/{src → fontes}/estruturas/index.d.ts +0 -0
  162. package/{src → fontes}/estruturas/index.js +5 -1
  163. package/fontes/estruturas/index.js.map +1 -0
  164. package/fontes/estruturas/instancia.d.ts +9 -0
  165. package/{src → fontes}/estruturas/instancia.js +7 -7
  166. package/fontes/estruturas/instancia.js.map +1 -0
  167. package/{src → fontes}/estruturas/modulo.d.ts +4 -0
  168. package/{src → fontes}/estruturas/modulo.js +3 -3
  169. package/fontes/estruturas/modulo.js.map +1 -0
  170. package/fontes/excecoes/erro-em-tempo-de-execucao.d.ts +7 -0
  171. package/{src → fontes}/excecoes/erro-em-tempo-de-execucao.js +2 -1
  172. package/fontes/excecoes/erro-em-tempo-de-execucao.js.map +1 -0
  173. package/fontes/excecoes/excecao-continuar.d.ts +2 -0
  174. package/{src/excecoes/break-exception.js → fontes/excecoes/excecao-continuar.js} +7 -7
  175. package/fontes/excecoes/excecao-continuar.js.map +1 -0
  176. package/fontes/excecoes/excecao-retornar.d.ts +4 -0
  177. package/{src/excecoes/return-exception.js → fontes/excecoes/excecao-retornar.js} +8 -8
  178. package/fontes/excecoes/excecao-retornar.js.map +1 -0
  179. package/fontes/excecoes/excecao-sustar.d.ts +2 -0
  180. package/{src/avaliador-sintatico/erros-avaliador.js → fontes/excecoes/excecao-sustar.js} +7 -7
  181. package/fontes/excecoes/excecao-sustar.js.map +1 -0
  182. package/fontes/excecoes/index.d.ts +4 -0
  183. package/{src → fontes}/excecoes/index.js +8 -4
  184. package/fontes/excecoes/index.js.map +1 -0
  185. package/fontes/interfaces/avaliador-sintatico-interface.d.ts +59 -0
  186. package/{src → fontes}/interfaces/avaliador-sintatico-interface.js +0 -0
  187. package/fontes/interfaces/avaliador-sintatico-interface.js.map +1 -0
  188. package/{src → fontes}/interfaces/index.d.ts +0 -0
  189. package/{src → fontes}/interfaces/index.js +5 -1
  190. package/fontes/interfaces/index.js.map +1 -0
  191. package/fontes/interfaces/interpretador-interface.d.ts +51 -0
  192. package/{src → fontes}/interfaces/interpretador-interface.js +0 -0
  193. package/fontes/interfaces/interpretador-interface.js.map +1 -0
  194. package/fontes/interfaces/lexador-interface.d.ts +24 -0
  195. package/{src → fontes}/interfaces/lexador-interface.js +0 -0
  196. package/fontes/interfaces/lexador-interface.js.map +1 -0
  197. package/fontes/interfaces/pilha-interface.d.ts +7 -0
  198. package/{src → fontes}/interfaces/pilha-interface.js +0 -0
  199. package/fontes/interfaces/pilha-interface.js.map +1 -0
  200. package/fontes/interfaces/resolvedor-interface.d.ts +53 -0
  201. package/{src → fontes}/interfaces/resolvedor-interface.js +0 -0
  202. package/fontes/interfaces/resolvedor-interface.js.map +1 -0
  203. package/{src → fontes}/interfaces/simbolo-interface.d.ts +1 -1
  204. package/{src → fontes}/interfaces/simbolo-interface.js +0 -0
  205. package/fontes/interfaces/simbolo-interface.js.map +1 -0
  206. package/fontes/interpretador/dialetos/egua-classico.d.ts +61 -0
  207. package/{src → fontes}/interpretador/dialetos/egua-classico.js +218 -194
  208. package/fontes/interpretador/dialetos/egua-classico.js.map +1 -0
  209. package/{src → fontes}/interpretador/dialetos/index.d.ts +0 -0
  210. package/{src/resolvedor → fontes/interpretador}/dialetos/index.js +5 -1
  211. package/fontes/interpretador/dialetos/index.js.map +1 -0
  212. package/fontes/interpretador/index.d.ts +63 -0
  213. package/fontes/interpretador/index.js +695 -0
  214. package/fontes/interpretador/index.js.map +1 -0
  215. package/{src → fontes}/lexador/dialetos/egua-classico.d.ts +16 -14
  216. package/{src → fontes}/lexador/dialetos/egua-classico.js +122 -72
  217. package/fontes/lexador/dialetos/egua-classico.js.map +1 -0
  218. package/{src → fontes}/lexador/dialetos/index.d.ts +0 -0
  219. package/{src/interpretador → fontes/lexador}/dialetos/index.js +5 -1
  220. package/fontes/lexador/dialetos/index.js.map +1 -0
  221. package/fontes/lexador/erro-lexador.d.ts +5 -0
  222. package/fontes/lexador/erro-lexador.js +3 -0
  223. package/fontes/lexador/erro-lexador.js.map +1 -0
  224. package/fontes/lexador/index.d.ts +43 -0
  225. package/fontes/lexador/index.js +416 -0
  226. package/fontes/lexador/index.js.map +1 -0
  227. package/fontes/lexador/retorno-lexador.d.ts +6 -0
  228. package/fontes/lexador/retorno-lexador.js +3 -0
  229. package/fontes/lexador/retorno-lexador.js.map +1 -0
  230. package/fontes/resolvedor/dialetos/egua-classico.d.ts +62 -0
  231. package/fontes/resolvedor/dialetos/egua-classico.js +344 -0
  232. package/fontes/resolvedor/dialetos/egua-classico.js.map +1 -0
  233. package/{src → fontes}/resolvedor/dialetos/index.d.ts +0 -0
  234. package/{src/lexador → fontes/resolvedor}/dialetos/index.js +5 -1
  235. package/fontes/resolvedor/dialetos/index.js.map +1 -0
  236. package/fontes/resolvedor/erro-resolvedor.d.ts +5 -0
  237. package/{src → fontes}/resolvedor/erro-resolvedor.js +3 -2
  238. package/fontes/resolvedor/erro-resolvedor.js.map +1 -0
  239. package/fontes/resolvedor/index.d.ts +62 -0
  240. package/fontes/resolvedor/index.js +343 -0
  241. package/fontes/resolvedor/index.js.map +1 -0
  242. package/{src → fontes}/resolvedor/pilha-escopos.d.ts +1 -1
  243. package/{src → fontes}/resolvedor/pilha-escopos.js +0 -0
  244. package/fontes/resolvedor/pilha-escopos.js.map +1 -0
  245. package/fontes/resolvedor/retorno-resolvedor.d.ts +6 -0
  246. package/fontes/resolvedor/retorno-resolvedor.js +3 -0
  247. package/fontes/resolvedor/retorno-resolvedor.js.map +1 -0
  248. package/{src → fontes}/tiposDeSimbolos.d.ts +0 -0
  249. package/{src → fontes}/tiposDeSimbolos.js +0 -0
  250. package/fontes/tiposDeSimbolos.js.map +1 -0
  251. package/index.js +3 -2
  252. package/index.js.map +1 -1
  253. package/jest.config.d.ts +3 -0
  254. package/jest.config.js +50 -0
  255. package/jest.config.js.map +1 -0
  256. package/package.json +12 -7
  257. package/testes/avaliador-sintatico.test.d.ts +1 -0
  258. package/testes/avaliador-sintatico.test.js +30 -0
  259. package/testes/avaliador-sintatico.test.js.map +1 -0
  260. package/testes/biblioteca-global.test.d.ts +1 -0
  261. package/testes/biblioteca-global.test.js +131 -0
  262. package/testes/biblioteca-global.test.js.map +1 -0
  263. package/testes/egua-classico/avaliador-sintatico.test.d.ts +1 -0
  264. package/testes/egua-classico/avaliador-sintatico.test.js +33 -0
  265. package/testes/egua-classico/avaliador-sintatico.test.js.map +1 -0
  266. package/testes/egua-classico/interpretador.test.d.ts +1 -0
  267. package/testes/egua-classico/interpretador.test.js +219 -0
  268. package/testes/egua-classico/interpretador.test.js.map +1 -0
  269. package/testes/egua-classico/lexador.test.d.ts +1 -0
  270. package/testes/egua-classico/lexador.test.js +80 -0
  271. package/testes/egua-classico/lexador.test.js.map +1 -0
  272. package/testes/egua-classico/resolvedor.test.d.ts +1 -0
  273. package/testes/egua-classico/resolvedor.test.js +38 -0
  274. package/testes/egua-classico/resolvedor.test.js.map +1 -0
  275. package/testes/interpretador.test.d.ts +1 -0
  276. package/testes/interpretador.test.js +234 -0
  277. package/testes/interpretador.test.js.map +1 -0
  278. package/testes/lexador.test.d.ts +1 -0
  279. package/testes/lexador.test.js +77 -0
  280. package/testes/lexador.test.js.map +1 -0
  281. package/testes/resolvedor.test.d.ts +1 -0
  282. package/testes/resolvedor.test.js +35 -0
  283. package/testes/resolvedor.test.js.map +1 -0
  284. package/src/ambiente.js.map +0 -1
  285. package/src/avaliador-sintatico/dialetos/egua-classico.d.ts +0 -60
  286. package/src/avaliador-sintatico/dialetos/egua-classico.js.map +0 -1
  287. package/src/avaliador-sintatico/dialetos/index.js.map +0 -1
  288. package/src/avaliador-sintatico/erros-avaliador.d.ts +0 -2
  289. package/src/avaliador-sintatico/erros-avaliador.js.map +0 -1
  290. package/src/avaliador-sintatico/index.d.ts +0 -61
  291. package/src/avaliador-sintatico/index.js.map +0 -1
  292. package/src/bibliotecas/biblioteca-global.js.map +0 -1
  293. package/src/bibliotecas/importar-biblioteca.js.map +0 -1
  294. package/src/construtos/atribuicao-sobrescrita.d.ts +0 -8
  295. package/src/construtos/atribuicao-sobrescrita.js.map +0 -1
  296. package/src/construtos/atribuir.d.ts +0 -7
  297. package/src/construtos/atribuir.js.map +0 -1
  298. package/src/construtos/binario.js.map +0 -1
  299. package/src/construtos/chamada.d.ts +0 -8
  300. package/src/construtos/chamada.js.map +0 -1
  301. package/src/construtos/conjunto.d.ts +0 -8
  302. package/src/construtos/conjunto.js.map +0 -1
  303. package/src/construtos/dicionario.d.ts +0 -7
  304. package/src/construtos/dicionario.js.map +0 -1
  305. package/src/construtos/expr.d.ts +0 -3
  306. package/src/construtos/expr.js.map +0 -1
  307. package/src/construtos/funcao.d.ts +0 -7
  308. package/src/construtos/funcao.js.map +0 -1
  309. package/src/construtos/get.d.ts +0 -7
  310. package/src/construtos/get.js +0 -15
  311. package/src/construtos/get.js.map +0 -1
  312. package/src/construtos/grouping.d.ts +0 -6
  313. package/src/construtos/grouping.js +0 -14
  314. package/src/construtos/grouping.js.map +0 -1
  315. package/src/construtos/index.js.map +0 -1
  316. package/src/construtos/isto.d.ts +0 -6
  317. package/src/construtos/isto.js.map +0 -1
  318. package/src/construtos/literal.d.ts +0 -6
  319. package/src/construtos/literal.js.map +0 -1
  320. package/src/construtos/logical.js +0 -16
  321. package/src/construtos/logical.js.map +0 -1
  322. package/src/construtos/subscript.d.ts +0 -8
  323. package/src/construtos/subscript.js +0 -16
  324. package/src/construtos/subscript.js.map +0 -1
  325. package/src/construtos/super.d.ts +0 -7
  326. package/src/construtos/super.js.map +0 -1
  327. package/src/construtos/unario.js.map +0 -1
  328. package/src/construtos/variavel.d.ts +0 -6
  329. package/src/construtos/variavel.js.map +0 -1
  330. package/src/construtos/vetor.d.ts +0 -6
  331. package/src/construtos/vetor.js.map +0 -1
  332. package/src/declaracoes/bloco.d.ts +0 -6
  333. package/src/declaracoes/bloco.js.map +0 -1
  334. package/src/declaracoes/classe.d.ts +0 -8
  335. package/src/declaracoes/classe.js.map +0 -1
  336. package/src/declaracoes/continua.d.ts +0 -5
  337. package/src/declaracoes/continua.js.map +0 -1
  338. package/src/declaracoes/enquanto.js.map +0 -1
  339. package/src/declaracoes/escolha.d.ts +0 -8
  340. package/src/declaracoes/escolha.js.map +0 -1
  341. package/src/declaracoes/escreva.d.ts +0 -6
  342. package/src/declaracoes/escreva.js.map +0 -1
  343. package/src/declaracoes/expressao.d.ts +0 -6
  344. package/src/declaracoes/expressao.js.map +0 -1
  345. package/src/declaracoes/fazer.d.ts +0 -7
  346. package/src/declaracoes/fazer.js.map +0 -1
  347. package/src/declaracoes/funcao.d.ts +0 -7
  348. package/src/declaracoes/funcao.js.map +0 -1
  349. package/src/declaracoes/importar.d.ts +0 -7
  350. package/src/declaracoes/importar.js.map +0 -1
  351. package/src/declaracoes/index.js.map +0 -1
  352. package/src/declaracoes/para.d.ts +0 -9
  353. package/src/declaracoes/para.js.map +0 -1
  354. package/src/declaracoes/pausa.d.ts +0 -5
  355. package/src/declaracoes/pausa.js.map +0 -1
  356. package/src/declaracoes/retorna.js.map +0 -1
  357. package/src/declaracoes/se.d.ts +0 -9
  358. package/src/declaracoes/se.js.map +0 -1
  359. package/src/declaracoes/stmt.d.ts +0 -3
  360. package/src/declaracoes/stmt.js +0 -11
  361. package/src/declaracoes/stmt.js.map +0 -1
  362. package/src/declaracoes/tente.d.ts +0 -9
  363. package/src/declaracoes/tente.js.map +0 -1
  364. package/src/declaracoes/var.d.ts +0 -7
  365. package/src/declaracoes/var.js.map +0 -1
  366. package/src/delegua.d.ts +0 -21
  367. package/src/delegua.js +0 -135
  368. package/src/delegua.js.map +0 -1
  369. package/src/estruturas/chamavel.js.map +0 -1
  370. package/src/estruturas/classe.js.map +0 -1
  371. package/src/estruturas/funcao-padrao.js.map +0 -1
  372. package/src/estruturas/funcao.js.map +0 -1
  373. package/src/estruturas/index.js.map +0 -1
  374. package/src/estruturas/instancia.d.ts +0 -8
  375. package/src/estruturas/instancia.js.map +0 -1
  376. package/src/estruturas/modulo.js.map +0 -1
  377. package/src/excecoes/break-exception.d.ts +0 -2
  378. package/src/excecoes/break-exception.js.map +0 -1
  379. package/src/excecoes/continue-exception.d.ts +0 -2
  380. package/src/excecoes/continue-exception.js +0 -27
  381. package/src/excecoes/continue-exception.js.map +0 -1
  382. package/src/excecoes/erro-em-tempo-de-execucao.d.ts +0 -5
  383. package/src/excecoes/erro-em-tempo-de-execucao.js.map +0 -1
  384. package/src/excecoes/index.d.ts +0 -4
  385. package/src/excecoes/index.js.map +0 -1
  386. package/src/excecoes/return-exception.d.ts +0 -4
  387. package/src/excecoes/return-exception.js.map +0 -1
  388. package/src/interfaces/avaliador-sintatico-interface.d.ts +0 -55
  389. package/src/interfaces/avaliador-sintatico-interface.js.map +0 -1
  390. package/src/interfaces/index.js.map +0 -1
  391. package/src/interfaces/interpretador-interface.d.ts +0 -51
  392. package/src/interfaces/interpretador-interface.js.map +0 -1
  393. package/src/interfaces/lexador-interface.d.ts +0 -23
  394. package/src/interfaces/lexador-interface.js.map +0 -1
  395. package/src/interfaces/pilha-interface.d.ts +0 -7
  396. package/src/interfaces/pilha-interface.js.map +0 -1
  397. package/src/interfaces/resolvedor-interface.d.ts +0 -49
  398. package/src/interfaces/resolvedor-interface.js.map +0 -1
  399. package/src/interfaces/simbolo-interface.js.map +0 -1
  400. package/src/interpretador/dialetos/egua-classico.d.ts +0 -58
  401. package/src/interpretador/dialetos/egua-classico.js.map +0 -1
  402. package/src/interpretador/dialetos/index.js.map +0 -1
  403. package/src/interpretador/index.d.ts +0 -58
  404. package/src/interpretador/index.js +0 -664
  405. package/src/interpretador/index.js.map +0 -1
  406. package/src/lexador/dialetos/egua-classico.js.map +0 -1
  407. package/src/lexador/dialetos/index.js.map +0 -1
  408. package/src/lexador/index.d.ts +0 -31
  409. package/src/lexador/index.js +0 -298
  410. package/src/lexador/index.js.map +0 -1
  411. package/src/resolvedor/dialetos/egua-classico.d.ts +0 -57
  412. package/src/resolvedor/dialetos/egua-classico.js +0 -331
  413. package/src/resolvedor/dialetos/egua-classico.js.map +0 -1
  414. package/src/resolvedor/dialetos/index.js.map +0 -1
  415. package/src/resolvedor/erro-resolvedor.d.ts +0 -4
  416. package/src/resolvedor/erro-resolvedor.js.map +0 -1
  417. package/src/resolvedor/index.d.ts +0 -57
  418. package/src/resolvedor/index.js +0 -331
  419. package/src/resolvedor/index.js.map +0 -1
  420. package/src/resolvedor/pilha-escopos.js.map +0 -1
  421. package/src/tiposDeSimbolos.js.map +0 -1
@@ -1,25 +1,27 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ParserEguaClassico = void 0;
4
- var tiposDeSimbolos_1 = require("../../tiposDeSimbolos");
6
+ exports.AvaliadorSintaticoEguaClassico = void 0;
7
+ var tiposDeSimbolos_1 = __importDefault(require("../../tiposDeSimbolos"));
5
8
  var construtos_1 = require("../../construtos");
6
- var erros_avaliador_1 = require("../erros-avaliador");
9
+ var erro_avaliador_sintatico_1 = require("../erro-avaliador-sintatico");
7
10
  var declaracoes_1 = require("../../declaracoes");
8
11
  /**
9
12
  * O avaliador sintático (Parser) é responsável por transformar os símbolos do Lexador em estruturas de alto nível.
10
13
  * Essas estruturas de alto nível são as partes que executam lógica de programação de fato.
11
14
  */
12
- var ParserEguaClassico = /** @class */ (function () {
13
- function ParserEguaClassico(Delegua, simbolos) {
15
+ var AvaliadorSintaticoEguaClassico = /** @class */ (function () {
16
+ function AvaliadorSintaticoEguaClassico(simbolos) {
14
17
  this.simbolos = simbolos;
15
- this.Delegua = Delegua;
16
18
  this.atual = 0;
17
19
  this.ciclos = 0;
18
20
  }
19
- ParserEguaClassico.prototype.sincronizar = function () {
20
- this.avancar();
21
+ AvaliadorSintaticoEguaClassico.prototype.sincronizar = function () {
22
+ this.avancarEDevolverAnterior();
21
23
  while (!this.estaNoFinal()) {
22
- if (this.voltar().tipo === tiposDeSimbolos_1.default.PONTO_E_VIRGULA)
24
+ if (this.simboloAnterior().tipo === tiposDeSimbolos_1.default.PONTO_E_VIRGULA)
23
25
  return;
24
26
  switch (this.simboloAtual().tipo) {
25
27
  case tiposDeSimbolos_1.default.CLASSE:
@@ -32,86 +34,88 @@ var ParserEguaClassico = /** @class */ (function () {
32
34
  case tiposDeSimbolos_1.default.RETORNA:
33
35
  return;
34
36
  }
35
- this.avancar();
37
+ this.avancarEDevolverAnterior();
36
38
  }
37
39
  };
38
- ParserEguaClassico.prototype.erro = function (simbolo, mensagemDeErro) {
39
- this.Delegua.erro(simbolo, mensagemDeErro);
40
- return new erros_avaliador_1.ErroAvaliador();
40
+ AvaliadorSintaticoEguaClassico.prototype.erro = function (simbolo, mensagemDeErro) {
41
+ var excecao = new erro_avaliador_sintatico_1.ErroAvaliadorSintatico(simbolo, mensagemDeErro);
42
+ this.erros.push(excecao);
43
+ return excecao;
41
44
  };
42
- ParserEguaClassico.prototype.consumir = function (tipo, mensagemDeErro) {
43
- if (this.verificar(tipo))
44
- return this.avancar();
45
+ AvaliadorSintaticoEguaClassico.prototype.consumir = function (tipo, mensagemDeErro) {
46
+ if (this.verificarTipoSimboloAtual(tipo))
47
+ return this.avancarEDevolverAnterior();
45
48
  else
46
49
  throw this.erro(this.simboloAtual(), mensagemDeErro);
47
50
  };
48
- ParserEguaClassico.prototype.verificar = function (tipo) {
51
+ AvaliadorSintaticoEguaClassico.prototype.verificarTipoSimboloAtual = function (tipo) {
49
52
  if (this.estaNoFinal())
50
53
  return false;
51
54
  return this.simboloAtual().tipo === tipo;
52
55
  };
53
- ParserEguaClassico.prototype.verificarProximo = function (tipo) {
56
+ AvaliadorSintaticoEguaClassico.prototype.verificarTipoProximoSimbolo = function (tipo) {
54
57
  if (this.estaNoFinal())
55
58
  return false;
56
59
  return this.simbolos[this.atual + 1].tipo === tipo;
57
60
  };
58
- ParserEguaClassico.prototype.simboloAtual = function () {
61
+ AvaliadorSintaticoEguaClassico.prototype.simboloAtual = function () {
59
62
  return this.simbolos[this.atual];
60
63
  };
61
- ParserEguaClassico.prototype.voltar = function () {
64
+ AvaliadorSintaticoEguaClassico.prototype.simboloAnterior = function () {
62
65
  return this.simbolos[this.atual - 1];
63
66
  };
64
- ParserEguaClassico.prototype.procurar = function (posicao) {
67
+ AvaliadorSintaticoEguaClassico.prototype.simboloNaPosicao = function (posicao) {
65
68
  return this.simbolos[this.atual + posicao];
66
69
  };
67
- ParserEguaClassico.prototype.estaNoFinal = function () {
70
+ AvaliadorSintaticoEguaClassico.prototype.estaNoFinal = function () {
68
71
  return this.simboloAtual().tipo === tiposDeSimbolos_1.default.EOF;
69
72
  };
70
- ParserEguaClassico.prototype.avancar = function () {
73
+ AvaliadorSintaticoEguaClassico.prototype.avancarEDevolverAnterior = function () {
71
74
  if (!this.estaNoFinal())
72
75
  this.atual += 1;
73
- return this.voltar();
76
+ return this.simboloAnterior();
74
77
  };
75
- ParserEguaClassico.prototype.verificarSeSimboloAtualEIgualA = function () {
78
+ AvaliadorSintaticoEguaClassico.prototype.verificarSeSimboloAtualEIgualA = function () {
76
79
  var argumentos = [];
77
80
  for (var _i = 0; _i < arguments.length; _i++) {
78
81
  argumentos[_i] = arguments[_i];
79
82
  }
80
83
  for (var i = 0; i < argumentos.length; i++) {
81
84
  var tipoAtual = argumentos[i];
82
- if (this.verificar(tipoAtual)) {
83
- this.avancar();
85
+ if (this.verificarTipoSimboloAtual(tipoAtual)) {
86
+ this.avancarEDevolverAnterior();
84
87
  return true;
85
88
  }
86
89
  }
87
90
  return false;
88
91
  };
89
- ParserEguaClassico.prototype.primario = function () {
92
+ AvaliadorSintaticoEguaClassico.prototype.primario = function () {
90
93
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.SUPER)) {
91
- var palavraChave = this.voltar();
94
+ var palavraChave = this.simboloAnterior();
92
95
  this.consumir(tiposDeSimbolos_1.default.PONTO, "Esperado '.' após 'super'.");
93
- var metodo = this.consumir(tiposDeSimbolos_1.default.IDENTIFICADOR, "Esperado nome do método da SuperClasse.");
94
- return new construtos_1.Super(palavraChave, metodo);
96
+ var metodo = this.consumir(tiposDeSimbolos_1.default.IDENTIFICADOR, 'Esperado nome do método da SuperClasse.');
97
+ return new construtos_1.Super(0, palavraChave, metodo);
95
98
  }
96
99
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.COLCHETE_ESQUERDO)) {
97
100
  var valores = [];
98
101
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.COLCHETE_DIREITO)) {
99
- return new construtos_1.Vetor([]);
102
+ return new construtos_1.Vetor(0, []);
100
103
  }
101
104
  while (!this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.COLCHETE_DIREITO)) {
102
105
  var valor = this.atribuir();
103
106
  valores.push(valor);
104
- if (this.simboloAtual().tipo !== tiposDeSimbolos_1.default.COLCHETE_DIREITO) {
105
- this.consumir(tiposDeSimbolos_1.default.VIRGULA, "Esperado vírgula antes da próxima expressão.");
107
+ if (this.simboloAtual().tipo !==
108
+ tiposDeSimbolos_1.default.COLCHETE_DIREITO) {
109
+ this.consumir(tiposDeSimbolos_1.default.VIRGULA, 'Esperado vírgula antes da próxima expressão.');
106
110
  }
107
111
  }
108
- return new construtos_1.Vetor(valores);
112
+ return new construtos_1.Vetor(0, valores);
109
113
  }
110
114
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.CHAVE_ESQUERDA)) {
111
115
  var chaves = [];
112
116
  var valores = [];
113
117
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.CHAVE_DIREITA)) {
114
- return new construtos_1.Dicionario([], []);
118
+ return new construtos_1.Dicionario(0, [], []);
115
119
  }
116
120
  while (!this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.CHAVE_DIREITA)) {
117
121
  var chave = this.atribuir();
@@ -120,42 +124,42 @@ var ParserEguaClassico = /** @class */ (function () {
120
124
  chaves.push(chave);
121
125
  valores.push(valor);
122
126
  if (this.simboloAtual().tipo !== tiposDeSimbolos_1.default.CHAVE_DIREITA) {
123
- this.consumir(tiposDeSimbolos_1.default.VIRGULA, "Esperado vírgula antes da próxima expressão.");
127
+ this.consumir(tiposDeSimbolos_1.default.VIRGULA, 'Esperado vírgula antes da próxima expressão.');
124
128
  }
125
129
  }
126
- return new construtos_1.Dicionario(chaves, valores);
130
+ return new construtos_1.Dicionario(0, chaves, valores);
127
131
  }
128
132
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.FUNÇÃO))
129
- return this.corpoDaFuncao("função");
133
+ return this.corpoDaFuncao('função');
130
134
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.FALSO))
131
- return new construtos_1.Literal(false);
135
+ return new construtos_1.Literal(0, false);
132
136
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.VERDADEIRO))
133
- return new construtos_1.Literal(true);
137
+ return new construtos_1.Literal(0, true);
134
138
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.NULO))
135
- return new construtos_1.Literal(null);
139
+ return new construtos_1.Literal(0, null);
136
140
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.ISTO))
137
- return new construtos_1.Isto(this.voltar());
141
+ return new construtos_1.Isto(this.simboloAnterior());
138
142
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.NUMERO, tiposDeSimbolos_1.default.TEXTO)) {
139
- return new construtos_1.Literal(this.voltar().literal);
143
+ return new construtos_1.Literal(0, this.simboloAnterior().literal);
140
144
  }
141
145
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.IDENTIFICADOR)) {
142
- return new construtos_1.Variavel(this.voltar());
146
+ return new construtos_1.Variavel(this.simboloAnterior());
143
147
  }
144
148
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.PARENTESE_ESQUERDO)) {
145
149
  var expr = this.expressao();
146
150
  this.consumir(tiposDeSimbolos_1.default.PARENTESE_DIREITO, "Esperado ')' após a expressão.");
147
- return new construtos_1.Grouping(expr);
151
+ return new construtos_1.Agrupamento(0, expr);
148
152
  }
149
153
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.IMPORTAR))
150
154
  return this.declaracaoImportar();
151
- throw this.erro(this.simboloAtual(), "Esperado expressão.");
155
+ throw this.erro(this.simboloAtual(), 'Esperado expressão.');
152
156
  };
153
- ParserEguaClassico.prototype.finalizarChamada = function (entidadeChamada) {
157
+ AvaliadorSintaticoEguaClassico.prototype.finalizarChamada = function (entidadeChamada) {
154
158
  var argumentos = [];
155
- if (!this.verificar(tiposDeSimbolos_1.default.PARENTESE_DIREITO)) {
159
+ if (!this.verificarTipoSimboloAtual(tiposDeSimbolos_1.default.PARENTESE_DIREITO)) {
156
160
  do {
157
161
  if (argumentos.length >= 255) {
158
- throw this.erro(this.simboloAtual(), "Não pode haver mais de 255 argumentos.");
162
+ throw this.erro(this.simboloAtual(), 'Não pode haver mais de 255 argumentos.');
159
163
  }
160
164
  argumentos.push(this.expressao());
161
165
  } while (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.VIRGULA));
@@ -163,201 +167,202 @@ var ParserEguaClassico = /** @class */ (function () {
163
167
  var parenteseDireito = this.consumir(tiposDeSimbolos_1.default.PARENTESE_DIREITO, "Esperado ')' após os argumentos.");
164
168
  return new construtos_1.Chamada(entidadeChamada, parenteseDireito, argumentos);
165
169
  };
166
- ParserEguaClassico.prototype.chamar = function () {
167
- var expr = this.primario();
170
+ AvaliadorSintaticoEguaClassico.prototype.chamar = function () {
171
+ var expressao = this.primario();
168
172
  while (true) {
169
173
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.PARENTESE_ESQUERDO)) {
170
- expr = this.finalizarChamada(expr);
174
+ expressao = this.finalizarChamada(expressao);
171
175
  }
172
176
  else if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.PONTO)) {
173
177
  var nome = this.consumir(tiposDeSimbolos_1.default.IDENTIFICADOR, "Esperado nome do método após '.'.");
174
- expr = new construtos_1.Get(expr, nome);
178
+ expressao = new construtos_1.AcessoMetodo(expressao, nome);
175
179
  }
176
180
  else if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.COLCHETE_ESQUERDO)) {
177
181
  var indice = this.expressao();
178
- var closeBracket = this.consumir(tiposDeSimbolos_1.default.COLCHETE_DIREITO, "Esperado ']' após escrita do indice.");
179
- expr = new construtos_1.Subscript(expr, indice, closeBracket);
182
+ var simboloFechamento = this.consumir(tiposDeSimbolos_1.default.COLCHETE_DIREITO, "Esperado ']' após escrita do indice.");
183
+ expressao = new construtos_1.AcessoIndiceVariavel(expressao, indice, simboloFechamento);
180
184
  }
181
185
  else {
182
186
  break;
183
187
  }
184
188
  }
185
- return expr;
189
+ return expressao;
186
190
  };
187
- ParserEguaClassico.prototype.unario = function () {
191
+ AvaliadorSintaticoEguaClassico.prototype.unario = function () {
188
192
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.NEGACAO, tiposDeSimbolos_1.default.SUBTRACAO, tiposDeSimbolos_1.default.BIT_NOT)) {
189
- var operador = this.voltar();
193
+ var operador = this.simboloAnterior();
190
194
  var direito = this.unario();
191
195
  return new construtos_1.Unario(operador, direito);
192
196
  }
193
197
  return this.chamar();
194
198
  };
195
- ParserEguaClassico.prototype.exponenciacao = function () {
196
- var expr = this.unario();
199
+ AvaliadorSintaticoEguaClassico.prototype.exponenciacao = function () {
200
+ var expressao = this.unario();
197
201
  while (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.EXPONENCIACAO)) {
198
- var operador = this.voltar();
202
+ var operador = this.simboloAnterior();
199
203
  var direito = this.unario();
200
- expr = new construtos_1.Binario(expr, operador, direito);
204
+ expressao = new construtos_1.Binario(expressao, operador, direito);
201
205
  }
202
- return expr;
206
+ return expressao;
203
207
  };
204
- ParserEguaClassico.prototype.multiplicar = function () {
205
- var expr = this.exponenciacao();
208
+ AvaliadorSintaticoEguaClassico.prototype.multiplicar = function () {
209
+ var expressao = this.exponenciacao();
206
210
  while (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.DIVISAO, tiposDeSimbolos_1.default.MULTIPLICACAO, tiposDeSimbolos_1.default.MODULO)) {
207
- var operador = this.voltar();
211
+ var operador = this.simboloAnterior();
208
212
  var direito = this.exponenciacao();
209
- expr = new construtos_1.Binario(expr, operador, direito);
213
+ expressao = new construtos_1.Binario(expressao, operador, direito);
210
214
  }
211
- return expr;
215
+ return expressao;
212
216
  };
213
- ParserEguaClassico.prototype.adicionar = function () {
214
- var expr = this.multiplicar();
217
+ AvaliadorSintaticoEguaClassico.prototype.adicionar = function () {
218
+ var expressao = this.multiplicar();
215
219
  while (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.SUBTRACAO, tiposDeSimbolos_1.default.ADICAO)) {
216
- var operador = this.voltar();
220
+ var operador = this.simboloAnterior();
217
221
  var direito = this.multiplicar();
218
- expr = new construtos_1.Binario(expr, operador, direito);
222
+ expressao = new construtos_1.Binario(expressao, operador, direito);
219
223
  }
220
- return expr;
224
+ return expressao;
221
225
  };
222
- ParserEguaClassico.prototype.bitFill = function () {
223
- var expr = this.adicionar();
226
+ AvaliadorSintaticoEguaClassico.prototype.bitFill = function () {
227
+ var expressao = this.adicionar();
224
228
  while (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.MENOR_MENOR, tiposDeSimbolos_1.default.MAIOR_MAIOR)) {
225
- var operador = this.voltar();
229
+ var operador = this.simboloAnterior();
226
230
  var direito = this.adicionar();
227
- expr = new construtos_1.Binario(expr, operador, direito);
231
+ expressao = new construtos_1.Binario(expressao, operador, direito);
228
232
  }
229
- return expr;
233
+ return expressao;
230
234
  };
231
- ParserEguaClassico.prototype.bitE = function () {
232
- var expr = this.bitFill();
235
+ AvaliadorSintaticoEguaClassico.prototype.bitE = function () {
236
+ var expressao = this.bitFill();
233
237
  while (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.BIT_AND)) {
234
- var operador = this.voltar();
238
+ var operador = this.simboloAnterior();
235
239
  var direito = this.bitFill();
236
- expr = new construtos_1.Binario(expr, operador, direito);
240
+ expressao = new construtos_1.Binario(expressao, operador, direito);
237
241
  }
238
- return expr;
242
+ return expressao;
239
243
  };
240
- ParserEguaClassico.prototype.bitOu = function () {
241
- var expr = this.bitE();
244
+ AvaliadorSintaticoEguaClassico.prototype.bitOu = function () {
245
+ var expressao = this.bitE();
242
246
  while (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.BIT_OR, tiposDeSimbolos_1.default.BIT_XOR)) {
243
- var operador = this.voltar();
247
+ var operador = this.simboloAnterior();
244
248
  var direito = this.bitE();
245
- expr = new construtos_1.Binario(expr, operador, direito);
249
+ expressao = new construtos_1.Binario(expressao, operador, direito);
246
250
  }
247
- return expr;
251
+ return expressao;
248
252
  };
249
- ParserEguaClassico.prototype.comparar = function () {
250
- var expr = this.bitOu();
253
+ AvaliadorSintaticoEguaClassico.prototype.comparar = function () {
254
+ var expressao = this.bitOu();
251
255
  while (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.MAIOR, tiposDeSimbolos_1.default.MAIOR_IGUAL, tiposDeSimbolos_1.default.MENOR, tiposDeSimbolos_1.default.MENOR_IGUAL)) {
252
- var operador = this.voltar();
256
+ var operador = this.simboloAnterior();
253
257
  var direito = this.bitOu();
254
- expr = new construtos_1.Binario(expr, operador, direito);
258
+ expressao = new construtos_1.Binario(expressao, operador, direito);
255
259
  }
256
- return expr;
260
+ return expressao;
257
261
  };
258
- ParserEguaClassico.prototype.comparacaoIgualdade = function () {
259
- var expr = this.comparar();
262
+ AvaliadorSintaticoEguaClassico.prototype.comparacaoIgualdade = function () {
263
+ var expressao = this.comparar();
260
264
  while (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.DIFERENTE, tiposDeSimbolos_1.default.IGUAL_IGUAL)) {
261
- var operador = this.voltar();
265
+ var operador = this.simboloAnterior();
262
266
  var direito = this.comparar();
263
- expr = new construtos_1.Binario(expr, operador, direito);
267
+ expressao = new construtos_1.Binario(expressao, operador, direito);
264
268
  }
265
- return expr;
269
+ return expressao;
266
270
  };
267
- ParserEguaClassico.prototype.em = function () {
268
- var expr = this.comparacaoIgualdade();
271
+ AvaliadorSintaticoEguaClassico.prototype.em = function () {
272
+ var expressao = this.comparacaoIgualdade();
269
273
  while (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.EM)) {
270
- var operador = this.voltar();
274
+ var operador = this.simboloAnterior();
271
275
  var direito = this.comparacaoIgualdade();
272
- expr = new construtos_1.Logical(expr, operador, direito);
276
+ expressao = new construtos_1.Logico(expressao, operador, direito);
273
277
  }
274
- return expr;
278
+ return expressao;
275
279
  };
276
- ParserEguaClassico.prototype.e = function () {
277
- var expr = this.em();
280
+ AvaliadorSintaticoEguaClassico.prototype.e = function () {
281
+ var expressao = this.em();
278
282
  while (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.E)) {
279
- var operador = this.voltar();
283
+ var operador = this.simboloAnterior();
280
284
  var direito = this.em();
281
- expr = new construtos_1.Logical(expr, operador, direito);
285
+ expressao = new construtos_1.Logico(expressao, operador, direito);
282
286
  }
283
- return expr;
287
+ return expressao;
284
288
  };
285
- ParserEguaClassico.prototype.ou = function () {
286
- var expr = this.e();
289
+ AvaliadorSintaticoEguaClassico.prototype.ou = function () {
290
+ var expressao = this.e();
287
291
  while (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.OU)) {
288
- var operador = this.voltar();
292
+ var operador = this.simboloAnterior();
289
293
  var direito = this.e();
290
- expr = new construtos_1.Logical(expr, operador, direito);
294
+ expressao = new construtos_1.Logico(expressao, operador, direito);
291
295
  }
292
- return expr;
296
+ return expressao;
293
297
  };
294
- ParserEguaClassico.prototype.atribuir = function () {
295
- var expr = this.ou();
298
+ AvaliadorSintaticoEguaClassico.prototype.atribuir = function () {
299
+ var expressao = this.ou();
296
300
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.IGUAL)) {
297
- var igual = this.voltar();
301
+ var igual = this.simboloAnterior();
298
302
  var valor = this.atribuir();
299
- if (expr instanceof construtos_1.Variavel) {
300
- var nome = expr.nome;
301
- return new construtos_1.Atribuir(nome, valor);
303
+ if (expressao instanceof construtos_1.Variavel) {
304
+ var simbolo = expressao.simbolo;
305
+ return new construtos_1.Atribuir(simbolo, valor);
302
306
  }
303
- else if (expr instanceof construtos_1.Get) {
304
- var get = expr;
305
- return new construtos_1.Conjunto(get.objeto, get.nome, valor);
307
+ else if (expressao instanceof construtos_1.AcessoMetodo) {
308
+ var get = expressao;
309
+ return new construtos_1.Conjunto(0, get.objeto, get.simbolo, valor);
306
310
  }
307
- else if (expr instanceof construtos_1.Subscript) {
308
- return new construtos_1.AtribuicaoSobrescrita(expr.entidadeChamada, expr.indice, valor);
311
+ else if (expressao instanceof construtos_1.AcessoIndiceVariavel) {
312
+ return new construtos_1.AtribuicaoSobrescrita(0, expressao.entidadeChamada, expressao.indice, valor);
309
313
  }
310
- this.erro(igual, "Tarefa de atribuição inválida");
314
+ this.erro(igual, 'Tarefa de atribuição inválida');
311
315
  }
312
- return expr;
316
+ return expressao;
313
317
  };
314
- ParserEguaClassico.prototype.expressao = function () {
318
+ AvaliadorSintaticoEguaClassico.prototype.expressao = function () {
315
319
  return this.atribuir();
316
320
  };
317
- ParserEguaClassico.prototype.declaracaoMostrar = function () {
321
+ AvaliadorSintaticoEguaClassico.prototype.declaracaoEscreva = function () {
318
322
  this.consumir(tiposDeSimbolos_1.default.PARENTESE_ESQUERDO, "Esperado '(' antes dos valores em escreva.");
319
323
  var valor = this.expressao();
320
324
  this.consumir(tiposDeSimbolos_1.default.PARENTESE_DIREITO, "Esperado ')' após os valores em escreva.");
321
325
  this.consumir(tiposDeSimbolos_1.default.PONTO_E_VIRGULA, "Esperado ';' após o valor.");
322
326
  return new declaracoes_1.Escreva(valor);
323
327
  };
324
- ParserEguaClassico.prototype.declaracaoExpressao = function () {
325
- var expr = this.expressao();
328
+ AvaliadorSintaticoEguaClassico.prototype.declaracaoExpressao = function () {
329
+ var expressao = this.expressao();
326
330
  this.consumir(tiposDeSimbolos_1.default.PONTO_E_VIRGULA, "Esperado ';' após expressão.");
327
- return new declaracoes_1.Expressao(expr);
331
+ return new declaracoes_1.Expressao(expressao);
328
332
  };
329
- ParserEguaClassico.prototype.blocoEscopo = function () {
333
+ AvaliadorSintaticoEguaClassico.prototype.blocoEscopo = function () {
330
334
  var declaracoes = [];
331
- while (!this.verificar(tiposDeSimbolos_1.default.CHAVE_DIREITA) &&
335
+ while (!this.verificarTipoSimboloAtual(tiposDeSimbolos_1.default.CHAVE_DIREITA) &&
332
336
  !this.estaNoFinal()) {
333
337
  declaracoes.push(this.declaracao());
334
338
  }
335
339
  this.consumir(tiposDeSimbolos_1.default.CHAVE_DIREITA, "Esperado '}' após o bloco.");
336
340
  return declaracoes;
337
341
  };
338
- ParserEguaClassico.prototype.declaracaoSe = function () {
342
+ AvaliadorSintaticoEguaClassico.prototype.declaracaoSe = function () {
343
+ var simboloSe = this.simboloAnterior();
339
344
  this.consumir(tiposDeSimbolos_1.default.PARENTESE_ESQUERDO, "Esperado '(' após 'se'.");
340
345
  var condicao = this.expressao();
341
346
  this.consumir(tiposDeSimbolos_1.default.PARENTESE_DIREITO, "Esperado ')' após condição do se.");
342
- var thenBranch = this.resolverDeclaracao();
343
- var elifBranches = [];
347
+ var caminhoEntao = this.resolverDeclaracao();
348
+ var caminhosSeSenao = [];
344
349
  while (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.SENÃOSE)) {
345
350
  this.consumir(tiposDeSimbolos_1.default.PARENTESE_ESQUERDO, "Esperado '(' após 'senãose'.");
346
- var elifCondition = this.expressao();
351
+ var condicaoSeSenao = this.expressao();
347
352
  this.consumir(tiposDeSimbolos_1.default.PARENTESE_DIREITO, "Esperado ')' apóes codição do 'senãose.");
348
- var branch = this.resolverDeclaracao();
349
- elifBranches.push({
350
- condition: elifCondition,
351
- branch: branch,
353
+ var caminho = this.resolverDeclaracao();
354
+ caminhosSeSenao.push({
355
+ condicao: condicaoSeSenao,
356
+ caminho: caminho,
352
357
  });
353
358
  }
354
- var elseBranch = null;
359
+ var caminhoSenao = null;
355
360
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.SENÃO)) {
356
- elseBranch = this.resolverDeclaracao();
361
+ caminhoSenao = this.resolverDeclaracao();
357
362
  }
358
- return new declaracoes_1.Se(condicao, thenBranch, elifBranches, elseBranch);
363
+ return new declaracoes_1.Se(Number(simboloSe.linha), condicao, caminhoEntao, caminhosSeSenao, caminhoSenao);
359
364
  };
360
- ParserEguaClassico.prototype.declaracaoEnquanto = function () {
365
+ AvaliadorSintaticoEguaClassico.prototype.declaracaoEnquanto = function () {
361
366
  try {
362
367
  this.ciclos += 1;
363
368
  this.consumir(tiposDeSimbolos_1.default.PARENTESE_ESQUERDO, "Esperado '(' após 'enquanto'.");
@@ -370,8 +375,9 @@ var ParserEguaClassico = /** @class */ (function () {
370
375
  this.ciclos -= 1;
371
376
  }
372
377
  };
373
- ParserEguaClassico.prototype.declaracaoPara = function () {
378
+ AvaliadorSintaticoEguaClassico.prototype.declaracaoPara = function () {
374
379
  try {
380
+ var simboloPara = this.simboloAnterior();
375
381
  this.ciclos += 1;
376
382
  this.consumir(tiposDeSimbolos_1.default.PARENTESE_ESQUERDO, "Esperado '(' após 'para'.");
377
383
  var inicializador = void 0;
@@ -385,103 +391,106 @@ var ParserEguaClassico = /** @class */ (function () {
385
391
  inicializador = this.declaracaoExpressao();
386
392
  }
387
393
  var condicao = null;
388
- if (!this.verificar(tiposDeSimbolos_1.default.PONTO_E_VIRGULA)) {
394
+ if (!this.verificarTipoSimboloAtual(tiposDeSimbolos_1.default.PONTO_E_VIRGULA)) {
389
395
  condicao = this.expressao();
390
396
  }
391
397
  this.consumir(tiposDeSimbolos_1.default.PONTO_E_VIRGULA, "Esperado ';' após valores da condicional");
392
398
  var incrementar = null;
393
- if (!this.verificar(tiposDeSimbolos_1.default.PARENTESE_DIREITO)) {
399
+ if (!this.verificarTipoSimboloAtual(tiposDeSimbolos_1.default.PARENTESE_DIREITO)) {
394
400
  incrementar = this.expressao();
395
401
  }
396
402
  this.consumir(tiposDeSimbolos_1.default.PARENTESE_DIREITO, "Esperado ')' após cláusulas");
397
403
  var corpo = this.resolverDeclaracao();
398
- return new declaracoes_1.Para(inicializador, condicao, incrementar, corpo);
404
+ return new declaracoes_1.Para(Number(simboloPara.linha), inicializador, condicao, incrementar, corpo);
399
405
  }
400
406
  finally {
401
407
  this.ciclos -= 1;
402
408
  }
403
409
  };
404
- ParserEguaClassico.prototype.declaracaoInterromper = function () {
410
+ AvaliadorSintaticoEguaClassico.prototype.declaracaoSustar = function () {
405
411
  if (this.ciclos < 1) {
406
- this.erro(this.voltar(), "'pausa' deve estar dentro de um loop.");
412
+ this.erro(this.simboloAnterior(), "'pausa' deve estar dentro de um loop.");
407
413
  }
408
414
  this.consumir(tiposDeSimbolos_1.default.PONTO_E_VIRGULA, "Esperado ';' após 'pausa'.");
409
- return new declaracoes_1.Pausa();
415
+ return new declaracoes_1.Sustar();
410
416
  };
411
- ParserEguaClassico.prototype.declaracaoContinua = function () {
417
+ AvaliadorSintaticoEguaClassico.prototype.declaracaoContinua = function () {
412
418
  if (this.ciclos < 1) {
413
- this.erro(this.voltar(), "'continua' precisa estar em um laço de repetição.");
419
+ this.erro(this.simboloAnterior(), "'continua' precisa estar em um laço de repetição.");
414
420
  }
415
421
  this.consumir(tiposDeSimbolos_1.default.PONTO_E_VIRGULA, "Esperado ';' após 'continua'.");
416
422
  return new declaracoes_1.Continua();
417
423
  };
418
- ParserEguaClassico.prototype.declaracaoRetorna = function () {
419
- var palavraChave = this.voltar();
424
+ AvaliadorSintaticoEguaClassico.prototype.declaracaoRetorna = function () {
425
+ var palavraChave = this.simboloAnterior();
420
426
  var valor = null;
421
- if (!this.verificar(tiposDeSimbolos_1.default.PONTO_E_VIRGULA)) {
427
+ if (!this.verificarTipoSimboloAtual(tiposDeSimbolos_1.default.PONTO_E_VIRGULA)) {
422
428
  valor = this.expressao();
423
429
  }
424
430
  this.consumir(tiposDeSimbolos_1.default.PONTO_E_VIRGULA, "Esperado ';' após o retorno.");
425
431
  return new declaracoes_1.Retorna(palavraChave, valor);
426
432
  };
427
- ParserEguaClassico.prototype.declaracaoEscolha = function () {
433
+ AvaliadorSintaticoEguaClassico.prototype.declaracaoEscolha = function () {
428
434
  try {
429
435
  this.ciclos += 1;
430
436
  this.consumir(tiposDeSimbolos_1.default.PARENTESE_ESQUERDO, "Esperado '{' após 'escolha'.");
431
437
  var condicao = this.expressao();
432
438
  this.consumir(tiposDeSimbolos_1.default.PARENTESE_DIREITO, "Esperado '}' após a condição de 'escolha'.");
433
439
  this.consumir(tiposDeSimbolos_1.default.CHAVE_ESQUERDA, "Esperado '{' antes do escopo do 'escolha'.");
434
- var branches = [];
435
- var defaultBranch = null;
440
+ var caminhos = [];
441
+ var caminhoPadrao = null;
436
442
  while (!this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.CHAVE_DIREITA) &&
437
443
  !this.estaNoFinal()) {
438
444
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.CASO)) {
439
445
  var branchConditions = [this.expressao()];
440
446
  this.consumir(tiposDeSimbolos_1.default.DOIS_PONTOS, "Esperado ':' após o 'caso'.");
441
- while (this.verificar(tiposDeSimbolos_1.default.CASO)) {
447
+ while (this.verificarTipoSimboloAtual(tiposDeSimbolos_1.default.CASO)) {
442
448
  this.consumir(tiposDeSimbolos_1.default.CASO, null);
443
449
  branchConditions.push(this.expressao());
444
450
  this.consumir(tiposDeSimbolos_1.default.DOIS_PONTOS, "Esperado ':' após declaração do 'caso'.");
445
451
  }
446
- var stmts = [];
452
+ var declaracoes = [];
447
453
  do {
448
- stmts.push(this.resolverDeclaracao());
449
- } while (!this.verificar(tiposDeSimbolos_1.default.CASO) &&
450
- !this.verificar(tiposDeSimbolos_1.default.PADRAO) &&
451
- !this.verificar(tiposDeSimbolos_1.default.CHAVE_DIREITA));
452
- branches.push({
454
+ declaracoes.push(this.resolverDeclaracao());
455
+ } while (!this.verificarTipoSimboloAtual(tiposDeSimbolos_1.default.CASO) &&
456
+ !this.verificarTipoSimboloAtual(tiposDeSimbolos_1.default.PADRAO) &&
457
+ !this.verificarTipoSimboloAtual(tiposDeSimbolos_1.default.CHAVE_DIREITA));
458
+ caminhos.push({
453
459
  conditions: branchConditions,
454
- stmts: stmts,
460
+ declaracoes: declaracoes,
455
461
  });
456
462
  }
457
463
  else if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.PADRAO)) {
458
- if (defaultBranch !== null)
459
- throw new erros_avaliador_1.ErroAvaliador("Você só pode ter um 'padrao' em cada declaração de 'escolha'.");
464
+ if (caminhoPadrao !== null) {
465
+ var excecao = new erro_avaliador_sintatico_1.ErroAvaliadorSintatico(this.simboloAtual(), "Você só pode ter um 'padrao' em cada declaração de 'escolha'.");
466
+ this.erros.push(excecao);
467
+ throw excecao;
468
+ }
460
469
  this.consumir(tiposDeSimbolos_1.default.DOIS_PONTOS, "Esperado ':' após declaração do 'padrao'.");
461
- var stmts = [];
470
+ var declaracoes = [];
462
471
  do {
463
- stmts.push(this.resolverDeclaracao());
464
- } while (!this.verificar(tiposDeSimbolos_1.default.CASO) &&
465
- !this.verificar(tiposDeSimbolos_1.default.PADRAO) &&
466
- !this.verificar(tiposDeSimbolos_1.default.CHAVE_DIREITA));
467
- defaultBranch = {
468
- stmts: stmts,
472
+ declaracoes.push(this.resolverDeclaracao());
473
+ } while (!this.verificarTipoSimboloAtual(tiposDeSimbolos_1.default.CASO) &&
474
+ !this.verificarTipoSimboloAtual(tiposDeSimbolos_1.default.PADRAO) &&
475
+ !this.verificarTipoSimboloAtual(tiposDeSimbolos_1.default.CHAVE_DIREITA));
476
+ caminhoPadrao = {
477
+ declaracoes: declaracoes,
469
478
  };
470
479
  }
471
480
  }
472
- return new declaracoes_1.Escolha(condicao, branches, defaultBranch);
481
+ return new declaracoes_1.Escolha(condicao, caminhos, caminhoPadrao);
473
482
  }
474
483
  finally {
475
484
  this.ciclos -= 1;
476
485
  }
477
486
  };
478
- ParserEguaClassico.prototype.declaracaoImportar = function () {
487
+ AvaliadorSintaticoEguaClassico.prototype.declaracaoImportar = function () {
479
488
  this.consumir(tiposDeSimbolos_1.default.PARENTESE_ESQUERDO, "Esperado '(' após declaração.");
480
489
  var caminho = this.expressao();
481
- var closeBracket = this.consumir(tiposDeSimbolos_1.default.PARENTESE_DIREITO, "Esperado ')' após declaração.");
482
- return new declaracoes_1.Importar(caminho, closeBracket);
490
+ var simboloFechamento = this.consumir(tiposDeSimbolos_1.default.PARENTESE_DIREITO, "Esperado ')' após declaração.");
491
+ return new declaracoes_1.Importar(caminho, simboloFechamento);
483
492
  };
484
- ParserEguaClassico.prototype.declaracaoTentar = function () {
493
+ AvaliadorSintaticoEguaClassico.prototype.declaracaoTente = function () {
485
494
  this.consumir(tiposDeSimbolos_1.default.CHAVE_ESQUERDA, "Esperado '{' após a declaração 'tente'.");
486
495
  var tryBlock = this.blocoEscopo();
487
496
  var catchBlock = null;
@@ -501,25 +510,25 @@ var ParserEguaClassico = /** @class */ (function () {
501
510
  }
502
511
  return new declaracoes_1.Tente(tryBlock, catchBlock, elseBlock, finallyBlock);
503
512
  };
504
- ParserEguaClassico.prototype.declaracaoFazer = function () {
513
+ AvaliadorSintaticoEguaClassico.prototype.declaracaoFazer = function () {
505
514
  try {
506
515
  this.ciclos += 1;
507
- var doBranch = this.resolverDeclaracao();
516
+ var caminhoFazer = this.resolverDeclaracao();
508
517
  this.consumir(tiposDeSimbolos_1.default.ENQUANTO, "Esperado declaração do 'enquanto' após o escopo do 'fazer'.");
509
518
  this.consumir(tiposDeSimbolos_1.default.PARENTESE_ESQUERDO, "Esperado '(' após declaração 'enquanto'.");
510
- var whileCondition = this.expressao();
519
+ var condicaoEnquanto = this.expressao();
511
520
  this.consumir(tiposDeSimbolos_1.default.PARENTESE_DIREITO, "Esperado ')' após declaração do 'enquanto'.");
512
- return new declaracoes_1.Fazer(doBranch, whileCondition);
521
+ return new declaracoes_1.Fazer(caminhoFazer, condicaoEnquanto);
513
522
  }
514
523
  finally {
515
524
  this.ciclos -= 1;
516
525
  }
517
526
  };
518
- ParserEguaClassico.prototype.resolverDeclaracao = function () {
527
+ AvaliadorSintaticoEguaClassico.prototype.resolverDeclaracao = function () {
519
528
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.FAZER))
520
529
  return this.declaracaoFazer();
521
530
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.TENTE))
522
- return this.declaracaoTentar();
531
+ return this.declaracaoTente();
523
532
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.ESCOLHA))
524
533
  return this.declaracaoEscolha();
525
534
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.RETORNA))
@@ -527,7 +536,7 @@ var ParserEguaClassico = /** @class */ (function () {
527
536
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.CONTINUA))
528
537
  return this.declaracaoContinua();
529
538
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.PAUSA))
530
- return this.declaracaoInterromper();
539
+ return this.declaracaoSustar();
531
540
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.PARA))
532
541
  return this.declaracaoPara();
533
542
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.ENQUANTO))
@@ -535,13 +544,13 @@ var ParserEguaClassico = /** @class */ (function () {
535
544
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.SE))
536
545
  return this.declaracaoSe();
537
546
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.ESCREVA))
538
- return this.declaracaoMostrar();
547
+ return this.declaracaoEscreva();
539
548
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.CHAVE_ESQUERDA))
540
549
  return new declaracoes_1.Bloco(this.blocoEscopo());
541
550
  return this.declaracaoExpressao();
542
551
  };
543
- ParserEguaClassico.prototype.declaracaoDeVariavel = function () {
544
- var nome = this.consumir(tiposDeSimbolos_1.default.IDENTIFICADOR, "Esperado nome de variável.");
552
+ AvaliadorSintaticoEguaClassico.prototype.declaracaoDeVariavel = function () {
553
+ var nome = this.consumir(tiposDeSimbolos_1.default.IDENTIFICADOR, 'Esperado nome de variável.');
545
554
  var inicializador = null;
546
555
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.IGUAL)) {
547
556
  inicializador = this.expressao();
@@ -549,62 +558,62 @@ var ParserEguaClassico = /** @class */ (function () {
549
558
  this.consumir(tiposDeSimbolos_1.default.PONTO_E_VIRGULA, "Esperado ';' após a declaração da variável.");
550
559
  return new declaracoes_1.Var(nome, inicializador);
551
560
  };
552
- ParserEguaClassico.prototype.funcao = function (kind) {
561
+ AvaliadorSintaticoEguaClassico.prototype.funcao = function (kind) {
553
562
  var nome = this.consumir(tiposDeSimbolos_1.default.IDENTIFICADOR, "Esperado nome ".concat(kind, "."));
554
563
  return new declaracoes_1.Funcao(nome, this.corpoDaFuncao(kind));
555
564
  };
556
- ParserEguaClassico.prototype.corpoDaFuncao = function (kind) {
565
+ AvaliadorSintaticoEguaClassico.prototype.corpoDaFuncao = function (kind) {
557
566
  this.consumir(tiposDeSimbolos_1.default.PARENTESE_ESQUERDO, "Esperado '(' ap\u00F3s o nome ".concat(kind, "."));
558
567
  var parametros = [];
559
- if (!this.verificar(tiposDeSimbolos_1.default.PARENTESE_DIREITO)) {
568
+ if (!this.verificarTipoSimboloAtual(tiposDeSimbolos_1.default.PARENTESE_DIREITO)) {
560
569
  do {
561
570
  if (parametros.length >= 255) {
562
- this.erro(this.simboloAtual(), "Não pode haver mais de 255 parâmetros");
571
+ this.erro(this.simboloAtual(), 'Não pode haver mais de 255 parâmetros');
563
572
  }
564
573
  var paramObj = {};
565
574
  if (this.simboloAtual().tipo === tiposDeSimbolos_1.default.MULTIPLICACAO) {
566
575
  this.consumir(tiposDeSimbolos_1.default.MULTIPLICACAO, null);
567
- paramObj["tipo"] = "wildcard";
576
+ paramObj['tipo'] = 'wildcard';
568
577
  }
569
578
  else {
570
- paramObj["tipo"] = "standard";
579
+ paramObj['tipo'] = 'standard';
571
580
  }
572
- paramObj["nome"] = this.consumir(tiposDeSimbolos_1.default.IDENTIFICADOR, "Esperado nome do parâmetro.");
581
+ paramObj['nome'] = this.consumir(tiposDeSimbolos_1.default.IDENTIFICADOR, 'Esperado nome do parâmetro.');
573
582
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.IGUAL)) {
574
- paramObj["default"] = this.primario();
583
+ paramObj['default'] = this.primario();
575
584
  }
576
585
  parametros.push(paramObj);
577
- if (paramObj["tipo"] === "wildcard")
586
+ if (paramObj['tipo'] === 'wildcard')
578
587
  break;
579
588
  } while (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.VIRGULA));
580
589
  }
581
590
  this.consumir(tiposDeSimbolos_1.default.PARENTESE_DIREITO, "Esperado ')' após parâmetros.");
582
591
  this.consumir(tiposDeSimbolos_1.default.CHAVE_ESQUERDA, "Esperado '{' antes do escopo do ".concat(kind, "."));
583
592
  var corpo = this.blocoEscopo();
584
- return new construtos_1.Funcao(parametros, corpo);
593
+ return new construtos_1.Funcao(0, parametros, corpo);
585
594
  };
586
- ParserEguaClassico.prototype.declaracaoDeClasse = function () {
587
- var nome = this.consumir(tiposDeSimbolos_1.default.IDENTIFICADOR, "Esperado nome da classe.");
595
+ AvaliadorSintaticoEguaClassico.prototype.declaracaoDeClasse = function () {
596
+ var nome = this.consumir(tiposDeSimbolos_1.default.IDENTIFICADOR, 'Esperado nome da classe.');
588
597
  var superClasse = null;
589
598
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.HERDA)) {
590
- this.consumir(tiposDeSimbolos_1.default.IDENTIFICADOR, "Esperado nome da SuperClasse.");
591
- superClasse = new construtos_1.Variavel(this.voltar());
599
+ this.consumir(tiposDeSimbolos_1.default.IDENTIFICADOR, 'Esperado nome da SuperClasse.');
600
+ superClasse = new construtos_1.Variavel(this.simboloAnterior());
592
601
  }
593
602
  this.consumir(tiposDeSimbolos_1.default.CHAVE_ESQUERDA, "Esperado '{' antes do escopo da classe.");
594
603
  var metodos = [];
595
- while (!this.verificar(tiposDeSimbolos_1.default.CHAVE_DIREITA) &&
604
+ while (!this.verificarTipoSimboloAtual(tiposDeSimbolos_1.default.CHAVE_DIREITA) &&
596
605
  !this.estaNoFinal()) {
597
- metodos.push(this.funcao("método"));
606
+ metodos.push(this.funcao('método'));
598
607
  }
599
608
  this.consumir(tiposDeSimbolos_1.default.CHAVE_DIREITA, "Esperado '}' após o escopo da classe.");
600
609
  return new declaracoes_1.Classe(nome, superClasse, metodos);
601
610
  };
602
- ParserEguaClassico.prototype.declaracao = function () {
611
+ AvaliadorSintaticoEguaClassico.prototype.declaracao = function () {
603
612
  try {
604
- if (this.verificar(tiposDeSimbolos_1.default.FUNÇÃO) &&
605
- this.verificarProximo(tiposDeSimbolos_1.default.IDENTIFICADOR)) {
613
+ if (this.verificarTipoSimboloAtual(tiposDeSimbolos_1.default.FUNÇÃO) &&
614
+ this.verificarTipoProximoSimbolo(tiposDeSimbolos_1.default.IDENTIFICADOR)) {
606
615
  this.consumir(tiposDeSimbolos_1.default.FUNÇÃO, null);
607
- return this.funcao("função");
616
+ return this.funcao('função');
608
617
  }
609
618
  if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos_1.default.VARIAVEL))
610
619
  return this.declaracaoDeVariavel();
@@ -617,7 +626,8 @@ var ParserEguaClassico = /** @class */ (function () {
617
626
  return null;
618
627
  }
619
628
  };
620
- ParserEguaClassico.prototype.analisar = function (simbolos) {
629
+ AvaliadorSintaticoEguaClassico.prototype.analisar = function (simbolos) {
630
+ this.erros = [];
621
631
  this.atual = 0;
622
632
  this.ciclos = 0;
623
633
  if (simbolos) {
@@ -627,9 +637,12 @@ var ParserEguaClassico = /** @class */ (function () {
627
637
  while (!this.estaNoFinal()) {
628
638
  declaracoes.push(this.declaracao());
629
639
  }
630
- return declaracoes;
640
+ return {
641
+ declaracoes: declaracoes,
642
+ erros: this.erros
643
+ };
631
644
  };
632
- return ParserEguaClassico;
645
+ return AvaliadorSintaticoEguaClassico;
633
646
  }());
634
- exports.ParserEguaClassico = ParserEguaClassico;
647
+ exports.AvaliadorSintaticoEguaClassico = AvaliadorSintaticoEguaClassico;
635
648
  //# sourceMappingURL=egua-classico.js.map