@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
@@ -0,0 +1,344 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResolvedorEguaClassico = void 0;
4
+ var pilha_escopos_1 = require("../pilha-escopos");
5
+ var erro_resolvedor_1 = require("../erro-resolvedor");
6
+ var TipoFuncao = {
7
+ NENHUM: 'NENHUM',
8
+ FUNÇÃO: 'FUNÇÃO',
9
+ CONSTRUTOR: 'CONSTRUTOR',
10
+ METODO: 'METODO',
11
+ };
12
+ var TipoClasse = {
13
+ NENHUM: 'NENHUM',
14
+ CLASSE: 'CLASSE',
15
+ SUBCLASSE: 'SUBCLASSE',
16
+ };
17
+ var LoopType = {
18
+ NENHUM: 'NENHUM',
19
+ ENQUANTO: 'ENQUANTO',
20
+ ESCOLHA: 'ESCOLHA',
21
+ PARA: 'PARA',
22
+ FAZER: 'FAZER',
23
+ };
24
+ /**
25
+ * O Resolvedor (Resolver) é responsável por catalogar todos os identificadores complexos, como por exemplo: funções, classes, variáveis,
26
+ * e delimitar os escopos onde esses identificadores existem.
27
+ * Exemplo: uma classe A declara dois métodos chamados M e N. Todas as variáveis declaradas dentro de M não podem ser vistas por N, e vice-versa.
28
+ * No entanto, todas as variáveis declaradas dentro da classe A podem ser vistas tanto por M quanto por N.
29
+ */
30
+ var ResolvedorEguaClassico = /** @class */ (function () {
31
+ function ResolvedorEguaClassico() {
32
+ this.erros = [];
33
+ this.escopos = new pilha_escopos_1.PilhaEscopos();
34
+ this.locais = new Map();
35
+ this.funcaoAtual = TipoFuncao.NENHUM;
36
+ this.classeAtual = TipoClasse.NENHUM;
37
+ this.cicloAtual = TipoClasse.NENHUM;
38
+ }
39
+ ResolvedorEguaClassico.prototype.definir = function (simbolo) {
40
+ if (this.escopos.eVazio())
41
+ return;
42
+ this.escopos.topoDaPilha()[simbolo.lexema] = true;
43
+ };
44
+ ResolvedorEguaClassico.prototype.declarar = function (simbolo) {
45
+ if (this.escopos.eVazio())
46
+ return;
47
+ var escopo = this.escopos.topoDaPilha();
48
+ if (escopo.hasOwnProperty(simbolo.lexema)) {
49
+ var erro = new erro_resolvedor_1.ErroResolvedor(simbolo, 'Variável com esse nome já declarada neste escopo.');
50
+ this.erros.push(erro);
51
+ }
52
+ escopo[simbolo.lexema] = false;
53
+ };
54
+ ResolvedorEguaClassico.prototype.inicioDoEscopo = function () {
55
+ this.escopos.empilhar({});
56
+ };
57
+ ResolvedorEguaClassico.prototype.finalDoEscopo = function () {
58
+ this.escopos.removerUltimo();
59
+ };
60
+ ResolvedorEguaClassico.prototype.resolverLocal = function (expressao, simbolo) {
61
+ for (var i = this.escopos.pilha.length - 1; i >= 0; i--) {
62
+ if (this.escopos.pilha[i].hasOwnProperty(simbolo.lexema)) {
63
+ this.locais.set(expressao, this.escopos.pilha.length - 1 - i);
64
+ }
65
+ }
66
+ };
67
+ ResolvedorEguaClassico.prototype.visitarExpressaoBloco = function (declaracao) {
68
+ this.inicioDoEscopo();
69
+ this.resolver(declaracao.declaracoes);
70
+ this.finalDoEscopo();
71
+ return null;
72
+ };
73
+ ResolvedorEguaClassico.prototype.visitarExpressaoDeVariavel = function (expressao) {
74
+ if (!this.escopos.eVazio() &&
75
+ this.escopos.topoDaPilha()[expressao.simbolo.lexema] === false) {
76
+ var erro = new erro_resolvedor_1.ErroResolvedor(expressao.simbolo, 'Não é possível ler a variável local em seu próprio inicializador.');
77
+ this.erros.push(erro);
78
+ throw erro;
79
+ }
80
+ this.resolverLocal(expressao, expressao.simbolo);
81
+ return null;
82
+ };
83
+ ResolvedorEguaClassico.prototype.visitarExpressaoVar = function (declaracao) {
84
+ this.declarar(declaracao.simbolo);
85
+ if (declaracao.inicializador !== null) {
86
+ this.resolver(declaracao.inicializador);
87
+ }
88
+ this.definir(declaracao.simbolo);
89
+ return null;
90
+ };
91
+ ResolvedorEguaClassico.prototype.visitarExpressaoDeAtribuicao = function (expressao) {
92
+ this.resolver(expressao.valor);
93
+ this.resolverLocal(expressao, expressao.simbolo);
94
+ return null;
95
+ };
96
+ ResolvedorEguaClassico.prototype.resolverFuncao = function (funcao, funcType) {
97
+ var enclosingFunc = this.funcaoAtual;
98
+ this.funcaoAtual = funcType;
99
+ this.inicioDoEscopo();
100
+ var parametros = funcao.parametros;
101
+ if (parametros && parametros.length > 0) {
102
+ for (var i = 0; i < parametros.length; i++) {
103
+ this.declarar(parametros[i]['nome']);
104
+ this.definir(parametros[i]['nome']);
105
+ }
106
+ }
107
+ this.resolver(funcao.corpo);
108
+ this.finalDoEscopo();
109
+ this.funcaoAtual = enclosingFunc;
110
+ };
111
+ ResolvedorEguaClassico.prototype.visitarExpressaoFuncao = function (declaracao) {
112
+ this.declarar(declaracao.simbolo);
113
+ this.definir(declaracao.simbolo);
114
+ this.resolverFuncao(declaracao.funcao, TipoFuncao.FUNÇÃO);
115
+ return null;
116
+ };
117
+ ResolvedorEguaClassico.prototype.visitarExpressaoDeleguaFuncao = function (declaracao) {
118
+ this.resolverFuncao(declaracao, TipoFuncao.FUNÇÃO);
119
+ return null;
120
+ };
121
+ ResolvedorEguaClassico.prototype.visitarExpressaoTente = function (declaracao) {
122
+ this.resolver(declaracao.caminhoTente);
123
+ if (declaracao.caminhoPegue !== null)
124
+ this.resolver(declaracao.caminhoPegue);
125
+ if (declaracao.caminhoSenao !== null)
126
+ this.resolver(declaracao.caminhoSenao);
127
+ if (declaracao.caminhoFinalmente !== null)
128
+ this.resolver(declaracao.caminhoFinalmente);
129
+ };
130
+ ResolvedorEguaClassico.prototype.visitarExpressaoClasse = function (declaracao) {
131
+ var enclosingClass = this.classeAtual;
132
+ this.classeAtual = TipoClasse.CLASSE;
133
+ this.declarar(declaracao.simbolo);
134
+ this.definir(declaracao.simbolo);
135
+ if (declaracao.superClasse !== null &&
136
+ declaracao.simbolo.lexema === declaracao.superClasse.simbolo.lexema) {
137
+ var erro = new erro_resolvedor_1.ErroResolvedor(declaracao.simbolo, 'Uma classe não pode herdar de si mesma.');
138
+ this.erros.push(erro);
139
+ }
140
+ if (declaracao.superClasse !== null) {
141
+ this.classeAtual = TipoClasse.SUBCLASSE;
142
+ this.resolver(declaracao.superClasse);
143
+ }
144
+ if (declaracao.superClasse !== null) {
145
+ this.inicioDoEscopo();
146
+ this.escopos.topoDaPilha()['super'] = true;
147
+ }
148
+ this.inicioDoEscopo();
149
+ this.escopos.topoDaPilha()['isto'] = true;
150
+ var metodos = declaracao.metodos;
151
+ for (var i = 0; i < metodos.length; i++) {
152
+ var declaracao_1 = TipoFuncao.METODO;
153
+ if (metodos[i].simbolo.lexema === 'isto') {
154
+ declaracao_1 = TipoFuncao.CONSTRUTOR;
155
+ }
156
+ this.resolverFuncao(metodos[i].funcao, declaracao_1);
157
+ }
158
+ this.finalDoEscopo();
159
+ if (declaracao.superClasse !== null)
160
+ this.finalDoEscopo();
161
+ this.classeAtual = enclosingClass;
162
+ return null;
163
+ };
164
+ ResolvedorEguaClassico.prototype.visitarExpressaoSuper = function (expressao) {
165
+ if (this.classeAtual === TipoClasse.NENHUM) {
166
+ var erro = new erro_resolvedor_1.ErroResolvedor(expressao.palavraChave, "Não pode usar 'super' fora de uma classe.");
167
+ this.erros.push(erro);
168
+ }
169
+ else if (this.classeAtual !== TipoClasse.SUBCLASSE) {
170
+ var erro = new erro_resolvedor_1.ErroResolvedor(expressao.palavraChave, "Não se usa 'super' numa classe sem SuperClasse.");
171
+ this.erros.push(erro);
172
+ }
173
+ this.resolverLocal(expressao, expressao.palavraChave);
174
+ return null;
175
+ };
176
+ ResolvedorEguaClassico.prototype.visitarExpressaoAcessoMetodo = function (expressao) {
177
+ this.resolver(expressao.objeto);
178
+ return null;
179
+ };
180
+ ResolvedorEguaClassico.prototype.visitarDeclaracaoDeExpressao = function (declaracao) {
181
+ this.resolver(declaracao.expressao);
182
+ return null;
183
+ };
184
+ ResolvedorEguaClassico.prototype.visitarExpressaoSe = function (declaracao) {
185
+ this.resolver(declaracao.condicao);
186
+ this.resolver(declaracao.caminhoEntao);
187
+ for (var i = 0; i < declaracao.caminhosSeSenao.length; i++) {
188
+ this.resolver(declaracao.caminhosSeSenao[i].condicao);
189
+ this.resolver(declaracao.caminhosSeSenao[i].branch);
190
+ }
191
+ if (declaracao.caminhoSenao !== null)
192
+ this.resolver(declaracao.caminhoSenao);
193
+ return null;
194
+ };
195
+ ResolvedorEguaClassico.prototype.visitarExpressaoImportar = function (declaracao) {
196
+ this.resolver(declaracao.caminho);
197
+ };
198
+ ResolvedorEguaClassico.prototype.visitarExpressaoEscreva = function (declaracao) {
199
+ this.resolver(declaracao.expressao);
200
+ };
201
+ ResolvedorEguaClassico.prototype.visitarExpressaoRetornar = function (declaracao) {
202
+ if (this.funcaoAtual === TipoFuncao.NENHUM) {
203
+ var erro = new erro_resolvedor_1.ErroResolvedor(declaracao.palavraChave, 'Não é possível retornar do código do escopo superior.');
204
+ this.erros.push(erro);
205
+ }
206
+ if (declaracao.valor !== null) {
207
+ if (this.funcaoAtual === TipoFuncao.CONSTRUTOR) {
208
+ var erro = new erro_resolvedor_1.ErroResolvedor(declaracao.palavraChave, 'Não pode retornar o valor do construtor.');
209
+ this.erros.push(erro);
210
+ }
211
+ this.resolver(declaracao.valor);
212
+ }
213
+ return null;
214
+ };
215
+ ResolvedorEguaClassico.prototype.visitarExpressaoEscolha = function (declaracao) {
216
+ var enclosingType = this.cicloAtual;
217
+ this.cicloAtual = LoopType.ESCOLHA;
218
+ var caminhos = declaracao.caminhos;
219
+ var caminhoPadrao = declaracao.caminhoPadrao;
220
+ for (var i = 0; i < caminhos.length; i++) {
221
+ this.resolver(caminhos[i]['declaracoes']);
222
+ }
223
+ if (caminhoPadrao !== null)
224
+ this.resolver(caminhoPadrao['declaracoes']);
225
+ this.cicloAtual = enclosingType;
226
+ };
227
+ ResolvedorEguaClassico.prototype.visitarExpressaoEnquanto = function (declaracao) {
228
+ this.resolver(declaracao.condicao);
229
+ this.resolver(declaracao.corpo);
230
+ return null;
231
+ };
232
+ ResolvedorEguaClassico.prototype.visitarExpressaoPara = function (declaracao) {
233
+ if (declaracao.inicializador !== null) {
234
+ this.resolver(declaracao.inicializador);
235
+ }
236
+ if (declaracao.condicao !== null) {
237
+ this.resolver(declaracao.condicao);
238
+ }
239
+ if (declaracao.incrementar !== null) {
240
+ this.resolver(declaracao.incrementar);
241
+ }
242
+ var enclosingType = this.cicloAtual;
243
+ this.cicloAtual = LoopType.ENQUANTO;
244
+ this.resolver(declaracao.corpo);
245
+ this.cicloAtual = enclosingType;
246
+ return null;
247
+ };
248
+ ResolvedorEguaClassico.prototype.visitarExpressaoFazer = function (declaracao) {
249
+ this.resolver(declaracao.condicaoEnquanto);
250
+ var enclosingType = this.cicloAtual;
251
+ this.cicloAtual = LoopType.FAZER;
252
+ this.resolver(declaracao.caminhoFazer);
253
+ this.cicloAtual = enclosingType;
254
+ return null;
255
+ };
256
+ ResolvedorEguaClassico.prototype.visitarExpressaoBinaria = function (expressao) {
257
+ this.resolver(expressao.esquerda);
258
+ this.resolver(expressao.direita);
259
+ return null;
260
+ };
261
+ ResolvedorEguaClassico.prototype.visitarExpressaoDeChamada = function (expressao) {
262
+ this.resolver(expressao.entidadeChamada);
263
+ var argumentos = expressao.argumentos;
264
+ for (var i = 0; i < argumentos.length; i++) {
265
+ this.resolver(argumentos[i]);
266
+ }
267
+ return null;
268
+ };
269
+ ResolvedorEguaClassico.prototype.visitarExpressaoAgrupamento = function (expressao) {
270
+ this.resolver(expressao.expressao);
271
+ return null;
272
+ };
273
+ ResolvedorEguaClassico.prototype.visitarExpressaoDicionario = function (expressao) {
274
+ for (var i = 0; i < expressao.chaves.length; i++) {
275
+ this.resolver(expressao.chaves[i]);
276
+ this.resolver(expressao.valores[i]);
277
+ }
278
+ return null;
279
+ };
280
+ ResolvedorEguaClassico.prototype.visitarExpressaoVetor = function (expressao) {
281
+ for (var i = 0; i < expressao.valores.length; i++) {
282
+ this.resolver(expressao.valores[i]);
283
+ }
284
+ return null;
285
+ };
286
+ ResolvedorEguaClassico.prototype.visitarExpressaoAcessoIndiceVariavel = function (expressao) {
287
+ this.resolver(expressao.entidadeChamada);
288
+ this.resolver(expressao.indice);
289
+ return null;
290
+ };
291
+ ResolvedorEguaClassico.prototype.visitarExpressaoContinua = function (declaracao) {
292
+ return null;
293
+ };
294
+ ResolvedorEguaClassico.prototype.visitarExpressaoSustar = function (declaracao) {
295
+ return null;
296
+ };
297
+ ResolvedorEguaClassico.prototype.visitarExpressaoAtribuicaoSobrescrita = function (expressao) {
298
+ return null;
299
+ };
300
+ ResolvedorEguaClassico.prototype.visitarExpressaoLiteral = function (expressao) {
301
+ return null;
302
+ };
303
+ ResolvedorEguaClassico.prototype.visitarExpressaoLogica = function (expressao) {
304
+ this.resolver(expressao.esquerda);
305
+ this.resolver(expressao.direita);
306
+ return null;
307
+ };
308
+ ResolvedorEguaClassico.prototype.visitarExpressaoUnaria = function (expressao) {
309
+ this.resolver(expressao.direita);
310
+ return null;
311
+ };
312
+ ResolvedorEguaClassico.prototype.visitarExpressaoDefinir = function (expressao) {
313
+ this.resolver(expressao.valor);
314
+ this.resolver(expressao.objeto);
315
+ return null;
316
+ };
317
+ ResolvedorEguaClassico.prototype.visitarExpressaoIsto = function (expressao) {
318
+ if (this.classeAtual == TipoClasse.NENHUM) {
319
+ var erro = new erro_resolvedor_1.ErroResolvedor(expressao.palavraChave, "Não pode usar 'isto' fora da classe.");
320
+ this.erros.push(erro);
321
+ }
322
+ this.resolverLocal(expressao, expressao.palavraChave);
323
+ return null;
324
+ };
325
+ ResolvedorEguaClassico.prototype.resolver = function (declaracoes) {
326
+ if (Array.isArray(declaracoes)) {
327
+ for (var i = 0; i < declaracoes.length; i++) {
328
+ if (declaracoes[i] && declaracoes[i].aceitar) {
329
+ declaracoes[i].aceitar(this);
330
+ }
331
+ }
332
+ }
333
+ else if (declaracoes) {
334
+ declaracoes.aceitar(this);
335
+ }
336
+ return {
337
+ erros: this.erros,
338
+ locais: this.locais
339
+ };
340
+ };
341
+ return ResolvedorEguaClassico;
342
+ }());
343
+ exports.ResolvedorEguaClassico = ResolvedorEguaClassico;
344
+ //# sourceMappingURL=egua-classico.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"egua-classico.js","sourceRoot":"","sources":["../../../../fontes/resolvedor/dialetos/egua-classico.ts"],"names":[],"mappings":"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"}
File without changes
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../fontes/resolvedor/dialetos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA+B"}
@@ -0,0 +1,5 @@
1
+ import { SimboloInterface } from "../interfaces";
2
+ export declare class ErroResolvedor extends Error {
3
+ simbolo: SimboloInterface;
4
+ constructor(simbolo: SimboloInterface, mensagem: string);
5
+ }
@@ -18,9 +18,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.ErroResolvedor = void 0;
19
19
  var ErroResolvedor = /** @class */ (function (_super) {
20
20
  __extends(ErroResolvedor, _super);
21
- function ErroResolvedor(mensagem) {
21
+ function ErroResolvedor(simbolo, mensagem) {
22
22
  var _this = _super.call(this, mensagem) || this;
23
- _this.mensagem = mensagem;
23
+ _this.simbolo = simbolo;
24
+ Object.setPrototypeOf(_this, ErroResolvedor.prototype);
24
25
  return _this;
25
26
  }
26
27
  return ErroResolvedor;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erro-resolvedor.js","sourceRoot":"","sources":["../../../fontes/resolvedor/erro-resolvedor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAEA;IAAoC,kCAAK;IAGrC,wBAAY,OAAyB,EAAE,QAAgB;QAAvD,YACI,kBAAM,QAAQ,CAAC,SAGlB;QAFG,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;;IAC1D,CAAC;IACL,qBAAC;AAAD,CAAC,AARD,CAAoC,KAAK,GAQxC;AARY,wCAAc"}
@@ -0,0 +1,62 @@
1
+ import { ResolvedorInterface } from '../interfaces/resolvedor-interface';
2
+ import { PilhaEscopos } from './pilha-escopos';
3
+ import { ErroResolvedor } from './erro-resolvedor';
4
+ import { AcessoIndiceVariavel, AcessoMetodo, Agrupamento, Atribuir, Binario, Chamada, Construto, Dicionario, Funcao, Logico, Super, Variavel, Vetor } from '../construtos';
5
+ import { SimboloInterface } from '../interfaces';
6
+ import { Bloco, Classe, Enquanto, Escolha, Escreva, Expressao, Fazer, Funcao as FuncaoDeclaracao, Importar, Para, Se, Tente, Var } from '../declaracoes';
7
+ import { RetornoResolvedor } from './retorno-resolvedor';
8
+ /**
9
+ * O Resolvedor (Resolver) é responsável por catalogar todos os identificadores complexos, como por exemplo: funções, classes, variáveis,
10
+ * e delimitar os escopos onde esses identificadores existem.
11
+ * Exemplo: uma classe A declara dois métodos chamados M e N. Todas as variáveis declaradas dentro de M não podem ser vistas por N, e vice-versa.
12
+ * No entanto, todas as variáveis declaradas dentro da classe A podem ser vistas tanto por M quanto por N.
13
+ */
14
+ export declare class Resolvedor implements ResolvedorInterface {
15
+ erros: ErroResolvedor[];
16
+ escopos: PilhaEscopos;
17
+ locais: Map<Construto, number>;
18
+ funcaoAtual: any;
19
+ classeAtual: any;
20
+ cicloAtual: any;
21
+ constructor();
22
+ definir(simbolo: SimboloInterface): void;
23
+ declarar(simbolo: SimboloInterface): void;
24
+ inicioDoEscopo(): void;
25
+ finalDoEscopo(): void;
26
+ resolverLocal(expressao: Construto, simbolo: SimboloInterface): void;
27
+ visitarExpressaoBloco(declaracao: Bloco): any;
28
+ visitarExpressaoDeVariavel(expressao: Variavel): any;
29
+ visitarExpressaoVar(declaracao: Var): any;
30
+ visitarExpressaoDeAtribuicao(expressao: Atribuir): any;
31
+ resolverFuncao(funcao: Funcao, tipoFuncao: string): void;
32
+ visitarExpressaoFuncao(declaracao: FuncaoDeclaracao): any;
33
+ visitarExpressaoDeleguaFuncao(declaracao: Funcao): any;
34
+ visitarExpressaoTente(declaracao: Tente): any;
35
+ visitarExpressaoClasse(declaracao: Classe): any;
36
+ visitarExpressaoSuper(expressao: Super): any;
37
+ visitarExpressaoAcessoMetodo(expressao: AcessoMetodo): any;
38
+ visitarDeclaracaoDeExpressao(declaracao: Expressao): any;
39
+ visitarExpressaoSe(declaracao: Se): any;
40
+ visitarExpressaoImportar(declaracao: Importar): void;
41
+ visitarExpressaoEscreva(declaracao: Escreva): void;
42
+ visitarExpressaoRetornar(declaracao: any): any;
43
+ visitarExpressaoEscolha(declaracao: Escolha): void;
44
+ visitarExpressaoEnquanto(declaracao: Enquanto): any;
45
+ visitarExpressaoPara(declaracao: Para): any;
46
+ visitarExpressaoFazer(declaracao: Fazer): any;
47
+ visitarExpressaoBinaria(expressao: Binario): any;
48
+ visitarExpressaoDeChamada(expressao: Chamada): any;
49
+ visitarExpressaoAgrupamento(expressao: Agrupamento): any;
50
+ visitarExpressaoDicionario(expressao: Dicionario): any;
51
+ visitarExpressaoVetor(expressao: Vetor): any;
52
+ visitarExpressaoAcessoIndiceVariavel(expressao: AcessoIndiceVariavel): any;
53
+ visitarExpressaoContinua(declaracao?: any): any;
54
+ visitarExpressaoSustar(declaracao?: any): any;
55
+ visitarExpressaoAtribuicaoSobrescrita(expressao?: any): any;
56
+ visitarExpressaoLiteral(expressao?: any): any;
57
+ visitarExpressaoLogica(expressao?: Logico): any;
58
+ visitarExpressaoUnaria(expressao?: any): any;
59
+ visitarExpressaoDefinir(expressao?: any): any;
60
+ visitarExpressaoIsto(expressao?: any): any;
61
+ resolver(declaracoes: Construto | Construto[]): RetornoResolvedor;
62
+ }