@designliquido/delegua 0.14.7 → 0.15.1

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 (350) hide show
  1. package/README.md +85 -85
  2. package/bin/delegua +2 -2
  3. package/bin/package.json +88 -88
  4. package/fontes/avaliador-sintatico/avaliador-sintatico-base.d.ts +67 -67
  5. package/fontes/avaliador-sintatico/avaliador-sintatico-base.js +215 -215
  6. package/fontes/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
  7. package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +92 -92
  8. package/fontes/avaliador-sintatico/avaliador-sintatico.js +857 -727
  9. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  10. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.d.ts +27 -22
  11. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js +294 -145
  12. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js.map +1 -1
  13. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.d.ts +69 -69
  14. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +640 -640
  15. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
  16. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.d.ts +84 -84
  17. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +714 -714
  18. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js.map +1 -1
  19. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.d.ts +20 -20
  20. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js +149 -149
  21. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.d.ts +49 -33
  22. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.js +419 -218
  23. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.js.map +1 -1
  24. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.d.ts +73 -73
  25. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js +534 -534
  26. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js.map +1 -1
  27. package/fontes/avaliador-sintatico/dialetos/index.d.ts +5 -5
  28. package/fontes/avaliador-sintatico/dialetos/index.js +21 -21
  29. package/fontes/avaliador-sintatico/erro-avaliador-sintatico.d.ts +5 -5
  30. package/fontes/avaliador-sintatico/erro-avaliador-sintatico.js +11 -11
  31. package/fontes/avaliador-sintatico/index.d.ts +2 -2
  32. package/fontes/avaliador-sintatico/index.js +18 -18
  33. package/fontes/avaliador-sintatico/retornos/index.d.ts +3 -3
  34. package/fontes/avaliador-sintatico/retornos/index.js +19 -19
  35. package/fontes/avaliador-sintatico/retornos/retorno-declaracao.d.ts +3 -3
  36. package/fontes/avaliador-sintatico/retornos/retorno-declaracao.js +2 -2
  37. package/fontes/avaliador-sintatico/retornos/retorno-primario.d.ts +3 -3
  38. package/fontes/avaliador-sintatico/retornos/retorno-primario.js +2 -2
  39. package/fontes/avaliador-sintatico/retornos/retorno-resolver-declaracao.d.ts +2 -2
  40. package/fontes/avaliador-sintatico/retornos/retorno-resolver-declaracao.js +2 -2
  41. package/fontes/bibliotecas/biblioteca-global.d.ts +3 -3
  42. package/fontes/bibliotecas/biblioteca-global.js +315 -315
  43. package/fontes/bibliotecas/dialetos/egua-classico/biblioteca-global.d.ts +1 -1
  44. package/fontes/bibliotecas/dialetos/egua-classico/biblioteca-global.js +230 -230
  45. package/fontes/bibliotecas/dialetos/egua-classico/index.d.ts +2 -2
  46. package/fontes/bibliotecas/dialetos/egua-classico/index.js +32 -32
  47. package/fontes/bibliotecas/dialetos/egua-classico/matematica.d.ts +1 -1
  48. package/fontes/bibliotecas/dialetos/egua-classico/matematica.js +478 -478
  49. package/fontes/bibliotecas/dialetos/egua-classico/tempo.d.ts +1 -1
  50. package/fontes/bibliotecas/dialetos/egua-classico/tempo.js +39 -39
  51. package/fontes/bibliotecas/dialetos/egua-classico/textos.d.ts +8 -8
  52. package/fontes/bibliotecas/dialetos/egua-classico/textos.js +201 -201
  53. package/fontes/bibliotecas/primitivas-texto.d.ts +11 -11
  54. package/fontes/bibliotecas/primitivas-texto.js +12 -12
  55. package/fontes/bibliotecas/primitivas-vetor.d.ts +15 -15
  56. package/fontes/bibliotecas/primitivas-vetor.js +33 -33
  57. package/fontes/construtos/acesso-indice-variavel.d.ts +15 -15
  58. package/fontes/construtos/acesso-indice-variavel.js +20 -20
  59. package/fontes/construtos/acesso-metodo.d.ts +14 -14
  60. package/fontes/construtos/acesso-metodo.js +19 -19
  61. package/fontes/construtos/agrupamento.d.ts +14 -14
  62. package/fontes/construtos/agrupamento.js +19 -19
  63. package/fontes/construtos/atribuicao-sobrescrita.d.ts +11 -11
  64. package/fontes/construtos/atribuicao-sobrescrita.js +16 -16
  65. package/fontes/construtos/atribuir.d.ts +10 -10
  66. package/fontes/construtos/atribuir.js +15 -15
  67. package/fontes/construtos/binario.d.ts +22 -22
  68. package/fontes/construtos/binario.js +27 -27
  69. package/fontes/construtos/chamada.d.ts +13 -13
  70. package/fontes/construtos/chamada.js +36 -36
  71. package/fontes/construtos/construto.d.ts +7 -7
  72. package/fontes/construtos/construto.js +2 -2
  73. package/fontes/construtos/definir-valor.d.ts +11 -11
  74. package/fontes/construtos/definir-valor.js +16 -16
  75. package/fontes/construtos/dicionario.d.ts +10 -10
  76. package/fontes/construtos/dicionario.js +15 -15
  77. package/fontes/construtos/formatacao-escrita.d.ts +16 -16
  78. package/fontes/construtos/formatacao-escrita.js +21 -21
  79. package/fontes/construtos/funcao.d.ts +10 -10
  80. package/fontes/construtos/funcao.js +15 -15
  81. package/fontes/construtos/index.d.ts +19 -19
  82. package/fontes/construtos/index.js +35 -35
  83. package/fontes/construtos/isto.d.ts +9 -9
  84. package/fontes/construtos/isto.js +14 -14
  85. package/fontes/construtos/literal.d.ts +10 -10
  86. package/fontes/construtos/literal.js +14 -14
  87. package/fontes/construtos/logico.d.ts +11 -11
  88. package/fontes/construtos/logico.js +16 -16
  89. package/fontes/construtos/super.d.ts +10 -10
  90. package/fontes/construtos/super.js +15 -15
  91. package/fontes/construtos/unario.d.ts +11 -10
  92. package/fontes/construtos/unario.js +16 -15
  93. package/fontes/construtos/unario.js.map +1 -1
  94. package/fontes/construtos/variavel.d.ts +9 -9
  95. package/fontes/construtos/variavel.js +14 -14
  96. package/fontes/construtos/vetor.d.ts +9 -9
  97. package/fontes/construtos/vetor.js +14 -14
  98. package/fontes/declaracoes/bloco.d.ts +7 -7
  99. package/fontes/declaracoes/bloco.js +14 -14
  100. package/fontes/declaracoes/classe.d.ts +9 -9
  101. package/fontes/declaracoes/classe.js +16 -16
  102. package/fontes/declaracoes/continua.d.ts +6 -6
  103. package/fontes/declaracoes/continua.js +13 -13
  104. package/fontes/declaracoes/declaracao.d.ts +8 -8
  105. package/fontes/declaracoes/declaracao.js +17 -17
  106. package/fontes/declaracoes/enquanto.d.ts +9 -9
  107. package/fontes/declaracoes/enquanto.js +15 -15
  108. package/fontes/declaracoes/escolha.d.ts +14 -14
  109. package/fontes/declaracoes/escolha.js +19 -19
  110. package/fontes/declaracoes/escreva-mesma-linha.d.ts +8 -8
  111. package/fontes/declaracoes/escreva-mesma-linha.js +14 -14
  112. package/fontes/declaracoes/escreva.d.ts +8 -8
  113. package/fontes/declaracoes/escreva.js +14 -14
  114. package/fontes/declaracoes/expressao.d.ts +8 -8
  115. package/fontes/declaracoes/expressao.js +14 -14
  116. package/fontes/declaracoes/fazer.d.ts +8 -8
  117. package/fontes/declaracoes/fazer.js +15 -15
  118. package/fontes/declaracoes/funcao.d.ts +9 -9
  119. package/fontes/declaracoes/funcao.js +15 -15
  120. package/fontes/declaracoes/importar.d.ts +9 -9
  121. package/fontes/declaracoes/importar.js +15 -15
  122. package/fontes/declaracoes/index.d.ts +19 -19
  123. package/fontes/declaracoes/index.js +35 -35
  124. package/fontes/declaracoes/leia.d.ts +12 -12
  125. package/fontes/declaracoes/leia.js +18 -18
  126. package/fontes/declaracoes/para.d.ts +10 -10
  127. package/fontes/declaracoes/para.js +17 -17
  128. package/fontes/declaracoes/retorna.d.ts +8 -8
  129. package/fontes/declaracoes/retorna.js +15 -15
  130. package/fontes/declaracoes/se.d.ts +11 -11
  131. package/fontes/declaracoes/se.js +17 -17
  132. package/fontes/declaracoes/sustar.d.ts +6 -6
  133. package/fontes/declaracoes/sustar.js +13 -13
  134. package/fontes/declaracoes/tente.d.ts +14 -14
  135. package/fontes/declaracoes/tente.js +20 -20
  136. package/fontes/declaracoes/var.d.ts +9 -9
  137. package/fontes/declaracoes/var.js +15 -15
  138. package/fontes/depuracao/cyrb53.d.ts +9 -9
  139. package/fontes/depuracao/cyrb53.js +22 -22
  140. package/fontes/depuracao/index.d.ts +2 -2
  141. package/fontes/depuracao/index.js +23 -23
  142. package/fontes/depuracao/ponto-parada.d.ts +4 -4
  143. package/fontes/depuracao/ponto-parada.js +2 -2
  144. package/fontes/espaco-variaveis.d.ts +19 -19
  145. package/fontes/espaco-variaveis.js +19 -19
  146. package/fontes/estruturas/chamavel.d.ts +5 -5
  147. package/fontes/estruturas/chamavel.js +12 -12
  148. package/fontes/estruturas/classe-padrao.d.ts +17 -17
  149. package/fontes/estruturas/classe-padrao.js +28 -28
  150. package/fontes/estruturas/delegua-classe.d.ts +16 -16
  151. package/fontes/estruturas/delegua-classe.js +38 -38
  152. package/fontes/estruturas/delegua-funcao.d.ts +18 -18
  153. package/fontes/estruturas/delegua-funcao.js +60 -60
  154. package/fontes/estruturas/funcao-padrao.d.ts +12 -12
  155. package/fontes/estruturas/funcao-padrao.js +22 -22
  156. package/fontes/estruturas/index.d.ts +9 -9
  157. package/fontes/estruturas/index.js +25 -25
  158. package/fontes/estruturas/metodo-primitiva.d.ts +17 -17
  159. package/fontes/estruturas/metodo-primitiva.js +26 -26
  160. package/fontes/estruturas/modulo.d.ts +9 -9
  161. package/fontes/estruturas/modulo.js +13 -13
  162. package/fontes/estruturas/objeto-delegua-classe.d.ts +10 -10
  163. package/fontes/estruturas/objeto-delegua-classe.js +26 -26
  164. package/fontes/estruturas/objeto-padrao.d.ts +9 -9
  165. package/fontes/estruturas/objeto-padrao.js +21 -21
  166. package/fontes/excecoes/erro-em-tempo-de-execucao.d.ts +7 -7
  167. package/fontes/excecoes/erro-em-tempo-de-execucao.js +13 -13
  168. package/fontes/excecoes/index.d.ts +1 -1
  169. package/fontes/excecoes/index.js +17 -17
  170. package/fontes/formatadores/delegua.d.ts +18 -18
  171. package/fontes/formatadores/delegua.js +82 -82
  172. package/fontes/formatadores/index.d.ts +1 -1
  173. package/fontes/formatadores/index.js +17 -17
  174. package/fontes/interfaces/avaliador-sintatico-interface.d.ts +57 -57
  175. package/fontes/interfaces/avaliador-sintatico-interface.js +2 -2
  176. package/fontes/interfaces/construtos/index.d.ts +4 -4
  177. package/fontes/interfaces/construtos/index.js +2 -2
  178. package/fontes/interfaces/escopo-execucao.d.ts +11 -11
  179. package/fontes/interfaces/escopo-execucao.js +2 -2
  180. package/fontes/interfaces/index.d.ts +11 -11
  181. package/fontes/interfaces/index.js +27 -27
  182. package/fontes/interfaces/interpretador-com-depuracao-interface.d.ts +17 -17
  183. package/fontes/interfaces/interpretador-com-depuracao-interface.js +2 -2
  184. package/fontes/interfaces/interpretador-interface.d.ts +55 -55
  185. package/fontes/interfaces/interpretador-interface.js +2 -2
  186. package/fontes/interfaces/lexador-interface.d.ts +23 -23
  187. package/fontes/interfaces/lexador-interface.js +2 -2
  188. package/fontes/interfaces/parametro-interface.d.ts +6 -6
  189. package/fontes/interfaces/parametro-interface.js +2 -2
  190. package/fontes/interfaces/pilha-escopos-execucao-interface.d.ts +25 -25
  191. package/fontes/interfaces/pilha-escopos-execucao-interface.js +2 -2
  192. package/fontes/interfaces/pilha-interface.d.ts +7 -7
  193. package/fontes/interfaces/pilha-interface.js +2 -2
  194. package/fontes/interfaces/resolvedor-interface.d.ts +41 -41
  195. package/fontes/interfaces/resolvedor-interface.js +2 -2
  196. package/fontes/interfaces/retornos/index.d.ts +4 -4
  197. package/fontes/interfaces/retornos/index.js +20 -20
  198. package/fontes/interfaces/retornos/retorno-avaliador-sintatico.d.ts +6 -6
  199. package/fontes/interfaces/retornos/retorno-avaliador-sintatico.js +2 -2
  200. package/fontes/interfaces/retornos/retorno-execucao-interface.d.ts +5 -5
  201. package/fontes/interfaces/retornos/retorno-execucao-interface.js +2 -2
  202. package/fontes/interfaces/retornos/retorno-interpretador.d.ts +5 -5
  203. package/fontes/interfaces/retornos/retorno-interpretador.js +2 -2
  204. package/fontes/interfaces/retornos/retorno-lexador.d.ts +10 -10
  205. package/fontes/interfaces/retornos/retorno-lexador.js +2 -2
  206. package/fontes/interfaces/simbolo-interface.d.ts +7 -7
  207. package/fontes/interfaces/simbolo-interface.js +2 -2
  208. package/fontes/interfaces/tradutor-interface.d.ts +4 -4
  209. package/fontes/interfaces/tradutor-interface.js +2 -2
  210. package/fontes/interfaces/variavel-interface.d.ts +4 -4
  211. package/fontes/interfaces/variavel-interface.js +2 -2
  212. package/fontes/interpretador/dialetos/egua-classico/index.d.ts +1 -1
  213. package/fontes/interpretador/dialetos/egua-classico/index.js +17 -17
  214. package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts +99 -99
  215. package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +743 -743
  216. package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
  217. package/fontes/interpretador/dialetos/egua-classico/resolvedor/erro-resolvedor.d.ts +5 -5
  218. package/fontes/interpretador/dialetos/egua-classico/resolvedor/erro-resolvedor.js +11 -11
  219. package/fontes/interpretador/dialetos/egua-classico/resolvedor/index.d.ts +3 -3
  220. package/fontes/interpretador/dialetos/egua-classico/resolvedor/index.js +19 -19
  221. package/fontes/interpretador/dialetos/egua-classico/resolvedor/pilha-escopos.d.ts +9 -9
  222. package/fontes/interpretador/dialetos/egua-classico/resolvedor/pilha-escopos.js +25 -25
  223. package/fontes/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts +87 -87
  224. package/fontes/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js +387 -387
  225. package/fontes/interpretador/dialetos/egua-classico/resolvedor/retorno-resolvedor.d.ts +6 -6
  226. package/fontes/interpretador/dialetos/egua-classico/resolvedor/retorno-resolvedor.js +2 -2
  227. package/fontes/interpretador/dialetos/index.d.ts +4 -4
  228. package/fontes/interpretador/dialetos/index.js +20 -20
  229. package/fontes/interpretador/dialetos/portugol-studio/interpretador-portugol-studio.d.ts +12 -12
  230. package/fontes/interpretador/dialetos/portugol-studio/interpretador-portugol-studio.js +26 -26
  231. package/fontes/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.d.ts +40 -40
  232. package/fontes/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.js +96 -96
  233. package/fontes/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.js.map +1 -1
  234. package/fontes/interpretador/dialetos/visualg/interpretador-visualg.d.ts +46 -46
  235. package/fontes/interpretador/dialetos/visualg/interpretador-visualg.js +102 -102
  236. package/fontes/interpretador/dialetos/visualg/interpretador-visualg.js.map +1 -1
  237. package/fontes/interpretador/erro-interpretador.d.ts +8 -8
  238. package/fontes/interpretador/erro-interpretador.js +2 -2
  239. package/fontes/interpretador/index.d.ts +4 -4
  240. package/fontes/interpretador/index.js +20 -20
  241. package/fontes/interpretador/inferenciador.d.ts +1 -1
  242. package/fontes/interpretador/inferenciador.js +31 -31
  243. package/fontes/interpretador/interpretador-base.d.ts +188 -187
  244. package/fontes/interpretador/interpretador-base.js +1000 -972
  245. package/fontes/interpretador/interpretador-base.js.map +1 -1
  246. package/fontes/interpretador/interpretador-com-depuracao.d.ts +199 -199
  247. package/fontes/interpretador/interpretador-com-depuracao.js +516 -516
  248. package/fontes/interpretador/pilha-escopos-execucao.d.ts +38 -38
  249. package/fontes/interpretador/pilha-escopos-execucao.js +158 -158
  250. package/fontes/lexador/dialetos/index.d.ts +6 -6
  251. package/fontes/lexador/dialetos/index.js +22 -22
  252. package/fontes/lexador/dialetos/lexador-birl.d.ts +12 -12
  253. package/fontes/lexador/dialetos/lexador-birl.js +211 -165
  254. package/fontes/lexador/dialetos/lexador-birl.js.map +1 -1
  255. package/fontes/lexador/dialetos/lexador-egua-classico.d.ts +36 -36
  256. package/fontes/lexador/dialetos/lexador-egua-classico.js +286 -286
  257. package/fontes/lexador/dialetos/lexador-eguap.d.ts +51 -51
  258. package/fontes/lexador/dialetos/lexador-eguap.js +398 -398
  259. package/fontes/lexador/dialetos/lexador-guarani.d.ts +9 -9
  260. package/fontes/lexador/dialetos/lexador-guarani.js +113 -113
  261. package/fontes/lexador/dialetos/lexador-portugol-ipt.d.ts +33 -33
  262. package/fontes/lexador/dialetos/lexador-portugol-ipt.js +195 -195
  263. package/fontes/lexador/dialetos/lexador-portugol-studio.d.ts +21 -15
  264. package/fontes/lexador/dialetos/lexador-portugol-studio.js +280 -244
  265. package/fontes/lexador/dialetos/lexador-portugol-studio.js.map +1 -1
  266. package/fontes/lexador/dialetos/lexador-visualg.d.ts +18 -18
  267. package/fontes/lexador/dialetos/lexador-visualg.js +218 -218
  268. package/fontes/lexador/dialetos/palavras-reservadas/birl.d.ts +46 -41
  269. package/fontes/lexador/dialetos/palavras-reservadas/birl.js +63 -58
  270. package/fontes/lexador/dialetos/palavras-reservadas/birl.js.map +1 -1
  271. package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.d.ts +36 -36
  272. package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.js +41 -41
  273. package/fontes/lexador/dialetos/palavras-reservadas/guarani.d.ts +4 -4
  274. package/fontes/lexador/dialetos/palavras-reservadas/guarani.js +9 -9
  275. package/fontes/lexador/dialetos/palavras-reservadas/index.d.ts +3 -3
  276. package/fontes/lexador/dialetos/palavras-reservadas/index.js +19 -19
  277. package/fontes/lexador/dialetos/palavras-reservadas/portugol-ipt.d.ts +6 -6
  278. package/fontes/lexador/dialetos/palavras-reservadas/portugol-ipt.js +11 -11
  279. package/fontes/lexador/dialetos/palavras-reservadas/portugol-studio.d.ts +23 -11
  280. package/fontes/lexador/dialetos/palavras-reservadas/portugol-studio.js +28 -16
  281. package/fontes/lexador/dialetos/palavras-reservadas/portugol-studio.js.map +1 -1
  282. package/fontes/lexador/dialetos/palavras-reservadas/rantiaquin.d.ts +2 -2
  283. package/fontes/lexador/dialetos/palavras-reservadas/rantiaquin.js +3 -3
  284. package/fontes/lexador/dialetos/palavras-reservadas/visualg.d.ts +60 -60
  285. package/fontes/lexador/dialetos/palavras-reservadas/visualg.js +65 -65
  286. package/fontes/lexador/dialetos/pragma.d.ts +8 -8
  287. package/fontes/lexador/dialetos/pragma.js +2 -2
  288. package/fontes/lexador/erro-lexador.d.ts +5 -5
  289. package/fontes/lexador/erro-lexador.js +2 -2
  290. package/fontes/lexador/index.d.ts +2 -2
  291. package/fontes/lexador/index.js +18 -18
  292. package/fontes/lexador/lexador-base-linha-unica.d.ts +28 -28
  293. package/fontes/lexador/lexador-base-linha-unica.js +82 -82
  294. package/fontes/lexador/lexador-base.d.ts +41 -41
  295. package/fontes/lexador/lexador-base.js +112 -112
  296. package/fontes/lexador/lexador.d.ts +43 -43
  297. package/fontes/lexador/lexador.js +412 -408
  298. package/fontes/lexador/lexador.js.map +1 -1
  299. package/fontes/lexador/palavras-reservadas.d.ts +36 -36
  300. package/fontes/lexador/palavras-reservadas.js +41 -41
  301. package/fontes/lexador/simbolo.d.ts +10 -10
  302. package/fontes/lexador/simbolo.js +16 -16
  303. package/fontes/quebras/index.d.ts +10 -10
  304. package/fontes/quebras/index.js +19 -19
  305. package/fontes/tipos-de-simbolos/birl.d.ts +71 -57
  306. package/fontes/tipos-de-simbolos/birl.js +78 -61
  307. package/fontes/tipos-de-simbolos/birl.js.map +1 -1
  308. package/fontes/tipos-de-simbolos/comum.d.ts +22 -22
  309. package/fontes/tipos-de-simbolos/comum.js +23 -23
  310. package/fontes/tipos-de-simbolos/delegua.d.ts +80 -80
  311. package/fontes/tipos-de-simbolos/delegua.js +81 -81
  312. package/fontes/tipos-de-simbolos/egua-classico.d.ts +77 -77
  313. package/fontes/tipos-de-simbolos/egua-classico.js +78 -78
  314. package/fontes/tipos-de-simbolos/eguap.d.ts +73 -73
  315. package/fontes/tipos-de-simbolos/eguap.js +74 -74
  316. package/fontes/tipos-de-simbolos/guarani.d.ts +14 -14
  317. package/fontes/tipos-de-simbolos/guarani.js +15 -15
  318. package/fontes/tipos-de-simbolos/portugol-ipt.d.ts +28 -28
  319. package/fontes/tipos-de-simbolos/portugol-ipt.js +29 -29
  320. package/fontes/tipos-de-simbolos/portugol-studio.d.ts +53 -37
  321. package/fontes/tipos-de-simbolos/portugol-studio.js +54 -38
  322. package/fontes/tipos-de-simbolos/portugol-studio.js.map +1 -1
  323. package/fontes/tipos-de-simbolos/rantiaquin.d.ts +2 -2
  324. package/fontes/tipos-de-simbolos/rantiaquin.js +3 -3
  325. package/fontes/tipos-de-simbolos/visualg.d.ts +68 -68
  326. package/fontes/tipos-de-simbolos/visualg.js +69 -69
  327. package/fontes/tradutores/dicionarios/dicionario-delegua-javascript.d.ts +2 -2
  328. package/fontes/tradutores/dicionarios/dicionario-delegua-javascript.js +10 -10
  329. package/fontes/tradutores/dicionarios/index.d.ts +1 -1
  330. package/fontes/tradutores/dicionarios/index.js +17 -17
  331. package/fontes/tradutores/index.d.ts +2 -2
  332. package/fontes/tradutores/index.js +18 -18
  333. package/fontes/tradutores/python/python3-lexer.d.ts +152 -152
  334. package/fontes/tradutores/python/python3-lexer.js +1226 -1226
  335. package/fontes/tradutores/python/python3-listener.d.ts +953 -953
  336. package/fontes/tradutores/python/python3-listener.js +2 -2
  337. package/fontes/tradutores/python/python3-parser.d.ts +1330 -1330
  338. package/fontes/tradutores/python/python3-parser.js +11156 -11156
  339. package/fontes/tradutores/python/python3-visitor.d.ts +612 -612
  340. package/fontes/tradutores/python/python3-visitor.js +2 -2
  341. package/fontes/tradutores/tradutor-javascript.d.ts +83 -83
  342. package/fontes/tradutores/tradutor-javascript.js +470 -470
  343. package/fontes/tradutores/tradutor-javascript.js.map +1 -1
  344. package/fontes/tradutores/tradutor-python.d.ts +1 -1
  345. package/fontes/tradutores/tradutor-python.js +34 -34
  346. package/fontes/tradutores/tradutor-reverso-javascript.d.ts +47 -47
  347. package/fontes/tradutores/tradutor-reverso-javascript.js +342 -342
  348. package/index.d.ts +5 -5
  349. package/index.js +23 -23
  350. package/package.json +88 -88
@@ -1,409 +1,413 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Lexador = void 0;
7
- const browser_process_hrtime_1 = __importDefault(require("browser-process-hrtime"));
8
- const simbolo_1 = require("./simbolo");
9
- const palavras_reservadas_1 = __importDefault(require("./palavras-reservadas"));
10
- const delegua_1 = __importDefault(require("../tipos-de-simbolos/delegua"));
11
- /**
12
- * O Lexador é responsável por transformar o código em uma coleção de tokens de linguagem.
13
- * Cada token de linguagem é representado por um tipo, um lexema e informações da linha de código em que foi expresso.
14
- * Também é responsável por mapear as palavras reservadas da linguagem, que não podem ser usadas por outras
15
- * estruturas, tais como nomes de variáveis, funções, literais, classes e assim por diante.
16
- */
17
- class Lexador {
18
- constructor(performance = false) {
19
- this.performance = performance;
20
- this.simbolos = [];
21
- this.erros = [];
22
- this.hashArquivo = -1;
23
- this.inicioSimbolo = 0;
24
- this.atual = 0;
25
- this.linha = 0;
26
- }
27
- eDigito(caractere) {
28
- return caractere >= '0' && caractere <= '9';
29
- }
30
- eAlfabeto(caractere) {
31
- const acentuacoes = [
32
- 'á',
33
- 'Á',
34
- 'ã',
35
- 'Ã',
36
- 'â',
37
- 'Â',
38
- 'à',
39
- 'À',
40
- 'é',
41
- 'É',
42
- 'ê',
43
- 'Ê',
44
- 'í',
45
- 'Í',
46
- 'ó',
47
- 'Ó',
48
- 'õ',
49
- 'Õ',
50
- 'ô',
51
- 'Ô',
52
- 'ú',
53
- 'Ú',
54
- 'ç',
55
- 'Ç',
56
- '_',
57
- ];
58
- return ((caractere >= 'a' && caractere <= 'z') ||
59
- (caractere >= 'A' && caractere <= 'Z') ||
60
- acentuacoes.includes(caractere));
61
- }
62
- eAlfabetoOuDigito(caractere) {
63
- return this.eDigito(caractere) || this.eAlfabeto(caractere);
64
- }
65
- eFinalDaLinha() {
66
- if (this.codigo.length === this.linha) {
67
- return true;
68
- }
69
- return this.atual >= this.codigo[this.linha].length;
70
- }
71
- /**
72
- * Indica se o código está na última linha.
73
- * @returns Verdadeiro se contador de linhas está na última linha.
74
- * Falso caso contrário.
75
- */
76
- eUltimaLinha() {
77
- return this.linha >= this.codigo.length - 1;
78
- }
79
- eFinalDoCodigo() {
80
- return this.eUltimaLinha() && this.codigo[this.codigo.length - 1].length <= this.atual;
81
- }
82
- avancar() {
83
- this.atual += 1;
84
- if (this.eFinalDaLinha() && !this.eUltimaLinha()) {
85
- this.linha++;
86
- this.atual = 0;
87
- }
88
- }
89
- adicionarSimbolo(tipo, literal = null) {
90
- const texto = this.codigo[this.linha].substring(this.inicioSimbolo, this.atual);
91
- this.simbolos.push(new simbolo_1.Simbolo(tipo, literal || texto, literal, this.linha + 1, this.hashArquivo));
92
- }
93
- simboloAtual() {
94
- if (this.eFinalDaLinha())
95
- return '\0';
96
- return this.codigo[this.linha].charAt(this.atual);
97
- }
98
- avancarParaProximaLinha() {
99
- this.linha++;
100
- this.atual = 0;
101
- }
102
- proximoSimbolo() {
103
- return this.codigo[this.linha].charAt(this.atual + 1);
104
- }
105
- simboloAnterior() {
106
- return this.codigo[this.linha].charAt(this.atual - 1);
107
- }
108
- analisarTexto(delimitador = '"') {
109
- while (this.simboloAtual() !== delimitador && !this.eFinalDoCodigo()) {
110
- this.avancar();
111
- }
112
- if (this.eFinalDoCodigo()) {
113
- this.erros.push({
114
- linha: this.linha + 1,
115
- caractere: this.simboloAnterior(),
116
- mensagem: 'Texto não finalizado.',
117
- });
118
- return;
119
- }
120
- const valor = this.codigo[this.linha].substring(this.inicioSimbolo + 1, this.atual);
121
- this.adicionarSimbolo(delegua_1.default.TEXTO, valor);
122
- }
123
- analisarNumero() {
124
- while (this.eDigito(this.simboloAtual())) {
125
- this.avancar();
126
- }
127
- if (this.simboloAtual() == '.' && this.eDigito(this.proximoSimbolo())) {
128
- this.avancar();
129
- while (this.eDigito(this.simboloAtual())) {
130
- this.avancar();
131
- }
132
- }
133
- const numeroCompleto = this.codigo[this.linha].substring(this.inicioSimbolo, this.atual);
134
- this.adicionarSimbolo(delegua_1.default.NUMERO, parseFloat(numeroCompleto));
135
- }
136
- identificarPalavraChave() {
137
- while (this.eAlfabetoOuDigito(this.simboloAtual())) {
138
- this.avancar();
139
- }
140
- const codigo = this.codigo[this.linha].substring(this.inicioSimbolo, this.atual);
141
- const tipo = codigo in palavras_reservadas_1.default ? palavras_reservadas_1.default[codigo] : delegua_1.default.IDENTIFICADOR;
142
- this.adicionarSimbolo(tipo);
143
- }
144
- encontrarFimComentarioAsterisco() {
145
- while (!this.eFinalDoCodigo()) {
146
- this.avancar();
147
- if (this.simboloAtual() === '*' && this.proximoSimbolo() === '/') {
148
- this.avancar();
149
- this.avancar();
150
- break;
151
- }
152
- }
153
- }
154
- analisarToken() {
155
- const caractere = this.simboloAtual();
156
- switch (caractere) {
157
- case '[':
158
- this.adicionarSimbolo(delegua_1.default.COLCHETE_ESQUERDO);
159
- this.avancar();
160
- break;
161
- case ']':
162
- this.adicionarSimbolo(delegua_1.default.COLCHETE_DIREITO);
163
- this.avancar();
164
- break;
165
- case '(':
166
- this.adicionarSimbolo(delegua_1.default.PARENTESE_ESQUERDO);
167
- this.avancar();
168
- break;
169
- case ')':
170
- this.adicionarSimbolo(delegua_1.default.PARENTESE_DIREITO);
171
- this.avancar();
172
- break;
173
- case '{':
174
- this.adicionarSimbolo(delegua_1.default.CHAVE_ESQUERDA);
175
- this.avancar();
176
- break;
177
- case '}':
178
- this.adicionarSimbolo(delegua_1.default.CHAVE_DIREITA);
179
- this.avancar();
180
- break;
181
- case ',':
182
- this.adicionarSimbolo(delegua_1.default.VIRGULA);
183
- this.avancar();
184
- break;
185
- case '.':
186
- this.adicionarSimbolo(delegua_1.default.PONTO);
187
- this.avancar();
188
- break;
189
- case '-':
190
- this.inicioSimbolo = this.atual;
191
- this.avancar();
192
- if (this.simboloAtual() === '=') {
193
- this.adicionarSimbolo(delegua_1.default.MENOS_IGUAL);
194
- this.avancar();
195
- }
196
- else if (this.simboloAtual() === '-') {
197
- this.adicionarSimbolo(delegua_1.default.DECREMENTAR);
198
- this.avancar();
199
- }
200
- else {
201
- this.adicionarSimbolo(delegua_1.default.SUBTRACAO);
202
- }
203
- break;
204
- case '+':
205
- this.inicioSimbolo = this.atual;
206
- this.avancar();
207
- if (this.simboloAtual() === '=') {
208
- this.adicionarSimbolo(delegua_1.default.MAIS_IGUAL);
209
- this.avancar();
210
- }
211
- else if (this.simboloAtual() === '+') {
212
- this.adicionarSimbolo(delegua_1.default.INCREMENTAR);
213
- this.avancar();
214
- }
215
- else {
216
- this.adicionarSimbolo(delegua_1.default.ADICAO);
217
- }
218
- break;
219
- case ':':
220
- this.adicionarSimbolo(delegua_1.default.DOIS_PONTOS);
221
- this.avancar();
222
- break;
223
- case '%':
224
- this.inicioSimbolo = this.atual;
225
- this.avancar();
226
- switch (this.simboloAtual()) {
227
- case '=':
228
- this.avancar();
229
- this.adicionarSimbolo(delegua_1.default.MODULO_IGUAL);
230
- break;
231
- default:
232
- this.adicionarSimbolo(delegua_1.default.MODULO);
233
- break;
234
- }
235
- break;
236
- case '*':
237
- this.inicioSimbolo = this.atual;
238
- this.avancar();
239
- switch (this.simboloAtual()) {
240
- case '*':
241
- this.avancar();
242
- this.adicionarSimbolo(delegua_1.default.EXPONENCIACAO);
243
- break;
244
- case '=':
245
- this.avancar();
246
- this.adicionarSimbolo(delegua_1.default.MULTIPLICACAO_IGUAL);
247
- break;
248
- default:
249
- this.adicionarSimbolo(delegua_1.default.MULTIPLICACAO);
250
- break;
251
- }
252
- break;
253
- case '!':
254
- this.avancar();
255
- if (this.simboloAtual() === '=') {
256
- this.adicionarSimbolo(delegua_1.default.DIFERENTE);
257
- this.avancar();
258
- }
259
- else {
260
- this.adicionarSimbolo(delegua_1.default.NEGACAO);
261
- }
262
- break;
263
- case '=':
264
- this.avancar();
265
- if (this.simboloAtual() === '=') {
266
- this.adicionarSimbolo(delegua_1.default.IGUAL_IGUAL);
267
- this.avancar();
268
- }
269
- else {
270
- this.adicionarSimbolo(delegua_1.default.IGUAL);
271
- }
272
- break;
273
- case '&':
274
- this.adicionarSimbolo(delegua_1.default.BIT_AND);
275
- this.avancar();
276
- break;
277
- case '~':
278
- this.adicionarSimbolo(delegua_1.default.BIT_NOT);
279
- this.avancar();
280
- break;
281
- case '|':
282
- this.adicionarSimbolo(delegua_1.default.BIT_OR);
283
- this.avancar();
284
- break;
285
- case '^':
286
- this.adicionarSimbolo(delegua_1.default.BIT_XOR);
287
- this.avancar();
288
- break;
289
- case '<':
290
- this.avancar();
291
- if (this.simboloAtual() === '=') {
292
- this.adicionarSimbolo(delegua_1.default.MENOR_IGUAL);
293
- this.avancar();
294
- }
295
- else if (this.simboloAtual() === '<') {
296
- this.adicionarSimbolo(delegua_1.default.MENOR_MENOR);
297
- this.avancar();
298
- }
299
- else {
300
- this.adicionarSimbolo(delegua_1.default.MENOR);
301
- }
302
- break;
303
- case '>':
304
- this.avancar();
305
- if (this.simboloAtual() === '=') {
306
- this.adicionarSimbolo(delegua_1.default.MAIOR_IGUAL);
307
- this.avancar();
308
- }
309
- else if (this.simboloAtual() === '>') {
310
- this.adicionarSimbolo(delegua_1.default.MAIOR_MAIOR);
311
- this.avancar();
312
- }
313
- else {
314
- this.adicionarSimbolo(delegua_1.default.MAIOR);
315
- }
316
- break;
317
- case '/':
318
- this.avancar();
319
- switch (this.simboloAtual()) {
320
- case '/':
321
- this.avancarParaProximaLinha();
322
- break;
323
- case '*':
324
- this.encontrarFimComentarioAsterisco();
325
- break;
326
- case '=':
327
- this.adicionarSimbolo(delegua_1.default.DIVISAO_IGUAL);
328
- this.avancar();
329
- break;
330
- default:
331
- this.adicionarSimbolo(delegua_1.default.DIVISAO);
332
- break;
333
- }
334
- break;
335
- case '\\':
336
- this.inicioSimbolo = this.atual;
337
- this.avancar();
338
- switch (this.simboloAtual()) {
339
- case '=':
340
- this.adicionarSimbolo(delegua_1.default.DIVISAO_INTEIRA_IGUAL);
341
- this.avancar();
342
- break;
343
- default:
344
- this.adicionarSimbolo(delegua_1.default.DIVISAO_INTEIRA);
345
- break;
346
- }
347
- break;
348
- // Esta sessão ignora espaços em branco na tokenização.
349
- // Ponto-e-vírgula é opcional em Delégua, então pode apenas ser ignorado.
350
- case ' ':
351
- case '\0':
352
- case '\r':
353
- case '\t':
354
- case ';':
355
- this.avancar();
356
- break;
357
- case '"':
358
- this.avancar();
359
- this.analisarTexto('"');
360
- this.avancar();
361
- break;
362
- case "'":
363
- this.avancar();
364
- this.analisarTexto("'");
365
- this.avancar();
366
- break;
367
- default:
368
- if (this.eDigito(caractere))
369
- this.analisarNumero();
370
- else if (this.eAlfabeto(caractere))
371
- this.identificarPalavraChave();
372
- else {
373
- this.erros.push({
374
- linha: this.linha + 1,
375
- caractere: caractere,
376
- mensagem: 'Caractere inesperado.',
377
- });
378
- this.avancar();
379
- }
380
- }
381
- }
382
- mapear(codigo, hashArquivo) {
383
- const inicioMapeamento = (0, browser_process_hrtime_1.default)();
384
- this.erros = [];
385
- this.simbolos = [];
386
- this.inicioSimbolo = 0;
387
- this.atual = 0;
388
- this.linha = 0;
389
- this.codigo = codigo || [''];
390
- this.hashArquivo = hashArquivo;
391
- for (let iterador = 0; iterador < this.codigo.length; iterador++) {
392
- this.codigo[iterador] += '\0';
393
- }
394
- while (!this.eFinalDoCodigo()) {
395
- this.inicioSimbolo = this.atual;
396
- this.analisarToken();
397
- }
398
- if (this.performance) {
399
- const deltaMapeamento = (0, browser_process_hrtime_1.default)(inicioMapeamento);
400
- console.log(`[Lexador] Tempo para mapeamento: ${deltaMapeamento[0] * 1e9 + deltaMapeamento[1]}ns`);
401
- }
402
- return {
403
- simbolos: this.simbolos,
404
- erros: this.erros,
405
- };
406
- }
407
- }
408
- exports.Lexador = Lexador;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Lexador = void 0;
7
+ const browser_process_hrtime_1 = __importDefault(require("browser-process-hrtime"));
8
+ const simbolo_1 = require("./simbolo");
9
+ const palavras_reservadas_1 = __importDefault(require("./palavras-reservadas"));
10
+ const delegua_1 = __importDefault(require("../tipos-de-simbolos/delegua"));
11
+ /**
12
+ * O Lexador é responsável por transformar o código em uma coleção de tokens de linguagem.
13
+ * Cada token de linguagem é representado por um tipo, um lexema e informações da linha de código em que foi expresso.
14
+ * Também é responsável por mapear as palavras reservadas da linguagem, que não podem ser usadas por outras
15
+ * estruturas, tais como nomes de variáveis, funções, literais, classes e assim por diante.
16
+ */
17
+ class Lexador {
18
+ constructor(performance = false) {
19
+ this.performance = performance;
20
+ this.simbolos = [];
21
+ this.erros = [];
22
+ this.hashArquivo = -1;
23
+ this.inicioSimbolo = 0;
24
+ this.atual = 0;
25
+ this.linha = 0;
26
+ }
27
+ eDigito(caractere) {
28
+ return caractere >= '0' && caractere <= '9';
29
+ }
30
+ eAlfabeto(caractere) {
31
+ const acentuacoes = [
32
+ 'á',
33
+ 'Á',
34
+ 'ã',
35
+ 'Ã',
36
+ 'â',
37
+ 'Â',
38
+ 'à',
39
+ 'À',
40
+ 'é',
41
+ 'É',
42
+ 'ê',
43
+ 'Ê',
44
+ 'í',
45
+ 'Í',
46
+ 'ó',
47
+ 'Ó',
48
+ 'õ',
49
+ 'Õ',
50
+ 'ô',
51
+ 'Ô',
52
+ 'ú',
53
+ 'Ú',
54
+ 'ç',
55
+ 'Ç',
56
+ '_',
57
+ ];
58
+ return ((caractere >= 'a' && caractere <= 'z') ||
59
+ (caractere >= 'A' && caractere <= 'Z') ||
60
+ acentuacoes.includes(caractere));
61
+ }
62
+ eAlfabetoOuDigito(caractere) {
63
+ return this.eDigito(caractere) || this.eAlfabeto(caractere);
64
+ }
65
+ eFinalDaLinha() {
66
+ if (this.codigo.length === this.linha) {
67
+ return true;
68
+ }
69
+ return this.atual >= this.codigo[this.linha].length;
70
+ }
71
+ /**
72
+ * Indica se o código está na última linha.
73
+ * @returns Verdadeiro se contador de linhas está na última linha.
74
+ * Falso caso contrário.
75
+ */
76
+ eUltimaLinha() {
77
+ return this.linha >= this.codigo.length - 1;
78
+ }
79
+ eFinalDoCodigo() {
80
+ return this.eUltimaLinha() && this.codigo[this.codigo.length - 1].length <= this.atual;
81
+ }
82
+ avancar() {
83
+ this.atual += 1;
84
+ if (this.eFinalDaLinha() && !this.eUltimaLinha()) {
85
+ this.linha++;
86
+ this.atual = 0;
87
+ }
88
+ }
89
+ adicionarSimbolo(tipo, literal = null) {
90
+ const texto = this.codigo[this.linha].substring(this.inicioSimbolo, this.atual);
91
+ this.simbolos.push(new simbolo_1.Simbolo(tipo, literal || texto, literal, this.linha + 1, this.hashArquivo));
92
+ }
93
+ simboloAtual() {
94
+ if (this.eFinalDaLinha())
95
+ return '\0';
96
+ return this.codigo[this.linha].charAt(this.atual);
97
+ }
98
+ avancarParaProximaLinha() {
99
+ this.linha++;
100
+ this.atual = 0;
101
+ }
102
+ proximoSimbolo() {
103
+ return this.codigo[this.linha].charAt(this.atual + 1);
104
+ }
105
+ simboloAnterior() {
106
+ return this.codigo[this.linha].charAt(this.atual - 1);
107
+ }
108
+ analisarTexto(delimitador = '"') {
109
+ while (this.simboloAtual() !== delimitador && !this.eFinalDoCodigo()) {
110
+ this.avancar();
111
+ }
112
+ if (this.eFinalDoCodigo()) {
113
+ this.erros.push({
114
+ linha: this.linha + 1,
115
+ caractere: this.simboloAnterior(),
116
+ mensagem: 'Texto não finalizado.',
117
+ });
118
+ return;
119
+ }
120
+ const valor = this.codigo[this.linha].substring(this.inicioSimbolo + 1, this.atual);
121
+ this.adicionarSimbolo(delegua_1.default.TEXTO, valor);
122
+ }
123
+ analisarNumero() {
124
+ while (this.eDigito(this.simboloAtual())) {
125
+ this.avancar();
126
+ }
127
+ if (this.simboloAtual() == '.' && this.eDigito(this.proximoSimbolo())) {
128
+ this.avancar();
129
+ while (this.eDigito(this.simboloAtual())) {
130
+ this.avancar();
131
+ }
132
+ }
133
+ const numeroCompleto = this.codigo[this.linha].substring(this.inicioSimbolo, this.atual);
134
+ this.adicionarSimbolo(delegua_1.default.NUMERO, parseFloat(numeroCompleto));
135
+ }
136
+ identificarPalavraChave() {
137
+ while (this.eAlfabetoOuDigito(this.simboloAtual())) {
138
+ this.avancar();
139
+ }
140
+ const codigo = this.codigo[this.linha].substring(this.inicioSimbolo, this.atual);
141
+ const tipo = codigo in palavras_reservadas_1.default ? palavras_reservadas_1.default[codigo] : delegua_1.default.IDENTIFICADOR;
142
+ this.adicionarSimbolo(tipo);
143
+ }
144
+ encontrarFimComentarioAsterisco() {
145
+ while (!this.eFinalDoCodigo()) {
146
+ this.avancar();
147
+ if (this.simboloAtual() === '*' && this.proximoSimbolo() === '/') {
148
+ this.avancar();
149
+ this.avancar();
150
+ break;
151
+ }
152
+ }
153
+ }
154
+ analisarToken() {
155
+ const caractere = this.simboloAtual();
156
+ switch (caractere) {
157
+ case '[':
158
+ this.adicionarSimbolo(delegua_1.default.COLCHETE_ESQUERDO);
159
+ this.avancar();
160
+ break;
161
+ case ']':
162
+ this.adicionarSimbolo(delegua_1.default.COLCHETE_DIREITO);
163
+ this.avancar();
164
+ break;
165
+ case '(':
166
+ this.adicionarSimbolo(delegua_1.default.PARENTESE_ESQUERDO);
167
+ this.avancar();
168
+ break;
169
+ case ')':
170
+ this.adicionarSimbolo(delegua_1.default.PARENTESE_DIREITO);
171
+ this.avancar();
172
+ break;
173
+ case '{':
174
+ this.adicionarSimbolo(delegua_1.default.CHAVE_ESQUERDA);
175
+ this.avancar();
176
+ break;
177
+ case '}':
178
+ this.adicionarSimbolo(delegua_1.default.CHAVE_DIREITA);
179
+ this.avancar();
180
+ break;
181
+ case ',':
182
+ this.adicionarSimbolo(delegua_1.default.VIRGULA);
183
+ this.avancar();
184
+ break;
185
+ case '.':
186
+ this.adicionarSimbolo(delegua_1.default.PONTO);
187
+ this.avancar();
188
+ break;
189
+ case '-':
190
+ this.inicioSimbolo = this.atual;
191
+ this.avancar();
192
+ if (this.simboloAtual() === '=') {
193
+ this.adicionarSimbolo(delegua_1.default.MENOS_IGUAL);
194
+ this.avancar();
195
+ }
196
+ else if (this.simboloAtual() === '-') {
197
+ this.adicionarSimbolo(delegua_1.default.DECREMENTAR);
198
+ this.avancar();
199
+ }
200
+ else {
201
+ this.adicionarSimbolo(delegua_1.default.SUBTRACAO);
202
+ }
203
+ break;
204
+ case '+':
205
+ this.inicioSimbolo = this.atual;
206
+ this.avancar();
207
+ if (this.simboloAtual() === '=') {
208
+ this.adicionarSimbolo(delegua_1.default.MAIS_IGUAL);
209
+ this.avancar();
210
+ }
211
+ else if (this.simboloAtual() === '+') {
212
+ this.adicionarSimbolo(delegua_1.default.INCREMENTAR);
213
+ this.avancar();
214
+ }
215
+ else {
216
+ this.adicionarSimbolo(delegua_1.default.ADICAO);
217
+ }
218
+ break;
219
+ case ':':
220
+ this.adicionarSimbolo(delegua_1.default.DOIS_PONTOS);
221
+ this.avancar();
222
+ break;
223
+ case '%':
224
+ this.inicioSimbolo = this.atual;
225
+ this.avancar();
226
+ switch (this.simboloAtual()) {
227
+ case '=':
228
+ this.avancar();
229
+ this.adicionarSimbolo(delegua_1.default.MODULO_IGUAL);
230
+ break;
231
+ default:
232
+ this.adicionarSimbolo(delegua_1.default.MODULO);
233
+ break;
234
+ }
235
+ break;
236
+ case '*':
237
+ this.inicioSimbolo = this.atual;
238
+ this.avancar();
239
+ switch (this.simboloAtual()) {
240
+ case '*':
241
+ this.avancar();
242
+ this.adicionarSimbolo(delegua_1.default.EXPONENCIACAO);
243
+ break;
244
+ case '=':
245
+ this.avancar();
246
+ this.adicionarSimbolo(delegua_1.default.MULTIPLICACAO_IGUAL);
247
+ break;
248
+ default:
249
+ this.adicionarSimbolo(delegua_1.default.MULTIPLICACAO);
250
+ break;
251
+ }
252
+ break;
253
+ case '!':
254
+ this.avancar();
255
+ if (this.simboloAtual() === '=') {
256
+ this.adicionarSimbolo(delegua_1.default.DIFERENTE);
257
+ this.avancar();
258
+ }
259
+ else {
260
+ this.adicionarSimbolo(delegua_1.default.NEGACAO);
261
+ }
262
+ break;
263
+ case '=':
264
+ this.avancar();
265
+ if (this.simboloAtual() === '=') {
266
+ this.adicionarSimbolo(delegua_1.default.IGUAL_IGUAL);
267
+ this.avancar();
268
+ }
269
+ else {
270
+ this.adicionarSimbolo(delegua_1.default.IGUAL);
271
+ }
272
+ break;
273
+ case '&':
274
+ this.adicionarSimbolo(delegua_1.default.BIT_AND);
275
+ this.avancar();
276
+ break;
277
+ case '~':
278
+ this.adicionarSimbolo(delegua_1.default.BIT_NOT);
279
+ this.avancar();
280
+ break;
281
+ case '|':
282
+ this.adicionarSimbolo(delegua_1.default.BIT_OR);
283
+ this.avancar();
284
+ break;
285
+ case '^':
286
+ this.adicionarSimbolo(delegua_1.default.BIT_XOR);
287
+ this.avancar();
288
+ break;
289
+ case '<':
290
+ this.avancar();
291
+ if (this.simboloAtual() === '=') {
292
+ this.adicionarSimbolo(delegua_1.default.MENOR_IGUAL);
293
+ this.avancar();
294
+ }
295
+ else if (this.simboloAtual() === '<') {
296
+ this.adicionarSimbolo(delegua_1.default.MENOR_MENOR);
297
+ this.avancar();
298
+ }
299
+ else {
300
+ this.adicionarSimbolo(delegua_1.default.MENOR);
301
+ }
302
+ break;
303
+ case '>':
304
+ this.avancar();
305
+ if (this.simboloAtual() === '=') {
306
+ this.adicionarSimbolo(delegua_1.default.MAIOR_IGUAL);
307
+ this.avancar();
308
+ }
309
+ else if (this.simboloAtual() === '>') {
310
+ this.adicionarSimbolo(delegua_1.default.MAIOR_MAIOR);
311
+ this.avancar();
312
+ }
313
+ else {
314
+ this.adicionarSimbolo(delegua_1.default.MAIOR);
315
+ }
316
+ break;
317
+ case '/':
318
+ this.avancar();
319
+ switch (this.simboloAtual()) {
320
+ case '/':
321
+ this.avancarParaProximaLinha();
322
+ break;
323
+ case '*':
324
+ this.encontrarFimComentarioAsterisco();
325
+ break;
326
+ case '=':
327
+ this.adicionarSimbolo(delegua_1.default.DIVISAO_IGUAL);
328
+ this.avancar();
329
+ break;
330
+ default:
331
+ this.adicionarSimbolo(delegua_1.default.DIVISAO);
332
+ break;
333
+ }
334
+ break;
335
+ case '\\':
336
+ this.inicioSimbolo = this.atual;
337
+ this.avancar();
338
+ switch (this.simboloAtual()) {
339
+ case '=':
340
+ this.adicionarSimbolo(delegua_1.default.DIVISAO_INTEIRA_IGUAL);
341
+ this.avancar();
342
+ break;
343
+ default:
344
+ this.adicionarSimbolo(delegua_1.default.DIVISAO_INTEIRA);
345
+ break;
346
+ }
347
+ break;
348
+ // Esta sessão ignora espaços em branco na tokenização.
349
+ case ' ':
350
+ case '\0':
351
+ case '\r':
352
+ case '\t':
353
+ this.avancar();
354
+ break;
355
+ // Ponto-e-vírgula é opcional em Delégua, mas em alguns casos pode ser
356
+ // necessário. Por exemplo, declaração de `para` sem inicializador.
357
+ case ';':
358
+ this.adicionarSimbolo(delegua_1.default.PONTO_E_VIRGULA);
359
+ this.avancar();
360
+ break;
361
+ case '"':
362
+ this.avancar();
363
+ this.analisarTexto('"');
364
+ this.avancar();
365
+ break;
366
+ case "'":
367
+ this.avancar();
368
+ this.analisarTexto("'");
369
+ this.avancar();
370
+ break;
371
+ default:
372
+ if (this.eDigito(caractere))
373
+ this.analisarNumero();
374
+ else if (this.eAlfabeto(caractere))
375
+ this.identificarPalavraChave();
376
+ else {
377
+ this.erros.push({
378
+ linha: this.linha + 1,
379
+ caractere: caractere,
380
+ mensagem: 'Caractere inesperado.',
381
+ });
382
+ this.avancar();
383
+ }
384
+ }
385
+ }
386
+ mapear(codigo, hashArquivo) {
387
+ const inicioMapeamento = (0, browser_process_hrtime_1.default)();
388
+ this.erros = [];
389
+ this.simbolos = [];
390
+ this.inicioSimbolo = 0;
391
+ this.atual = 0;
392
+ this.linha = 0;
393
+ this.codigo = codigo || [''];
394
+ this.hashArquivo = hashArquivo;
395
+ for (let iterador = 0; iterador < this.codigo.length; iterador++) {
396
+ this.codigo[iterador] += '\0';
397
+ }
398
+ while (!this.eFinalDoCodigo()) {
399
+ this.inicioSimbolo = this.atual;
400
+ this.analisarToken();
401
+ }
402
+ if (this.performance) {
403
+ const deltaMapeamento = (0, browser_process_hrtime_1.default)(inicioMapeamento);
404
+ console.log(`[Lexador] Tempo para mapeamento: ${deltaMapeamento[0] * 1e9 + deltaMapeamento[1]}ns`);
405
+ }
406
+ return {
407
+ simbolos: this.simbolos,
408
+ erros: this.erros,
409
+ };
410
+ }
411
+ }
412
+ exports.Lexador = Lexador;
409
413
  //# sourceMappingURL=lexador.js.map