@designliquido/delegua 0.36.1 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (534) hide show
  1. package/analisador-semantico/analisador-semantico-base.d.ts +69 -69
  2. package/analisador-semantico/analisador-semantico-base.js +180 -180
  3. package/analisador-semantico/analisador-semantico.d.ts +59 -59
  4. package/analisador-semantico/analisador-semantico.js +442 -442
  5. package/analisador-semantico/analisador-semantico.js.map +1 -1
  6. package/analisador-semantico/index.d.ts +3 -3
  7. package/analisador-semantico/index.js +19 -19
  8. package/analisador-semantico/pilha-variaveis.d.ts +20 -20
  9. package/analisador-semantico/pilha-variaveis.js +25 -25
  10. package/avaliador-sintatico/avaliador-sintatico-base.d.ts +90 -69
  11. package/avaliador-sintatico/avaliador-sintatico-base.d.ts.map +1 -1
  12. package/avaliador-sintatico/avaliador-sintatico-base.js +232 -223
  13. package/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
  14. package/avaliador-sintatico/avaliador-sintatico.d.ts +118 -126
  15. package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
  16. package/avaliador-sintatico/avaliador-sintatico.js +1041 -1093
  17. package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  18. package/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.d.ts +73 -73
  19. package/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +648 -648
  20. package/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
  21. package/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.d.ts +27 -21
  22. package/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.d.ts.map +1 -1
  23. package/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js +156 -149
  24. package/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js.map +1 -1
  25. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts +87 -87
  26. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +770 -770
  27. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
  28. package/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.d.ts +34 -34
  29. package/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.js +168 -168
  30. package/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.js.map +1 -1
  31. package/avaliador-sintatico/dialetos/index.d.ts +3 -3
  32. package/avaliador-sintatico/dialetos/index.js +19 -19
  33. package/avaliador-sintatico/erro-avaliador-sintatico.d.ts +5 -5
  34. package/avaliador-sintatico/erro-avaliador-sintatico.js +11 -11
  35. package/avaliador-sintatico/index.d.ts +6 -6
  36. package/avaliador-sintatico/index.js +22 -22
  37. package/avaliador-sintatico/micro-avaliador-sintatico-base.d.ts +27 -27
  38. package/avaliador-sintatico/micro-avaliador-sintatico-base.js +116 -116
  39. package/avaliador-sintatico/micro-avaliador-sintatico-base.js.map +1 -1
  40. package/avaliador-sintatico/micro-avaliador-sintatico.d.ts +21 -33
  41. package/avaliador-sintatico/micro-avaliador-sintatico.d.ts.map +1 -1
  42. package/avaliador-sintatico/micro-avaliador-sintatico.js +204 -287
  43. package/avaliador-sintatico/micro-avaliador-sintatico.js.map +1 -1
  44. package/avaliador-sintatico/retornos/index.d.ts +3 -3
  45. package/avaliador-sintatico/retornos/index.js +19 -19
  46. package/avaliador-sintatico/retornos/retorno-declaracao.d.ts +3 -3
  47. package/avaliador-sintatico/retornos/retorno-declaracao.js +2 -2
  48. package/avaliador-sintatico/retornos/retorno-primario.d.ts +3 -3
  49. package/avaliador-sintatico/retornos/retorno-primario.js +2 -2
  50. package/avaliador-sintatico/retornos/retorno-resolver-declaracao.d.ts +2 -2
  51. package/avaliador-sintatico/retornos/retorno-resolver-declaracao.js +2 -2
  52. package/avaliador-sintatico/traducao/avaliador-sintatico-javascript.d.ts +59 -59
  53. package/avaliador-sintatico/traducao/avaliador-sintatico-javascript.js +150 -150
  54. package/bibliotecas/biblioteca-global.d.ts +157 -157
  55. package/bibliotecas/biblioteca-global.d.ts.map +1 -1
  56. package/bibliotecas/biblioteca-global.js +487 -498
  57. package/bibliotecas/biblioteca-global.js.map +1 -1
  58. package/bibliotecas/dialetos/egua-classico/biblioteca-global.d.ts +1 -1
  59. package/bibliotecas/dialetos/egua-classico/biblioteca-global.js +236 -236
  60. package/bibliotecas/dialetos/egua-classico/biblioteca-global.js.map +1 -1
  61. package/bibliotecas/dialetos/egua-classico/index.d.ts +2 -2
  62. package/bibliotecas/dialetos/egua-classico/index.js +32 -32
  63. package/bibliotecas/dialetos/egua-classico/index.js.map +1 -1
  64. package/bibliotecas/dialetos/egua-classico/matematica.d.ts +1 -1
  65. package/bibliotecas/dialetos/egua-classico/matematica.js +541 -541
  66. package/bibliotecas/dialetos/egua-classico/matematica.js.map +1 -1
  67. package/bibliotecas/dialetos/egua-classico/tempo.d.ts +1 -1
  68. package/bibliotecas/dialetos/egua-classico/tempo.js +39 -39
  69. package/bibliotecas/dialetos/egua-classico/tempo.js.map +1 -1
  70. package/bibliotecas/dialetos/egua-classico/textos.d.ts +8 -8
  71. package/bibliotecas/dialetos/egua-classico/textos.js +201 -201
  72. package/bibliotecas/dialetos/egua-classico/textos.js.map +1 -1
  73. package/bibliotecas/primitivas-dicionario.d.ts +6 -6
  74. package/bibliotecas/primitivas-dicionario.d.ts.map +1 -1
  75. package/bibliotecas/primitivas-dicionario.js +10 -10
  76. package/bibliotecas/primitivas-numero.d.ts +6 -6
  77. package/bibliotecas/primitivas-numero.d.ts.map +1 -1
  78. package/bibliotecas/primitivas-numero.js +10 -10
  79. package/bibliotecas/primitivas-texto.d.ts +17 -17
  80. package/bibliotecas/primitivas-texto.d.ts.map +1 -1
  81. package/bibliotecas/primitivas-texto.js +22 -22
  82. package/bibliotecas/primitivas-texto.js.map +1 -1
  83. package/bibliotecas/primitivas-vetor.d.ts +21 -21
  84. package/bibliotecas/primitivas-vetor.d.ts.map +1 -1
  85. package/bibliotecas/primitivas-vetor.js +88 -90
  86. package/bibliotecas/primitivas-vetor.js.map +1 -1
  87. package/bin/package.json +13 -12
  88. package/construtos/acesso-elemento-matriz.d.ts +12 -12
  89. package/construtos/acesso-elemento-matriz.js +17 -17
  90. package/construtos/acesso-indice-variavel.d.ts +15 -15
  91. package/construtos/acesso-indice-variavel.js +20 -20
  92. package/construtos/acesso-metodo-ou-propriedade.d.ts +14 -14
  93. package/construtos/acesso-metodo-ou-propriedade.js +19 -19
  94. package/construtos/agrupamento.d.ts +14 -14
  95. package/construtos/agrupamento.js +19 -19
  96. package/construtos/atribuicao-por-indice.d.ts +11 -11
  97. package/construtos/atribuicao-por-indice.js +16 -16
  98. package/construtos/atribuicao-por-indices-matriz.d.ts +12 -12
  99. package/construtos/atribuicao-por-indices-matriz.js +17 -17
  100. package/construtos/atribuir.d.ts +15 -15
  101. package/construtos/atribuir.js +24 -24
  102. package/construtos/atribuir.js.map +1 -1
  103. package/construtos/binario.d.ts +33 -33
  104. package/construtos/binario.d.ts.map +1 -1
  105. package/construtos/binario.js +38 -38
  106. package/construtos/binario.js.map +1 -1
  107. package/construtos/chamada.d.ts +15 -15
  108. package/construtos/chamada.d.ts.map +1 -1
  109. package/construtos/chamada.js +21 -21
  110. package/construtos/chamada.js.map +1 -1
  111. package/construtos/comentario.d.ts +15 -15
  112. package/construtos/comentario.js +20 -20
  113. package/construtos/constante.d.ts +12 -12
  114. package/construtos/constante.d.ts.map +1 -1
  115. package/construtos/constante.js +17 -17
  116. package/construtos/constante.js.map +1 -1
  117. package/construtos/construto.d.ts +7 -7
  118. package/construtos/construto.js +2 -2
  119. package/construtos/decorador.d.ts +18 -14
  120. package/construtos/decorador.d.ts.map +1 -1
  121. package/construtos/decorador.js +19 -19
  122. package/construtos/decorador.js.map +1 -1
  123. package/construtos/definir-valor.d.ts +11 -11
  124. package/construtos/definir-valor.js +16 -16
  125. package/construtos/dicionario.d.ts +10 -10
  126. package/construtos/dicionario.js +15 -15
  127. package/construtos/expressao-regular.d.ts +10 -10
  128. package/construtos/expressao-regular.d.ts.map +1 -1
  129. package/construtos/expressao-regular.js +15 -15
  130. package/construtos/expressao-regular.js.map +1 -1
  131. package/construtos/fim-para.d.ts +22 -22
  132. package/construtos/fim-para.js +25 -25
  133. package/construtos/formatacao-escrita.d.ts +16 -16
  134. package/construtos/formatacao-escrita.js +21 -21
  135. package/construtos/funcao.d.ts +12 -12
  136. package/construtos/funcao.js +16 -16
  137. package/construtos/index.d.ts +29 -29
  138. package/construtos/index.js +45 -45
  139. package/construtos/isto.d.ts +9 -9
  140. package/construtos/isto.js +14 -14
  141. package/construtos/literal.d.ts +10 -10
  142. package/construtos/literal.js +14 -14
  143. package/construtos/logico.d.ts +11 -11
  144. package/construtos/logico.js +16 -16
  145. package/construtos/qual-tipo.d.ts +11 -11
  146. package/construtos/qual-tipo.d.ts.map +1 -1
  147. package/construtos/qual-tipo.js +16 -16
  148. package/construtos/qual-tipo.js.map +1 -1
  149. package/construtos/super.d.ts +10 -10
  150. package/construtos/super.js +15 -15
  151. package/construtos/tipo-de.d.ts +10 -10
  152. package/construtos/tipo-de.d.ts.map +1 -1
  153. package/construtos/tipo-de.js +15 -15
  154. package/construtos/tipo-de.js.map +1 -1
  155. package/construtos/tuplas/deceto.d.ts +18 -18
  156. package/construtos/tuplas/deceto.js +32 -32
  157. package/construtos/tuplas/dupla.d.ts +6 -6
  158. package/construtos/tuplas/dupla.js +12 -12
  159. package/construtos/tuplas/index.d.ts +13 -13
  160. package/construtos/tuplas/index.js +67 -67
  161. package/construtos/tuplas/index.js.map +1 -1
  162. package/construtos/tuplas/noneto.d.ts +15 -15
  163. package/construtos/tuplas/noneto.js +25 -25
  164. package/construtos/tuplas/octeto.d.ts +14 -14
  165. package/construtos/tuplas/octeto.js +24 -24
  166. package/construtos/tuplas/quarteto.d.ts +8 -8
  167. package/construtos/tuplas/quarteto.js +14 -14
  168. package/construtos/tuplas/quinteto.d.ts +9 -9
  169. package/construtos/tuplas/quinteto.js +15 -15
  170. package/construtos/tuplas/septeto.d.ts +13 -13
  171. package/construtos/tuplas/septeto.js +23 -23
  172. package/construtos/tuplas/sexteto.d.ts +10 -10
  173. package/construtos/tuplas/sexteto.js +16 -16
  174. package/construtos/tuplas/trio.d.ts +7 -7
  175. package/construtos/tuplas/trio.js +13 -13
  176. package/construtos/tuplas/tupla.d.ts +8 -8
  177. package/construtos/tuplas/tupla.js +9 -9
  178. package/construtos/unario.d.ts +11 -11
  179. package/construtos/unario.js +16 -16
  180. package/construtos/variavel.d.ts +9 -9
  181. package/construtos/variavel.d.ts.map +1 -1
  182. package/construtos/variavel.js +14 -14
  183. package/construtos/variavel.js.map +1 -1
  184. package/construtos/vetor.d.ts +11 -11
  185. package/construtos/vetor.js +21 -21
  186. package/construtos/vetor.js.map +1 -1
  187. package/declaracoes/aleatorio.d.ts +15 -15
  188. package/declaracoes/aleatorio.js +15 -15
  189. package/declaracoes/bloco.d.ts +7 -7
  190. package/declaracoes/bloco.js +14 -14
  191. package/declaracoes/cabecalho-programa.d.ts +7 -7
  192. package/declaracoes/cabecalho-programa.js +14 -14
  193. package/declaracoes/classe.d.ts +14 -14
  194. package/declaracoes/classe.js +18 -18
  195. package/declaracoes/const-multiplo.d.ts +14 -14
  196. package/declaracoes/const-multiplo.js +19 -19
  197. package/declaracoes/const.d.ts +14 -14
  198. package/declaracoes/const.d.ts.map +1 -1
  199. package/declaracoes/const.js +19 -19
  200. package/declaracoes/const.js.map +1 -1
  201. package/declaracoes/continua.d.ts +6 -6
  202. package/declaracoes/continua.js +13 -13
  203. package/declaracoes/declaracao.d.ts +10 -8
  204. package/declaracoes/declaracao.d.ts.map +1 -1
  205. package/declaracoes/declaracao.js +18 -17
  206. package/declaracoes/declaracao.js.map +1 -1
  207. package/declaracoes/enquanto.d.ts +10 -10
  208. package/declaracoes/enquanto.js +15 -15
  209. package/declaracoes/escolha.d.ts +14 -14
  210. package/declaracoes/escolha.js +19 -19
  211. package/declaracoes/escreva-mesma-linha.d.ts +8 -8
  212. package/declaracoes/escreva-mesma-linha.js +14 -14
  213. package/declaracoes/escreva.d.ts +8 -8
  214. package/declaracoes/escreva.js +14 -14
  215. package/declaracoes/expressao.d.ts +8 -8
  216. package/declaracoes/expressao.d.ts.map +1 -1
  217. package/declaracoes/expressao.js +14 -14
  218. package/declaracoes/expressao.js.map +1 -1
  219. package/declaracoes/falhar.d.ts +8 -8
  220. package/declaracoes/falhar.js +15 -15
  221. package/declaracoes/fazer.d.ts +10 -10
  222. package/declaracoes/fazer.js +15 -15
  223. package/declaracoes/funcao.d.ts +11 -11
  224. package/declaracoes/funcao.js +17 -17
  225. package/declaracoes/importar.d.ts +9 -9
  226. package/declaracoes/importar.js +15 -15
  227. package/declaracoes/index.d.ts +31 -31
  228. package/declaracoes/index.js +47 -47
  229. package/declaracoes/inicio-algoritmo.d.ts +6 -6
  230. package/declaracoes/inicio-algoritmo.js +13 -13
  231. package/declaracoes/leia-multiplo.d.ts +14 -14
  232. package/declaracoes/leia-multiplo.js +21 -21
  233. package/declaracoes/leia.d.ts +17 -17
  234. package/declaracoes/leia.js +21 -21
  235. package/declaracoes/para-cada.d.ts +11 -11
  236. package/declaracoes/para-cada.js +17 -17
  237. package/declaracoes/para.d.ts +19 -19
  238. package/declaracoes/para.js +24 -24
  239. package/declaracoes/propriedade-classe.d.ts +10 -10
  240. package/declaracoes/propriedade-classe.js +16 -16
  241. package/declaracoes/retorna.d.ts +8 -8
  242. package/declaracoes/retorna.js +15 -15
  243. package/declaracoes/se.d.ts +11 -11
  244. package/declaracoes/se.js +17 -17
  245. package/declaracoes/sustar.d.ts +6 -6
  246. package/declaracoes/sustar.js +13 -13
  247. package/declaracoes/tendo-como.d.ts +16 -16
  248. package/declaracoes/tendo-como.d.ts.map +1 -1
  249. package/declaracoes/tendo-como.js +21 -21
  250. package/declaracoes/tendo-como.js.map +1 -1
  251. package/declaracoes/tente.d.ts +14 -14
  252. package/declaracoes/tente.js +20 -20
  253. package/declaracoes/var-multiplo.d.ts +15 -15
  254. package/declaracoes/var-multiplo.js +20 -20
  255. package/declaracoes/var.d.ts +16 -16
  256. package/declaracoes/var.d.ts.map +1 -1
  257. package/declaracoes/var.js +21 -21
  258. package/declaracoes/var.js.map +1 -1
  259. package/depuracao/cyrb53.d.ts +9 -9
  260. package/depuracao/cyrb53.js +22 -22
  261. package/depuracao/cyrb53.js.map +1 -1
  262. package/depuracao/index.d.ts +2 -2
  263. package/depuracao/index.js +23 -23
  264. package/depuracao/ponto-parada.d.ts +4 -4
  265. package/depuracao/ponto-parada.js +2 -2
  266. package/espaco-variaveis.d.ts +19 -19
  267. package/espaco-variaveis.js +19 -19
  268. package/estruturas/chamavel.d.ts +7 -7
  269. package/estruturas/chamavel.d.ts.map +1 -1
  270. package/estruturas/chamavel.js +12 -12
  271. package/estruturas/chamavel.js.map +1 -1
  272. package/estruturas/classe-padrao.d.ts +31 -31
  273. package/estruturas/classe-padrao.d.ts.map +1 -1
  274. package/estruturas/classe-padrao.js +39 -39
  275. package/estruturas/delegua-funcao.d.ts +29 -29
  276. package/estruturas/delegua-funcao.d.ts.map +1 -1
  277. package/estruturas/delegua-funcao.js +140 -141
  278. package/estruturas/delegua-funcao.js.map +1 -1
  279. package/estruturas/descritor-tipo-classe.d.ts +37 -37
  280. package/estruturas/descritor-tipo-classe.js +79 -79
  281. package/estruturas/descritor-tipo-classe.js.map +1 -1
  282. package/estruturas/funcao-padrao.d.ts +23 -23
  283. package/estruturas/funcao-padrao.js +34 -34
  284. package/estruturas/index.d.ts +9 -9
  285. package/estruturas/index.js +25 -25
  286. package/estruturas/metodo-primitiva.d.ts +28 -28
  287. package/estruturas/metodo-primitiva.js +40 -40
  288. package/estruturas/modulo.d.ts +18 -18
  289. package/estruturas/modulo.js +24 -24
  290. package/estruturas/objeto-delegua-classe.d.ts +26 -26
  291. package/estruturas/objeto-delegua-classe.js +53 -53
  292. package/estruturas/objeto-delegua-classe.js.map +1 -1
  293. package/estruturas/objeto-padrao.d.ts +18 -18
  294. package/estruturas/objeto-padrao.js +32 -32
  295. package/estruturas/objeto-padrao.js.map +1 -1
  296. package/excecoes/erro-em-tempo-de-execucao.d.ts +7 -7
  297. package/excecoes/erro-em-tempo-de-execucao.js +13 -13
  298. package/excecoes/index.d.ts +1 -1
  299. package/excecoes/index.js +17 -17
  300. package/formatadores/formatador-delegua.d.ts +79 -79
  301. package/formatadores/formatador-delegua.d.ts.map +1 -1
  302. package/formatadores/formatador-delegua.js +676 -676
  303. package/formatadores/formatador-delegua.js.map +1 -1
  304. package/formatadores/index.d.ts +1 -1
  305. package/formatadores/index.js +17 -17
  306. package/geracao-identificadores/index.d.ts +1 -1
  307. package/geracao-identificadores/index.js +22 -23
  308. package/geracao-identificadores/index.js.map +1 -1
  309. package/index.d.ts +9 -9
  310. package/index.js +27 -27
  311. package/interfaces/analisador-semantico-interface.d.ts +6 -6
  312. package/interfaces/analisador-semantico-interface.js +2 -2
  313. package/interfaces/avaliador-sintatico-interface.d.ts +10 -55
  314. package/interfaces/avaliador-sintatico-interface.d.ts.map +1 -1
  315. package/interfaces/avaliador-sintatico-interface.js +2 -2
  316. package/interfaces/construtos/index.d.ts +4 -4
  317. package/interfaces/construtos/index.js +2 -2
  318. package/interfaces/erros/diagnostico-analisador-semantico.d.ts +14 -14
  319. package/interfaces/erros/diagnostico-analisador-semantico.js +10 -10
  320. package/interfaces/erros/diagnostico-analisador-semantico.js.map +1 -1
  321. package/interfaces/erros/erro-interpretador.d.ts +8 -8
  322. package/interfaces/erros/erro-interpretador.js +2 -2
  323. package/interfaces/erros/index.d.ts +1 -1
  324. package/interfaces/erros/index.js +17 -17
  325. package/interfaces/escopo-execucao.d.ts +12 -12
  326. package/interfaces/escopo-execucao.js +2 -2
  327. package/interfaces/formatador-comum-interface.d.ts +11 -11
  328. package/interfaces/formatador-comum-interface.js +2 -2
  329. package/interfaces/funcao-hipotetica-interface.d.ts +3 -3
  330. package/interfaces/funcao-hipotetica-interface.js +2 -2
  331. package/interfaces/index.d.ts +16 -16
  332. package/interfaces/index.js +32 -32
  333. package/interfaces/interpretador-com-depuracao-interface.d.ts +17 -17
  334. package/interfaces/interpretador-com-depuracao-interface.js +2 -2
  335. package/interfaces/interpretador-interface-potigol.d.ts +5 -5
  336. package/interfaces/interpretador-interface-potigol.js +2 -2
  337. package/interfaces/interpretador-interface.d.ts +20 -20
  338. package/interfaces/interpretador-interface.js +2 -2
  339. package/interfaces/lexador-interface.d.ts +23 -23
  340. package/interfaces/lexador-interface.js +2 -2
  341. package/interfaces/parametro-interface.d.ts +15 -15
  342. package/interfaces/parametro-interface.js +2 -2
  343. package/interfaces/pilha-escopos-execucao-interface.d.ts +26 -26
  344. package/interfaces/pilha-escopos-execucao-interface.js +2 -2
  345. package/interfaces/pilha-interface.d.ts +7 -7
  346. package/interfaces/pilha-interface.js +2 -2
  347. package/interfaces/resolvedor-interface.d.ts +41 -41
  348. package/interfaces/resolvedor-interface.js +2 -2
  349. package/interfaces/retornos/index.d.ts +4 -4
  350. package/interfaces/retornos/index.js +20 -20
  351. package/interfaces/retornos/retorno-analisador-semantico.d.ts +4 -4
  352. package/interfaces/retornos/retorno-analisador-semantico.js +2 -2
  353. package/interfaces/retornos/retorno-avaliador-sintatico.d.ts +5 -5
  354. package/interfaces/retornos/retorno-avaliador-sintatico.js +2 -2
  355. package/interfaces/retornos/retorno-execucao-interface.d.ts +5 -5
  356. package/interfaces/retornos/retorno-execucao-interface.js +2 -2
  357. package/interfaces/retornos/retorno-interpretador.d.ts +5 -5
  358. package/interfaces/retornos/retorno-interpretador.js +2 -2
  359. package/interfaces/retornos/retorno-lexador.d.ts +9 -9
  360. package/interfaces/retornos/retorno-lexador.js +2 -2
  361. package/interfaces/simbolo-interface.d.ts +7 -7
  362. package/interfaces/simbolo-interface.js +2 -2
  363. package/interfaces/tradutor-interface.d.ts +3 -3
  364. package/interfaces/tradutor-interface.js +2 -2
  365. package/interfaces/variavel-hipotetica-interface.d.ts +8 -8
  366. package/interfaces/variavel-hipotetica-interface.js +2 -2
  367. package/interfaces/variavel-interface.d.ts +8 -8
  368. package/interfaces/variavel-interface.d.ts.map +1 -1
  369. package/interfaces/variavel-interface.js +2 -2
  370. package/interfaces/visitante-comum-interface.d.ts +58 -58
  371. package/interfaces/visitante-comum-interface.js +2 -2
  372. package/interpretador/argumento-interface.d.ts +4 -4
  373. package/interpretador/argumento-interface.js +2 -2
  374. package/interpretador/comum.d.ts +2 -2
  375. package/interpretador/comum.d.ts.map +1 -1
  376. package/interpretador/comum.js +51 -52
  377. package/interpretador/comum.js.map +1 -1
  378. package/interpretador/dialetos/egua-classico/index.d.ts +1 -1
  379. package/interpretador/dialetos/egua-classico/index.js +17 -17
  380. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts +119 -119
  381. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts.map +1 -1
  382. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +815 -815
  383. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
  384. package/interpretador/dialetos/egua-classico/resolvedor/erro-resolvedor.d.ts +5 -5
  385. package/interpretador/dialetos/egua-classico/resolvedor/erro-resolvedor.js +11 -11
  386. package/interpretador/dialetos/egua-classico/resolvedor/index.d.ts +3 -3
  387. package/interpretador/dialetos/egua-classico/resolvedor/index.js +19 -19
  388. package/interpretador/dialetos/egua-classico/resolvedor/pilha-escopos.d.ts +9 -9
  389. package/interpretador/dialetos/egua-classico/resolvedor/pilha-escopos.js +25 -25
  390. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts +106 -106
  391. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js +441 -441
  392. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js.map +1 -1
  393. package/interpretador/dialetos/egua-classico/resolvedor/retorno-resolvedor.d.ts +6 -6
  394. package/interpretador/dialetos/egua-classico/resolvedor/retorno-resolvedor.js +2 -2
  395. package/interpretador/dialetos/index.d.ts +2 -2
  396. package/interpretador/dialetos/index.js +18 -18
  397. package/interpretador/dialetos/portugol-ipt/index.d.ts +1 -1
  398. package/interpretador/dialetos/portugol-ipt/index.js +17 -17
  399. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts +133 -133
  400. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts.map +1 -1
  401. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js +501 -501
  402. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js.map +1 -1
  403. package/interpretador/index.d.ts +3 -3
  404. package/interpretador/index.js +19 -19
  405. package/interpretador/inferenciador.d.ts +15 -15
  406. package/interpretador/inferenciador.d.ts.map +1 -1
  407. package/interpretador/inferenciador.js +80 -80
  408. package/interpretador/inferenciador.js.map +1 -1
  409. package/interpretador/interpretador-base.d.ts +268 -268
  410. package/interpretador/interpretador-base.d.ts.map +1 -1
  411. package/interpretador/interpretador-base.js +1396 -1399
  412. package/interpretador/interpretador-base.js.map +1 -1
  413. package/interpretador/interpretador-com-depuracao.d.ts +190 -190
  414. package/interpretador/interpretador-com-depuracao.d.ts.map +1 -1
  415. package/interpretador/interpretador-com-depuracao.js +570 -568
  416. package/interpretador/interpretador-com-depuracao.js.map +1 -1
  417. package/interpretador/pilha-escopos-execucao.d.ts +39 -39
  418. package/interpretador/pilha-escopos-execucao.d.ts.map +1 -1
  419. package/interpretador/pilha-escopos-execucao.js +243 -243
  420. package/interpretador/pilha-escopos-execucao.js.map +1 -1
  421. package/lexador/dialetos/index.d.ts +4 -4
  422. package/lexador/dialetos/index.js +20 -20
  423. package/lexador/dialetos/lexador-egua-classico.d.ts +36 -36
  424. package/lexador/dialetos/lexador-egua-classico.js +286 -286
  425. package/lexador/dialetos/lexador-egua-classico.js.map +1 -1
  426. package/lexador/dialetos/lexador-guarani.d.ts +10 -10
  427. package/lexador/dialetos/lexador-guarani.js +113 -113
  428. package/lexador/dialetos/lexador-guarani.js.map +1 -1
  429. package/lexador/dialetos/lexador-pitugues.d.ts +51 -51
  430. package/lexador/dialetos/lexador-pitugues.js +398 -398
  431. package/lexador/dialetos/lexador-pitugues.js.map +1 -1
  432. package/lexador/dialetos/lexador-portugol-ipt.d.ts +33 -33
  433. package/lexador/dialetos/lexador-portugol-ipt.js +237 -237
  434. package/lexador/dialetos/lexador-portugol-ipt.js.map +1 -1
  435. package/lexador/dialetos/palavras-reservadas/egua-classico.d.ts +32 -32
  436. package/lexador/dialetos/palavras-reservadas/egua-classico.js +39 -39
  437. package/lexador/dialetos/palavras-reservadas/guarani.d.ts +3 -3
  438. package/lexador/dialetos/palavras-reservadas/guarani.js +10 -10
  439. package/lexador/dialetos/palavras-reservadas/portugol-ipt.d.ts +13 -13
  440. package/lexador/dialetos/palavras-reservadas/portugol-ipt.js +20 -20
  441. package/lexador/dialetos/palavras-reservadas/rantiaquin.d.ts +1 -1
  442. package/lexador/dialetos/palavras-reservadas/rantiaquin.js +4 -4
  443. package/lexador/dialetos/pragma.d.ts +8 -8
  444. package/lexador/dialetos/pragma.js +2 -2
  445. package/lexador/erro-lexador.d.ts +5 -5
  446. package/lexador/erro-lexador.js +2 -2
  447. package/lexador/index.d.ts +4 -4
  448. package/lexador/index.js +20 -20
  449. package/lexador/lexador-base-linha-unica.d.ts +28 -28
  450. package/lexador/lexador-base-linha-unica.js +82 -82
  451. package/lexador/lexador-base-linha-unica.js.map +1 -1
  452. package/lexador/lexador-base.d.ts +41 -41
  453. package/lexador/lexador-base.js +112 -112
  454. package/lexador/lexador-base.js.map +1 -1
  455. package/lexador/lexador.d.ts +43 -43
  456. package/lexador/lexador.js +440 -440
  457. package/lexador/lexador.js.map +1 -1
  458. package/lexador/micro-lexador.d.ts +29 -29
  459. package/lexador/micro-lexador.js +207 -207
  460. package/lexador/micro-lexador.js.map +1 -1
  461. package/lexador/palavras-reservadas.d.ts +54 -54
  462. package/lexador/palavras-reservadas.js +61 -61
  463. package/lexador/simbolo.d.ts +10 -10
  464. package/lexador/simbolo.js +16 -16
  465. package/lexador/traducao/lexador-javascript.d.ts +28 -28
  466. package/lexador/traducao/lexador-javascript.js +58 -58
  467. package/package.json +13 -12
  468. package/quebras/index.d.ts +10 -10
  469. package/quebras/index.js +19 -19
  470. package/tipo-dados-elementar.d.ts +1 -1
  471. package/tipo-dados-elementar.js +2 -2
  472. package/tipos-de-dados/delegua.d.ts +18 -18
  473. package/tipos-de-dados/delegua.js +19 -19
  474. package/tipos-de-dados/listas-delegua.d.ts +6 -6
  475. package/tipos-de-dados/listas-delegua.js +7 -7
  476. package/tipos-de-dados/listas-primitivos.d.ts +5 -5
  477. package/tipos-de-dados/listas-primitivos.js +6 -6
  478. package/tipos-de-dados/primitivos.d.ts +16 -16
  479. package/tipos-de-dados/primitivos.js +17 -17
  480. package/tipos-de-simbolos/comum.d.ts +23 -23
  481. package/tipos-de-simbolos/comum.js +24 -24
  482. package/tipos-de-simbolos/delegua.d.ts +91 -91
  483. package/tipos-de-simbolos/delegua.js +92 -92
  484. package/tipos-de-simbolos/egua-classico.d.ts +75 -75
  485. package/tipos-de-simbolos/egua-classico.js +76 -76
  486. package/tipos-de-simbolos/guarani.d.ts +14 -14
  487. package/tipos-de-simbolos/guarani.js +15 -15
  488. package/tipos-de-simbolos/guarani.js.map +1 -1
  489. package/tipos-de-simbolos/microgramaticas/delegua.d.ts +46 -46
  490. package/tipos-de-simbolos/microgramaticas/delegua.js +47 -47
  491. package/tipos-de-simbolos/pitugues.d.ts +75 -75
  492. package/tipos-de-simbolos/pitugues.js +76 -76
  493. package/tipos-de-simbolos/portugol-ipt.d.ts +36 -36
  494. package/tipos-de-simbolos/portugol-ipt.js +37 -37
  495. package/tipos-de-simbolos/rantiaquin.d.ts +2 -2
  496. package/tipos-de-simbolos/rantiaquin.js +3 -3
  497. package/tradutores/dicionarios/dicionario-delegua-javascript.d.ts +2 -2
  498. package/tradutores/dicionarios/dicionario-delegua-javascript.js +10 -10
  499. package/tradutores/dicionarios/index.d.ts +1 -1
  500. package/tradutores/dicionarios/index.js +17 -17
  501. package/tradutores/index.d.ts +6 -6
  502. package/tradutores/index.js +22 -22
  503. package/tradutores/python/python3-lexer.d.ts +152 -152
  504. package/tradutores/python/python3-lexer.js +1227 -1227
  505. package/tradutores/python/python3-lexer.js.map +1 -1
  506. package/tradutores/python/python3-listener.d.ts +964 -964
  507. package/tradutores/python/python3-listener.js +3 -3
  508. package/tradutores/python/python3-parser.d.ts +1342 -1342
  509. package/tradutores/python/python3-parser.js +11226 -11226
  510. package/tradutores/python/python3-parser.js.map +1 -1
  511. package/tradutores/python/python3-visitor.d.ts +619 -619
  512. package/tradutores/python/python3-visitor.js +3 -3
  513. package/tradutores/tradutor-assembly-x64.d.ts +19 -19
  514. package/tradutores/tradutor-assembly-x64.js +141 -141
  515. package/tradutores/tradutor-assembly-x64.js.map +1 -1
  516. package/tradutores/tradutor-assemblyscript.d.ts +91 -91
  517. package/tradutores/tradutor-assemblyscript.js +590 -590
  518. package/tradutores/tradutor-assemblyscript.js.map +1 -1
  519. package/tradutores/tradutor-javascript.d.ts +95 -95
  520. package/tradutores/tradutor-javascript.js +577 -577
  521. package/tradutores/tradutor-javascript.js.map +1 -1
  522. package/tradutores/tradutor-portugol-ipt.d.ts +21 -21
  523. package/tradutores/tradutor-portugol-ipt.js +60 -60
  524. package/tradutores/tradutor-portugol-ipt.js.map +1 -1
  525. package/tradutores/tradutor-python.d.ts +65 -65
  526. package/tradutores/tradutor-python.js +461 -461
  527. package/tradutores/tradutor-python.js.map +1 -1
  528. package/tradutores/tradutor-reverso-javascript.d.ts +50 -50
  529. package/tradutores/tradutor-reverso-javascript.js +392 -392
  530. package/tradutores/tradutor-reverso-javascript.js.map +1 -1
  531. package/tradutores/tradutor-reverso-python.d.ts +32 -32
  532. package/tradutores/tradutor-reverso-python.js +71 -71
  533. package/tradutores/tradutor-reverso-python.js.map +1 -1
  534. package/umd/delegua.js +26204 -26346
@@ -1,442 +1,442 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ResolvedorEguaClassico = void 0;
4
- const erro_resolvedor_1 = require("./erro-resolvedor");
5
- const pilha_escopos_1 = require("./pilha-escopos");
6
- const TipoFuncao = {
7
- NENHUM: 'NENHUM',
8
- FUNÇÃO: 'FUNÇÃO',
9
- CONSTRUTOR: 'CONSTRUTOR',
10
- METODO: 'METODO',
11
- };
12
- const TipoClasse = {
13
- NENHUM: 'NENHUM',
14
- CLASSE: 'CLASSE',
15
- SUBCLASSE: 'SUBCLASSE',
16
- };
17
- const TipoLoop = {
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
- *
28
- * 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.
29
- * No entanto, todas as variáveis declaradas dentro da classe A podem ser vistas tanto por M quanto por N.
30
- *
31
- * Não faz sentido ser implementado nos outros interpretadores pelos outros optarem por uma pilha de execução que
32
- * espera importar qualquer coisa a qualquer momento.
33
- */
34
- class ResolvedorEguaClassico {
35
- constructor() {
36
- this.interfaceEntradaSaida = null;
37
- this.erros = [];
38
- this.escopos = new pilha_escopos_1.PilhaEscopos();
39
- this.locais = new Map();
40
- this.funcaoAtual = TipoFuncao.NENHUM;
41
- this.classeAtual = TipoClasse.NENHUM;
42
- this.cicloAtual = TipoClasse.NENHUM;
43
- }
44
- visitarDeclaracaoComentario(declaracao) {
45
- return Promise.resolve();
46
- }
47
- visitarDeclaracaoTendoComo(declaracao) {
48
- throw new Error('Método não implementado.');
49
- }
50
- visitarDeclaracaoInicioAlgoritmo(declaracao) {
51
- throw new Error('Método não implementado.');
52
- }
53
- visitarDeclaracaoCabecalhoPrograma(declaracao) {
54
- throw new Error('Método não implementado.');
55
- }
56
- visitarExpressaoTupla(expressao) {
57
- throw new Error('Método não implementado.');
58
- }
59
- visitarExpressaoAcessoElementoMatriz(expressao) {
60
- throw new Error('Método não implementado.');
61
- }
62
- visitarExpressaoAtribuicaoPorIndicesMatriz(expressao) {
63
- throw new Error('Método não implementado.');
64
- }
65
- visitarExpressaoExpressaoRegular(expressao) {
66
- throw new Error('Método não implementado.');
67
- }
68
- visitarExpressaoTipoDe(expressao) {
69
- throw new Error('Método não implementado.');
70
- }
71
- visitarExpressaoQualTipo(expressao) {
72
- throw new Error('Método não implementado.');
73
- }
74
- visitarExpressaoFalhar(expressao) {
75
- throw new Error('Método não implementado.');
76
- }
77
- visitarDeclaracaoParaCada(declaracao) {
78
- throw new Error('Método não implementado.');
79
- }
80
- visitarDeclaracaoConst(declaracao) {
81
- throw new Error('Método não implementado.');
82
- }
83
- visitarDeclaracaoConstMultiplo(declaracao) {
84
- throw new Error('Método não implementado.');
85
- }
86
- visitarExpressaoFimPara(declaracao) {
87
- throw new Error('Método não implementado.');
88
- }
89
- visitarExpressaoFormatacaoEscrita(declaracao) {
90
- throw new Error('Método não implementado.');
91
- }
92
- visitarDeclaracaoEscrevaMesmaLinha(declaracao) {
93
- throw new Error('Método não implementado.');
94
- }
95
- avaliar(expressao) {
96
- throw new Error('Método não implementado.');
97
- }
98
- eVerdadeiro(objeto) {
99
- throw new Error('Método não implementado.');
100
- }
101
- verificarOperandoNumero(operador, operando) {
102
- throw new Error('Método não implementado.');
103
- }
104
- eIgual(esquerda, direita) {
105
- throw new Error('Método não implementado.');
106
- }
107
- verificarOperandosNumeros(operador, direita, esquerda) {
108
- throw new Error('Método não implementado.');
109
- }
110
- procurarVariavel(nome, expressao) {
111
- throw new Error('Método não implementado.');
112
- }
113
- visitarExpressaoLeia(expressao) {
114
- throw new Error('Método não implementado.');
115
- }
116
- visitarExpressaoLeiaMultiplo(expressao) {
117
- throw new Error('Método não implementado.');
118
- }
119
- executarBloco(declaracoes, ambiente) {
120
- throw new Error('Método não implementado.');
121
- }
122
- paraTexto(objeto) {
123
- throw new Error('Método não implementado.');
124
- }
125
- executar(declaracao, mostrarResultado) {
126
- throw new Error('Método não implementado.');
127
- }
128
- interpretar(declaracoes, manterAmbiente) {
129
- throw new Error('Método não implementado.');
130
- }
131
- finalizacao() {
132
- throw new Error('Método não implementado.');
133
- }
134
- definir(simbolo) {
135
- if (this.escopos.eVazio())
136
- return;
137
- this.escopos.topoDaPilha()[simbolo.lexema] = true;
138
- }
139
- declarar(simbolo) {
140
- if (this.escopos.eVazio())
141
- return;
142
- const escopo = this.escopos.topoDaPilha();
143
- if (escopo.hasOwnProperty(simbolo.lexema)) {
144
- const erro = new erro_resolvedor_1.ErroResolvedor(simbolo, 'Variável com esse nome já declarada neste escopo.');
145
- this.erros.push(erro);
146
- }
147
- escopo[simbolo.lexema] = false;
148
- }
149
- inicioDoEscopo() {
150
- this.escopos.empilhar({});
151
- }
152
- finalDoEscopo() {
153
- this.escopos.removerUltimo();
154
- }
155
- resolverLocal(expressao, simbolo) {
156
- for (let i = this.escopos.pilha.length - 1; i >= 0; i--) {
157
- if (this.escopos.pilha[i].hasOwnProperty(simbolo.lexema)) {
158
- this.locais.set(expressao, this.escopos.pilha.length - 1 - i);
159
- }
160
- }
161
- }
162
- visitarExpressaoBloco(declaracao) {
163
- this.inicioDoEscopo();
164
- this.resolver(declaracao.declaracoes);
165
- this.finalDoEscopo();
166
- return null;
167
- }
168
- visitarExpressaoDeVariavel(expressao) {
169
- if (!this.escopos.eVazio() && this.escopos.topoDaPilha()[expressao.simbolo.lexema] === false) {
170
- const erro = new erro_resolvedor_1.ErroResolvedor(expressao.simbolo, 'Não é possível ler a variável local em seu próprio inicializador.');
171
- this.erros.push(erro);
172
- throw erro;
173
- }
174
- this.resolverLocal(expressao, expressao.simbolo);
175
- return null;
176
- }
177
- visitarDeclaracaoVar(declaracao) {
178
- this.declarar(declaracao.simbolo);
179
- if (declaracao.inicializador !== null) {
180
- this.resolver(declaracao.inicializador);
181
- }
182
- this.definir(declaracao.simbolo);
183
- return null;
184
- }
185
- visitarDeclaracaoVarMultiplo(declaracao) {
186
- throw new Error('Método não implementado.');
187
- }
188
- visitarExpressaoDeAtribuicao(expressao) {
189
- this.resolver(expressao.valor);
190
- this.resolverLocal(expressao, expressao.simbolo);
191
- return null;
192
- }
193
- resolverFuncao(funcao, funcType) {
194
- const enclosingFunc = this.funcaoAtual;
195
- this.funcaoAtual = funcType;
196
- this.inicioDoEscopo();
197
- const parametros = funcao.parametros;
198
- if (parametros && parametros.length > 0) {
199
- for (let i = 0; i < parametros.length; i++) {
200
- this.declarar(parametros[i]['nome']);
201
- this.definir(parametros[i]['nome']);
202
- }
203
- }
204
- this.resolver(funcao.corpo);
205
- this.finalDoEscopo();
206
- this.funcaoAtual = enclosingFunc;
207
- }
208
- visitarDeclaracaoDefinicaoFuncao(declaracao) {
209
- this.declarar(declaracao.simbolo);
210
- this.definir(declaracao.simbolo);
211
- this.resolverFuncao(declaracao.funcao, TipoFuncao.FUNÇÃO);
212
- return null;
213
- }
214
- visitarExpressaoDeleguaFuncao(declaracao) {
215
- this.resolverFuncao(declaracao, TipoFuncao.FUNÇÃO);
216
- return null;
217
- }
218
- visitarDeclaracaoTente(declaracao) {
219
- this.resolver(declaracao.caminhoTente);
220
- if (declaracao.caminhoPegue !== null)
221
- this.resolver(declaracao.caminhoPegue);
222
- if (declaracao.caminhoSenao !== null)
223
- this.resolver(declaracao.caminhoSenao);
224
- if (declaracao.caminhoFinalmente !== null)
225
- this.resolver(declaracao.caminhoFinalmente);
226
- }
227
- visitarDeclaracaoClasse(declaracao) {
228
- const enclosingClass = this.classeAtual;
229
- this.classeAtual = TipoClasse.CLASSE;
230
- this.declarar(declaracao.simbolo);
231
- this.definir(declaracao.simbolo);
232
- if (declaracao.superClasse !== null && declaracao.simbolo.lexema === declaracao.superClasse.simbolo.lexema) {
233
- const erro = new erro_resolvedor_1.ErroResolvedor(declaracao.simbolo, 'Uma classe não pode herdar de si mesma.');
234
- this.erros.push(erro);
235
- }
236
- if (declaracao.superClasse !== null) {
237
- this.classeAtual = TipoClasse.SUBCLASSE;
238
- this.resolver(declaracao.superClasse);
239
- }
240
- if (declaracao.superClasse !== null) {
241
- this.inicioDoEscopo();
242
- this.escopos.topoDaPilha()['super'] = true;
243
- }
244
- this.inicioDoEscopo();
245
- this.escopos.topoDaPilha()['isto'] = true;
246
- const metodos = declaracao.metodos;
247
- for (let i = 0; i < metodos.length; i++) {
248
- let declaracao = TipoFuncao.METODO;
249
- if (metodos[i].simbolo.lexema === 'isto') {
250
- declaracao = TipoFuncao.CONSTRUTOR;
251
- }
252
- this.resolverFuncao(metodos[i].funcao, declaracao);
253
- }
254
- this.finalDoEscopo();
255
- if (declaracao.superClasse !== null)
256
- this.finalDoEscopo();
257
- this.classeAtual = enclosingClass;
258
- return null;
259
- }
260
- visitarExpressaoSuper(expressao) {
261
- if (this.classeAtual === TipoClasse.NENHUM) {
262
- const erro = new erro_resolvedor_1.ErroResolvedor(expressao.simboloChave, "Não pode usar 'super' fora de uma classe.");
263
- this.erros.push(erro);
264
- }
265
- else if (this.classeAtual !== TipoClasse.SUBCLASSE) {
266
- const erro = new erro_resolvedor_1.ErroResolvedor(expressao.simboloChave, "Não se usa 'super' numa classe sem SuperClasse.");
267
- this.erros.push(erro);
268
- }
269
- this.resolverLocal(expressao, expressao.simboloChave);
270
- return null;
271
- }
272
- visitarExpressaoAcessoMetodo(expressao) {
273
- this.resolver(expressao.objeto);
274
- return null;
275
- }
276
- visitarDeclaracaoDeExpressao(declaracao) {
277
- this.resolver(declaracao.expressao);
278
- return null;
279
- }
280
- visitarDeclaracaoSe(declaracao) {
281
- this.resolver(declaracao.condicao);
282
- this.resolver(declaracao.caminhoEntao);
283
- for (let i = 0; i < declaracao.caminhosSeSenao.length; i++) {
284
- this.resolver(declaracao.caminhosSeSenao[i].condicao);
285
- this.resolver(declaracao.caminhosSeSenao[i].branch);
286
- }
287
- if (declaracao.caminhoSenao !== null)
288
- this.resolver(declaracao.caminhoSenao);
289
- return null;
290
- }
291
- async visitarDeclaracaoImportar(declaracao) {
292
- this.resolver(declaracao.caminho);
293
- }
294
- async visitarDeclaracaoEscreva(declaracao) {
295
- this.resolver(declaracao.expressao);
296
- }
297
- visitarExpressaoRetornar(declaracao) {
298
- if (this.funcaoAtual === TipoFuncao.NENHUM) {
299
- const erro = new erro_resolvedor_1.ErroResolvedor(declaracao.palavraChave, 'Não é possível retornar do código do escopo superior.');
300
- this.erros.push(erro);
301
- }
302
- if (declaracao.valor !== null) {
303
- if (this.funcaoAtual === TipoFuncao.CONSTRUTOR) {
304
- const erro = new erro_resolvedor_1.ErroResolvedor(declaracao.palavraChave, 'Não pode retornar o valor do construtor.');
305
- this.erros.push(erro);
306
- }
307
- this.resolver(declaracao.valor);
308
- }
309
- return null;
310
- }
311
- async visitarDeclaracaoEscolha(declaracao) {
312
- const enclosingType = this.cicloAtual;
313
- this.cicloAtual = TipoLoop.ESCOLHA;
314
- const caminhos = declaracao.caminhos;
315
- const caminhoPadrao = declaracao.caminhoPadrao;
316
- for (let i = 0; i < caminhos.length; i++) {
317
- this.resolver(caminhos[i]['declaracoes']);
318
- }
319
- if (caminhoPadrao !== null)
320
- this.resolver(caminhoPadrao['declaracoes']);
321
- this.cicloAtual = enclosingType;
322
- }
323
- visitarDeclaracaoEnquanto(declaracao) {
324
- this.resolver(declaracao.condicao);
325
- this.resolver(declaracao.corpo);
326
- return null;
327
- }
328
- visitarDeclaracaoPara(declaracao) {
329
- if (declaracao.inicializador !== null) {
330
- this.resolver(declaracao.inicializador);
331
- }
332
- if (declaracao.condicao !== null) {
333
- this.resolver(declaracao.condicao);
334
- }
335
- if (declaracao.incrementar !== null) {
336
- this.resolver(declaracao.incrementar);
337
- }
338
- const enclosingType = this.cicloAtual;
339
- this.cicloAtual = TipoLoop.ENQUANTO;
340
- this.resolver(declaracao.corpo);
341
- this.cicloAtual = enclosingType;
342
- return null;
343
- }
344
- visitarDeclaracaoFazer(declaracao) {
345
- this.resolver(declaracao.condicaoEnquanto);
346
- const enclosingType = this.cicloAtual;
347
- this.cicloAtual = TipoLoop.FAZER;
348
- this.resolver(declaracao.caminhoFazer);
349
- this.cicloAtual = enclosingType;
350
- return null;
351
- }
352
- visitarExpressaoBinaria(expressao) {
353
- this.resolver(expressao.esquerda);
354
- this.resolver(expressao.direita);
355
- return null;
356
- }
357
- visitarExpressaoDeChamada(expressao) {
358
- this.resolver(expressao.entidadeChamada);
359
- const argumentos = expressao.argumentos;
360
- for (let i = 0; i < argumentos.length; i++) {
361
- this.resolver(argumentos[i]);
362
- }
363
- return null;
364
- }
365
- visitarExpressaoAgrupamento(expressao) {
366
- this.resolver(expressao.expressao);
367
- return null;
368
- }
369
- visitarExpressaoDicionario(expressao) {
370
- for (let i = 0; i < expressao.chaves.length; i++) {
371
- this.resolver(expressao.chaves[i]);
372
- this.resolver(expressao.valores[i]);
373
- }
374
- return null;
375
- }
376
- visitarExpressaoVetor(expressao) {
377
- for (let i = 0; i < expressao.valores.length; i++) {
378
- this.resolver(expressao.valores[i]);
379
- }
380
- return null;
381
- }
382
- visitarExpressaoAcessoIndiceVariavel(expressao) {
383
- this.resolver(expressao.entidadeChamada);
384
- this.resolver(expressao.indice);
385
- return null;
386
- }
387
- visitarExpressaoContinua(declaracao) {
388
- return null;
389
- }
390
- visitarExpressaoSustar(declaracao) {
391
- return null;
392
- }
393
- visitarExpressaoAtribuicaoPorIndice(expressao) {
394
- return null;
395
- }
396
- visitarExpressaoLiteral(expressao) {
397
- return null;
398
- }
399
- visitarExpressaoLogica(expressao) {
400
- this.resolver(expressao.esquerda);
401
- this.resolver(expressao.direita);
402
- return null;
403
- }
404
- visitarExpressaoUnaria(expressao) {
405
- this.resolver(expressao.direita);
406
- return null;
407
- }
408
- visitarExpressaoDefinirValor(expressao) {
409
- this.resolver(expressao.valor);
410
- this.resolver(expressao.objeto);
411
- return null;
412
- }
413
- visitarExpressaoIsto(expressao) {
414
- if (this.classeAtual == TipoClasse.NENHUM) {
415
- const erro = new erro_resolvedor_1.ErroResolvedor(expressao.palavraChave, "Não pode usar 'isto' fora da classe.");
416
- this.erros.push(erro);
417
- }
418
- this.resolverLocal(expressao, expressao.palavraChave);
419
- return null;
420
- }
421
- visitarDeclaracaoAleatorio(declaracao) {
422
- throw new Error('Método não implementado.');
423
- }
424
- async resolver(declaracoes) {
425
- if (Array.isArray(declaracoes)) {
426
- for (let i = 0; i < declaracoes.length; i++) {
427
- if (declaracoes[i] && declaracoes[i].aceitar) {
428
- await declaracoes[i].aceitar(this);
429
- }
430
- }
431
- }
432
- else if (declaracoes) {
433
- await declaracoes.aceitar(this);
434
- }
435
- return {
436
- erros: this.erros,
437
- locais: this.locais,
438
- };
439
- }
440
- }
441
- exports.ResolvedorEguaClassico = ResolvedorEguaClassico;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResolvedorEguaClassico = void 0;
4
+ const erro_resolvedor_1 = require("./erro-resolvedor");
5
+ const pilha_escopos_1 = require("./pilha-escopos");
6
+ const TipoFuncao = {
7
+ NENHUM: 'NENHUM',
8
+ FUNÇÃO: 'FUNÇÃO',
9
+ CONSTRUTOR: 'CONSTRUTOR',
10
+ METODO: 'METODO',
11
+ };
12
+ const TipoClasse = {
13
+ NENHUM: 'NENHUM',
14
+ CLASSE: 'CLASSE',
15
+ SUBCLASSE: 'SUBCLASSE',
16
+ };
17
+ const TipoLoop = {
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
+ *
28
+ * 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.
29
+ * No entanto, todas as variáveis declaradas dentro da classe A podem ser vistas tanto por M quanto por N.
30
+ *
31
+ * Não faz sentido ser implementado nos outros interpretadores pelos outros optarem por uma pilha de execução que
32
+ * espera importar qualquer coisa a qualquer momento.
33
+ */
34
+ class ResolvedorEguaClassico {
35
+ constructor() {
36
+ this.interfaceEntradaSaida = null;
37
+ this.erros = [];
38
+ this.escopos = new pilha_escopos_1.PilhaEscopos();
39
+ this.locais = new Map();
40
+ this.funcaoAtual = TipoFuncao.NENHUM;
41
+ this.classeAtual = TipoClasse.NENHUM;
42
+ this.cicloAtual = TipoClasse.NENHUM;
43
+ }
44
+ visitarDeclaracaoComentario(declaracao) {
45
+ return Promise.resolve();
46
+ }
47
+ visitarDeclaracaoTendoComo(declaracao) {
48
+ throw new Error('Método não implementado.');
49
+ }
50
+ visitarDeclaracaoInicioAlgoritmo(declaracao) {
51
+ throw new Error('Método não implementado.');
52
+ }
53
+ visitarDeclaracaoCabecalhoPrograma(declaracao) {
54
+ throw new Error('Método não implementado.');
55
+ }
56
+ visitarExpressaoTupla(expressao) {
57
+ throw new Error('Método não implementado.');
58
+ }
59
+ visitarExpressaoAcessoElementoMatriz(expressao) {
60
+ throw new Error('Método não implementado.');
61
+ }
62
+ visitarExpressaoAtribuicaoPorIndicesMatriz(expressao) {
63
+ throw new Error('Método não implementado.');
64
+ }
65
+ visitarExpressaoExpressaoRegular(expressao) {
66
+ throw new Error('Método não implementado.');
67
+ }
68
+ visitarExpressaoTipoDe(expressao) {
69
+ throw new Error('Método não implementado.');
70
+ }
71
+ visitarExpressaoQualTipo(expressao) {
72
+ throw new Error('Método não implementado.');
73
+ }
74
+ visitarExpressaoFalhar(expressao) {
75
+ throw new Error('Método não implementado.');
76
+ }
77
+ visitarDeclaracaoParaCada(declaracao) {
78
+ throw new Error('Método não implementado.');
79
+ }
80
+ visitarDeclaracaoConst(declaracao) {
81
+ throw new Error('Método não implementado.');
82
+ }
83
+ visitarDeclaracaoConstMultiplo(declaracao) {
84
+ throw new Error('Método não implementado.');
85
+ }
86
+ visitarExpressaoFimPara(declaracao) {
87
+ throw new Error('Método não implementado.');
88
+ }
89
+ visitarExpressaoFormatacaoEscrita(declaracao) {
90
+ throw new Error('Método não implementado.');
91
+ }
92
+ visitarDeclaracaoEscrevaMesmaLinha(declaracao) {
93
+ throw new Error('Método não implementado.');
94
+ }
95
+ avaliar(expressao) {
96
+ throw new Error('Método não implementado.');
97
+ }
98
+ eVerdadeiro(objeto) {
99
+ throw new Error('Método não implementado.');
100
+ }
101
+ verificarOperandoNumero(operador, operando) {
102
+ throw new Error('Método não implementado.');
103
+ }
104
+ eIgual(esquerda, direita) {
105
+ throw new Error('Método não implementado.');
106
+ }
107
+ verificarOperandosNumeros(operador, direita, esquerda) {
108
+ throw new Error('Método não implementado.');
109
+ }
110
+ procurarVariavel(nome, expressao) {
111
+ throw new Error('Método não implementado.');
112
+ }
113
+ visitarExpressaoLeia(expressao) {
114
+ throw new Error('Método não implementado.');
115
+ }
116
+ visitarExpressaoLeiaMultiplo(expressao) {
117
+ throw new Error('Método não implementado.');
118
+ }
119
+ executarBloco(declaracoes, ambiente) {
120
+ throw new Error('Método não implementado.');
121
+ }
122
+ paraTexto(objeto) {
123
+ throw new Error('Método não implementado.');
124
+ }
125
+ executar(declaracao, mostrarResultado) {
126
+ throw new Error('Método não implementado.');
127
+ }
128
+ interpretar(declaracoes, manterAmbiente) {
129
+ throw new Error('Método não implementado.');
130
+ }
131
+ finalizacao() {
132
+ throw new Error('Método não implementado.');
133
+ }
134
+ definir(simbolo) {
135
+ if (this.escopos.eVazio())
136
+ return;
137
+ this.escopos.topoDaPilha()[simbolo.lexema] = true;
138
+ }
139
+ declarar(simbolo) {
140
+ if (this.escopos.eVazio())
141
+ return;
142
+ const escopo = this.escopos.topoDaPilha();
143
+ if (escopo.hasOwnProperty(simbolo.lexema)) {
144
+ const erro = new erro_resolvedor_1.ErroResolvedor(simbolo, 'Variável com esse nome já declarada neste escopo.');
145
+ this.erros.push(erro);
146
+ }
147
+ escopo[simbolo.lexema] = false;
148
+ }
149
+ inicioDoEscopo() {
150
+ this.escopos.empilhar({});
151
+ }
152
+ finalDoEscopo() {
153
+ this.escopos.removerUltimo();
154
+ }
155
+ resolverLocal(expressao, simbolo) {
156
+ for (let i = this.escopos.pilha.length - 1; i >= 0; i--) {
157
+ if (this.escopos.pilha[i].hasOwnProperty(simbolo.lexema)) {
158
+ this.locais.set(expressao, this.escopos.pilha.length - 1 - i);
159
+ }
160
+ }
161
+ }
162
+ visitarExpressaoBloco(declaracao) {
163
+ this.inicioDoEscopo();
164
+ this.resolver(declaracao.declaracoes);
165
+ this.finalDoEscopo();
166
+ return null;
167
+ }
168
+ visitarExpressaoDeVariavel(expressao) {
169
+ if (!this.escopos.eVazio() && this.escopos.topoDaPilha()[expressao.simbolo.lexema] === false) {
170
+ const erro = new erro_resolvedor_1.ErroResolvedor(expressao.simbolo, 'Não é possível ler a variável local em seu próprio inicializador.');
171
+ this.erros.push(erro);
172
+ throw erro;
173
+ }
174
+ this.resolverLocal(expressao, expressao.simbolo);
175
+ return null;
176
+ }
177
+ visitarDeclaracaoVar(declaracao) {
178
+ this.declarar(declaracao.simbolo);
179
+ if (declaracao.inicializador !== null) {
180
+ this.resolver(declaracao.inicializador);
181
+ }
182
+ this.definir(declaracao.simbolo);
183
+ return null;
184
+ }
185
+ visitarDeclaracaoVarMultiplo(declaracao) {
186
+ throw new Error('Método não implementado.');
187
+ }
188
+ visitarExpressaoDeAtribuicao(expressao) {
189
+ this.resolver(expressao.valor);
190
+ this.resolverLocal(expressao, expressao.simbolo);
191
+ return null;
192
+ }
193
+ resolverFuncao(funcao, funcType) {
194
+ const enclosingFunc = this.funcaoAtual;
195
+ this.funcaoAtual = funcType;
196
+ this.inicioDoEscopo();
197
+ const parametros = funcao.parametros;
198
+ if (parametros && parametros.length > 0) {
199
+ for (let i = 0; i < parametros.length; i++) {
200
+ this.declarar(parametros[i]['nome']);
201
+ this.definir(parametros[i]['nome']);
202
+ }
203
+ }
204
+ this.resolver(funcao.corpo);
205
+ this.finalDoEscopo();
206
+ this.funcaoAtual = enclosingFunc;
207
+ }
208
+ visitarDeclaracaoDefinicaoFuncao(declaracao) {
209
+ this.declarar(declaracao.simbolo);
210
+ this.definir(declaracao.simbolo);
211
+ this.resolverFuncao(declaracao.funcao, TipoFuncao.FUNÇÃO);
212
+ return null;
213
+ }
214
+ visitarExpressaoDeleguaFuncao(declaracao) {
215
+ this.resolverFuncao(declaracao, TipoFuncao.FUNÇÃO);
216
+ return null;
217
+ }
218
+ visitarDeclaracaoTente(declaracao) {
219
+ this.resolver(declaracao.caminhoTente);
220
+ if (declaracao.caminhoPegue !== null)
221
+ this.resolver(declaracao.caminhoPegue);
222
+ if (declaracao.caminhoSenao !== null)
223
+ this.resolver(declaracao.caminhoSenao);
224
+ if (declaracao.caminhoFinalmente !== null)
225
+ this.resolver(declaracao.caminhoFinalmente);
226
+ }
227
+ visitarDeclaracaoClasse(declaracao) {
228
+ const enclosingClass = this.classeAtual;
229
+ this.classeAtual = TipoClasse.CLASSE;
230
+ this.declarar(declaracao.simbolo);
231
+ this.definir(declaracao.simbolo);
232
+ if (declaracao.superClasse !== null && declaracao.simbolo.lexema === declaracao.superClasse.simbolo.lexema) {
233
+ const erro = new erro_resolvedor_1.ErroResolvedor(declaracao.simbolo, 'Uma classe não pode herdar de si mesma.');
234
+ this.erros.push(erro);
235
+ }
236
+ if (declaracao.superClasse !== null) {
237
+ this.classeAtual = TipoClasse.SUBCLASSE;
238
+ this.resolver(declaracao.superClasse);
239
+ }
240
+ if (declaracao.superClasse !== null) {
241
+ this.inicioDoEscopo();
242
+ this.escopos.topoDaPilha()['super'] = true;
243
+ }
244
+ this.inicioDoEscopo();
245
+ this.escopos.topoDaPilha()['isto'] = true;
246
+ const metodos = declaracao.metodos;
247
+ for (let i = 0; i < metodos.length; i++) {
248
+ let declaracao = TipoFuncao.METODO;
249
+ if (metodos[i].simbolo.lexema === 'isto') {
250
+ declaracao = TipoFuncao.CONSTRUTOR;
251
+ }
252
+ this.resolverFuncao(metodos[i].funcao, declaracao);
253
+ }
254
+ this.finalDoEscopo();
255
+ if (declaracao.superClasse !== null)
256
+ this.finalDoEscopo();
257
+ this.classeAtual = enclosingClass;
258
+ return null;
259
+ }
260
+ visitarExpressaoSuper(expressao) {
261
+ if (this.classeAtual === TipoClasse.NENHUM) {
262
+ const erro = new erro_resolvedor_1.ErroResolvedor(expressao.simboloChave, "Não pode usar 'super' fora de uma classe.");
263
+ this.erros.push(erro);
264
+ }
265
+ else if (this.classeAtual !== TipoClasse.SUBCLASSE) {
266
+ const erro = new erro_resolvedor_1.ErroResolvedor(expressao.simboloChave, "Não se usa 'super' numa classe sem SuperClasse.");
267
+ this.erros.push(erro);
268
+ }
269
+ this.resolverLocal(expressao, expressao.simboloChave);
270
+ return null;
271
+ }
272
+ visitarExpressaoAcessoMetodo(expressao) {
273
+ this.resolver(expressao.objeto);
274
+ return null;
275
+ }
276
+ visitarDeclaracaoDeExpressao(declaracao) {
277
+ this.resolver(declaracao.expressao);
278
+ return null;
279
+ }
280
+ visitarDeclaracaoSe(declaracao) {
281
+ this.resolver(declaracao.condicao);
282
+ this.resolver(declaracao.caminhoEntao);
283
+ for (let i = 0; i < declaracao.caminhosSeSenao.length; i++) {
284
+ this.resolver(declaracao.caminhosSeSenao[i].condicao);
285
+ this.resolver(declaracao.caminhosSeSenao[i].branch);
286
+ }
287
+ if (declaracao.caminhoSenao !== null)
288
+ this.resolver(declaracao.caminhoSenao);
289
+ return null;
290
+ }
291
+ async visitarDeclaracaoImportar(declaracao) {
292
+ this.resolver(declaracao.caminho);
293
+ }
294
+ async visitarDeclaracaoEscreva(declaracao) {
295
+ this.resolver(declaracao.expressao);
296
+ }
297
+ visitarExpressaoRetornar(declaracao) {
298
+ if (this.funcaoAtual === TipoFuncao.NENHUM) {
299
+ const erro = new erro_resolvedor_1.ErroResolvedor(declaracao.palavraChave, 'Não é possível retornar do código do escopo superior.');
300
+ this.erros.push(erro);
301
+ }
302
+ if (declaracao.valor !== null) {
303
+ if (this.funcaoAtual === TipoFuncao.CONSTRUTOR) {
304
+ const erro = new erro_resolvedor_1.ErroResolvedor(declaracao.palavraChave, 'Não pode retornar o valor do construtor.');
305
+ this.erros.push(erro);
306
+ }
307
+ this.resolver(declaracao.valor);
308
+ }
309
+ return null;
310
+ }
311
+ async visitarDeclaracaoEscolha(declaracao) {
312
+ const enclosingType = this.cicloAtual;
313
+ this.cicloAtual = TipoLoop.ESCOLHA;
314
+ const caminhos = declaracao.caminhos;
315
+ const caminhoPadrao = declaracao.caminhoPadrao;
316
+ for (let i = 0; i < caminhos.length; i++) {
317
+ this.resolver(caminhos[i]['declaracoes']);
318
+ }
319
+ if (caminhoPadrao !== null)
320
+ this.resolver(caminhoPadrao['declaracoes']);
321
+ this.cicloAtual = enclosingType;
322
+ }
323
+ visitarDeclaracaoEnquanto(declaracao) {
324
+ this.resolver(declaracao.condicao);
325
+ this.resolver(declaracao.corpo);
326
+ return null;
327
+ }
328
+ visitarDeclaracaoPara(declaracao) {
329
+ if (declaracao.inicializador !== null) {
330
+ this.resolver(declaracao.inicializador);
331
+ }
332
+ if (declaracao.condicao !== null) {
333
+ this.resolver(declaracao.condicao);
334
+ }
335
+ if (declaracao.incrementar !== null) {
336
+ this.resolver(declaracao.incrementar);
337
+ }
338
+ const enclosingType = this.cicloAtual;
339
+ this.cicloAtual = TipoLoop.ENQUANTO;
340
+ this.resolver(declaracao.corpo);
341
+ this.cicloAtual = enclosingType;
342
+ return null;
343
+ }
344
+ visitarDeclaracaoFazer(declaracao) {
345
+ this.resolver(declaracao.condicaoEnquanto);
346
+ const enclosingType = this.cicloAtual;
347
+ this.cicloAtual = TipoLoop.FAZER;
348
+ this.resolver(declaracao.caminhoFazer);
349
+ this.cicloAtual = enclosingType;
350
+ return null;
351
+ }
352
+ visitarExpressaoBinaria(expressao) {
353
+ this.resolver(expressao.esquerda);
354
+ this.resolver(expressao.direita);
355
+ return null;
356
+ }
357
+ visitarExpressaoDeChamada(expressao) {
358
+ this.resolver(expressao.entidadeChamada);
359
+ const argumentos = expressao.argumentos;
360
+ for (let i = 0; i < argumentos.length; i++) {
361
+ this.resolver(argumentos[i]);
362
+ }
363
+ return null;
364
+ }
365
+ visitarExpressaoAgrupamento(expressao) {
366
+ this.resolver(expressao.expressao);
367
+ return null;
368
+ }
369
+ visitarExpressaoDicionario(expressao) {
370
+ for (let i = 0; i < expressao.chaves.length; i++) {
371
+ this.resolver(expressao.chaves[i]);
372
+ this.resolver(expressao.valores[i]);
373
+ }
374
+ return null;
375
+ }
376
+ visitarExpressaoVetor(expressao) {
377
+ for (let i = 0; i < expressao.valores.length; i++) {
378
+ this.resolver(expressao.valores[i]);
379
+ }
380
+ return null;
381
+ }
382
+ visitarExpressaoAcessoIndiceVariavel(expressao) {
383
+ this.resolver(expressao.entidadeChamada);
384
+ this.resolver(expressao.indice);
385
+ return null;
386
+ }
387
+ visitarExpressaoContinua(declaracao) {
388
+ return null;
389
+ }
390
+ visitarExpressaoSustar(declaracao) {
391
+ return null;
392
+ }
393
+ visitarExpressaoAtribuicaoPorIndice(expressao) {
394
+ return null;
395
+ }
396
+ visitarExpressaoLiteral(expressao) {
397
+ return null;
398
+ }
399
+ visitarExpressaoLogica(expressao) {
400
+ this.resolver(expressao.esquerda);
401
+ this.resolver(expressao.direita);
402
+ return null;
403
+ }
404
+ visitarExpressaoUnaria(expressao) {
405
+ this.resolver(expressao.direita);
406
+ return null;
407
+ }
408
+ visitarExpressaoDefinirValor(expressao) {
409
+ this.resolver(expressao.valor);
410
+ this.resolver(expressao.objeto);
411
+ return null;
412
+ }
413
+ visitarExpressaoIsto(expressao) {
414
+ if (this.classeAtual == TipoClasse.NENHUM) {
415
+ const erro = new erro_resolvedor_1.ErroResolvedor(expressao.palavraChave, "Não pode usar 'isto' fora da classe.");
416
+ this.erros.push(erro);
417
+ }
418
+ this.resolverLocal(expressao, expressao.palavraChave);
419
+ return null;
420
+ }
421
+ visitarDeclaracaoAleatorio(declaracao) {
422
+ throw new Error('Método não implementado.');
423
+ }
424
+ async resolver(declaracoes) {
425
+ if (Array.isArray(declaracoes)) {
426
+ for (let i = 0; i < declaracoes.length; i++) {
427
+ if (declaracoes[i] && declaracoes[i].aceitar) {
428
+ await declaracoes[i].aceitar(this);
429
+ }
430
+ }
431
+ }
432
+ else if (declaracoes) {
433
+ await declaracoes.aceitar(this);
434
+ }
435
+ return {
436
+ erros: this.erros,
437
+ locais: this.locais,
438
+ };
439
+ }
440
+ }
441
+ exports.ResolvedorEguaClassico = ResolvedorEguaClassico;
442
442
  //# sourceMappingURL=resolvedor.js.map