@designliquido/delegua 0.8.1 → 0.9.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 (186) hide show
  1. package/bin/package.json +1 -1
  2. package/fontes/avaliador-sintatico/avaliador-sintatico-base.d.ts +4 -3
  3. package/fontes/avaliador-sintatico/avaliador-sintatico-base.js +4 -1
  4. package/fontes/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
  5. package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +4 -3
  6. package/fontes/avaliador-sintatico/avaliador-sintatico.js +17 -3
  7. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  8. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.d.ts +4 -3
  9. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +6 -3
  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 +4 -3
  12. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +15 -3
  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 +1 -1
  16. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js.map +1 -1
  17. package/fontes/avaliador-sintatico/retornos/retorno-declaracao.d.ts +2 -2
  18. package/fontes/avaliador-sintatico/retornos/retorno-primario.d.ts +2 -2
  19. package/fontes/bibliotecas/biblioteca-global.js +352 -178
  20. package/fontes/bibliotecas/biblioteca-global.js.map +1 -1
  21. package/fontes/construtos/acesso-indice-variavel.d.ts +1 -1
  22. package/fontes/construtos/acesso-indice-variavel.js +44 -1
  23. package/fontes/construtos/acesso-indice-variavel.js.map +1 -1
  24. package/fontes/construtos/acesso-metodo.d.ts +1 -1
  25. package/fontes/construtos/acesso-metodo.js +44 -1
  26. package/fontes/construtos/acesso-metodo.js.map +1 -1
  27. package/fontes/construtos/agrupamento.d.ts +1 -1
  28. package/fontes/construtos/agrupamento.js +44 -1
  29. package/fontes/construtos/agrupamento.js.map +1 -1
  30. package/fontes/construtos/atribuicao-sobrescrita.d.ts +2 -1
  31. package/fontes/construtos/atribuicao-sobrescrita.js +44 -1
  32. package/fontes/construtos/atribuicao-sobrescrita.js.map +1 -1
  33. package/fontes/construtos/atribuir.d.ts +1 -1
  34. package/fontes/construtos/atribuir.js +44 -1
  35. package/fontes/construtos/atribuir.js.map +1 -1
  36. package/fontes/construtos/binario.d.ts +1 -1
  37. package/fontes/construtos/binario.js +44 -1
  38. package/fontes/construtos/binario.js.map +1 -1
  39. package/fontes/construtos/chamada.d.ts +1 -1
  40. package/fontes/construtos/chamada.js +44 -1
  41. package/fontes/construtos/chamada.js.map +1 -1
  42. package/fontes/construtos/construto.d.ts +1 -1
  43. package/fontes/construtos/{conjunto.d.ts → definir-valor.d.ts} +3 -2
  44. package/fontes/construtos/definir-valor.js +61 -0
  45. package/fontes/construtos/definir-valor.js.map +1 -0
  46. package/fontes/construtos/dicionario.d.ts +2 -1
  47. package/fontes/construtos/dicionario.js +44 -1
  48. package/fontes/construtos/dicionario.js.map +1 -1
  49. package/fontes/construtos/funcao.d.ts +2 -2
  50. package/fontes/construtos/funcao.js +47 -7
  51. package/fontes/construtos/funcao.js.map +1 -1
  52. package/fontes/construtos/index.d.ts +1 -1
  53. package/fontes/construtos/index.js +1 -1
  54. package/fontes/construtos/index.js.map +1 -1
  55. package/fontes/construtos/isto.d.ts +2 -1
  56. package/fontes/construtos/isto.js +41 -1
  57. package/fontes/construtos/isto.js.map +1 -1
  58. package/fontes/construtos/literal.d.ts +1 -1
  59. package/fontes/construtos/literal.js +41 -1
  60. package/fontes/construtos/literal.js.map +1 -1
  61. package/fontes/construtos/logico.d.ts +2 -1
  62. package/fontes/construtos/logico.js +44 -1
  63. package/fontes/construtos/logico.js.map +1 -1
  64. package/fontes/construtos/super.d.ts +2 -2
  65. package/fontes/construtos/super.js +41 -1
  66. package/fontes/construtos/super.js.map +1 -1
  67. package/fontes/construtos/unario.d.ts +2 -1
  68. package/fontes/construtos/unario.js +44 -1
  69. package/fontes/construtos/unario.js.map +1 -1
  70. package/fontes/construtos/variavel.d.ts +1 -1
  71. package/fontes/construtos/variavel.js +41 -1
  72. package/fontes/construtos/variavel.js.map +1 -1
  73. package/fontes/construtos/vetor.d.ts +2 -1
  74. package/fontes/construtos/vetor.js +44 -1
  75. package/fontes/construtos/vetor.js.map +1 -1
  76. package/fontes/declaracoes/bloco.d.ts +1 -1
  77. package/fontes/declaracoes/bloco.js +44 -1
  78. package/fontes/declaracoes/bloco.js.map +1 -1
  79. package/fontes/declaracoes/classe.d.ts +2 -2
  80. package/fontes/declaracoes/classe.js +44 -1
  81. package/fontes/declaracoes/classe.js.map +1 -1
  82. package/fontes/declaracoes/continua.d.ts +2 -2
  83. package/fontes/declaracoes/continua.js +41 -1
  84. package/fontes/declaracoes/continua.js.map +1 -1
  85. package/fontes/declaracoes/declaracao.d.ts +2 -1
  86. package/fontes/declaracoes/declaracao.js +41 -1
  87. package/fontes/declaracoes/declaracao.js.map +1 -1
  88. package/fontes/declaracoes/enquanto.d.ts +2 -1
  89. package/fontes/declaracoes/enquanto.js +44 -1
  90. package/fontes/declaracoes/enquanto.js.map +1 -1
  91. package/fontes/declaracoes/escolha.d.ts +2 -1
  92. package/fontes/declaracoes/escolha.js +44 -1
  93. package/fontes/declaracoes/escolha.js.map +1 -1
  94. package/fontes/declaracoes/escreva.d.ts +1 -1
  95. package/fontes/declaracoes/escreva.js +44 -1
  96. package/fontes/declaracoes/escreva.js.map +1 -1
  97. package/fontes/declaracoes/expressao.d.ts +1 -1
  98. package/fontes/declaracoes/expressao.js +44 -1
  99. package/fontes/declaracoes/expressao.js.map +1 -1
  100. package/fontes/declaracoes/fazer.d.ts +2 -1
  101. package/fontes/declaracoes/fazer.js +44 -1
  102. package/fontes/declaracoes/fazer.js.map +1 -1
  103. package/fontes/declaracoes/funcao.d.ts +2 -2
  104. package/fontes/declaracoes/funcao.js +48 -8
  105. package/fontes/declaracoes/funcao.js.map +1 -1
  106. package/fontes/declaracoes/importar.d.ts +2 -1
  107. package/fontes/declaracoes/importar.js +44 -1
  108. package/fontes/declaracoes/importar.js.map +1 -1
  109. package/fontes/declaracoes/leia.d.ts +1 -1
  110. package/fontes/declaracoes/leia.js +44 -1
  111. package/fontes/declaracoes/leia.js.map +1 -1
  112. package/fontes/declaracoes/para.d.ts +2 -1
  113. package/fontes/declaracoes/para.js +44 -1
  114. package/fontes/declaracoes/para.js.map +1 -1
  115. package/fontes/declaracoes/retorna.d.ts +1 -1
  116. package/fontes/declaracoes/retorna.js +44 -1
  117. package/fontes/declaracoes/retorna.js.map +1 -1
  118. package/fontes/declaracoes/se.d.ts +1 -1
  119. package/fontes/declaracoes/se.js +44 -1
  120. package/fontes/declaracoes/se.js.map +1 -1
  121. package/fontes/declaracoes/sustar.d.ts +1 -1
  122. package/fontes/declaracoes/sustar.js +41 -1
  123. package/fontes/declaracoes/sustar.js.map +1 -1
  124. package/fontes/declaracoes/tente.d.ts +1 -1
  125. package/fontes/declaracoes/tente.js +44 -1
  126. package/fontes/declaracoes/tente.js.map +1 -1
  127. package/fontes/declaracoes/var.d.ts +1 -1
  128. package/fontes/declaracoes/var.js +44 -1
  129. package/fontes/declaracoes/var.js.map +1 -1
  130. package/fontes/delegua.d.ts +3 -3
  131. package/fontes/delegua.js +138 -63
  132. package/fontes/delegua.js.map +1 -1
  133. package/fontes/depuracao/servidor-depuracao.d.ts +4 -4
  134. package/fontes/depuracao/servidor-depuracao.js +121 -47
  135. package/fontes/depuracao/servidor-depuracao.js.map +1 -1
  136. package/fontes/estruturas/delegua-classe.d.ts +1 -1
  137. package/fontes/estruturas/{funcao.d.ts → delegua-funcao.d.ts} +4 -4
  138. package/fontes/estruturas/delegua-funcao.js +126 -0
  139. package/fontes/estruturas/delegua-funcao.js.map +1 -0
  140. package/fontes/estruturas/funcao-padrao.d.ts +1 -1
  141. package/fontes/estruturas/funcao-padrao.js +46 -2
  142. package/fontes/estruturas/funcao-padrao.js.map +1 -1
  143. package/fontes/estruturas/index.d.ts +1 -1
  144. package/fontes/estruturas/index.js +1 -1
  145. package/fontes/estruturas/index.js.map +1 -1
  146. package/fontes/interfaces/avaliador-sintatico-interface.d.ts +7 -6
  147. package/fontes/interfaces/delegua-interface.d.ts +2 -2
  148. package/fontes/interfaces/interpretador-com-depuracao-interface.d.ts +3 -4
  149. package/fontes/interfaces/interpretador-interface.d.ts +10 -9
  150. package/fontes/interfaces/resolvedor-interface.d.ts +1 -1
  151. package/fontes/interpretador/dialetos/egua-classico.d.ts +35 -33
  152. package/fontes/interpretador/dialetos/egua-classico.js +911 -474
  153. package/fontes/interpretador/dialetos/egua-classico.js.map +1 -1
  154. package/fontes/interpretador/interpretador-com-depuracao.d.ts +6 -6
  155. package/fontes/interpretador/interpretador-com-depuracao.js +280 -155
  156. package/fontes/interpretador/interpretador-com-depuracao.js.map +1 -1
  157. package/fontes/interpretador/interpretador.d.ts +41 -36
  158. package/fontes/interpretador/interpretador.js +1034 -536
  159. package/fontes/interpretador/interpretador.js.map +1 -1
  160. package/fontes/lexador/lexador.js +2 -2
  161. package/fontes/lexador/lexador.js.map +1 -1
  162. package/fontes/lexador/palavras-reservadas.d.ts +22 -21
  163. package/fontes/lexador/palavras-reservadas.js +22 -21
  164. package/fontes/lexador/palavras-reservadas.js.map +1 -1
  165. package/fontes/resolvedor/dialetos/egua-classico.d.ts +27 -4
  166. package/fontes/resolvedor/dialetos/egua-classico.js +42 -1
  167. package/fontes/resolvedor/dialetos/egua-classico.js.map +1 -1
  168. package/fontes/tipos-de-simbolos/delegua.d.ts +2 -1
  169. package/fontes/tipos-de-simbolos/delegua.js +2 -1
  170. package/fontes/tipos-de-simbolos/delegua.js.map +1 -1
  171. package/fontes/tipos-de-simbolos/eguap.d.ts +1 -0
  172. package/fontes/tipos-de-simbolos/eguap.js +1 -0
  173. package/fontes/tipos-de-simbolos/eguap.js.map +1 -1
  174. package/package.json +1 -1
  175. package/testes/biblioteca-global.test.js +424 -181
  176. package/testes/biblioteca-global.test.js.map +1 -1
  177. package/testes/egua-classico/interpretador.test.js +380 -164
  178. package/testes/egua-classico/interpretador.test.js.map +1 -1
  179. package/testes/eguap/interpretador.test.js +388 -172
  180. package/testes/eguap/interpretador.test.js.map +1 -1
  181. package/testes/interpretador.test.js +877 -400
  182. package/testes/interpretador.test.js.map +1 -1
  183. package/fontes/construtos/conjunto.js +0 -18
  184. package/fontes/construtos/conjunto.js.map +0 -1
  185. package/fontes/estruturas/funcao.js +0 -80
  186. package/fontes/estruturas/funcao.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,43 +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 <
73
- proximoEscopo.declaracoes.length; proximoEscopo.declaracaoAtual++) {
74
- this.pontoDeParadaAtivo = this.verificarPontoParada(proximoEscopo.declaracoes[proximoEscopo.declaracaoAtual]);
75
- if (this.pontoDeParadaAtivo) {
76
- 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*/];
77
151
  }
78
- retornoExecucao = this.executar(proximoEscopo.declaracoes[proximoEscopo.declaracaoAtual]);
79
- }
80
- this.pilhaEscoposExecucao.removerUltimo();
81
- this.escopoAtual--;
82
- return retornoExecucao;
83
- }
84
- else {
85
- var escopoExecucao = {
86
- declaracoes: declaracoes,
87
- declaracaoAtual: 0,
88
- ambiente: ambiente || new espaco_variaveis_1.EspacoVariaveis(),
89
- };
90
- this.pilhaEscoposExecucao.empilhar(escopoExecucao);
91
- this.escopoAtual++;
92
- if (this.comandoProximo) {
93
- // Quando o comando for 'próximo', não executa.
94
- // Aguarda o usuário com a próxima instrução vinda do depurador.
95
- return null;
96
- }
97
- if (!this.comandoAdentrarEscopo) {
98
- return this.executarUltimoEscopo();
99
- }
100
- }
152
+ });
153
+ });
101
154
  };
102
155
  /**
103
156
  * Para fins de depuração, verifica se há ponto de parada no mesmo pragma da declaração.
@@ -129,37 +182,54 @@ var InterpretadorComDepuracao = /** @class */ (function (_super) {
129
182
  InterpretadorComDepuracao.prototype.executarUltimoEscopo = function (manterAmbiente, naoVerificarPrimeiraExecucao) {
130
183
  if (manterAmbiente === void 0) { manterAmbiente = false; }
131
184
  if (naoVerificarPrimeiraExecucao === void 0) { naoVerificarPrimeiraExecucao = false; }
132
- var ultimoEscopo = this.pilhaEscoposExecucao.topoDaPilha();
133
- try {
134
- var retornoExecucao = void 0;
135
- for (; !(retornoExecucao instanceof quebras_1.Quebra) &&
136
- ultimoEscopo.declaracaoAtual < ultimoEscopo.declaracoes.length; ultimoEscopo.declaracaoAtual++) {
137
- if (naoVerificarPrimeiraExecucao) {
138
- naoVerificarPrimeiraExecucao = false;
139
- }
140
- else {
141
- this.pontoDeParadaAtivo = this.verificarPontoParada(ultimoEscopo.declaracoes[ultimoEscopo.declaracaoAtual]);
142
- if (this.pontoDeParadaAtivo) {
143
- break;
144
- }
145
- }
146
- retornoExecucao = this.executar(ultimoEscopo.declaracoes[ultimoEscopo.declaracaoAtual]);
147
- }
148
- return retornoExecucao;
149
- }
150
- finally {
151
- if (!this.pontoDeParadaAtivo) {
152
- this.pilhaEscoposExecucao.removerUltimo();
153
- if (manterAmbiente) {
154
- var escopoAnterior = this.pilhaEscoposExecucao.topoDaPilha();
155
- 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*/];
156
230
  }
157
- this.escopoAtual--;
158
- }
159
- if (this.pilhaEscoposExecucao.elementos() === 1) {
160
- this.finalizacaoDaExecucao();
161
- }
162
- }
231
+ });
232
+ });
163
233
  };
164
234
  /**
165
235
  * Continua a interpretação, conforme comando do depurador.
@@ -170,26 +240,44 @@ var InterpretadorComDepuracao = /** @class */ (function (_super) {
170
240
  * @see executarBloco
171
241
  */
172
242
  InterpretadorComDepuracao.prototype.continuarInterpretacao = function () {
173
- this.escopoAtual = 1;
174
- var primeiroEscopo = this.pilhaEscoposExecucao.naPosicao(1);
175
- var retornoExecucao;
176
- // Primeira execução sempre ocorre, independente de pontos de parada.
177
- retornoExecucao = this.executar(primeiroEscopo.declaracoes[primeiroEscopo.declaracaoAtual]);
178
- primeiroEscopo.declaracaoAtual++;
179
- for (; !(retornoExecucao instanceof quebras_1.Quebra) &&
180
- primeiroEscopo.declaracaoAtual < primeiroEscopo.declaracoes.length; primeiroEscopo.declaracaoAtual++) {
181
- this.pontoDeParadaAtivo = this.verificarPontoParada(primeiroEscopo.declaracoes[primeiroEscopo.declaracaoAtual]);
182
- if (this.pontoDeParadaAtivo) {
183
- break;
184
- }
185
- retornoExecucao = this.executar(primeiroEscopo.declaracoes[primeiroEscopo.declaracaoAtual]);
186
- }
187
- if (primeiroEscopo.declaracaoAtual >= primeiroEscopo.declaracoes.length) {
188
- this.pilhaEscoposExecucao.removerUltimo();
189
- }
190
- if (this.pilhaEscoposExecucao.elementos() === 1) {
191
- this.finalizacaoDaExecucao();
192
- }
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
+ });
193
281
  };
194
282
  /**
195
283
  * Interpreta apenas uma instrução a partir do ponto de parada ativo, conforme comando do depurador.
@@ -199,36 +287,45 @@ var InterpretadorComDepuracao = /** @class */ (function (_super) {
199
287
  */
200
288
  InterpretadorComDepuracao.prototype.interpretacaoApenasUmaInstrucao = function (escopo) {
201
289
  if (escopo === void 0) { escopo = 1; }
202
- var escopoVisitado = this.pilhaEscoposExecucao.naPosicao(escopo);
203
- if (escopo < this.escopoAtual) {
204
- this.interpretacaoApenasUmaInstrucao(escopo + 1);
205
- }
206
- else {
207
- var declaracaoAtual = escopoVisitado.declaracoes[escopoVisitado.declaracaoAtual];
208
- this.executar(declaracaoAtual);
209
- // Blocos de escopo que não sejam de funções adentram
210
- // o escopo ativo por padrão, por isso o teste abaixo.
211
- // this.adentrarEscopoAtivo = Object.getPrototypeOf(declaracaoAtual).constructor.name !== 'Funcao';
212
- }
213
- if (this.comandoAdentrarEscopo) {
214
- // Depurador comandou instrução 'adentrar-escopo', ou bloco de escopo
215
- // não é de uma função.
216
- // Instrução só foi realmente executada se não abriu novo bloco de escopo.
217
- // Por isso, `declaracaoAtual` não deve ser incrementada aqui.
218
- this.comandoAdentrarEscopo = false;
219
- }
220
- else {
221
- escopoVisitado.declaracaoAtual++;
222
- }
223
- // Se última instrução do escopo atual foi executada, descartar escopo.
224
- if (escopoVisitado.declaracoes.length - 1 <=
225
- escopoVisitado.declaracaoAtual) {
226
- this.pilhaEscoposExecucao.removerUltimo();
227
- this.escopoAtual--;
228
- }
229
- if (this.pilhaEscoposExecucao.elementos() === 1) {
230
- this.finalizacaoDaExecucao();
231
- }
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
+ });
232
329
  };
233
330
  /**
234
331
  * Interpreta restante do bloco de execução em que o ponto de parada está, conforme comando do depurador.
@@ -237,29 +334,47 @@ var InterpretadorComDepuracao = /** @class */ (function (_super) {
237
334
  */
238
335
  InterpretadorComDepuracao.prototype.proximoESair = function (escopo) {
239
336
  if (escopo === void 0) { escopo = 1; }
240
- var escopoVisitado = this.pilhaEscoposExecucao.naPosicao(escopo);
241
- if (escopo < this.escopoAtual - 1) {
242
- this.proximoESair(escopo + 1);
243
- }
244
- else {
245
- var ultimoEscopo = this.pilhaEscoposExecucao.topoDaPilha();
246
- var retornoExecucao = void 0;
247
- for (; !(retornoExecucao instanceof quebras_1.Quebra) &&
248
- ultimoEscopo.declaracaoAtual < ultimoEscopo.declaracoes.length; ultimoEscopo.declaracaoAtual++) {
249
- retornoExecucao = this.executar(ultimoEscopo.declaracoes[ultimoEscopo.declaracaoAtual]);
250
- }
251
- this.pilhaEscoposExecucao.removerUltimo();
252
- this.escopoAtual--;
253
- escopoVisitado.declaracaoAtual++;
254
- }
255
- // Se última instrução do escopo atual foi executada, descartar escopo.
256
- if (escopoVisitado.declaracoes.length <= escopoVisitado.declaracaoAtual) {
257
- this.pilhaEscoposExecucao.removerUltimo();
258
- this.escopoAtual--;
259
- }
260
- if (this.pilhaEscoposExecucao.elementos() === 1) {
261
- this.finalizacaoDaExecucao();
262
- }
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
+ });
263
378
  };
264
379
  /**
265
380
  * Prepara a pilha de escopos para uma situação de depuração.
@@ -286,22 +401,32 @@ var InterpretadorComDepuracao = /** @class */ (function (_super) {
286
401
  */
287
402
  InterpretadorComDepuracao.prototype.interpretar = function (declaracoes, manterAmbiente) {
288
403
  if (manterAmbiente === void 0) { manterAmbiente = false; }
289
- this.erros = [];
290
- this.declaracoes = declaracoes;
291
- var escopoExecucao = {
292
- declaracoes: declaracoes,
293
- declaracaoAtual: 0,
294
- ambiente: new espaco_variaveis_1.EspacoVariaveis(),
295
- };
296
- this.pilhaEscoposExecucao.empilhar(escopoExecucao);
297
- this.escopoAtual++;
298
- this.executarUltimoEscopo(manterAmbiente);
299
- var retorno = {
300
- erros: this.erros,
301
- resultado: this.resultadoInterpretador,
302
- };
303
- this.resultadoInterpretador = [];
304
- 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
+ });
305
430
  };
306
431
  return InterpretadorComDepuracao;
307
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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"}