@designliquido/delegua 0.8.0 → 0.9.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. package/bin/package.json +10 -2
  2. package/fontes/avaliador-sintatico/avaliador-sintatico-base.d.ts +2 -1
  3. package/fontes/avaliador-sintatico/avaliador-sintatico-base.js +3 -0
  4. package/fontes/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
  5. package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +7 -5
  6. package/fontes/avaliador-sintatico/avaliador-sintatico.js +16 -1
  7. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  8. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.d.ts +5 -4
  9. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +3 -0
  10. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
  11. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.d.ts +10 -9
  12. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +12 -0
  13. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js.map +1 -1
  14. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.d.ts +2 -2
  15. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js +17 -11
  16. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js.map +1 -1
  17. package/fontes/avaliador-sintatico/erro-avaliador-sintatico.d.ts +1 -1
  18. package/fontes/avaliador-sintatico/retornos/index.d.ts +3 -0
  19. package/fontes/avaliador-sintatico/retornos/index.js +20 -0
  20. package/fontes/avaliador-sintatico/retornos/index.js.map +1 -0
  21. package/fontes/avaliador-sintatico/retornos/retorno-declaracao.d.ts +3 -0
  22. package/fontes/avaliador-sintatico/retornos/retorno-declaracao.js +3 -0
  23. package/fontes/avaliador-sintatico/retornos/retorno-declaracao.js.map +1 -0
  24. package/fontes/avaliador-sintatico/retornos/retorno-primario.d.ts +3 -0
  25. package/fontes/avaliador-sintatico/retornos/retorno-primario.js +3 -0
  26. package/fontes/avaliador-sintatico/retornos/retorno-primario.js.map +1 -0
  27. package/fontes/avaliador-sintatico/retornos/retorno-resolver-declaracao.d.ts +2 -0
  28. package/fontes/avaliador-sintatico/retornos/retorno-resolver-declaracao.js +3 -0
  29. package/fontes/avaliador-sintatico/retornos/retorno-resolver-declaracao.js.map +1 -0
  30. package/fontes/bibliotecas/biblioteca-global.d.ts +2 -2
  31. package/fontes/bibliotecas/biblioteca-global.js +363 -134
  32. package/fontes/bibliotecas/biblioteca-global.js.map +1 -1
  33. package/fontes/bibliotecas/importar-biblioteca.d.ts +1 -1
  34. package/fontes/bibliotecas/importar-biblioteca.js +13 -14
  35. package/fontes/bibliotecas/importar-biblioteca.js.map +1 -1
  36. package/fontes/bibliotecas/primitivas-texto.js +13 -7
  37. package/fontes/bibliotecas/primitivas-texto.js.map +1 -1
  38. package/fontes/bibliotecas/primitivas-vetor.js +25 -11
  39. package/fontes/bibliotecas/primitivas-vetor.js.map +1 -1
  40. package/fontes/construtos/acesso-indice-variavel.d.ts +3 -3
  41. package/fontes/construtos/acesso-indice-variavel.js +41 -1
  42. package/fontes/construtos/acesso-indice-variavel.js.map +1 -1
  43. package/fontes/construtos/acesso-metodo.d.ts +3 -3
  44. package/fontes/construtos/acesso-metodo.js +41 -1
  45. package/fontes/construtos/acesso-metodo.js.map +1 -1
  46. package/fontes/construtos/agrupamento.d.ts +3 -3
  47. package/fontes/construtos/agrupamento.js +41 -1
  48. package/fontes/construtos/agrupamento.js.map +1 -1
  49. package/fontes/construtos/atribuicao-sobrescrita.d.ts +3 -2
  50. package/fontes/construtos/atribuicao-sobrescrita.js +41 -1
  51. package/fontes/construtos/atribuicao-sobrescrita.js.map +1 -1
  52. package/fontes/construtos/atribuir.d.ts +3 -3
  53. package/fontes/construtos/atribuir.js +41 -1
  54. package/fontes/construtos/atribuir.js.map +1 -1
  55. package/fontes/construtos/binario.d.ts +3 -3
  56. package/fontes/construtos/binario.js +41 -1
  57. package/fontes/construtos/binario.js.map +1 -1
  58. package/fontes/construtos/chamada.d.ts +3 -3
  59. package/fontes/construtos/chamada.js +41 -1
  60. package/fontes/construtos/chamada.js.map +1 -1
  61. package/fontes/construtos/conjunto.d.ts +3 -2
  62. package/fontes/construtos/conjunto.js +41 -1
  63. package/fontes/construtos/conjunto.js.map +1 -1
  64. package/fontes/construtos/construto.d.ts +1 -1
  65. package/fontes/construtos/dicionario.d.ts +3 -2
  66. package/fontes/construtos/dicionario.js +41 -1
  67. package/fontes/construtos/dicionario.js.map +1 -1
  68. package/fontes/construtos/funcao.d.ts +3 -3
  69. package/fontes/construtos/funcao.js +41 -1
  70. package/fontes/construtos/funcao.js.map +1 -1
  71. package/fontes/construtos/index.d.ts +18 -18
  72. package/fontes/construtos/isto.d.ts +3 -2
  73. package/fontes/construtos/isto.js +41 -1
  74. package/fontes/construtos/isto.js.map +1 -1
  75. package/fontes/construtos/literal.d.ts +4 -3
  76. package/fontes/construtos/literal.js +41 -1
  77. package/fontes/construtos/literal.js.map +1 -1
  78. package/fontes/construtos/logico.d.ts +3 -2
  79. package/fontes/construtos/logico.js +41 -1
  80. package/fontes/construtos/logico.js.map +1 -1
  81. package/fontes/construtos/super.d.ts +2 -2
  82. package/fontes/construtos/super.js +41 -1
  83. package/fontes/construtos/super.js.map +1 -1
  84. package/fontes/construtos/unario.d.ts +3 -2
  85. package/fontes/construtos/unario.js +41 -1
  86. package/fontes/construtos/unario.js.map +1 -1
  87. package/fontes/construtos/variavel.d.ts +3 -3
  88. package/fontes/construtos/variavel.js +41 -1
  89. package/fontes/construtos/variavel.js.map +1 -1
  90. package/fontes/construtos/vetor.d.ts +2 -1
  91. package/fontes/construtos/vetor.js +41 -1
  92. package/fontes/construtos/vetor.js.map +1 -1
  93. package/fontes/declaracoes/bloco.d.ts +3 -3
  94. package/fontes/declaracoes/bloco.js +41 -1
  95. package/fontes/declaracoes/bloco.js.map +1 -1
  96. package/fontes/declaracoes/classe.d.ts +3 -3
  97. package/fontes/declaracoes/classe.js +41 -1
  98. package/fontes/declaracoes/classe.js.map +1 -1
  99. package/fontes/declaracoes/continua.d.ts +3 -3
  100. package/fontes/declaracoes/continua.js +41 -1
  101. package/fontes/declaracoes/continua.js.map +1 -1
  102. package/fontes/declaracoes/declaracao.d.ts +2 -1
  103. package/fontes/declaracoes/declaracao.js +43 -3
  104. package/fontes/declaracoes/declaracao.js.map +1 -1
  105. package/fontes/declaracoes/enquanto.d.ts +4 -3
  106. package/fontes/declaracoes/enquanto.js +41 -1
  107. package/fontes/declaracoes/enquanto.js.map +1 -1
  108. package/fontes/declaracoes/escolha.d.ts +4 -3
  109. package/fontes/declaracoes/escolha.js +41 -1
  110. package/fontes/declaracoes/escolha.js.map +1 -1
  111. package/fontes/declaracoes/escreva.d.ts +1 -1
  112. package/fontes/declaracoes/escreva.js +41 -1
  113. package/fontes/declaracoes/escreva.js.map +1 -1
  114. package/fontes/declaracoes/expressao.d.ts +4 -4
  115. package/fontes/declaracoes/expressao.js +41 -1
  116. package/fontes/declaracoes/expressao.js.map +1 -1
  117. package/fontes/declaracoes/fazer.d.ts +3 -2
  118. package/fontes/declaracoes/fazer.js +41 -1
  119. package/fontes/declaracoes/fazer.js.map +1 -1
  120. package/fontes/declaracoes/funcao.d.ts +3 -3
  121. package/fontes/declaracoes/funcao.js +41 -1
  122. package/fontes/declaracoes/funcao.js.map +1 -1
  123. package/fontes/declaracoes/importar.d.ts +4 -3
  124. package/fontes/declaracoes/importar.js +41 -1
  125. package/fontes/declaracoes/importar.js.map +1 -1
  126. package/fontes/declaracoes/leia.d.ts +4 -4
  127. package/fontes/declaracoes/leia.js +44 -1
  128. package/fontes/declaracoes/leia.js.map +1 -1
  129. package/fontes/declaracoes/para.d.ts +3 -2
  130. package/fontes/declaracoes/para.js +41 -1
  131. package/fontes/declaracoes/para.js.map +1 -1
  132. package/fontes/declaracoes/retorna.d.ts +3 -3
  133. package/fontes/declaracoes/retorna.js +41 -1
  134. package/fontes/declaracoes/retorna.js.map +1 -1
  135. package/fontes/declaracoes/se.d.ts +3 -3
  136. package/fontes/declaracoes/se.js +41 -1
  137. package/fontes/declaracoes/se.js.map +1 -1
  138. package/fontes/declaracoes/sustar.d.ts +3 -3
  139. package/fontes/declaracoes/sustar.js +41 -1
  140. package/fontes/declaracoes/sustar.js.map +1 -1
  141. package/fontes/declaracoes/tente.d.ts +3 -3
  142. package/fontes/declaracoes/tente.js +41 -1
  143. package/fontes/declaracoes/tente.js.map +1 -1
  144. package/fontes/declaracoes/var.d.ts +4 -4
  145. package/fontes/declaracoes/var.js +41 -1
  146. package/fontes/declaracoes/var.js.map +1 -1
  147. package/fontes/delegua.d.ts +4 -4
  148. package/fontes/delegua.js +138 -63
  149. package/fontes/delegua.js.map +1 -1
  150. package/fontes/depuracao/cyrb53.js +6 -3
  151. package/fontes/depuracao/cyrb53.js.map +1 -1
  152. package/fontes/depuracao/servidor-depuracao.d.ts +4 -4
  153. package/fontes/depuracao/servidor-depuracao.js +199 -87
  154. package/fontes/depuracao/servidor-depuracao.js.map +1 -1
  155. package/fontes/espaco-variaveis.d.ts +1 -1
  156. package/fontes/espaco-variaveis.js +0 -1
  157. package/fontes/espaco-variaveis.js.map +1 -1
  158. package/fontes/estruturas/chamavel.js +1 -1
  159. package/fontes/estruturas/classe-padrao.d.ts +1 -1
  160. package/fontes/estruturas/classe-padrao.js.map +1 -1
  161. package/fontes/estruturas/delegua-classe.d.ts +4 -4
  162. package/fontes/estruturas/delegua-classe.js +5 -3
  163. package/fontes/estruturas/delegua-classe.js.map +1 -1
  164. package/fontes/estruturas/funcao-padrao.d.ts +2 -2
  165. package/fontes/estruturas/funcao-padrao.js +47 -3
  166. package/fontes/estruturas/funcao-padrao.js.map +1 -1
  167. package/fontes/estruturas/funcao.d.ts +5 -5
  168. package/fontes/estruturas/funcao.js +75 -24
  169. package/fontes/estruturas/funcao.js.map +1 -1
  170. package/fontes/estruturas/index.d.ts +9 -9
  171. package/fontes/estruturas/metodo-primitiva.d.ts +1 -1
  172. package/fontes/estruturas/modulo.d.ts +1 -1
  173. package/fontes/estruturas/modulo.js +1 -1
  174. package/fontes/estruturas/objeto-delegua-classe.d.ts +2 -2
  175. package/fontes/estruturas/objeto-delegua-classe.js +2 -2
  176. package/fontes/estruturas/objeto-delegua-classe.js.map +1 -1
  177. package/fontes/estruturas/objeto-padrao.js.map +1 -1
  178. package/fontes/excecoes/erro-em-tempo-de-execucao.d.ts +1 -1
  179. package/fontes/excecoes/erro-em-tempo-de-execucao.js.map +1 -1
  180. package/fontes/excecoes/index.d.ts +1 -1
  181. package/fontes/importador/importador.d.ts +1 -1
  182. package/fontes/importador/importador.js +3 -2
  183. package/fontes/importador/importador.js.map +1 -1
  184. package/fontes/importador/retorno-importador.d.ts +2 -2
  185. package/fontes/interfaces/avaliador-sintatico-interface.d.ts +5 -4
  186. package/fontes/interfaces/delegua-interface.d.ts +4 -4
  187. package/fontes/interfaces/escopo-execucao.d.ts +2 -2
  188. package/fontes/interfaces/importador-interface.d.ts +1 -1
  189. package/fontes/interfaces/interpretador-com-depuracao-interface.d.ts +6 -7
  190. package/fontes/interfaces/interpretador-interface.d.ts +6 -5
  191. package/fontes/interfaces/lexador-interface.d.ts +2 -2
  192. package/fontes/interfaces/parametro-interface.d.ts +1 -1
  193. package/fontes/interfaces/pilha-escopos-execucao-interface.d.ts +5 -5
  194. package/fontes/interfaces/resolvedor-interface.d.ts +5 -5
  195. package/fontes/interfaces/retornos/retorno-avaliador-sintatico.d.ts +2 -2
  196. package/fontes/interfaces/retornos/retorno-execucao-interface.d.ts +1 -1
  197. package/fontes/interfaces/retornos/retorno-interpretador.d.ts +1 -1
  198. package/fontes/interfaces/retornos/retorno-lexador.d.ts +3 -3
  199. package/fontes/interfaces/variavel-interface.d.ts +1 -1
  200. package/fontes/interpretador/dialetos/egua-classico.d.ts +31 -30
  201. package/fontes/interpretador/dialetos/egua-classico.js +922 -461
  202. package/fontes/interpretador/dialetos/egua-classico.js.map +1 -1
  203. package/fontes/interpretador/dialetos/index.js.map +1 -1
  204. package/fontes/interpretador/erro-interpretador.d.ts +1 -1
  205. package/fontes/interpretador/inferenciador.js.map +1 -1
  206. package/fontes/interpretador/interpretador-com-depuracao.d.ts +6 -6
  207. package/fontes/interpretador/interpretador-com-depuracao.js +280 -153
  208. package/fontes/interpretador/interpretador-com-depuracao.js.map +1 -1
  209. package/fontes/interpretador/interpretador.d.ts +44 -35
  210. package/fontes/interpretador/interpretador.js +1047 -535
  211. package/fontes/interpretador/interpretador.js.map +1 -1
  212. package/fontes/interpretador/pilha-escopos-execucao.js +16 -5
  213. package/fontes/interpretador/pilha-escopos-execucao.js.map +1 -1
  214. package/fontes/lexador/dialetos/index.js.map +1 -1
  215. package/fontes/lexador/dialetos/lexador-birl.d.ts +25 -0
  216. package/fontes/lexador/dialetos/lexador-birl.js +75 -0
  217. package/fontes/lexador/dialetos/lexador-birl.js.map +1 -0
  218. package/fontes/lexador/dialetos/lexador-egua-classico.js +3 -3
  219. package/fontes/lexador/dialetos/lexador-egua-classico.js.map +1 -1
  220. package/fontes/lexador/dialetos/lexador-eguap.d.ts +4 -4
  221. package/fontes/lexador/dialetos/lexador-eguap.js +15 -9
  222. package/fontes/lexador/dialetos/lexador-eguap.js.map +1 -1
  223. package/fontes/lexador/dialetos/lexador-visualg.d.ts +2 -2
  224. package/fontes/lexador/dialetos/lexador-visualg.js +6 -4
  225. package/fontes/lexador/dialetos/lexador-visualg.js.map +1 -1
  226. package/fontes/lexador/dialetos/palavras-reservadas/birl.d.ts +2 -0
  227. package/fontes/lexador/dialetos/palavras-reservadas/birl.js +4 -0
  228. package/fontes/lexador/dialetos/palavras-reservadas/birl.js.map +1 -0
  229. package/fontes/lexador/dialetos/palavras-reservadas/visualg.js +1 -1
  230. package/fontes/lexador/dialetos/palavras-reservadas/visualg.js.map +1 -1
  231. package/fontes/lexador/lexador-base-linha-unica.d.ts +3 -3
  232. package/fontes/lexador/lexador-base-linha-unica.js.map +1 -1
  233. package/fontes/lexador/lexador.js +2 -2
  234. package/fontes/lexador/lexador.js.map +1 -1
  235. package/fontes/lexador/palavras-reservadas.d.ts +22 -21
  236. package/fontes/lexador/palavras-reservadas.js +22 -21
  237. package/fontes/lexador/palavras-reservadas.js.map +1 -1
  238. package/fontes/lexador/simbolo.d.ts +1 -1
  239. package/fontes/lexador/simbolo.js +1 -1
  240. package/fontes/lexador/simbolo.js.map +1 -1
  241. package/fontes/quebras/index.js.map +1 -1
  242. package/fontes/resolvedor/dialetos/egua-classico.d.ts +25 -3
  243. package/fontes/resolvedor/dialetos/egua-classico.js +41 -1
  244. package/fontes/resolvedor/dialetos/egua-classico.js.map +1 -1
  245. package/fontes/resolvedor/dialetos/index.js.map +1 -1
  246. package/fontes/resolvedor/erro-resolvedor.d.ts +1 -1
  247. package/fontes/resolvedor/pilha-escopos.d.ts +1 -1
  248. package/fontes/resolvedor/pilha-escopos.js +2 -2
  249. package/fontes/resolvedor/pilha-escopos.js.map +1 -1
  250. package/fontes/resolvedor/retorno-resolvedor.d.ts +2 -2
  251. package/fontes/tipos-de-simbolos/birl.d.ts +18 -0
  252. package/fontes/tipos-de-simbolos/birl.js +21 -0
  253. package/fontes/tipos-de-simbolos/birl.js.map +1 -0
  254. package/fontes/tipos-de-simbolos/comum.js +15 -15
  255. package/fontes/tipos-de-simbolos/comum.js.map +1 -1
  256. package/fontes/tipos-de-simbolos/delegua.d.ts +2 -1
  257. package/fontes/tipos-de-simbolos/delegua.js +74 -73
  258. package/fontes/tipos-de-simbolos/delegua.js.map +1 -1
  259. package/fontes/tipos-de-simbolos/eguap.d.ts +1 -0
  260. package/fontes/tipos-de-simbolos/eguap.js +70 -69
  261. package/fontes/tipos-de-simbolos/eguap.js.map +1 -1
  262. package/fontes/tipos-de-simbolos/visualg.js +44 -44
  263. package/fontes/tipos-de-simbolos/visualg.js.map +1 -1
  264. package/index.js +1 -1
  265. package/index.js.map +1 -1
  266. package/jest.config.js +2 -2
  267. package/jest.config.js.map +1 -1
  268. package/package.json +10 -2
  269. package/testes/avaliador-sintatico.test.js +5 -5
  270. package/testes/avaliador-sintatico.test.js.map +1 -1
  271. package/testes/biblioteca-global.test.js +424 -181
  272. package/testes/biblioteca-global.test.js.map +1 -1
  273. package/testes/egua-classico/delegua.test.js.map +1 -1
  274. package/testes/egua-classico/interpretador.test.js +379 -163
  275. package/testes/egua-classico/interpretador.test.js.map +1 -1
  276. package/testes/egua-classico/resolvedor.test.js.map +1 -1
  277. package/testes/eguap/avaliador-sintatico.test.js +1 -5
  278. package/testes/eguap/avaliador-sintatico.test.js.map +1 -1
  279. package/testes/eguap/interpretador.test.js +388 -172
  280. package/testes/eguap/interpretador.test.js.map +1 -1
  281. package/testes/eguap/lexador.test.js +1 -1
  282. package/testes/eguap/lexador.test.js.map +1 -1
  283. package/testes/interpretador.test.js +876 -351
  284. package/testes/interpretador.test.js.map +1 -1
  285. package/fontes/tipos/avaliador-sintatico-egua-e-eguap-classico-returno-tipo.d.ts +0 -5
  286. package/fontes/tipos/avaliador-sintatico-egua-e-eguap-classico-returno-tipo.js +0 -3
  287. package/fontes/tipos/avaliador-sintatico-egua-e-eguap-classico-returno-tipo.js.map +0 -1
@@ -14,6 +14,42 @@ var __extends = (this && this.__extends) || (function () {
14
14
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
15
  };
16
16
  })();
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (_) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
17
53
  Object.defineProperty(exports, "__esModule", { value: true });
18
54
  exports.InterpretadorComDepuracao = void 0;
19
55
  var espaco_variaveis_1 = require("../espaco-variaveis");
@@ -61,42 +97,60 @@ var InterpretadorComDepuracao = /** @class */ (function (_super) {
61
97
  * @param ambiente O ambiente de execução quando houver, como parâmetros, argumentos, etc.
62
98
  */
63
99
  InterpretadorComDepuracao.prototype.executarBloco = function (declaracoes, ambiente) {
64
- if (this.escopoAtual < this.pilhaEscoposExecucao.elementos() - 1) {
65
- this.escopoAtual++;
66
- var proximoEscopo = this.pilhaEscoposExecucao.naPosicao(this.escopoAtual);
67
- var retornoExecucao = void 0;
68
- // Sempre executa a próxima instrução, mesmo que haja ponto de parada.
69
- retornoExecucao = this.executar(proximoEscopo.declaracoes[proximoEscopo.declaracaoAtual]);
70
- proximoEscopo.declaracaoAtual++;
71
- for (; !(retornoExecucao instanceof quebras_1.Quebra) &&
72
- proximoEscopo.declaracaoAtual < proximoEscopo.declaracoes.length; proximoEscopo.declaracaoAtual++) {
73
- this.pontoDeParadaAtivo = this.verificarPontoParada(proximoEscopo.declaracoes[proximoEscopo.declaracaoAtual]);
74
- if (this.pontoDeParadaAtivo) {
75
- break;
100
+ return __awaiter(this, void 0, void 0, function () {
101
+ var proximoEscopo, retornoExecucao, escopoExecucao;
102
+ return __generator(this, function (_a) {
103
+ switch (_a.label) {
104
+ case 0:
105
+ if (!(this.escopoAtual < this.pilhaEscoposExecucao.elementos() - 1)) return [3 /*break*/, 6];
106
+ this.escopoAtual++;
107
+ proximoEscopo = this.pilhaEscoposExecucao.naPosicao(this.escopoAtual);
108
+ retornoExecucao = void 0;
109
+ return [4 /*yield*/, this.executar(proximoEscopo.declaracoes[proximoEscopo.declaracaoAtual])];
110
+ case 1:
111
+ // Sempre executa a próxima instrução, mesmo que haja ponto de parada.
112
+ retornoExecucao = _a.sent();
113
+ proximoEscopo.declaracaoAtual++;
114
+ _a.label = 2;
115
+ case 2:
116
+ if (!(!(retornoExecucao instanceof quebras_1.Quebra) &&
117
+ proximoEscopo.declaracaoAtual <
118
+ proximoEscopo.declaracoes.length)) return [3 /*break*/, 5];
119
+ this.pontoDeParadaAtivo = this.verificarPontoParada(proximoEscopo.declaracoes[proximoEscopo.declaracaoAtual]);
120
+ if (this.pontoDeParadaAtivo) {
121
+ return [3 /*break*/, 5];
122
+ }
123
+ return [4 /*yield*/, this.executar(proximoEscopo.declaracoes[proximoEscopo.declaracaoAtual])];
124
+ case 3:
125
+ retornoExecucao = _a.sent();
126
+ _a.label = 4;
127
+ case 4:
128
+ proximoEscopo.declaracaoAtual++;
129
+ return [3 /*break*/, 2];
130
+ case 5:
131
+ this.pilhaEscoposExecucao.removerUltimo();
132
+ this.escopoAtual--;
133
+ return [2 /*return*/, retornoExecucao];
134
+ case 6:
135
+ escopoExecucao = {
136
+ declaracoes: declaracoes,
137
+ declaracaoAtual: 0,
138
+ ambiente: ambiente || new espaco_variaveis_1.EspacoVariaveis(),
139
+ };
140
+ this.pilhaEscoposExecucao.empilhar(escopoExecucao);
141
+ this.escopoAtual++;
142
+ if (this.comandoProximo) {
143
+ // Quando o comando for 'próximo', não executa.
144
+ // Aguarda o usuário com a próxima instrução vinda do depurador.
145
+ return [2 /*return*/, null];
146
+ }
147
+ if (!!this.comandoAdentrarEscopo) return [3 /*break*/, 8];
148
+ return [4 /*yield*/, this.executarUltimoEscopo()];
149
+ case 7: return [2 /*return*/, _a.sent()];
150
+ case 8: return [2 /*return*/];
76
151
  }
77
- retornoExecucao = this.executar(proximoEscopo.declaracoes[proximoEscopo.declaracaoAtual]);
78
- }
79
- this.pilhaEscoposExecucao.removerUltimo();
80
- this.escopoAtual--;
81
- return retornoExecucao;
82
- }
83
- else {
84
- var escopoExecucao = {
85
- declaracoes: declaracoes,
86
- declaracaoAtual: 0,
87
- ambiente: ambiente || new espaco_variaveis_1.EspacoVariaveis(),
88
- };
89
- this.pilhaEscoposExecucao.empilhar(escopoExecucao);
90
- this.escopoAtual++;
91
- if (this.comandoProximo) {
92
- // Quando o comando for 'próximo', não executa.
93
- // Aguarda o usuário com a próxima instrução vinda do depurador.
94
- return null;
95
- }
96
- if (!this.comandoAdentrarEscopo) {
97
- return this.executarUltimoEscopo();
98
- }
99
- }
152
+ });
153
+ });
100
154
  };
101
155
  /**
102
156
  * Para fins de depuração, verifica se há ponto de parada no mesmo pragma da declaração.
@@ -128,37 +182,54 @@ var InterpretadorComDepuracao = /** @class */ (function (_super) {
128
182
  InterpretadorComDepuracao.prototype.executarUltimoEscopo = function (manterAmbiente, naoVerificarPrimeiraExecucao) {
129
183
  if (manterAmbiente === void 0) { manterAmbiente = false; }
130
184
  if (naoVerificarPrimeiraExecucao === void 0) { naoVerificarPrimeiraExecucao = false; }
131
- var ultimoEscopo = this.pilhaEscoposExecucao.topoDaPilha();
132
- try {
133
- var retornoExecucao = void 0;
134
- for (; !(retornoExecucao instanceof quebras_1.Quebra) &&
135
- ultimoEscopo.declaracaoAtual < ultimoEscopo.declaracoes.length; ultimoEscopo.declaracaoAtual++) {
136
- if (naoVerificarPrimeiraExecucao) {
137
- naoVerificarPrimeiraExecucao = false;
138
- }
139
- else {
140
- this.pontoDeParadaAtivo = this.verificarPontoParada(ultimoEscopo.declaracoes[ultimoEscopo.declaracaoAtual]);
141
- if (this.pontoDeParadaAtivo) {
142
- break;
143
- }
144
- }
145
- retornoExecucao = this.executar(ultimoEscopo.declaracoes[ultimoEscopo.declaracaoAtual]);
146
- }
147
- return retornoExecucao;
148
- }
149
- finally {
150
- if (!this.pontoDeParadaAtivo) {
151
- this.pilhaEscoposExecucao.removerUltimo();
152
- if (manterAmbiente) {
153
- var escopoAnterior = this.pilhaEscoposExecucao.topoDaPilha();
154
- escopoAnterior.ambiente.valores = Object.assign(escopoAnterior.ambiente.valores, ultimoEscopo.ambiente.valores);
185
+ return __awaiter(this, void 0, void 0, function () {
186
+ var ultimoEscopo, retornoExecucao, escopoAnterior;
187
+ return __generator(this, function (_a) {
188
+ switch (_a.label) {
189
+ case 0:
190
+ ultimoEscopo = this.pilhaEscoposExecucao.topoDaPilha();
191
+ _a.label = 1;
192
+ case 1:
193
+ _a.trys.push([1, , 6, 7]);
194
+ retornoExecucao = void 0;
195
+ _a.label = 2;
196
+ case 2:
197
+ if (!(!(retornoExecucao instanceof quebras_1.Quebra) &&
198
+ ultimoEscopo.declaracaoAtual < ultimoEscopo.declaracoes.length)) return [3 /*break*/, 5];
199
+ if (naoVerificarPrimeiraExecucao) {
200
+ naoVerificarPrimeiraExecucao = false;
201
+ }
202
+ else {
203
+ this.pontoDeParadaAtivo = this.verificarPontoParada(ultimoEscopo.declaracoes[ultimoEscopo.declaracaoAtual]);
204
+ if (this.pontoDeParadaAtivo) {
205
+ return [3 /*break*/, 5];
206
+ }
207
+ }
208
+ return [4 /*yield*/, this.executar(ultimoEscopo.declaracoes[ultimoEscopo.declaracaoAtual])];
209
+ case 3:
210
+ retornoExecucao = _a.sent();
211
+ _a.label = 4;
212
+ case 4:
213
+ ultimoEscopo.declaracaoAtual++;
214
+ return [3 /*break*/, 2];
215
+ case 5: return [2 /*return*/, retornoExecucao];
216
+ case 6:
217
+ if (!this.pontoDeParadaAtivo) {
218
+ this.pilhaEscoposExecucao.removerUltimo();
219
+ if (manterAmbiente) {
220
+ escopoAnterior = this.pilhaEscoposExecucao.topoDaPilha();
221
+ escopoAnterior.ambiente.valores = Object.assign(escopoAnterior.ambiente.valores, ultimoEscopo.ambiente.valores);
222
+ }
223
+ this.escopoAtual--;
224
+ }
225
+ if (this.pilhaEscoposExecucao.elementos() === 1) {
226
+ this.finalizacaoDaExecucao();
227
+ }
228
+ return [7 /*endfinally*/];
229
+ case 7: return [2 /*return*/];
155
230
  }
156
- this.escopoAtual--;
157
- }
158
- if (this.pilhaEscoposExecucao.elementos() === 1) {
159
- this.finalizacaoDaExecucao();
160
- }
161
- }
231
+ });
232
+ });
162
233
  };
163
234
  /**
164
235
  * Continua a interpretação, conforme comando do depurador.
@@ -169,26 +240,44 @@ var InterpretadorComDepuracao = /** @class */ (function (_super) {
169
240
  * @see executarBloco
170
241
  */
171
242
  InterpretadorComDepuracao.prototype.continuarInterpretacao = function () {
172
- this.escopoAtual = 1;
173
- var primeiroEscopo = this.pilhaEscoposExecucao.naPosicao(1);
174
- var retornoExecucao;
175
- // Primeira execução sempre ocorre, independente de pontos de parada.
176
- retornoExecucao = this.executar(primeiroEscopo.declaracoes[primeiroEscopo.declaracaoAtual]);
177
- primeiroEscopo.declaracaoAtual++;
178
- for (; !(retornoExecucao instanceof quebras_1.Quebra) &&
179
- primeiroEscopo.declaracaoAtual < primeiroEscopo.declaracoes.length; primeiroEscopo.declaracaoAtual++) {
180
- this.pontoDeParadaAtivo = this.verificarPontoParada(primeiroEscopo.declaracoes[primeiroEscopo.declaracaoAtual]);
181
- if (this.pontoDeParadaAtivo) {
182
- break;
183
- }
184
- retornoExecucao = this.executar(primeiroEscopo.declaracoes[primeiroEscopo.declaracaoAtual]);
185
- }
186
- if (primeiroEscopo.declaracaoAtual >= primeiroEscopo.declaracoes.length) {
187
- this.pilhaEscoposExecucao.removerUltimo();
188
- }
189
- if (this.pilhaEscoposExecucao.elementos() === 1) {
190
- this.finalizacaoDaExecucao();
191
- }
243
+ return __awaiter(this, void 0, void 0, function () {
244
+ var primeiroEscopo, retornoExecucao;
245
+ return __generator(this, function (_a) {
246
+ switch (_a.label) {
247
+ case 0:
248
+ this.escopoAtual = 1;
249
+ primeiroEscopo = this.pilhaEscoposExecucao.naPosicao(1);
250
+ return [4 /*yield*/, this.executar(primeiroEscopo.declaracoes[primeiroEscopo.declaracaoAtual])];
251
+ case 1:
252
+ // Primeira execução sempre ocorre, independente de pontos de parada.
253
+ retornoExecucao = _a.sent();
254
+ primeiroEscopo.declaracaoAtual++;
255
+ _a.label = 2;
256
+ case 2:
257
+ if (!(!(retornoExecucao instanceof quebras_1.Quebra) &&
258
+ primeiroEscopo.declaracaoAtual < primeiroEscopo.declaracoes.length)) return [3 /*break*/, 5];
259
+ this.pontoDeParadaAtivo = this.verificarPontoParada(primeiroEscopo.declaracoes[primeiroEscopo.declaracaoAtual]);
260
+ if (this.pontoDeParadaAtivo) {
261
+ return [3 /*break*/, 5];
262
+ }
263
+ return [4 /*yield*/, this.executar(primeiroEscopo.declaracoes[primeiroEscopo.declaracaoAtual])];
264
+ case 3:
265
+ retornoExecucao = _a.sent();
266
+ _a.label = 4;
267
+ case 4:
268
+ primeiroEscopo.declaracaoAtual++;
269
+ return [3 /*break*/, 2];
270
+ case 5:
271
+ if (primeiroEscopo.declaracaoAtual >= primeiroEscopo.declaracoes.length) {
272
+ this.pilhaEscoposExecucao.removerUltimo();
273
+ }
274
+ if (this.pilhaEscoposExecucao.elementos() === 1) {
275
+ this.finalizacaoDaExecucao();
276
+ }
277
+ return [2 /*return*/];
278
+ }
279
+ });
280
+ });
192
281
  };
193
282
  /**
194
283
  * Interpreta apenas uma instrução a partir do ponto de parada ativo, conforme comando do depurador.
@@ -198,35 +287,45 @@ var InterpretadorComDepuracao = /** @class */ (function (_super) {
198
287
  */
199
288
  InterpretadorComDepuracao.prototype.interpretacaoApenasUmaInstrucao = function (escopo) {
200
289
  if (escopo === void 0) { escopo = 1; }
201
- var escopoVisitado = this.pilhaEscoposExecucao.naPosicao(escopo);
202
- if (escopo < this.escopoAtual) {
203
- this.interpretacaoApenasUmaInstrucao(escopo + 1);
204
- }
205
- else {
206
- var declaracaoAtual = escopoVisitado.declaracoes[escopoVisitado.declaracaoAtual];
207
- this.executar(declaracaoAtual);
208
- // Blocos de escopo que não sejam de funções adentram
209
- // o escopo ativo por padrão, por isso o teste abaixo.
210
- // this.adentrarEscopoAtivo = Object.getPrototypeOf(declaracaoAtual).constructor.name !== 'Funcao';
211
- }
212
- if (this.comandoAdentrarEscopo) {
213
- // Depurador comandou instrução 'adentrar-escopo', ou bloco de escopo
214
- // não é de uma função.
215
- // Instrução só foi realmente executada se não abriu novo bloco de escopo.
216
- // Por isso, `declaracaoAtual` não deve ser incrementada aqui.
217
- this.comandoAdentrarEscopo = false;
218
- }
219
- else {
220
- escopoVisitado.declaracaoAtual++;
221
- }
222
- // Se última instrução do escopo atual foi executada, descartar escopo.
223
- if (escopoVisitado.declaracoes.length - 1 <= escopoVisitado.declaracaoAtual) {
224
- this.pilhaEscoposExecucao.removerUltimo();
225
- this.escopoAtual--;
226
- }
227
- if (this.pilhaEscoposExecucao.elementos() === 1) {
228
- this.finalizacaoDaExecucao();
229
- }
290
+ return __awaiter(this, void 0, void 0, function () {
291
+ var escopoVisitado, declaracaoAtual;
292
+ return __generator(this, function (_a) {
293
+ switch (_a.label) {
294
+ case 0:
295
+ escopoVisitado = this.pilhaEscoposExecucao.naPosicao(escopo);
296
+ if (!(escopo < this.escopoAtual)) return [3 /*break*/, 1];
297
+ this.interpretacaoApenasUmaInstrucao(escopo + 1);
298
+ return [3 /*break*/, 3];
299
+ case 1:
300
+ declaracaoAtual = escopoVisitado.declaracoes[escopoVisitado.declaracaoAtual];
301
+ return [4 /*yield*/, this.executar(declaracaoAtual)];
302
+ case 2:
303
+ _a.sent();
304
+ _a.label = 3;
305
+ case 3:
306
+ if (this.comandoAdentrarEscopo) {
307
+ // Depurador comandou instrução 'adentrar-escopo', ou bloco de escopo
308
+ // não é de uma função.
309
+ // Instrução só foi realmente executada se não abriu novo bloco de escopo.
310
+ // Por isso, `declaracaoAtual` não deve ser incrementada aqui.
311
+ this.comandoAdentrarEscopo = false;
312
+ }
313
+ else {
314
+ escopoVisitado.declaracaoAtual++;
315
+ }
316
+ // Se última instrução do escopo atual foi executada, descartar escopo.
317
+ if (escopoVisitado.declaracoes.length - 1 <=
318
+ escopoVisitado.declaracaoAtual) {
319
+ this.pilhaEscoposExecucao.removerUltimo();
320
+ this.escopoAtual--;
321
+ }
322
+ if (this.pilhaEscoposExecucao.elementos() === 1) {
323
+ this.finalizacaoDaExecucao();
324
+ }
325
+ return [2 /*return*/];
326
+ }
327
+ });
328
+ });
230
329
  };
231
330
  /**
232
331
  * Interpreta restante do bloco de execução em que o ponto de parada está, conforme comando do depurador.
@@ -235,29 +334,47 @@ var InterpretadorComDepuracao = /** @class */ (function (_super) {
235
334
  */
236
335
  InterpretadorComDepuracao.prototype.proximoESair = function (escopo) {
237
336
  if (escopo === void 0) { escopo = 1; }
238
- var escopoVisitado = this.pilhaEscoposExecucao.naPosicao(escopo);
239
- if (escopo < this.escopoAtual - 1) {
240
- this.proximoESair(escopo + 1);
241
- }
242
- else {
243
- var ultimoEscopo = this.pilhaEscoposExecucao.topoDaPilha();
244
- var retornoExecucao = void 0;
245
- for (; !(retornoExecucao instanceof quebras_1.Quebra) &&
246
- ultimoEscopo.declaracaoAtual < ultimoEscopo.declaracoes.length; ultimoEscopo.declaracaoAtual++) {
247
- retornoExecucao = this.executar(ultimoEscopo.declaracoes[ultimoEscopo.declaracaoAtual]);
248
- }
249
- this.pilhaEscoposExecucao.removerUltimo();
250
- this.escopoAtual--;
251
- escopoVisitado.declaracaoAtual++;
252
- }
253
- // Se última instrução do escopo atual foi executada, descartar escopo.
254
- if (escopoVisitado.declaracoes.length <= escopoVisitado.declaracaoAtual) {
255
- this.pilhaEscoposExecucao.removerUltimo();
256
- this.escopoAtual--;
257
- }
258
- if (this.pilhaEscoposExecucao.elementos() === 1) {
259
- this.finalizacaoDaExecucao();
260
- }
337
+ return __awaiter(this, void 0, void 0, function () {
338
+ var escopoVisitado, ultimoEscopo, retornoExecucao;
339
+ return __generator(this, function (_a) {
340
+ switch (_a.label) {
341
+ case 0:
342
+ escopoVisitado = this.pilhaEscoposExecucao.naPosicao(escopo);
343
+ if (!(escopo < this.escopoAtual - 1)) return [3 /*break*/, 1];
344
+ this.proximoESair(escopo + 1);
345
+ return [3 /*break*/, 6];
346
+ case 1:
347
+ ultimoEscopo = this.pilhaEscoposExecucao.topoDaPilha();
348
+ retornoExecucao = void 0;
349
+ _a.label = 2;
350
+ case 2:
351
+ if (!(!(retornoExecucao instanceof quebras_1.Quebra) &&
352
+ ultimoEscopo.declaracaoAtual < ultimoEscopo.declaracoes.length)) return [3 /*break*/, 5];
353
+ return [4 /*yield*/, this.executar(ultimoEscopo.declaracoes[ultimoEscopo.declaracaoAtual])];
354
+ case 3:
355
+ retornoExecucao = _a.sent();
356
+ _a.label = 4;
357
+ case 4:
358
+ ultimoEscopo.declaracaoAtual++;
359
+ return [3 /*break*/, 2];
360
+ case 5:
361
+ this.pilhaEscoposExecucao.removerUltimo();
362
+ this.escopoAtual--;
363
+ escopoVisitado.declaracaoAtual++;
364
+ _a.label = 6;
365
+ case 6:
366
+ // Se última instrução do escopo atual foi executada, descartar escopo.
367
+ if (escopoVisitado.declaracoes.length <= escopoVisitado.declaracaoAtual) {
368
+ this.pilhaEscoposExecucao.removerUltimo();
369
+ this.escopoAtual--;
370
+ }
371
+ if (this.pilhaEscoposExecucao.elementos() === 1) {
372
+ this.finalizacaoDaExecucao();
373
+ }
374
+ return [2 /*return*/];
375
+ }
376
+ });
377
+ });
261
378
  };
262
379
  /**
263
380
  * Prepara a pilha de escopos para uma situação de depuração.
@@ -284,22 +401,32 @@ var InterpretadorComDepuracao = /** @class */ (function (_super) {
284
401
  */
285
402
  InterpretadorComDepuracao.prototype.interpretar = function (declaracoes, manterAmbiente) {
286
403
  if (manterAmbiente === void 0) { manterAmbiente = false; }
287
- this.erros = [];
288
- this.declaracoes = declaracoes;
289
- var escopoExecucao = {
290
- declaracoes: declaracoes,
291
- declaracaoAtual: 0,
292
- ambiente: new espaco_variaveis_1.EspacoVariaveis(),
293
- };
294
- this.pilhaEscoposExecucao.empilhar(escopoExecucao);
295
- this.escopoAtual++;
296
- this.executarUltimoEscopo(manterAmbiente);
297
- var retorno = {
298
- erros: this.erros,
299
- resultado: this.resultadoInterpretador,
300
- };
301
- this.resultadoInterpretador = [];
302
- return retorno;
404
+ return __awaiter(this, void 0, void 0, function () {
405
+ var escopoExecucao, retorno;
406
+ return __generator(this, function (_a) {
407
+ switch (_a.label) {
408
+ case 0:
409
+ this.erros = [];
410
+ this.declaracoes = declaracoes;
411
+ escopoExecucao = {
412
+ declaracoes: declaracoes,
413
+ declaracaoAtual: 0,
414
+ ambiente: new espaco_variaveis_1.EspacoVariaveis(),
415
+ };
416
+ this.pilhaEscoposExecucao.empilhar(escopoExecucao);
417
+ this.escopoAtual++;
418
+ return [4 /*yield*/, this.executarUltimoEscopo(manterAmbiente)];
419
+ case 1:
420
+ _a.sent();
421
+ retorno = {
422
+ erros: this.erros,
423
+ resultado: this.resultadoInterpretador,
424
+ };
425
+ this.resultadoInterpretador = [];
426
+ return [2 /*return*/, retorno];
427
+ }
428
+ });
429
+ });
303
430
  };
304
431
  return InterpretadorComDepuracao;
305
432
  }(interpretador_1.Interpretador));
@@ -1 +1 @@
1
- {"version":3,"file":"interpretador-com-depuracao.js","sourceRoot":"","sources":["../../../fontes/interpretador/interpretador-com-depuracao.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interpretador-com-depuracao.js","sourceRoot":"","sources":["../../../fontes/interpretador/interpretador-com-depuracao.ts"],"names":[],"mappings":"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"}