@designliquido/delegua 0.36.1 → 0.36.2

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 (490) 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 +69 -69
  11. package/avaliador-sintatico/avaliador-sintatico-base.js +223 -223
  12. package/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
  13. package/avaliador-sintatico/avaliador-sintatico.d.ts +126 -126
  14. package/avaliador-sintatico/avaliador-sintatico.js +1093 -1093
  15. package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  16. package/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.d.ts +73 -73
  17. package/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +648 -648
  18. package/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
  19. package/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.d.ts +21 -21
  20. package/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js +149 -149
  21. package/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js.map +1 -1
  22. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts +87 -87
  23. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +770 -770
  24. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
  25. package/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.d.ts +34 -34
  26. package/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.js +168 -168
  27. package/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.js.map +1 -1
  28. package/avaliador-sintatico/dialetos/index.d.ts +3 -3
  29. package/avaliador-sintatico/dialetos/index.js +19 -19
  30. package/avaliador-sintatico/erro-avaliador-sintatico.d.ts +5 -5
  31. package/avaliador-sintatico/erro-avaliador-sintatico.js +11 -11
  32. package/avaliador-sintatico/index.d.ts +6 -6
  33. package/avaliador-sintatico/index.js +22 -22
  34. package/avaliador-sintatico/micro-avaliador-sintatico-base.d.ts +27 -27
  35. package/avaliador-sintatico/micro-avaliador-sintatico-base.js +116 -116
  36. package/avaliador-sintatico/micro-avaliador-sintatico-base.js.map +1 -1
  37. package/avaliador-sintatico/micro-avaliador-sintatico.d.ts +33 -33
  38. package/avaliador-sintatico/micro-avaliador-sintatico.js +287 -287
  39. package/avaliador-sintatico/micro-avaliador-sintatico.js.map +1 -1
  40. package/avaliador-sintatico/retornos/index.d.ts +3 -3
  41. package/avaliador-sintatico/retornos/index.js +19 -19
  42. package/avaliador-sintatico/retornos/retorno-declaracao.d.ts +3 -3
  43. package/avaliador-sintatico/retornos/retorno-declaracao.js +2 -2
  44. package/avaliador-sintatico/retornos/retorno-primario.d.ts +3 -3
  45. package/avaliador-sintatico/retornos/retorno-primario.js +2 -2
  46. package/avaliador-sintatico/retornos/retorno-resolver-declaracao.d.ts +2 -2
  47. package/avaliador-sintatico/retornos/retorno-resolver-declaracao.js +2 -2
  48. package/avaliador-sintatico/traducao/avaliador-sintatico-javascript.d.ts +59 -59
  49. package/avaliador-sintatico/traducao/avaliador-sintatico-javascript.js +150 -150
  50. package/bibliotecas/biblioteca-global.d.ts +157 -157
  51. package/bibliotecas/biblioteca-global.js +497 -498
  52. package/bibliotecas/biblioteca-global.js.map +1 -1
  53. package/bibliotecas/dialetos/egua-classico/biblioteca-global.d.ts +1 -1
  54. package/bibliotecas/dialetos/egua-classico/biblioteca-global.js +236 -236
  55. package/bibliotecas/dialetos/egua-classico/biblioteca-global.js.map +1 -1
  56. package/bibliotecas/dialetos/egua-classico/index.d.ts +2 -2
  57. package/bibliotecas/dialetos/egua-classico/index.js +32 -32
  58. package/bibliotecas/dialetos/egua-classico/index.js.map +1 -1
  59. package/bibliotecas/dialetos/egua-classico/matematica.d.ts +1 -1
  60. package/bibliotecas/dialetos/egua-classico/matematica.js +541 -541
  61. package/bibliotecas/dialetos/egua-classico/matematica.js.map +1 -1
  62. package/bibliotecas/dialetos/egua-classico/tempo.d.ts +1 -1
  63. package/bibliotecas/dialetos/egua-classico/tempo.js +39 -39
  64. package/bibliotecas/dialetos/egua-classico/tempo.js.map +1 -1
  65. package/bibliotecas/dialetos/egua-classico/textos.d.ts +8 -8
  66. package/bibliotecas/dialetos/egua-classico/textos.js +201 -201
  67. package/bibliotecas/dialetos/egua-classico/textos.js.map +1 -1
  68. package/bibliotecas/primitivas-dicionario.d.ts +6 -6
  69. package/bibliotecas/primitivas-dicionario.d.ts.map +1 -1
  70. package/bibliotecas/primitivas-dicionario.js +10 -10
  71. package/bibliotecas/primitivas-numero.d.ts +6 -6
  72. package/bibliotecas/primitivas-numero.d.ts.map +1 -1
  73. package/bibliotecas/primitivas-numero.js +10 -10
  74. package/bibliotecas/primitivas-texto.d.ts +17 -17
  75. package/bibliotecas/primitivas-texto.d.ts.map +1 -1
  76. package/bibliotecas/primitivas-texto.js +22 -22
  77. package/bibliotecas/primitivas-texto.js.map +1 -1
  78. package/bibliotecas/primitivas-vetor.d.ts +21 -21
  79. package/bibliotecas/primitivas-vetor.d.ts.map +1 -1
  80. package/bibliotecas/primitivas-vetor.js +90 -90
  81. package/bibliotecas/primitivas-vetor.js.map +1 -1
  82. package/bin/package.json +5 -4
  83. package/construtos/acesso-elemento-matriz.d.ts +12 -12
  84. package/construtos/acesso-elemento-matriz.js +17 -17
  85. package/construtos/acesso-indice-variavel.d.ts +15 -15
  86. package/construtos/acesso-indice-variavel.js +20 -20
  87. package/construtos/acesso-metodo-ou-propriedade.d.ts +14 -14
  88. package/construtos/acesso-metodo-ou-propriedade.js +19 -19
  89. package/construtos/agrupamento.d.ts +14 -14
  90. package/construtos/agrupamento.js +19 -19
  91. package/construtos/atribuicao-por-indice.d.ts +11 -11
  92. package/construtos/atribuicao-por-indice.js +16 -16
  93. package/construtos/atribuicao-por-indices-matriz.d.ts +12 -12
  94. package/construtos/atribuicao-por-indices-matriz.js +17 -17
  95. package/construtos/atribuir.d.ts +15 -15
  96. package/construtos/atribuir.js +24 -24
  97. package/construtos/atribuir.js.map +1 -1
  98. package/construtos/binario.d.ts +33 -33
  99. package/construtos/binario.js +38 -38
  100. package/construtos/chamada.d.ts +15 -15
  101. package/construtos/chamada.js +21 -21
  102. package/construtos/comentario.d.ts +15 -15
  103. package/construtos/comentario.js +20 -20
  104. package/construtos/constante.d.ts +12 -12
  105. package/construtos/constante.js +17 -17
  106. package/construtos/construto.d.ts +7 -7
  107. package/construtos/construto.js +2 -2
  108. package/construtos/decorador.d.ts +14 -14
  109. package/construtos/decorador.js +19 -19
  110. package/construtos/definir-valor.d.ts +11 -11
  111. package/construtos/definir-valor.js +16 -16
  112. package/construtos/dicionario.d.ts +10 -10
  113. package/construtos/dicionario.js +15 -15
  114. package/construtos/expressao-regular.d.ts +10 -10
  115. package/construtos/expressao-regular.js +15 -15
  116. package/construtos/fim-para.d.ts +22 -22
  117. package/construtos/fim-para.js +25 -25
  118. package/construtos/formatacao-escrita.d.ts +16 -16
  119. package/construtos/formatacao-escrita.js +21 -21
  120. package/construtos/funcao.d.ts +12 -12
  121. package/construtos/funcao.js +16 -16
  122. package/construtos/index.d.ts +29 -29
  123. package/construtos/index.js +45 -45
  124. package/construtos/isto.d.ts +9 -9
  125. package/construtos/isto.js +14 -14
  126. package/construtos/literal.d.ts +10 -10
  127. package/construtos/literal.js +14 -14
  128. package/construtos/logico.d.ts +11 -11
  129. package/construtos/logico.js +16 -16
  130. package/construtos/qual-tipo.d.ts +11 -11
  131. package/construtos/qual-tipo.js +16 -16
  132. package/construtos/super.d.ts +10 -10
  133. package/construtos/super.js +15 -15
  134. package/construtos/tipo-de.d.ts +10 -10
  135. package/construtos/tipo-de.js +15 -15
  136. package/construtos/tuplas/deceto.d.ts +18 -18
  137. package/construtos/tuplas/deceto.js +32 -32
  138. package/construtos/tuplas/dupla.d.ts +6 -6
  139. package/construtos/tuplas/dupla.js +12 -12
  140. package/construtos/tuplas/index.d.ts +13 -13
  141. package/construtos/tuplas/index.js +67 -67
  142. package/construtos/tuplas/index.js.map +1 -1
  143. package/construtos/tuplas/noneto.d.ts +15 -15
  144. package/construtos/tuplas/noneto.js +25 -25
  145. package/construtos/tuplas/octeto.d.ts +14 -14
  146. package/construtos/tuplas/octeto.js +24 -24
  147. package/construtos/tuplas/quarteto.d.ts +8 -8
  148. package/construtos/tuplas/quarteto.js +14 -14
  149. package/construtos/tuplas/quinteto.d.ts +9 -9
  150. package/construtos/tuplas/quinteto.js +15 -15
  151. package/construtos/tuplas/septeto.d.ts +13 -13
  152. package/construtos/tuplas/septeto.js +23 -23
  153. package/construtos/tuplas/sexteto.d.ts +10 -10
  154. package/construtos/tuplas/sexteto.js +16 -16
  155. package/construtos/tuplas/trio.d.ts +7 -7
  156. package/construtos/tuplas/trio.js +13 -13
  157. package/construtos/tuplas/tupla.d.ts +8 -8
  158. package/construtos/tuplas/tupla.js +9 -9
  159. package/construtos/unario.d.ts +11 -11
  160. package/construtos/unario.js +16 -16
  161. package/construtos/variavel.d.ts +9 -9
  162. package/construtos/variavel.js +14 -14
  163. package/construtos/vetor.d.ts +11 -11
  164. package/construtos/vetor.js +21 -21
  165. package/construtos/vetor.js.map +1 -1
  166. package/declaracoes/aleatorio.d.ts +15 -15
  167. package/declaracoes/aleatorio.js +15 -15
  168. package/declaracoes/bloco.d.ts +7 -7
  169. package/declaracoes/bloco.js +14 -14
  170. package/declaracoes/cabecalho-programa.d.ts +7 -7
  171. package/declaracoes/cabecalho-programa.js +14 -14
  172. package/declaracoes/classe.d.ts +14 -14
  173. package/declaracoes/classe.js +18 -18
  174. package/declaracoes/const-multiplo.d.ts +14 -14
  175. package/declaracoes/const-multiplo.js +19 -19
  176. package/declaracoes/const.d.ts +14 -14
  177. package/declaracoes/const.js +19 -19
  178. package/declaracoes/continua.d.ts +6 -6
  179. package/declaracoes/continua.js +13 -13
  180. package/declaracoes/declaracao.d.ts +8 -8
  181. package/declaracoes/declaracao.js +17 -17
  182. package/declaracoes/enquanto.d.ts +10 -10
  183. package/declaracoes/enquanto.js +15 -15
  184. package/declaracoes/escolha.d.ts +14 -14
  185. package/declaracoes/escolha.js +19 -19
  186. package/declaracoes/escreva-mesma-linha.d.ts +8 -8
  187. package/declaracoes/escreva-mesma-linha.js +14 -14
  188. package/declaracoes/escreva.d.ts +8 -8
  189. package/declaracoes/escreva.js +14 -14
  190. package/declaracoes/expressao.d.ts +8 -8
  191. package/declaracoes/expressao.js +14 -14
  192. package/declaracoes/falhar.d.ts +8 -8
  193. package/declaracoes/falhar.js +15 -15
  194. package/declaracoes/fazer.d.ts +10 -10
  195. package/declaracoes/fazer.js +15 -15
  196. package/declaracoes/funcao.d.ts +11 -11
  197. package/declaracoes/funcao.js +17 -17
  198. package/declaracoes/importar.d.ts +9 -9
  199. package/declaracoes/importar.js +15 -15
  200. package/declaracoes/index.d.ts +31 -31
  201. package/declaracoes/index.js +47 -47
  202. package/declaracoes/inicio-algoritmo.d.ts +6 -6
  203. package/declaracoes/inicio-algoritmo.js +13 -13
  204. package/declaracoes/leia-multiplo.d.ts +14 -14
  205. package/declaracoes/leia-multiplo.js +21 -21
  206. package/declaracoes/leia.d.ts +17 -17
  207. package/declaracoes/leia.js +21 -21
  208. package/declaracoes/para-cada.d.ts +11 -11
  209. package/declaracoes/para-cada.js +17 -17
  210. package/declaracoes/para.d.ts +19 -19
  211. package/declaracoes/para.js +24 -24
  212. package/declaracoes/propriedade-classe.d.ts +10 -10
  213. package/declaracoes/propriedade-classe.js +16 -16
  214. package/declaracoes/retorna.d.ts +8 -8
  215. package/declaracoes/retorna.js +15 -15
  216. package/declaracoes/se.d.ts +11 -11
  217. package/declaracoes/se.js +17 -17
  218. package/declaracoes/sustar.d.ts +6 -6
  219. package/declaracoes/sustar.js +13 -13
  220. package/declaracoes/tendo-como.d.ts +16 -16
  221. package/declaracoes/tendo-como.js +21 -21
  222. package/declaracoes/tente.d.ts +14 -14
  223. package/declaracoes/tente.js +20 -20
  224. package/declaracoes/var-multiplo.d.ts +15 -15
  225. package/declaracoes/var-multiplo.js +20 -20
  226. package/declaracoes/var.d.ts +16 -16
  227. package/declaracoes/var.js +21 -21
  228. package/depuracao/cyrb53.d.ts +9 -9
  229. package/depuracao/cyrb53.js +22 -22
  230. package/depuracao/cyrb53.js.map +1 -1
  231. package/depuracao/index.d.ts +2 -2
  232. package/depuracao/index.js +23 -23
  233. package/depuracao/ponto-parada.d.ts +4 -4
  234. package/depuracao/ponto-parada.js +2 -2
  235. package/espaco-variaveis.d.ts +19 -19
  236. package/espaco-variaveis.js +19 -19
  237. package/estruturas/chamavel.d.ts +7 -7
  238. package/estruturas/chamavel.js +12 -12
  239. package/estruturas/classe-padrao.d.ts +31 -31
  240. package/estruturas/classe-padrao.js +39 -39
  241. package/estruturas/delegua-funcao.d.ts +29 -29
  242. package/estruturas/delegua-funcao.js +141 -141
  243. package/estruturas/delegua-funcao.js.map +1 -1
  244. package/estruturas/descritor-tipo-classe.d.ts +37 -37
  245. package/estruturas/descritor-tipo-classe.js +79 -79
  246. package/estruturas/descritor-tipo-classe.js.map +1 -1
  247. package/estruturas/funcao-padrao.d.ts +23 -23
  248. package/estruturas/funcao-padrao.js +34 -34
  249. package/estruturas/index.d.ts +9 -9
  250. package/estruturas/index.js +25 -25
  251. package/estruturas/metodo-primitiva.d.ts +28 -28
  252. package/estruturas/metodo-primitiva.js +40 -40
  253. package/estruturas/modulo.d.ts +18 -18
  254. package/estruturas/modulo.js +24 -24
  255. package/estruturas/objeto-delegua-classe.d.ts +26 -26
  256. package/estruturas/objeto-delegua-classe.js +53 -53
  257. package/estruturas/objeto-delegua-classe.js.map +1 -1
  258. package/estruturas/objeto-padrao.d.ts +18 -18
  259. package/estruturas/objeto-padrao.js +32 -32
  260. package/estruturas/objeto-padrao.js.map +1 -1
  261. package/excecoes/erro-em-tempo-de-execucao.d.ts +7 -7
  262. package/excecoes/erro-em-tempo-de-execucao.js +13 -13
  263. package/excecoes/index.d.ts +1 -1
  264. package/excecoes/index.js +17 -17
  265. package/formatadores/formatador-delegua.d.ts +79 -79
  266. package/formatadores/formatador-delegua.js +676 -676
  267. package/formatadores/formatador-delegua.js.map +1 -1
  268. package/formatadores/index.d.ts +1 -1
  269. package/formatadores/index.js +17 -17
  270. package/geracao-identificadores/index.d.ts +1 -1
  271. package/geracao-identificadores/index.js +22 -23
  272. package/geracao-identificadores/index.js.map +1 -1
  273. package/index.d.ts +9 -9
  274. package/index.js +27 -27
  275. package/interfaces/analisador-semantico-interface.d.ts +6 -6
  276. package/interfaces/analisador-semantico-interface.js +2 -2
  277. package/interfaces/avaliador-sintatico-interface.d.ts +55 -55
  278. package/interfaces/avaliador-sintatico-interface.js +2 -2
  279. package/interfaces/construtos/index.d.ts +4 -4
  280. package/interfaces/construtos/index.js +2 -2
  281. package/interfaces/erros/diagnostico-analisador-semantico.d.ts +14 -14
  282. package/interfaces/erros/diagnostico-analisador-semantico.js +10 -10
  283. package/interfaces/erros/diagnostico-analisador-semantico.js.map +1 -1
  284. package/interfaces/erros/erro-interpretador.d.ts +8 -8
  285. package/interfaces/erros/erro-interpretador.js +2 -2
  286. package/interfaces/erros/index.d.ts +1 -1
  287. package/interfaces/erros/index.js +17 -17
  288. package/interfaces/escopo-execucao.d.ts +12 -12
  289. package/interfaces/escopo-execucao.js +2 -2
  290. package/interfaces/formatador-comum-interface.d.ts +11 -11
  291. package/interfaces/formatador-comum-interface.js +2 -2
  292. package/interfaces/funcao-hipotetica-interface.d.ts +3 -3
  293. package/interfaces/funcao-hipotetica-interface.js +2 -2
  294. package/interfaces/index.d.ts +16 -16
  295. package/interfaces/index.js +32 -32
  296. package/interfaces/interpretador-com-depuracao-interface.d.ts +17 -17
  297. package/interfaces/interpretador-com-depuracao-interface.js +2 -2
  298. package/interfaces/interpretador-interface-potigol.d.ts +5 -5
  299. package/interfaces/interpretador-interface-potigol.js +2 -2
  300. package/interfaces/interpretador-interface.d.ts +20 -20
  301. package/interfaces/interpretador-interface.js +2 -2
  302. package/interfaces/lexador-interface.d.ts +23 -23
  303. package/interfaces/lexador-interface.js +2 -2
  304. package/interfaces/parametro-interface.d.ts +15 -15
  305. package/interfaces/parametro-interface.js +2 -2
  306. package/interfaces/pilha-escopos-execucao-interface.d.ts +26 -26
  307. package/interfaces/pilha-escopos-execucao-interface.js +2 -2
  308. package/interfaces/pilha-interface.d.ts +7 -7
  309. package/interfaces/pilha-interface.js +2 -2
  310. package/interfaces/resolvedor-interface.d.ts +41 -41
  311. package/interfaces/resolvedor-interface.js +2 -2
  312. package/interfaces/retornos/index.d.ts +4 -4
  313. package/interfaces/retornos/index.js +20 -20
  314. package/interfaces/retornos/retorno-analisador-semantico.d.ts +4 -4
  315. package/interfaces/retornos/retorno-analisador-semantico.js +2 -2
  316. package/interfaces/retornos/retorno-avaliador-sintatico.d.ts +5 -5
  317. package/interfaces/retornos/retorno-avaliador-sintatico.js +2 -2
  318. package/interfaces/retornos/retorno-execucao-interface.d.ts +5 -5
  319. package/interfaces/retornos/retorno-execucao-interface.js +2 -2
  320. package/interfaces/retornos/retorno-interpretador.d.ts +5 -5
  321. package/interfaces/retornos/retorno-interpretador.js +2 -2
  322. package/interfaces/retornos/retorno-lexador.d.ts +9 -9
  323. package/interfaces/retornos/retorno-lexador.js +2 -2
  324. package/interfaces/simbolo-interface.d.ts +7 -7
  325. package/interfaces/simbolo-interface.js +2 -2
  326. package/interfaces/tradutor-interface.d.ts +3 -3
  327. package/interfaces/tradutor-interface.js +2 -2
  328. package/interfaces/variavel-hipotetica-interface.d.ts +8 -8
  329. package/interfaces/variavel-hipotetica-interface.js +2 -2
  330. package/interfaces/variavel-interface.d.ts +8 -8
  331. package/interfaces/variavel-interface.js +2 -2
  332. package/interfaces/visitante-comum-interface.d.ts +58 -58
  333. package/interfaces/visitante-comum-interface.js +2 -2
  334. package/interpretador/argumento-interface.d.ts +4 -4
  335. package/interpretador/argumento-interface.js +2 -2
  336. package/interpretador/comum.d.ts +2 -2
  337. package/interpretador/comum.js +51 -52
  338. package/interpretador/comum.js.map +1 -1
  339. package/interpretador/dialetos/egua-classico/index.d.ts +1 -1
  340. package/interpretador/dialetos/egua-classico/index.js +17 -17
  341. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts +119 -119
  342. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +815 -815
  343. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
  344. package/interpretador/dialetos/egua-classico/resolvedor/erro-resolvedor.d.ts +5 -5
  345. package/interpretador/dialetos/egua-classico/resolvedor/erro-resolvedor.js +11 -11
  346. package/interpretador/dialetos/egua-classico/resolvedor/index.d.ts +3 -3
  347. package/interpretador/dialetos/egua-classico/resolvedor/index.js +19 -19
  348. package/interpretador/dialetos/egua-classico/resolvedor/pilha-escopos.d.ts +9 -9
  349. package/interpretador/dialetos/egua-classico/resolvedor/pilha-escopos.js +25 -25
  350. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts +106 -106
  351. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js +441 -441
  352. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js.map +1 -1
  353. package/interpretador/dialetos/egua-classico/resolvedor/retorno-resolvedor.d.ts +6 -6
  354. package/interpretador/dialetos/egua-classico/resolvedor/retorno-resolvedor.js +2 -2
  355. package/interpretador/dialetos/index.d.ts +2 -2
  356. package/interpretador/dialetos/index.js +18 -18
  357. package/interpretador/dialetos/portugol-ipt/index.d.ts +1 -1
  358. package/interpretador/dialetos/portugol-ipt/index.js +17 -17
  359. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts +133 -133
  360. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js +501 -501
  361. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js.map +1 -1
  362. package/interpretador/index.d.ts +3 -3
  363. package/interpretador/index.js +19 -19
  364. package/interpretador/inferenciador.d.ts +15 -15
  365. package/interpretador/inferenciador.d.ts.map +1 -1
  366. package/interpretador/inferenciador.js +80 -80
  367. package/interpretador/inferenciador.js.map +1 -1
  368. package/interpretador/interpretador-base.d.ts +268 -268
  369. package/interpretador/interpretador-base.js +1399 -1399
  370. package/interpretador/interpretador-base.js.map +1 -1
  371. package/interpretador/interpretador-com-depuracao.d.ts +190 -190
  372. package/interpretador/interpretador-com-depuracao.js +568 -568
  373. package/interpretador/interpretador-com-depuracao.js.map +1 -1
  374. package/interpretador/pilha-escopos-execucao.d.ts +39 -39
  375. package/interpretador/pilha-escopos-execucao.js +243 -243
  376. package/interpretador/pilha-escopos-execucao.js.map +1 -1
  377. package/lexador/dialetos/index.d.ts +4 -4
  378. package/lexador/dialetos/index.js +20 -20
  379. package/lexador/dialetos/lexador-egua-classico.d.ts +36 -36
  380. package/lexador/dialetos/lexador-egua-classico.js +286 -286
  381. package/lexador/dialetos/lexador-egua-classico.js.map +1 -1
  382. package/lexador/dialetos/lexador-guarani.d.ts +10 -10
  383. package/lexador/dialetos/lexador-guarani.js +113 -113
  384. package/lexador/dialetos/lexador-guarani.js.map +1 -1
  385. package/lexador/dialetos/lexador-pitugues.d.ts +51 -51
  386. package/lexador/dialetos/lexador-pitugues.js +398 -398
  387. package/lexador/dialetos/lexador-pitugues.js.map +1 -1
  388. package/lexador/dialetos/lexador-portugol-ipt.d.ts +33 -33
  389. package/lexador/dialetos/lexador-portugol-ipt.js +237 -237
  390. package/lexador/dialetos/lexador-portugol-ipt.js.map +1 -1
  391. package/lexador/dialetos/palavras-reservadas/egua-classico.d.ts +32 -32
  392. package/lexador/dialetos/palavras-reservadas/egua-classico.js +39 -39
  393. package/lexador/dialetos/palavras-reservadas/guarani.d.ts +3 -3
  394. package/lexador/dialetos/palavras-reservadas/guarani.js +10 -10
  395. package/lexador/dialetos/palavras-reservadas/portugol-ipt.d.ts +13 -13
  396. package/lexador/dialetos/palavras-reservadas/portugol-ipt.js +20 -20
  397. package/lexador/dialetos/palavras-reservadas/rantiaquin.d.ts +1 -1
  398. package/lexador/dialetos/palavras-reservadas/rantiaquin.js +4 -4
  399. package/lexador/dialetos/pragma.d.ts +8 -8
  400. package/lexador/dialetos/pragma.js +2 -2
  401. package/lexador/erro-lexador.d.ts +5 -5
  402. package/lexador/erro-lexador.js +2 -2
  403. package/lexador/index.d.ts +4 -4
  404. package/lexador/index.js +20 -20
  405. package/lexador/lexador-base-linha-unica.d.ts +28 -28
  406. package/lexador/lexador-base-linha-unica.js +82 -82
  407. package/lexador/lexador-base-linha-unica.js.map +1 -1
  408. package/lexador/lexador-base.d.ts +41 -41
  409. package/lexador/lexador-base.js +112 -112
  410. package/lexador/lexador-base.js.map +1 -1
  411. package/lexador/lexador.d.ts +43 -43
  412. package/lexador/lexador.js +440 -440
  413. package/lexador/lexador.js.map +1 -1
  414. package/lexador/micro-lexador.d.ts +29 -29
  415. package/lexador/micro-lexador.js +207 -207
  416. package/lexador/micro-lexador.js.map +1 -1
  417. package/lexador/palavras-reservadas.d.ts +54 -54
  418. package/lexador/palavras-reservadas.js +61 -61
  419. package/lexador/simbolo.d.ts +10 -10
  420. package/lexador/simbolo.js +16 -16
  421. package/lexador/traducao/lexador-javascript.d.ts +28 -28
  422. package/lexador/traducao/lexador-javascript.js +58 -58
  423. package/package.json +5 -4
  424. package/quebras/index.d.ts +10 -10
  425. package/quebras/index.js +19 -19
  426. package/tipo-dados-elementar.d.ts +1 -1
  427. package/tipo-dados-elementar.js +2 -2
  428. package/tipos-de-dados/delegua.d.ts +18 -18
  429. package/tipos-de-dados/delegua.js +19 -19
  430. package/tipos-de-dados/listas-delegua.d.ts +6 -6
  431. package/tipos-de-dados/listas-delegua.js +7 -7
  432. package/tipos-de-dados/listas-primitivos.d.ts +5 -5
  433. package/tipos-de-dados/listas-primitivos.js +6 -6
  434. package/tipos-de-dados/primitivos.d.ts +16 -16
  435. package/tipos-de-dados/primitivos.js +17 -17
  436. package/tipos-de-simbolos/comum.d.ts +23 -23
  437. package/tipos-de-simbolos/comum.js +24 -24
  438. package/tipos-de-simbolos/delegua.d.ts +91 -91
  439. package/tipos-de-simbolos/delegua.js +92 -92
  440. package/tipos-de-simbolos/egua-classico.d.ts +75 -75
  441. package/tipos-de-simbolos/egua-classico.js +76 -76
  442. package/tipos-de-simbolos/guarani.d.ts +14 -14
  443. package/tipos-de-simbolos/guarani.js +15 -15
  444. package/tipos-de-simbolos/guarani.js.map +1 -1
  445. package/tipos-de-simbolos/microgramaticas/delegua.d.ts +46 -46
  446. package/tipos-de-simbolos/microgramaticas/delegua.js +47 -47
  447. package/tipos-de-simbolos/pitugues.d.ts +75 -75
  448. package/tipos-de-simbolos/pitugues.js +76 -76
  449. package/tipos-de-simbolos/portugol-ipt.d.ts +36 -36
  450. package/tipos-de-simbolos/portugol-ipt.js +37 -37
  451. package/tipos-de-simbolos/rantiaquin.d.ts +2 -2
  452. package/tipos-de-simbolos/rantiaquin.js +3 -3
  453. package/tradutores/dicionarios/dicionario-delegua-javascript.d.ts +2 -2
  454. package/tradutores/dicionarios/dicionario-delegua-javascript.js +10 -10
  455. package/tradutores/dicionarios/index.d.ts +1 -1
  456. package/tradutores/dicionarios/index.js +17 -17
  457. package/tradutores/index.d.ts +6 -6
  458. package/tradutores/index.js +22 -22
  459. package/tradutores/python/python3-lexer.d.ts +152 -152
  460. package/tradutores/python/python3-lexer.js +1227 -1227
  461. package/tradutores/python/python3-lexer.js.map +1 -1
  462. package/tradutores/python/python3-listener.d.ts +964 -964
  463. package/tradutores/python/python3-listener.js +3 -3
  464. package/tradutores/python/python3-parser.d.ts +1342 -1342
  465. package/tradutores/python/python3-parser.js +11226 -11226
  466. package/tradutores/python/python3-parser.js.map +1 -1
  467. package/tradutores/python/python3-visitor.d.ts +619 -619
  468. package/tradutores/python/python3-visitor.js +3 -3
  469. package/tradutores/tradutor-assembly-x64.d.ts +19 -19
  470. package/tradutores/tradutor-assembly-x64.js +128 -128
  471. package/tradutores/tradutor-assembly-x64.js.map +1 -1
  472. package/tradutores/tradutor-assemblyscript.d.ts +91 -91
  473. package/tradutores/tradutor-assemblyscript.js +590 -590
  474. package/tradutores/tradutor-assemblyscript.js.map +1 -1
  475. package/tradutores/tradutor-javascript.d.ts +95 -95
  476. package/tradutores/tradutor-javascript.js +577 -577
  477. package/tradutores/tradutor-javascript.js.map +1 -1
  478. package/tradutores/tradutor-portugol-ipt.d.ts +21 -21
  479. package/tradutores/tradutor-portugol-ipt.js +60 -60
  480. package/tradutores/tradutor-portugol-ipt.js.map +1 -1
  481. package/tradutores/tradutor-python.d.ts +65 -65
  482. package/tradutores/tradutor-python.js +461 -461
  483. package/tradutores/tradutor-python.js.map +1 -1
  484. package/tradutores/tradutor-reverso-javascript.d.ts +50 -50
  485. package/tradutores/tradutor-reverso-javascript.js +392 -392
  486. package/tradutores/tradutor-reverso-javascript.js.map +1 -1
  487. package/tradutores/tradutor-reverso-python.d.ts +32 -32
  488. package/tradutores/tradutor-reverso-python.js +71 -71
  489. package/tradutores/tradutor-reverso-python.js.map +1 -1
  490. package/umd/delegua.js +26337 -26340
@@ -1,393 +1,393 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TradutorReversoJavaScript = void 0;
4
- /**
5
- * Esse tradutor traduz de JavaScript para Delégua.
6
- */
7
- class TradutorReversoJavaScript {
8
- constructor() {
9
- this.indentacao = 0;
10
- this.dicionarioConstrutos = {
11
- AssignmentExpression: this.traduzirConstrutoAtribuir.bind(this),
12
- ArrayExpression: this.traduzirConstrutoVetor.bind(this),
13
- ArrowFunctionExpression: this.traduzirDeclaracaoFuncao.bind(this),
14
- // Agrupamento: this.traduzirConstrutoAgrupamento.bind(this),
15
- BinaryExpression: this.traduzirConstrutoBinario.bind(this),
16
- CallExpression: this.traduzirConstrutoChamada.bind(this),
17
- // DefinirValor: this.traduzirConstrutoDefinirValor.bind(this),
18
- // Isto: this.traduzirConstrutoIsto.bind(this),
19
- Identifier: this.traduzirIdentificador.bind(this),
20
- Literal: this.traduzirConstrutoLiteral.bind(this),
21
- LogicalExpression: this.traduzirConstrutoLogico.bind(this),
22
- MemberExpression: this.traduzirExpressao.bind(this),
23
- NewExpression: this.traduzirNovo.bind(this),
24
- ThisExpression: () => 'isto',
25
- UpdateExpression: this.traduzirAtualizacaoVariavel.bind(this),
26
- // Variavel: this.traduzirConstrutoVariavel.bind(this),
27
- };
28
- // Qualquer coisa pro ESLint ficar feliz.
29
- }
30
- traduzirSimboloOperador(operador) {
31
- switch (operador) {
32
- case '===':
33
- return '==';
34
- case '&&':
35
- return 'e';
36
- case '||':
37
- return 'ou';
38
- default:
39
- return operador;
40
- }
41
- }
42
- //TODO: @Samuel
43
- traduzirFuncoesNativas(metodo) {
44
- switch (metodo.toLowerCase()) {
45
- case 'concat':
46
- return 'concatenar';
47
- case 'includes':
48
- return 'inclui';
49
- case 'join':
50
- return 'juntar';
51
- case 'length':
52
- return 'tamanho()';
53
- case 'log':
54
- return 'escreva';
55
- case 'pop':
56
- return 'removerUltimo';
57
- case 'push':
58
- return 'adicionar';
59
- case 'replace':
60
- return 'substituir';
61
- case 'reverse':
62
- return 'inverter';
63
- case 'sort':
64
- return 'ordenar';
65
- case 'shift':
66
- return 'removerPrimeiro';
67
- case 'slice':
68
- return 'fatiar';
69
- case 'trim':
70
- return 'aparar';
71
- case 'trimstart':
72
- return 'apararInicio';
73
- case 'trimend':
74
- return 'apararFim';
75
- case 'touppercase':
76
- return 'maiusculo';
77
- case 'tolowercase':
78
- return 'minusculo';
79
- default:
80
- return metodo;
81
- }
82
- }
83
- traduzirConstrutoVetor(vetor) {
84
- if (!vetor.elements.length) {
85
- return '[]';
86
- }
87
- let resultado = '[';
88
- for (let elemento of vetor.elements) {
89
- resultado += this.dicionarioConstrutos[elemento.constructor.name](elemento) + ', ';
90
- }
91
- if (vetor.elements.length > 0) {
92
- resultado = resultado.slice(0, -2);
93
- }
94
- resultado += ']';
95
- return resultado;
96
- }
97
- traduzirIdentificador(identificador) {
98
- return identificador.name;
99
- }
100
- traduzirAtualizacaoVariavel(atualizarVariavel) {
101
- let resultado = '';
102
- resultado += this.dicionarioConstrutos[atualizarVariavel.argument.constructor.name](atualizarVariavel.argument);
103
- resultado += this.traduzirSimboloOperador(atualizarVariavel.operator);
104
- return resultado;
105
- }
106
- traduzirNovo(novo) {
107
- let identificador = novo.callee;
108
- let resultado = `${identificador.name}(`;
109
- for (let argumento of novo.arguments) {
110
- resultado += this.dicionarioConstrutos[argumento.type](argumento) + ', ';
111
- }
112
- if (novo.arguments.length > 0) {
113
- resultado = resultado.slice(0, -2);
114
- }
115
- resultado += ')';
116
- return resultado;
117
- }
118
- traduzirExpressao(expressao) {
119
- let objeto = this.dicionarioConstrutos[expressao.object.type](expressao.object);
120
- let propriedade = this.dicionarioConstrutos[expressao.property.type](expressao.property);
121
- if (objeto === 'console') {
122
- return `${this.traduzirFuncoesNativas(propriedade)}`;
123
- }
124
- return `${objeto}.${this.traduzirFuncoesNativas(propriedade)}`;
125
- }
126
- traduzirConstrutoLogico(logico) {
127
- return this.dicionarioConstrutos[logico.constructor.name](logico);
128
- }
129
- traduzirConstrutoChamada(chamada) {
130
- let resultado = '';
131
- resultado += this.dicionarioConstrutos[chamada.callee.type](chamada.callee) + '(';
132
- for (let parametro of chamada.arguments) {
133
- resultado += this.dicionarioConstrutos[parametro.type](parametro) + ', ';
134
- }
135
- if (chamada.arguments.length > 0) {
136
- resultado = resultado.slice(0, -2);
137
- }
138
- resultado += ')';
139
- return resultado;
140
- }
141
- traduzirConstrutoAtribuir(atribuir) {
142
- let resultado = '';
143
- const direita = this.dicionarioConstrutos[atribuir.right.type](atribuir.right);
144
- const esquerda = this.dicionarioConstrutos[atribuir.left.type](atribuir.left);
145
- resultado += `${esquerda} ${this.traduzirSimboloOperador(atribuir.operator)} ${direita}`;
146
- return resultado;
147
- }
148
- traduzirExpressaoDeclaracao(declaracao) {
149
- return this.dicionarioConstrutos[declaracao.expression.type](declaracao.expression);
150
- }
151
- traduzirConstrutoLiteral(literal) {
152
- if (literal.raw === 'true')
153
- return 'verdadeiro';
154
- if (literal.raw === 'false')
155
- return 'falso';
156
- return `${literal.raw}`;
157
- }
158
- traduzirConstrutoBinario(binario) {
159
- let resultado = '';
160
- const direita = this.dicionarioConstrutos[binario.right.type](binario.right);
161
- const esquerda = this.dicionarioConstrutos[binario.left.type](binario.left);
162
- resultado += `${esquerda} ${this.traduzirSimboloOperador(binario.operator)} ${direita}`;
163
- return resultado;
164
- }
165
- traduzirDeclaracaoVariavel(declaracao) {
166
- let resultado = '';
167
- let informacoesDaVariavel = declaracao.declarations[0];
168
- const identificador = informacoesDaVariavel.id;
169
- if (identificador) {
170
- resultado += `${declaracao.kind === 'const' ? 'const' : 'var'} ${identificador.name}`;
171
- if (informacoesDaVariavel.init) {
172
- resultado += ` = ${this.dicionarioConstrutos[informacoesDaVariavel.init.type](informacoesDaVariavel.init)}`;
173
- }
174
- }
175
- return resultado;
176
- }
177
- logicaComumBlocoEscopo(declaracoes) {
178
- let resultado = '{\n';
179
- this.indentacao += 4;
180
- const corpo = declaracoes.body.body || declaracoes.body;
181
- for (const declaracaoOuConstruto of corpo) {
182
- resultado += ' '.repeat(this.indentacao);
183
- const nomeConstrutor = declaracaoOuConstruto.constructor.name;
184
- if (this.dicionarioConstrutos.hasOwnProperty(nomeConstrutor)) {
185
- resultado += this.dicionarioConstrutos[nomeConstrutor](declaracaoOuConstruto);
186
- }
187
- else {
188
- resultado += this.traduzirDeclaracao(declaracaoOuConstruto);
189
- }
190
- resultado += '\n';
191
- }
192
- this.indentacao -= 4;
193
- resultado += ' '.repeat(this.indentacao) + '}\n';
194
- return resultado;
195
- }
196
- traduzirDeclaracaoPara(declaracao) {
197
- let resultado = '';
198
- resultado += 'para (';
199
- resultado += this.traduzirDeclaracao(declaracao.init) + '; ';
200
- resultado += this.dicionarioConstrutos[declaracao.test.type](declaracao.test) + '; ';
201
- resultado += this.dicionarioConstrutos[declaracao.update.type](declaracao.update) + ') ';
202
- resultado += this.logicaComumBlocoEscopo(declaracao);
203
- return resultado;
204
- }
205
- traduzirDeclaracaoParaDe(declaracao) {
206
- let resultado = '';
207
- let emOuDe = declaracao.type === 'ForInStatement' ? 'em' : 'de';
208
- resultado += `para (${this.traduzirDeclaracao(declaracao.left)} ${emOuDe} `;
209
- resultado += this.dicionarioConstrutos[declaracao.right.constructor.name](declaracao.right) + ') ';
210
- resultado += this.logicaComumBlocoEscopo(declaracao.body);
211
- return resultado;
212
- }
213
- traduzirDeclaracaoFuncao(declaracao) {
214
- let resultado = '';
215
- const eFuncaoSeta = !declaracao.id;
216
- resultado += eFuncaoSeta ? '(' : `funcao ${declaracao.id.name}(`;
217
- for (let parametro of declaracao.params) {
218
- resultado += parametro.name + ', ';
219
- }
220
- if (declaracao.params.length > 0) {
221
- resultado = resultado.slice(0, -2);
222
- }
223
- resultado += eFuncaoSeta ? ') => ' : ') ';
224
- resultado += this.logicaComumBlocoEscopo(declaracao);
225
- return resultado;
226
- }
227
- //TODO: Refatorar esse método. @Samuel
228
- traduzirDeclaracaoClasse(declaracao) {
229
- let resultado = `classe ${declaracao.id.name} `;
230
- if (declaracao.superClass) {
231
- let identificador = declaracao.superClass;
232
- resultado += `herda ${identificador.name} `;
233
- }
234
- resultado += '{\n';
235
- this.indentacao += 4;
236
- resultado += ' '.repeat(this.indentacao);
237
- for (let corpo of declaracao.body.body) {
238
- if (corpo.type === 'MethodDefinition') {
239
- let _corpo = corpo;
240
- if (_corpo.kind === 'constructor') {
241
- resultado += 'construtor(';
242
- for (let valor of _corpo.value.params) {
243
- if (valor.type === 'Identifier') {
244
- resultado += `${valor.name}, `;
245
- }
246
- }
247
- if (_corpo.value.params.length > 0) {
248
- resultado = resultado.slice(0, -2);
249
- }
250
- resultado += ')';
251
- resultado += this.logicaComumBlocoEscopo(_corpo.value);
252
- }
253
- else if (_corpo.kind === 'method') {
254
- resultado += ' '.repeat(this.indentacao);
255
- let identificador = _corpo.key;
256
- resultado += identificador.name + '(';
257
- for (let valor of _corpo.value.params) {
258
- if (valor.type === 'Identifier') {
259
- resultado += `${valor.name}, `;
260
- }
261
- }
262
- if (_corpo.value.params.length > 0) {
263
- resultado = resultado.slice(0, -2);
264
- }
265
- resultado += ')';
266
- resultado += this.logicaComumBlocoEscopo(_corpo.value);
267
- }
268
- } // else if (corpo.constructor.name === 'PropertyDefinition') {}
269
- // else if (corpo.constructor.name === 'StaticBlock') {}
270
- }
271
- this.indentacao -= 4;
272
- resultado += ' '.repeat(this.indentacao) + '}\n';
273
- return resultado;
274
- }
275
- traduzirDeclaracaoRetorna(declaracao) {
276
- return `retorna ${this.dicionarioConstrutos[declaracao.argument.type](declaracao.argument)}`;
277
- }
278
- traduzirDeclaracaoEnquanto(declaracao) {
279
- let resultado = 'enquanto(';
280
- resultado += this.dicionarioConstrutos[declaracao.test.type](declaracao.test);
281
- resultado += ')';
282
- resultado += this.logicaComumBlocoEscopo(declaracao);
283
- return resultado;
284
- }
285
- traduzirDeclaracaoFazerEnquanto(declaracao) {
286
- let resultado = 'fazer';
287
- resultado += this.logicaComumBlocoEscopo(declaracao);
288
- resultado += 'enquanto(';
289
- resultado += this.dicionarioConstrutos[declaracao.test.type](declaracao.test);
290
- resultado += ')';
291
- return resultado;
292
- }
293
- traduzirDeclaracaoSe(declaracao) {
294
- let resultado = 'se (';
295
- resultado += this.dicionarioConstrutos[declaracao.test.type](declaracao.test);
296
- resultado += ')';
297
- resultado += this.logicaComumBlocoEscopo(declaracao.consequent);
298
- if (declaracao === null || declaracao === void 0 ? void 0 : declaracao.alternate) {
299
- resultado += 'senao ';
300
- if (declaracao.alternate.constructor.name === 'BlockStatement') {
301
- const bloco = declaracao.alternate;
302
- resultado += this.logicaComumBlocoEscopo(bloco);
303
- return resultado;
304
- }
305
- const se = declaracao.alternate;
306
- resultado += this.traduzirDeclaracao(se);
307
- }
308
- return resultado;
309
- }
310
- traduzirDeclaracaoTente(declaracao) {
311
- let resultado = 'tente ';
312
- resultado += this.logicaComumBlocoEscopo(declaracao.block);
313
- if (declaracao.handler) {
314
- resultado += 'pegue';
315
- if (declaracao.handler.param) {
316
- const identificador = declaracao.handler.param;
317
- resultado += `(${identificador.name})`;
318
- }
319
- resultado += this.logicaComumBlocoEscopo(declaracao.block);
320
- }
321
- if (declaracao.finalizer) {
322
- resultado += 'finalmente';
323
- resultado += this.logicaComumBlocoEscopo(declaracao.finalizer);
324
- }
325
- return resultado;
326
- }
327
- traduzirDeclaracaoEscolha(declaracao) {
328
- let resultado = '';
329
- this.indentacao += 4;
330
- resultado += `escolha(${this.dicionarioConstrutos[declaracao.discriminant.type](declaracao.discriminant)}) {`;
331
- resultado += ' '.repeat(this.indentacao);
332
- for (let caso of declaracao.cases) {
333
- if (!caso.test) {
334
- resultado += 'padrao:';
335
- resultado += ' '.repeat(this.indentacao + 4);
336
- for (let bloco of caso.consequent) {
337
- if (bloco.type === 'BreakStatement')
338
- continue;
339
- resultado += this.traduzirDeclaracao(bloco) + '\n';
340
- }
341
- break;
342
- }
343
- resultado += `caso ${this.dicionarioConstrutos[caso.test.type](caso.test)}:`;
344
- resultado += ' '.repeat(this.indentacao + 4);
345
- for (let bloco of caso.consequent) {
346
- if (bloco.type === 'BreakStatement')
347
- continue;
348
- resultado += this.traduzirDeclaracao(bloco) + '\n';
349
- }
350
- }
351
- this.indentacao -= 4;
352
- resultado += ' '.repeat(this.indentacao) + '}\n';
353
- return resultado;
354
- }
355
- traduzirDeclaracao(declaracao) {
356
- switch (declaracao.type) {
357
- case 'ClassDeclaration':
358
- return this.traduzirDeclaracaoClasse(declaracao);
359
- case 'DoWhileStatement':
360
- return this.traduzirDeclaracaoFazerEnquanto(declaracao);
361
- case 'ExpressionStatement':
362
- return this.traduzirExpressaoDeclaracao(declaracao);
363
- case 'ForStatement':
364
- return this.traduzirDeclaracaoPara(declaracao);
365
- case 'ForInStatement':
366
- case 'ForOfStatement':
367
- return this.traduzirDeclaracaoParaDe(declaracao);
368
- case 'FunctionDeclaration':
369
- return this.traduzirDeclaracaoFuncao(declaracao);
370
- case 'IfStatement':
371
- return this.traduzirDeclaracaoSe(declaracao);
372
- case 'ReturnStatement':
373
- return this.traduzirDeclaracaoRetorna(declaracao);
374
- case 'SwitchStatement':
375
- return this.traduzirDeclaracaoEscolha(declaracao);
376
- case 'TryStatement':
377
- return this.traduzirDeclaracaoTente(declaracao);
378
- case 'VariableDeclaration':
379
- return this.traduzirDeclaracaoVariavel(declaracao);
380
- case 'WhileStatement':
381
- return this.traduzirDeclaracaoEnquanto(declaracao);
382
- }
383
- }
384
- traduzir(declaracoes) {
385
- let resultado = '';
386
- for (let declaracao of declaracoes) {
387
- resultado += `${this.traduzirDeclaracao(declaracao)} \n`;
388
- }
389
- return resultado;
390
- }
391
- }
392
- exports.TradutorReversoJavaScript = TradutorReversoJavaScript;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TradutorReversoJavaScript = void 0;
4
+ /**
5
+ * Esse tradutor traduz de JavaScript para Delégua.
6
+ */
7
+ class TradutorReversoJavaScript {
8
+ constructor() {
9
+ this.indentacao = 0;
10
+ this.dicionarioConstrutos = {
11
+ AssignmentExpression: this.traduzirConstrutoAtribuir.bind(this),
12
+ ArrayExpression: this.traduzirConstrutoVetor.bind(this),
13
+ ArrowFunctionExpression: this.traduzirDeclaracaoFuncao.bind(this),
14
+ // Agrupamento: this.traduzirConstrutoAgrupamento.bind(this),
15
+ BinaryExpression: this.traduzirConstrutoBinario.bind(this),
16
+ CallExpression: this.traduzirConstrutoChamada.bind(this),
17
+ // DefinirValor: this.traduzirConstrutoDefinirValor.bind(this),
18
+ // Isto: this.traduzirConstrutoIsto.bind(this),
19
+ Identifier: this.traduzirIdentificador.bind(this),
20
+ Literal: this.traduzirConstrutoLiteral.bind(this),
21
+ LogicalExpression: this.traduzirConstrutoLogico.bind(this),
22
+ MemberExpression: this.traduzirExpressao.bind(this),
23
+ NewExpression: this.traduzirNovo.bind(this),
24
+ ThisExpression: () => 'isto',
25
+ UpdateExpression: this.traduzirAtualizacaoVariavel.bind(this),
26
+ // Variavel: this.traduzirConstrutoVariavel.bind(this),
27
+ };
28
+ // Qualquer coisa pro ESLint ficar feliz.
29
+ }
30
+ traduzirSimboloOperador(operador) {
31
+ switch (operador) {
32
+ case '===':
33
+ return '==';
34
+ case '&&':
35
+ return 'e';
36
+ case '||':
37
+ return 'ou';
38
+ default:
39
+ return operador;
40
+ }
41
+ }
42
+ //TODO: @Samuel
43
+ traduzirFuncoesNativas(metodo) {
44
+ switch (metodo.toLowerCase()) {
45
+ case 'concat':
46
+ return 'concatenar';
47
+ case 'includes':
48
+ return 'inclui';
49
+ case 'join':
50
+ return 'juntar';
51
+ case 'length':
52
+ return 'tamanho()';
53
+ case 'log':
54
+ return 'escreva';
55
+ case 'pop':
56
+ return 'removerUltimo';
57
+ case 'push':
58
+ return 'adicionar';
59
+ case 'replace':
60
+ return 'substituir';
61
+ case 'reverse':
62
+ return 'inverter';
63
+ case 'sort':
64
+ return 'ordenar';
65
+ case 'shift':
66
+ return 'removerPrimeiro';
67
+ case 'slice':
68
+ return 'fatiar';
69
+ case 'trim':
70
+ return 'aparar';
71
+ case 'trimstart':
72
+ return 'apararInicio';
73
+ case 'trimend':
74
+ return 'apararFim';
75
+ case 'touppercase':
76
+ return 'maiusculo';
77
+ case 'tolowercase':
78
+ return 'minusculo';
79
+ default:
80
+ return metodo;
81
+ }
82
+ }
83
+ traduzirConstrutoVetor(vetor) {
84
+ if (!vetor.elements.length) {
85
+ return '[]';
86
+ }
87
+ let resultado = '[';
88
+ for (let elemento of vetor.elements) {
89
+ resultado += this.dicionarioConstrutos[elemento.constructor.name](elemento) + ', ';
90
+ }
91
+ if (vetor.elements.length > 0) {
92
+ resultado = resultado.slice(0, -2);
93
+ }
94
+ resultado += ']';
95
+ return resultado;
96
+ }
97
+ traduzirIdentificador(identificador) {
98
+ return identificador.name;
99
+ }
100
+ traduzirAtualizacaoVariavel(atualizarVariavel) {
101
+ let resultado = '';
102
+ resultado += this.dicionarioConstrutos[atualizarVariavel.argument.constructor.name](atualizarVariavel.argument);
103
+ resultado += this.traduzirSimboloOperador(atualizarVariavel.operator);
104
+ return resultado;
105
+ }
106
+ traduzirNovo(novo) {
107
+ let identificador = novo.callee;
108
+ let resultado = `${identificador.name}(`;
109
+ for (let argumento of novo.arguments) {
110
+ resultado += this.dicionarioConstrutos[argumento.type](argumento) + ', ';
111
+ }
112
+ if (novo.arguments.length > 0) {
113
+ resultado = resultado.slice(0, -2);
114
+ }
115
+ resultado += ')';
116
+ return resultado;
117
+ }
118
+ traduzirExpressao(expressao) {
119
+ let objeto = this.dicionarioConstrutos[expressao.object.type](expressao.object);
120
+ let propriedade = this.dicionarioConstrutos[expressao.property.type](expressao.property);
121
+ if (objeto === 'console') {
122
+ return `${this.traduzirFuncoesNativas(propriedade)}`;
123
+ }
124
+ return `${objeto}.${this.traduzirFuncoesNativas(propriedade)}`;
125
+ }
126
+ traduzirConstrutoLogico(logico) {
127
+ return this.dicionarioConstrutos[logico.constructor.name](logico);
128
+ }
129
+ traduzirConstrutoChamada(chamada) {
130
+ let resultado = '';
131
+ resultado += this.dicionarioConstrutos[chamada.callee.type](chamada.callee) + '(';
132
+ for (let parametro of chamada.arguments) {
133
+ resultado += this.dicionarioConstrutos[parametro.type](parametro) + ', ';
134
+ }
135
+ if (chamada.arguments.length > 0) {
136
+ resultado = resultado.slice(0, -2);
137
+ }
138
+ resultado += ')';
139
+ return resultado;
140
+ }
141
+ traduzirConstrutoAtribuir(atribuir) {
142
+ let resultado = '';
143
+ const direita = this.dicionarioConstrutos[atribuir.right.type](atribuir.right);
144
+ const esquerda = this.dicionarioConstrutos[atribuir.left.type](atribuir.left);
145
+ resultado += `${esquerda} ${this.traduzirSimboloOperador(atribuir.operator)} ${direita}`;
146
+ return resultado;
147
+ }
148
+ traduzirExpressaoDeclaracao(declaracao) {
149
+ return this.dicionarioConstrutos[declaracao.expression.type](declaracao.expression);
150
+ }
151
+ traduzirConstrutoLiteral(literal) {
152
+ if (literal.raw === 'true')
153
+ return 'verdadeiro';
154
+ if (literal.raw === 'false')
155
+ return 'falso';
156
+ return `${literal.raw}`;
157
+ }
158
+ traduzirConstrutoBinario(binario) {
159
+ let resultado = '';
160
+ const direita = this.dicionarioConstrutos[binario.right.type](binario.right);
161
+ const esquerda = this.dicionarioConstrutos[binario.left.type](binario.left);
162
+ resultado += `${esquerda} ${this.traduzirSimboloOperador(binario.operator)} ${direita}`;
163
+ return resultado;
164
+ }
165
+ traduzirDeclaracaoVariavel(declaracao) {
166
+ let resultado = '';
167
+ let informacoesDaVariavel = declaracao.declarations[0];
168
+ const identificador = informacoesDaVariavel.id;
169
+ if (identificador) {
170
+ resultado += `${declaracao.kind === 'const' ? 'const' : 'var'} ${identificador.name}`;
171
+ if (informacoesDaVariavel.init) {
172
+ resultado += ` = ${this.dicionarioConstrutos[informacoesDaVariavel.init.type](informacoesDaVariavel.init)}`;
173
+ }
174
+ }
175
+ return resultado;
176
+ }
177
+ logicaComumBlocoEscopo(declaracoes) {
178
+ let resultado = '{\n';
179
+ this.indentacao += 4;
180
+ const corpo = declaracoes.body.body || declaracoes.body;
181
+ for (const declaracaoOuConstruto of corpo) {
182
+ resultado += ' '.repeat(this.indentacao);
183
+ const nomeConstrutor = declaracaoOuConstruto.constructor.name;
184
+ if (this.dicionarioConstrutos.hasOwnProperty(nomeConstrutor)) {
185
+ resultado += this.dicionarioConstrutos[nomeConstrutor](declaracaoOuConstruto);
186
+ }
187
+ else {
188
+ resultado += this.traduzirDeclaracao(declaracaoOuConstruto);
189
+ }
190
+ resultado += '\n';
191
+ }
192
+ this.indentacao -= 4;
193
+ resultado += ' '.repeat(this.indentacao) + '}\n';
194
+ return resultado;
195
+ }
196
+ traduzirDeclaracaoPara(declaracao) {
197
+ let resultado = '';
198
+ resultado += 'para (';
199
+ resultado += this.traduzirDeclaracao(declaracao.init) + '; ';
200
+ resultado += this.dicionarioConstrutos[declaracao.test.type](declaracao.test) + '; ';
201
+ resultado += this.dicionarioConstrutos[declaracao.update.type](declaracao.update) + ') ';
202
+ resultado += this.logicaComumBlocoEscopo(declaracao);
203
+ return resultado;
204
+ }
205
+ traduzirDeclaracaoParaDe(declaracao) {
206
+ let resultado = '';
207
+ let emOuDe = declaracao.type === 'ForInStatement' ? 'em' : 'de';
208
+ resultado += `para (${this.traduzirDeclaracao(declaracao.left)} ${emOuDe} `;
209
+ resultado += this.dicionarioConstrutos[declaracao.right.constructor.name](declaracao.right) + ') ';
210
+ resultado += this.logicaComumBlocoEscopo(declaracao.body);
211
+ return resultado;
212
+ }
213
+ traduzirDeclaracaoFuncao(declaracao) {
214
+ let resultado = '';
215
+ const eFuncaoSeta = !declaracao.id;
216
+ resultado += eFuncaoSeta ? '(' : `funcao ${declaracao.id.name}(`;
217
+ for (let parametro of declaracao.params) {
218
+ resultado += parametro.name + ', ';
219
+ }
220
+ if (declaracao.params.length > 0) {
221
+ resultado = resultado.slice(0, -2);
222
+ }
223
+ resultado += eFuncaoSeta ? ') => ' : ') ';
224
+ resultado += this.logicaComumBlocoEscopo(declaracao);
225
+ return resultado;
226
+ }
227
+ //TODO: Refatorar esse método. @Samuel
228
+ traduzirDeclaracaoClasse(declaracao) {
229
+ let resultado = `classe ${declaracao.id.name} `;
230
+ if (declaracao.superClass) {
231
+ let identificador = declaracao.superClass;
232
+ resultado += `herda ${identificador.name} `;
233
+ }
234
+ resultado += '{\n';
235
+ this.indentacao += 4;
236
+ resultado += ' '.repeat(this.indentacao);
237
+ for (let corpo of declaracao.body.body) {
238
+ if (corpo.type === 'MethodDefinition') {
239
+ let _corpo = corpo;
240
+ if (_corpo.kind === 'constructor') {
241
+ resultado += 'construtor(';
242
+ for (let valor of _corpo.value.params) {
243
+ if (valor.type === 'Identifier') {
244
+ resultado += `${valor.name}, `;
245
+ }
246
+ }
247
+ if (_corpo.value.params.length > 0) {
248
+ resultado = resultado.slice(0, -2);
249
+ }
250
+ resultado += ')';
251
+ resultado += this.logicaComumBlocoEscopo(_corpo.value);
252
+ }
253
+ else if (_corpo.kind === 'method') {
254
+ resultado += ' '.repeat(this.indentacao);
255
+ let identificador = _corpo.key;
256
+ resultado += identificador.name + '(';
257
+ for (let valor of _corpo.value.params) {
258
+ if (valor.type === 'Identifier') {
259
+ resultado += `${valor.name}, `;
260
+ }
261
+ }
262
+ if (_corpo.value.params.length > 0) {
263
+ resultado = resultado.slice(0, -2);
264
+ }
265
+ resultado += ')';
266
+ resultado += this.logicaComumBlocoEscopo(_corpo.value);
267
+ }
268
+ } // else if (corpo.constructor.name === 'PropertyDefinition') {}
269
+ // else if (corpo.constructor.name === 'StaticBlock') {}
270
+ }
271
+ this.indentacao -= 4;
272
+ resultado += ' '.repeat(this.indentacao) + '}\n';
273
+ return resultado;
274
+ }
275
+ traduzirDeclaracaoRetorna(declaracao) {
276
+ return `retorna ${this.dicionarioConstrutos[declaracao.argument.type](declaracao.argument)}`;
277
+ }
278
+ traduzirDeclaracaoEnquanto(declaracao) {
279
+ let resultado = 'enquanto(';
280
+ resultado += this.dicionarioConstrutos[declaracao.test.type](declaracao.test);
281
+ resultado += ')';
282
+ resultado += this.logicaComumBlocoEscopo(declaracao);
283
+ return resultado;
284
+ }
285
+ traduzirDeclaracaoFazerEnquanto(declaracao) {
286
+ let resultado = 'fazer';
287
+ resultado += this.logicaComumBlocoEscopo(declaracao);
288
+ resultado += 'enquanto(';
289
+ resultado += this.dicionarioConstrutos[declaracao.test.type](declaracao.test);
290
+ resultado += ')';
291
+ return resultado;
292
+ }
293
+ traduzirDeclaracaoSe(declaracao) {
294
+ let resultado = 'se (';
295
+ resultado += this.dicionarioConstrutos[declaracao.test.type](declaracao.test);
296
+ resultado += ')';
297
+ resultado += this.logicaComumBlocoEscopo(declaracao.consequent);
298
+ if (declaracao === null || declaracao === void 0 ? void 0 : declaracao.alternate) {
299
+ resultado += 'senao ';
300
+ if (declaracao.alternate.constructor.name === 'BlockStatement') {
301
+ const bloco = declaracao.alternate;
302
+ resultado += this.logicaComumBlocoEscopo(bloco);
303
+ return resultado;
304
+ }
305
+ const se = declaracao.alternate;
306
+ resultado += this.traduzirDeclaracao(se);
307
+ }
308
+ return resultado;
309
+ }
310
+ traduzirDeclaracaoTente(declaracao) {
311
+ let resultado = 'tente ';
312
+ resultado += this.logicaComumBlocoEscopo(declaracao.block);
313
+ if (declaracao.handler) {
314
+ resultado += 'pegue';
315
+ if (declaracao.handler.param) {
316
+ const identificador = declaracao.handler.param;
317
+ resultado += `(${identificador.name})`;
318
+ }
319
+ resultado += this.logicaComumBlocoEscopo(declaracao.block);
320
+ }
321
+ if (declaracao.finalizer) {
322
+ resultado += 'finalmente';
323
+ resultado += this.logicaComumBlocoEscopo(declaracao.finalizer);
324
+ }
325
+ return resultado;
326
+ }
327
+ traduzirDeclaracaoEscolha(declaracao) {
328
+ let resultado = '';
329
+ this.indentacao += 4;
330
+ resultado += `escolha(${this.dicionarioConstrutos[declaracao.discriminant.type](declaracao.discriminant)}) {`;
331
+ resultado += ' '.repeat(this.indentacao);
332
+ for (let caso of declaracao.cases) {
333
+ if (!caso.test) {
334
+ resultado += 'padrao:';
335
+ resultado += ' '.repeat(this.indentacao + 4);
336
+ for (let bloco of caso.consequent) {
337
+ if (bloco.type === 'BreakStatement')
338
+ continue;
339
+ resultado += this.traduzirDeclaracao(bloco) + '\n';
340
+ }
341
+ break;
342
+ }
343
+ resultado += `caso ${this.dicionarioConstrutos[caso.test.type](caso.test)}:`;
344
+ resultado += ' '.repeat(this.indentacao + 4);
345
+ for (let bloco of caso.consequent) {
346
+ if (bloco.type === 'BreakStatement')
347
+ continue;
348
+ resultado += this.traduzirDeclaracao(bloco) + '\n';
349
+ }
350
+ }
351
+ this.indentacao -= 4;
352
+ resultado += ' '.repeat(this.indentacao) + '}\n';
353
+ return resultado;
354
+ }
355
+ traduzirDeclaracao(declaracao) {
356
+ switch (declaracao.type) {
357
+ case 'ClassDeclaration':
358
+ return this.traduzirDeclaracaoClasse(declaracao);
359
+ case 'DoWhileStatement':
360
+ return this.traduzirDeclaracaoFazerEnquanto(declaracao);
361
+ case 'ExpressionStatement':
362
+ return this.traduzirExpressaoDeclaracao(declaracao);
363
+ case 'ForStatement':
364
+ return this.traduzirDeclaracaoPara(declaracao);
365
+ case 'ForInStatement':
366
+ case 'ForOfStatement':
367
+ return this.traduzirDeclaracaoParaDe(declaracao);
368
+ case 'FunctionDeclaration':
369
+ return this.traduzirDeclaracaoFuncao(declaracao);
370
+ case 'IfStatement':
371
+ return this.traduzirDeclaracaoSe(declaracao);
372
+ case 'ReturnStatement':
373
+ return this.traduzirDeclaracaoRetorna(declaracao);
374
+ case 'SwitchStatement':
375
+ return this.traduzirDeclaracaoEscolha(declaracao);
376
+ case 'TryStatement':
377
+ return this.traduzirDeclaracaoTente(declaracao);
378
+ case 'VariableDeclaration':
379
+ return this.traduzirDeclaracaoVariavel(declaracao);
380
+ case 'WhileStatement':
381
+ return this.traduzirDeclaracaoEnquanto(declaracao);
382
+ }
383
+ }
384
+ traduzir(declaracoes) {
385
+ let resultado = '';
386
+ for (let declaracao of declaracoes) {
387
+ resultado += `${this.traduzirDeclaracao(declaracao)} \n`;
388
+ }
389
+ return resultado;
390
+ }
391
+ }
392
+ exports.TradutorReversoJavaScript = TradutorReversoJavaScript;
393
393
  //# sourceMappingURL=tradutor-reverso-javascript.js.map