@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,399 +1,399 @@
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.LexadorEguaP = void 0;
7
- const browser_process_hrtime_1 = __importDefault(require("browser-process-hrtime"));
8
- const eguap_1 = __importDefault(require("../../tipos-de-simbolos/eguap"));
9
- const simbolo_1 = require("../simbolo");
10
- const palavras_reservadas_1 = __importDefault(require("../palavras-reservadas"));
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
- * Este lexador é diferente dos demais, porque também produz uma estrutura de dados de pragmas, que explica,
18
- * por exemplo quantos espaços há na frente de cada linha. Assim como a linguagem Python, os blocos de
19
- * escopo são definidos pelo número de espaços à frente do código.
20
- */
21
- class LexadorEguaP {
22
- constructor(performance = false) {
23
- this.performance = performance;
24
- this.simbolos = [];
25
- this.erros = [];
26
- this.pragmas = {};
27
- this.inicioSimbolo = 0;
28
- this.atual = 0;
29
- this.linha = 0;
30
- }
31
- eDigito(caractere) {
32
- return caractere >= '0' && caractere <= '9';
33
- }
34
- eAlfabeto(caractere) {
35
- const acentuacoes = [
36
- 'á',
37
- 'Á',
38
- 'ã',
39
- 'Ã',
40
- 'â',
41
- 'Â',
42
- 'à',
43
- 'À',
44
- 'é',
45
- 'É',
46
- 'ê',
47
- 'Ê',
48
- 'í',
49
- 'Í',
50
- 'ó',
51
- 'Ó',
52
- 'õ',
53
- 'Õ',
54
- 'ô',
55
- 'Ô',
56
- 'ú',
57
- 'Ú',
58
- 'ç',
59
- 'Ç',
60
- '_',
61
- ];
62
- return ((caractere >= 'a' && caractere <= 'z') ||
63
- (caractere >= 'A' && caractere <= 'Z') ||
64
- acentuacoes.includes(caractere));
65
- }
66
- eAlfabetoOuDigito(caractere) {
67
- return this.eDigito(caractere) || this.eAlfabeto(caractere);
68
- }
69
- /**
70
- * Indica se o código está na última linha.
71
- * @returns Verdadeiro se contador de linhas está na última linha.
72
- * Falso caso contrário.
73
- */
74
- eUltimaLinha() {
75
- return this.linha >= this.codigo.length - 1;
76
- }
77
- eFinalDaLinha() {
78
- return this.atual >= this.codigo[this.linha].length;
79
- }
80
- eFinalDoCodigo() {
81
- if (this.linha > this.codigo.length - 1)
82
- return true;
83
- return this.linha == this.codigo.length - 1 && this.codigo[this.codigo.length - 1].length <= this.atual;
84
- }
85
- avancar() {
86
- this.atual += 1;
87
- if (this.eFinalDaLinha() && !this.eUltimaLinha()) {
88
- this.linha++;
89
- this.atual = 0;
90
- // this.logicaEmLinhaIniciada = false;
91
- this.analisarIndentacao();
92
- }
93
- }
94
- adicionarSimbolo(tipo, literal = null) {
95
- const texto = this.codigo[this.linha].substring(this.inicioSimbolo, this.atual);
96
- this.simbolos.push(new simbolo_1.Simbolo(tipo, texto, literal, this.linha + 1, this.hashArquivo));
97
- }
98
- simboloAtual() {
99
- if (this.eFinalDaLinha())
100
- return '\0';
101
- if (this.linha > this.codigo.length - 1)
102
- return '\0';
103
- return this.codigo[this.linha].charAt(this.atual);
104
- }
105
- proximoSimbolo() {
106
- if (this.atual + 1 >= this.codigo[this.linha].length)
107
- return '\0';
108
- return this.codigo[this.linha].charAt(this.atual + 1);
109
- }
110
- simboloAnterior() {
111
- return this.codigo[this.linha].charAt(this.atual - 1);
112
- }
113
- analisarTexto(delimitador = '"') {
114
- const linhaPrimeiroCaracter = this.linha;
115
- while (this.simboloAtual() !== delimitador && !this.eFinalDoCodigo()) {
116
- this.avancar();
117
- }
118
- if (this.eFinalDoCodigo()) {
119
- this.erros.push({
120
- linha: this.linha + 1,
121
- caractere: this.simboloAnterior(),
122
- mensagem: 'Texto não finalizado.',
123
- });
124
- return;
125
- }
126
- const textoCompleto = this.codigo[this.linha].substring(this.inicioSimbolo + 1, this.atual);
127
- this.simbolos.push(new simbolo_1.Simbolo(eguap_1.default.TEXTO, textoCompleto, textoCompleto, linhaPrimeiroCaracter + 1, this.hashArquivo));
128
- }
129
- analisarNumero() {
130
- const linhaPrimeiroDigito = this.linha;
131
- while (this.eDigito(this.simboloAtual()) && this.linha === linhaPrimeiroDigito) {
132
- this.avancar();
133
- }
134
- if (this.simboloAtual() == '.' && this.eDigito(this.proximoSimbolo())) {
135
- this.avancar();
136
- while (this.eDigito(this.simboloAtual())) {
137
- this.avancar();
138
- }
139
- }
140
- let numeroCompleto;
141
- if (linhaPrimeiroDigito < this.linha) {
142
- const linhaNumero = this.codigo[linhaPrimeiroDigito];
143
- numeroCompleto = linhaNumero.substring(this.inicioSimbolo, linhaNumero.length);
144
- }
145
- else {
146
- numeroCompleto = this.codigo[this.linha].substring(this.inicioSimbolo, this.atual);
147
- }
148
- this.simbolos.push(new simbolo_1.Simbolo(eguap_1.default.NUMERO, numeroCompleto, parseFloat(numeroCompleto), linhaPrimeiroDigito + 1, this.hashArquivo));
149
- }
150
- identificarPalavraChave() {
151
- const linhaPrimeiroCaracter = this.linha;
152
- while (this.eAlfabetoOuDigito(this.simboloAtual()) && this.linha === linhaPrimeiroCaracter) {
153
- this.avancar();
154
- }
155
- let textoPalavraChave;
156
- if (linhaPrimeiroCaracter < this.linha) {
157
- const linhaPalavraChave = this.codigo[linhaPrimeiroCaracter];
158
- textoPalavraChave = linhaPalavraChave.substring(this.inicioSimbolo, linhaPalavraChave.length);
159
- }
160
- else {
161
- textoPalavraChave = this.codigo[this.linha].substring(this.inicioSimbolo, this.atual);
162
- }
163
- const tipo = textoPalavraChave in palavras_reservadas_1.default
164
- ? palavras_reservadas_1.default[textoPalavraChave]
165
- : eguap_1.default.IDENTIFICADOR;
166
- this.simbolos.push(new simbolo_1.Simbolo(tipo, textoPalavraChave, null, linhaPrimeiroCaracter + 1, this.hashArquivo));
167
- }
168
- analisarIndentacao() {
169
- let espacos = 0;
170
- while (['\t', ' '].includes(this.simboloAtual()) && !this.eFinalDoCodigo()) {
171
- espacos++;
172
- this.avancar();
173
- }
174
- this.pragmas[this.linha + 1] = {
175
- linha: this.linha + 1,
176
- espacosIndentacao: espacos,
177
- };
178
- }
179
- avancarParaProximaLinha() {
180
- this.linha++;
181
- this.atual = 0;
182
- this.analisarIndentacao();
183
- }
184
- analisarToken() {
185
- const caractere = this.simboloAtual();
186
- switch (caractere) {
187
- case ' ':
188
- case '\t':
189
- this.avancar();
190
- break;
191
- case '\r':
192
- case '\n':
193
- case '\0':
194
- case ';':
195
- this.avancar();
196
- break;
197
- case '=':
198
- this.avancar();
199
- if (this.simboloAtual() === '=') {
200
- this.adicionarSimbolo(eguap_1.default.IGUAL_IGUAL);
201
- this.avancar();
202
- }
203
- else {
204
- this.adicionarSimbolo(eguap_1.default.IGUAL);
205
- }
206
- break;
207
- case '#':
208
- this.avancarParaProximaLinha();
209
- break;
210
- case '[':
211
- this.adicionarSimbolo(eguap_1.default.COLCHETE_ESQUERDO);
212
- this.avancar();
213
- break;
214
- case ']':
215
- this.adicionarSimbolo(eguap_1.default.COLCHETE_DIREITO);
216
- this.avancar();
217
- break;
218
- case '(':
219
- this.adicionarSimbolo(eguap_1.default.PARENTESE_ESQUERDO);
220
- this.avancar();
221
- break;
222
- case ')':
223
- this.adicionarSimbolo(eguap_1.default.PARENTESE_DIREITO);
224
- this.avancar();
225
- break;
226
- case '{':
227
- this.adicionarSimbolo(eguap_1.default.CHAVE_ESQUERDA);
228
- this.avancar();
229
- break;
230
- case '}':
231
- this.adicionarSimbolo(eguap_1.default.CHAVE_DIREITA);
232
- this.avancar();
233
- break;
234
- case ',':
235
- this.adicionarSimbolo(eguap_1.default.VIRGULA);
236
- this.avancar();
237
- break;
238
- case '.':
239
- this.adicionarSimbolo(eguap_1.default.PONTO);
240
- this.avancar();
241
- break;
242
- case '-':
243
- this.avancar();
244
- if (this.simboloAtual() === '=') {
245
- this.adicionarSimbolo(eguap_1.default.MENOS_IGUAL);
246
- this.avancar();
247
- }
248
- else {
249
- this.adicionarSimbolo(eguap_1.default.SUBTRACAO);
250
- }
251
- break;
252
- case '+':
253
- this.avancar();
254
- if (this.simboloAtual() === '=') {
255
- this.adicionarSimbolo(eguap_1.default.MAIS_IGUAL);
256
- this.avancar();
257
- }
258
- else {
259
- this.adicionarSimbolo(eguap_1.default.ADICAO);
260
- }
261
- break;
262
- case '/':
263
- this.avancar();
264
- switch (this.simboloAtual()) {
265
- case '/':
266
- this.adicionarSimbolo(eguap_1.default.DIVISAO_INTEIRA);
267
- this.avancar();
268
- break;
269
- default:
270
- this.adicionarSimbolo(eguap_1.default.DIVISAO);
271
- break;
272
- }
273
- break;
274
- case ':':
275
- this.adicionarSimbolo(eguap_1.default.DOIS_PONTOS);
276
- this.avancar();
277
- break;
278
- case '%':
279
- this.adicionarSimbolo(eguap_1.default.MODULO);
280
- this.avancar();
281
- break;
282
- case '*':
283
- this.inicioSimbolo = this.atual;
284
- this.avancar();
285
- if (this.simboloAtual() === '*') {
286
- this.avancar();
287
- this.adicionarSimbolo(eguap_1.default.EXPONENCIACAO);
288
- }
289
- else {
290
- this.adicionarSimbolo(eguap_1.default.MULTIPLICACAO);
291
- }
292
- break;
293
- case '!':
294
- this.avancar();
295
- if (this.simboloAtual() === '=') {
296
- this.adicionarSimbolo(eguap_1.default.DIFERENTE);
297
- this.avancar();
298
- }
299
- else {
300
- this.adicionarSimbolo(eguap_1.default.NEGACAO);
301
- }
302
- case '&':
303
- this.adicionarSimbolo(eguap_1.default.BIT_AND);
304
- this.avancar();
305
- break;
306
- case '~':
307
- this.adicionarSimbolo(eguap_1.default.BIT_NOT);
308
- this.avancar();
309
- break;
310
- case '|':
311
- this.adicionarSimbolo(eguap_1.default.BIT_OR);
312
- this.avancar();
313
- break;
314
- case '^':
315
- this.adicionarSimbolo(eguap_1.default.BIT_XOR);
316
- this.avancar();
317
- break;
318
- case '<':
319
- this.avancar();
320
- if (this.simboloAtual() === '=') {
321
- this.adicionarSimbolo(eguap_1.default.MENOR_IGUAL);
322
- this.avancar();
323
- }
324
- else if (this.simboloAtual() === '<') {
325
- this.adicionarSimbolo(eguap_1.default.MENOR_MENOR);
326
- this.avancar();
327
- }
328
- else {
329
- this.adicionarSimbolo(eguap_1.default.MENOR);
330
- }
331
- break;
332
- case '>':
333
- this.avancar();
334
- if (this.simboloAtual() === '=') {
335
- this.adicionarSimbolo(eguap_1.default.MAIOR_IGUAL);
336
- this.avancar();
337
- }
338
- else if (this.simboloAtual() === '>') {
339
- this.adicionarSimbolo(eguap_1.default.MAIOR_MAIOR);
340
- this.avancar();
341
- }
342
- else {
343
- this.adicionarSimbolo(eguap_1.default.MAIOR);
344
- }
345
- break;
346
- case '"':
347
- this.avancar();
348
- this.analisarTexto('"');
349
- this.avancar();
350
- break;
351
- case "'":
352
- this.avancar();
353
- this.analisarTexto("'");
354
- this.avancar();
355
- break;
356
- default:
357
- if (this.eDigito(caractere))
358
- this.analisarNumero();
359
- else if (this.eAlfabeto(caractere))
360
- this.identificarPalavraChave();
361
- else {
362
- this.erros.push({
363
- linha: this.linha + 1,
364
- caractere: caractere,
365
- mensagem: 'Caractere inesperado.',
366
- });
367
- this.avancar();
368
- }
369
- }
370
- }
371
- mapear(codigo, hashArquivo) {
372
- const inicioMapeamento = (0, browser_process_hrtime_1.default)();
373
- this.simbolos = [];
374
- this.erros = [];
375
- this.pragmas = {};
376
- this.inicioSimbolo = 0;
377
- this.atual = 0;
378
- this.linha = 0;
379
- this.codigo = codigo || [''];
380
- this.hashArquivo = hashArquivo;
381
- // Análise de indentação da primeira linha.
382
- this.analisarIndentacao();
383
- while (!this.eFinalDoCodigo()) {
384
- this.inicioSimbolo = this.atual;
385
- this.analisarToken();
386
- }
387
- if (this.performance) {
388
- const deltaMapeamento = (0, browser_process_hrtime_1.default)(inicioMapeamento);
389
- console.log(`[Lexador] Tempo para mapeamento: ${deltaMapeamento[0] * 1e9 + deltaMapeamento[1]}ns`);
390
- }
391
- return {
392
- simbolos: this.simbolos,
393
- erros: this.erros,
394
- pragmas: this.pragmas,
395
- };
396
- }
397
- }
398
- exports.LexadorEguaP = LexadorEguaP;
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.LexadorEguaP = void 0;
7
+ const browser_process_hrtime_1 = __importDefault(require("browser-process-hrtime"));
8
+ const eguap_1 = __importDefault(require("../../tipos-de-simbolos/eguap"));
9
+ const simbolo_1 = require("../simbolo");
10
+ const palavras_reservadas_1 = __importDefault(require("../palavras-reservadas"));
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
+ * Este lexador é diferente dos demais, porque também produz uma estrutura de dados de pragmas, que explica,
18
+ * por exemplo quantos espaços há na frente de cada linha. Assim como a linguagem Python, os blocos de
19
+ * escopo são definidos pelo número de espaços à frente do código.
20
+ */
21
+ class LexadorEguaP {
22
+ constructor(performance = false) {
23
+ this.performance = performance;
24
+ this.simbolos = [];
25
+ this.erros = [];
26
+ this.pragmas = {};
27
+ this.inicioSimbolo = 0;
28
+ this.atual = 0;
29
+ this.linha = 0;
30
+ }
31
+ eDigito(caractere) {
32
+ return caractere >= '0' && caractere <= '9';
33
+ }
34
+ eAlfabeto(caractere) {
35
+ const acentuacoes = [
36
+ 'á',
37
+ 'Á',
38
+ 'ã',
39
+ 'Ã',
40
+ 'â',
41
+ 'Â',
42
+ 'à',
43
+ 'À',
44
+ 'é',
45
+ 'É',
46
+ 'ê',
47
+ 'Ê',
48
+ 'í',
49
+ 'Í',
50
+ 'ó',
51
+ 'Ó',
52
+ 'õ',
53
+ 'Õ',
54
+ 'ô',
55
+ 'Ô',
56
+ 'ú',
57
+ 'Ú',
58
+ 'ç',
59
+ 'Ç',
60
+ '_',
61
+ ];
62
+ return ((caractere >= 'a' && caractere <= 'z') ||
63
+ (caractere >= 'A' && caractere <= 'Z') ||
64
+ acentuacoes.includes(caractere));
65
+ }
66
+ eAlfabetoOuDigito(caractere) {
67
+ return this.eDigito(caractere) || this.eAlfabeto(caractere);
68
+ }
69
+ /**
70
+ * Indica se o código está na última linha.
71
+ * @returns Verdadeiro se contador de linhas está na última linha.
72
+ * Falso caso contrário.
73
+ */
74
+ eUltimaLinha() {
75
+ return this.linha >= this.codigo.length - 1;
76
+ }
77
+ eFinalDaLinha() {
78
+ return this.atual >= this.codigo[this.linha].length;
79
+ }
80
+ eFinalDoCodigo() {
81
+ if (this.linha > this.codigo.length - 1)
82
+ return true;
83
+ return this.linha == this.codigo.length - 1 && this.codigo[this.codigo.length - 1].length <= this.atual;
84
+ }
85
+ avancar() {
86
+ this.atual += 1;
87
+ if (this.eFinalDaLinha() && !this.eUltimaLinha()) {
88
+ this.linha++;
89
+ this.atual = 0;
90
+ // this.logicaEmLinhaIniciada = false;
91
+ this.analisarIndentacao();
92
+ }
93
+ }
94
+ adicionarSimbolo(tipo, literal = null) {
95
+ const texto = this.codigo[this.linha].substring(this.inicioSimbolo, this.atual);
96
+ this.simbolos.push(new simbolo_1.Simbolo(tipo, texto, literal, this.linha + 1, this.hashArquivo));
97
+ }
98
+ simboloAtual() {
99
+ if (this.eFinalDaLinha())
100
+ return '\0';
101
+ if (this.linha > this.codigo.length - 1)
102
+ return '\0';
103
+ return this.codigo[this.linha].charAt(this.atual);
104
+ }
105
+ proximoSimbolo() {
106
+ if (this.atual + 1 >= this.codigo[this.linha].length)
107
+ return '\0';
108
+ return this.codigo[this.linha].charAt(this.atual + 1);
109
+ }
110
+ simboloAnterior() {
111
+ return this.codigo[this.linha].charAt(this.atual - 1);
112
+ }
113
+ analisarTexto(delimitador = '"') {
114
+ const linhaPrimeiroCaracter = this.linha;
115
+ while (this.simboloAtual() !== delimitador && !this.eFinalDoCodigo()) {
116
+ this.avancar();
117
+ }
118
+ if (this.eFinalDoCodigo()) {
119
+ this.erros.push({
120
+ linha: this.linha + 1,
121
+ caractere: this.simboloAnterior(),
122
+ mensagem: 'Texto não finalizado.',
123
+ });
124
+ return;
125
+ }
126
+ const textoCompleto = this.codigo[this.linha].substring(this.inicioSimbolo + 1, this.atual);
127
+ this.simbolos.push(new simbolo_1.Simbolo(eguap_1.default.TEXTO, textoCompleto, textoCompleto, linhaPrimeiroCaracter + 1, this.hashArquivo));
128
+ }
129
+ analisarNumero() {
130
+ const linhaPrimeiroDigito = this.linha;
131
+ while (this.eDigito(this.simboloAtual()) && this.linha === linhaPrimeiroDigito) {
132
+ this.avancar();
133
+ }
134
+ if (this.simboloAtual() == '.' && this.eDigito(this.proximoSimbolo())) {
135
+ this.avancar();
136
+ while (this.eDigito(this.simboloAtual())) {
137
+ this.avancar();
138
+ }
139
+ }
140
+ let numeroCompleto;
141
+ if (linhaPrimeiroDigito < this.linha) {
142
+ const linhaNumero = this.codigo[linhaPrimeiroDigito];
143
+ numeroCompleto = linhaNumero.substring(this.inicioSimbolo, linhaNumero.length);
144
+ }
145
+ else {
146
+ numeroCompleto = this.codigo[this.linha].substring(this.inicioSimbolo, this.atual);
147
+ }
148
+ this.simbolos.push(new simbolo_1.Simbolo(eguap_1.default.NUMERO, numeroCompleto, parseFloat(numeroCompleto), linhaPrimeiroDigito + 1, this.hashArquivo));
149
+ }
150
+ identificarPalavraChave() {
151
+ const linhaPrimeiroCaracter = this.linha;
152
+ while (this.eAlfabetoOuDigito(this.simboloAtual()) && this.linha === linhaPrimeiroCaracter) {
153
+ this.avancar();
154
+ }
155
+ let textoPalavraChave;
156
+ if (linhaPrimeiroCaracter < this.linha) {
157
+ const linhaPalavraChave = this.codigo[linhaPrimeiroCaracter];
158
+ textoPalavraChave = linhaPalavraChave.substring(this.inicioSimbolo, linhaPalavraChave.length);
159
+ }
160
+ else {
161
+ textoPalavraChave = this.codigo[this.linha].substring(this.inicioSimbolo, this.atual);
162
+ }
163
+ const tipo = textoPalavraChave in palavras_reservadas_1.default
164
+ ? palavras_reservadas_1.default[textoPalavraChave]
165
+ : eguap_1.default.IDENTIFICADOR;
166
+ this.simbolos.push(new simbolo_1.Simbolo(tipo, textoPalavraChave, null, linhaPrimeiroCaracter + 1, this.hashArquivo));
167
+ }
168
+ analisarIndentacao() {
169
+ let espacos = 0;
170
+ while (['\t', ' '].includes(this.simboloAtual()) && !this.eFinalDoCodigo()) {
171
+ espacos++;
172
+ this.avancar();
173
+ }
174
+ this.pragmas[this.linha + 1] = {
175
+ linha: this.linha + 1,
176
+ espacosIndentacao: espacos,
177
+ };
178
+ }
179
+ avancarParaProximaLinha() {
180
+ this.linha++;
181
+ this.atual = 0;
182
+ this.analisarIndentacao();
183
+ }
184
+ analisarToken() {
185
+ const caractere = this.simboloAtual();
186
+ switch (caractere) {
187
+ case ' ':
188
+ case '\t':
189
+ this.avancar();
190
+ break;
191
+ case '\r':
192
+ case '\n':
193
+ case '\0':
194
+ case ';':
195
+ this.avancar();
196
+ break;
197
+ case '=':
198
+ this.avancar();
199
+ if (this.simboloAtual() === '=') {
200
+ this.adicionarSimbolo(eguap_1.default.IGUAL_IGUAL);
201
+ this.avancar();
202
+ }
203
+ else {
204
+ this.adicionarSimbolo(eguap_1.default.IGUAL);
205
+ }
206
+ break;
207
+ case '#':
208
+ this.avancarParaProximaLinha();
209
+ break;
210
+ case '[':
211
+ this.adicionarSimbolo(eguap_1.default.COLCHETE_ESQUERDO);
212
+ this.avancar();
213
+ break;
214
+ case ']':
215
+ this.adicionarSimbolo(eguap_1.default.COLCHETE_DIREITO);
216
+ this.avancar();
217
+ break;
218
+ case '(':
219
+ this.adicionarSimbolo(eguap_1.default.PARENTESE_ESQUERDO);
220
+ this.avancar();
221
+ break;
222
+ case ')':
223
+ this.adicionarSimbolo(eguap_1.default.PARENTESE_DIREITO);
224
+ this.avancar();
225
+ break;
226
+ case '{':
227
+ this.adicionarSimbolo(eguap_1.default.CHAVE_ESQUERDA);
228
+ this.avancar();
229
+ break;
230
+ case '}':
231
+ this.adicionarSimbolo(eguap_1.default.CHAVE_DIREITA);
232
+ this.avancar();
233
+ break;
234
+ case ',':
235
+ this.adicionarSimbolo(eguap_1.default.VIRGULA);
236
+ this.avancar();
237
+ break;
238
+ case '.':
239
+ this.adicionarSimbolo(eguap_1.default.PONTO);
240
+ this.avancar();
241
+ break;
242
+ case '-':
243
+ this.avancar();
244
+ if (this.simboloAtual() === '=') {
245
+ this.adicionarSimbolo(eguap_1.default.MENOS_IGUAL);
246
+ this.avancar();
247
+ }
248
+ else {
249
+ this.adicionarSimbolo(eguap_1.default.SUBTRACAO);
250
+ }
251
+ break;
252
+ case '+':
253
+ this.avancar();
254
+ if (this.simboloAtual() === '=') {
255
+ this.adicionarSimbolo(eguap_1.default.MAIS_IGUAL);
256
+ this.avancar();
257
+ }
258
+ else {
259
+ this.adicionarSimbolo(eguap_1.default.ADICAO);
260
+ }
261
+ break;
262
+ case '/':
263
+ this.avancar();
264
+ switch (this.simboloAtual()) {
265
+ case '/':
266
+ this.adicionarSimbolo(eguap_1.default.DIVISAO_INTEIRA);
267
+ this.avancar();
268
+ break;
269
+ default:
270
+ this.adicionarSimbolo(eguap_1.default.DIVISAO);
271
+ break;
272
+ }
273
+ break;
274
+ case ':':
275
+ this.adicionarSimbolo(eguap_1.default.DOIS_PONTOS);
276
+ this.avancar();
277
+ break;
278
+ case '%':
279
+ this.adicionarSimbolo(eguap_1.default.MODULO);
280
+ this.avancar();
281
+ break;
282
+ case '*':
283
+ this.inicioSimbolo = this.atual;
284
+ this.avancar();
285
+ if (this.simboloAtual() === '*') {
286
+ this.avancar();
287
+ this.adicionarSimbolo(eguap_1.default.EXPONENCIACAO);
288
+ }
289
+ else {
290
+ this.adicionarSimbolo(eguap_1.default.MULTIPLICACAO);
291
+ }
292
+ break;
293
+ case '!':
294
+ this.avancar();
295
+ if (this.simboloAtual() === '=') {
296
+ this.adicionarSimbolo(eguap_1.default.DIFERENTE);
297
+ this.avancar();
298
+ }
299
+ else {
300
+ this.adicionarSimbolo(eguap_1.default.NEGACAO);
301
+ }
302
+ case '&':
303
+ this.adicionarSimbolo(eguap_1.default.BIT_AND);
304
+ this.avancar();
305
+ break;
306
+ case '~':
307
+ this.adicionarSimbolo(eguap_1.default.BIT_NOT);
308
+ this.avancar();
309
+ break;
310
+ case '|':
311
+ this.adicionarSimbolo(eguap_1.default.BIT_OR);
312
+ this.avancar();
313
+ break;
314
+ case '^':
315
+ this.adicionarSimbolo(eguap_1.default.BIT_XOR);
316
+ this.avancar();
317
+ break;
318
+ case '<':
319
+ this.avancar();
320
+ if (this.simboloAtual() === '=') {
321
+ this.adicionarSimbolo(eguap_1.default.MENOR_IGUAL);
322
+ this.avancar();
323
+ }
324
+ else if (this.simboloAtual() === '<') {
325
+ this.adicionarSimbolo(eguap_1.default.MENOR_MENOR);
326
+ this.avancar();
327
+ }
328
+ else {
329
+ this.adicionarSimbolo(eguap_1.default.MENOR);
330
+ }
331
+ break;
332
+ case '>':
333
+ this.avancar();
334
+ if (this.simboloAtual() === '=') {
335
+ this.adicionarSimbolo(eguap_1.default.MAIOR_IGUAL);
336
+ this.avancar();
337
+ }
338
+ else if (this.simboloAtual() === '>') {
339
+ this.adicionarSimbolo(eguap_1.default.MAIOR_MAIOR);
340
+ this.avancar();
341
+ }
342
+ else {
343
+ this.adicionarSimbolo(eguap_1.default.MAIOR);
344
+ }
345
+ break;
346
+ case '"':
347
+ this.avancar();
348
+ this.analisarTexto('"');
349
+ this.avancar();
350
+ break;
351
+ case "'":
352
+ this.avancar();
353
+ this.analisarTexto("'");
354
+ this.avancar();
355
+ break;
356
+ default:
357
+ if (this.eDigito(caractere))
358
+ this.analisarNumero();
359
+ else if (this.eAlfabeto(caractere))
360
+ this.identificarPalavraChave();
361
+ else {
362
+ this.erros.push({
363
+ linha: this.linha + 1,
364
+ caractere: caractere,
365
+ mensagem: 'Caractere inesperado.',
366
+ });
367
+ this.avancar();
368
+ }
369
+ }
370
+ }
371
+ mapear(codigo, hashArquivo) {
372
+ const inicioMapeamento = (0, browser_process_hrtime_1.default)();
373
+ this.simbolos = [];
374
+ this.erros = [];
375
+ this.pragmas = {};
376
+ this.inicioSimbolo = 0;
377
+ this.atual = 0;
378
+ this.linha = 0;
379
+ this.codigo = codigo || [''];
380
+ this.hashArquivo = hashArquivo;
381
+ // Análise de indentação da primeira linha.
382
+ this.analisarIndentacao();
383
+ while (!this.eFinalDoCodigo()) {
384
+ this.inicioSimbolo = this.atual;
385
+ this.analisarToken();
386
+ }
387
+ if (this.performance) {
388
+ const deltaMapeamento = (0, browser_process_hrtime_1.default)(inicioMapeamento);
389
+ console.log(`[Lexador] Tempo para mapeamento: ${deltaMapeamento[0] * 1e9 + deltaMapeamento[1]}ns`);
390
+ }
391
+ return {
392
+ simbolos: this.simbolos,
393
+ erros: this.erros,
394
+ pragmas: this.pragmas,
395
+ };
396
+ }
397
+ }
398
+ exports.LexadorEguaP = LexadorEguaP;
399
399
  //# sourceMappingURL=lexador-eguap.js.map