@designliquido/delegua 0.2.12 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/bin/package.json +1 -1
  2. package/fontes/ambiente.d.ts +1 -14
  3. package/fontes/ambiente.js +1 -53
  4. package/fontes/ambiente.js.map +1 -1
  5. package/fontes/avaliador-sintatico/avaliador-sintatico.js +21 -10
  6. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  7. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +7 -7
  8. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
  9. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +7 -7
  10. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js.map +1 -1
  11. package/fontes/bibliotecas/biblioteca-global.d.ts +2 -2
  12. package/fontes/bibliotecas/biblioteca-global.js +15 -15
  13. package/fontes/bibliotecas/biblioteca-global.js.map +1 -1
  14. package/fontes/construtos/atribuir.d.ts +2 -2
  15. package/fontes/construtos/atribuir.js.map +1 -1
  16. package/fontes/construtos/chamada.d.ts +2 -1
  17. package/fontes/construtos/chamada.js.map +1 -1
  18. package/fontes/construtos/literal.d.ts +2 -1
  19. package/fontes/construtos/literal.js.map +1 -1
  20. package/fontes/construtos/variavel.d.ts +2 -2
  21. package/fontes/construtos/variavel.js.map +1 -1
  22. package/fontes/declaracoes/bloco.d.ts +2 -1
  23. package/fontes/declaracoes/bloco.js.map +1 -1
  24. package/fontes/declaracoes/escreva.d.ts +2 -1
  25. package/fontes/declaracoes/escreva.js.map +1 -1
  26. package/fontes/declaracoes/expressao.d.ts +2 -1
  27. package/fontes/declaracoes/expressao.js.map +1 -1
  28. package/fontes/declaracoes/funcao.d.ts +2 -2
  29. package/fontes/declaracoes/funcao.js.map +1 -1
  30. package/fontes/declaracoes/retorna.d.ts +2 -1
  31. package/fontes/declaracoes/retorna.js.map +1 -1
  32. package/fontes/declaracoes/se.d.ts +2 -1
  33. package/fontes/declaracoes/se.js.map +1 -1
  34. package/fontes/declaracoes/var.d.ts +2 -2
  35. package/fontes/declaracoes/var.js.map +1 -1
  36. package/fontes/delegua.d.ts +2 -1
  37. package/fontes/delegua.js +14 -9
  38. package/fontes/delegua.js.map +1 -1
  39. package/fontes/estruturas/delegua-classe.d.ts +14 -0
  40. package/fontes/estruturas/{classe.js → delegua-classe.js} +4 -4
  41. package/fontes/estruturas/delegua-classe.js.map +1 -0
  42. package/fontes/estruturas/funcao-padrao.d.ts +1 -1
  43. package/fontes/estruturas/funcao-padrao.js +1 -1
  44. package/fontes/estruturas/funcao-padrao.js.map +1 -1
  45. package/fontes/estruturas/funcao.d.ts +9 -7
  46. package/fontes/estruturas/funcao.js +20 -26
  47. package/fontes/estruturas/funcao.js.map +1 -1
  48. package/fontes/estruturas/index.d.ts +2 -2
  49. package/fontes/estruturas/index.js +2 -2
  50. package/fontes/estruturas/index.js.map +1 -1
  51. package/fontes/estruturas/{instancia.d.ts → objeto-delegua-classe.d.ts} +3 -2
  52. package/fontes/estruturas/objeto-delegua-classe.js +28 -0
  53. package/fontes/estruturas/objeto-delegua-classe.js.map +1 -0
  54. package/fontes/excecoes/index.d.ts +0 -3
  55. package/fontes/excecoes/index.js +0 -3
  56. package/fontes/excecoes/index.js.map +1 -1
  57. package/fontes/interfaces/escopo-execucao.d.ts +7 -0
  58. package/fontes/interfaces/escopo-execucao.js +3 -0
  59. package/fontes/interfaces/escopo-execucao.js.map +1 -0
  60. package/fontes/interfaces/interpretador-interface.d.ts +6 -4
  61. package/fontes/interfaces/pilha-interface.d.ts +2 -2
  62. package/fontes/interfaces/retorno-execucao-interface.d.ts +3 -3
  63. package/fontes/interpretador/dialetos/egua-classico.d.ts +27 -19
  64. package/fontes/interpretador/dialetos/egua-classico.js +121 -139
  65. package/fontes/interpretador/dialetos/egua-classico.js.map +1 -1
  66. package/fontes/interpretador/interpretador.d.ts +38 -18
  67. package/fontes/interpretador/interpretador.js +142 -139
  68. package/fontes/interpretador/interpretador.js.map +1 -1
  69. package/fontes/interpretador/pilha-escopos-execucao.d.ts +20 -0
  70. package/fontes/interpretador/pilha-escopos-execucao.js +74 -0
  71. package/fontes/interpretador/pilha-escopos-execucao.js.map +1 -0
  72. package/fontes/quebras/index.d.ts +10 -0
  73. package/fontes/quebras/index.js +51 -0
  74. package/fontes/quebras/index.js.map +1 -0
  75. package/fontes/resolvedor/index.d.ts +4 -62
  76. package/fontes/resolvedor/index.js +18 -340
  77. package/fontes/resolvedor/index.js.map +1 -1
  78. package/fontes/resolvedor/resolvedor.d.ts +64 -0
  79. package/fontes/resolvedor/resolvedor.js +345 -0
  80. package/fontes/resolvedor/resolvedor.js.map +1 -0
  81. package/package.json +1 -1
  82. package/testes/biblioteca-global.test.js +15 -29
  83. package/testes/biblioteca-global.test.js.map +1 -1
  84. package/testes/egua-classico/interpretador.test.js +21 -41
  85. package/testes/egua-classico/interpretador.test.js.map +1 -1
  86. package/testes/interpretador.test.js +21 -41
  87. package/testes/interpretador.test.js.map +1 -1
  88. package/fontes/estruturas/classe.d.ts +0 -11
  89. package/fontes/estruturas/classe.js.map +0 -1
  90. package/fontes/estruturas/instancia.js +0 -28
  91. package/fontes/estruturas/instancia.js.map +0 -1
  92. package/fontes/excecoes/excecao-continuar.d.ts +0 -2
  93. package/fontes/excecoes/excecao-continuar.js +0 -27
  94. package/fontes/excecoes/excecao-continuar.js.map +0 -1
  95. package/fontes/excecoes/excecao-retornar.d.ts +0 -4
  96. package/fontes/excecoes/excecao-retornar.js +0 -30
  97. package/fontes/excecoes/excecao-retornar.js.map +0 -1
  98. package/fontes/excecoes/excecao-sustar.d.ts +0 -2
  99. package/fontes/excecoes/excecao-sustar.js +0 -27
  100. package/fontes/excecoes/excecao-sustar.js.map +0 -1
@@ -36,11 +36,13 @@ var biblioteca_global_1 = __importDefault(require("../../bibliotecas/biblioteca-
36
36
  var importar_biblioteca_1 = __importDefault(require("../../bibliotecas/importar-biblioteca"));
37
37
  var chamavel_1 = require("../../estruturas/chamavel");
38
38
  var funcao_padrao_1 = require("../../estruturas/funcao-padrao");
39
- var classe_1 = require("../../estruturas/classe");
39
+ var delegua_classe_1 = require("../../estruturas/delegua-classe");
40
40
  var funcao_1 = require("../../estruturas/funcao");
41
- var instancia_1 = require("../../estruturas/instancia");
41
+ var objeto_delegua_classe_1 = require("../../estruturas/objeto-delegua-classe");
42
42
  var modulo_1 = require("../../estruturas/modulo");
43
43
  var excecoes_1 = require("../../excecoes");
44
+ var pilha_escopos_execucao_1 = require("../pilha-escopos-execucao");
45
+ var quebras_1 = require("../../quebras");
44
46
  /**
45
47
  * O Interpretador visita todos os elementos complexos gerados pelo analisador sintático (Parser)
46
48
  * e de fato executa a lógica de programação descrita no código.
@@ -49,19 +51,22 @@ var InterpretadorEguaClassico = /** @class */ (function () {
49
51
  function InterpretadorEguaClassico(Delegua, diretorioBase) {
50
52
  this.Delegua = Delegua;
51
53
  this.diretorioBase = diretorioBase;
52
- this.global = new ambiente_1.Ambiente();
53
- this.ambiente = this.global;
54
54
  this.locais = new Map();
55
55
  this.erros = [];
56
- this.global = (0, biblioteca_global_1.default)(this, this.global);
56
+ this.pilhaEscoposExecucao = new pilha_escopos_execucao_1.PilhaEscoposExecucao();
57
+ var escopoExecucao = {
58
+ declaracoes: [],
59
+ declaracaoAtual: 0,
60
+ ambiente: new ambiente_1.Ambiente()
61
+ };
62
+ this.pilhaEscoposExecucao.empilhar(escopoExecucao);
63
+ (0, biblioteca_global_1.default)(this, this.pilhaEscoposExecucao);
57
64
  }
58
65
  InterpretadorEguaClassico.prototype.visitarExpressaoLiteral = function (expressao) {
59
66
  return expressao.valor;
60
67
  };
61
68
  InterpretadorEguaClassico.prototype.avaliar = function (expressao) {
62
- if (expressao.aceitar) {
63
- return expressao.aceitar(this);
64
- }
69
+ return expressao.aceitar(this);
65
70
  };
66
71
  InterpretadorEguaClassico.prototype.visitarExpressaoAgrupamento = function (expressao) {
67
72
  return this.avaliar(expressao.expressao);
@@ -103,27 +108,27 @@ var InterpretadorEguaClassico = /** @class */ (function () {
103
108
  return;
104
109
  throw new excecoes_1.ErroEmTempoDeExecucao(operador, 'Operadores precisam ser números.', operador.linha);
105
110
  };
106
- InterpretadorEguaClassico.prototype.visitarExpressaoBinaria = function (expr) {
107
- var esquerda = this.avaliar(expr.esquerda);
108
- var direita = this.avaliar(expr.direita);
109
- switch (expr.operador.tipo) {
111
+ InterpretadorEguaClassico.prototype.visitarExpressaoBinaria = function (expressao) {
112
+ var esquerda = this.avaliar(expressao.esquerda);
113
+ var direita = this.avaliar(expressao.direita);
114
+ switch (expressao.operador.tipo) {
110
115
  case tipos_de_simbolos_1.default.EXPONENCIACAO:
111
- this.verificarOperandosNumeros(expr.operador, esquerda, direita);
116
+ this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
112
117
  return Math.pow(esquerda, direita);
113
118
  case tipos_de_simbolos_1.default.MAIOR:
114
- this.verificarOperandosNumeros(expr.operador, esquerda, direita);
119
+ this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
115
120
  return Number(esquerda) > Number(direita);
116
121
  case tipos_de_simbolos_1.default.MAIOR_IGUAL:
117
- this.verificarOperandosNumeros(expr.operador, esquerda, direita);
122
+ this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
118
123
  return Number(esquerda) >= Number(direita);
119
124
  case tipos_de_simbolos_1.default.MENOR:
120
- this.verificarOperandosNumeros(expr.operador, esquerda, direita);
125
+ this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
121
126
  return Number(esquerda) < Number(direita);
122
127
  case tipos_de_simbolos_1.default.MENOR_IGUAL:
123
- this.verificarOperandosNumeros(expr.operador, esquerda, direita);
128
+ this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
124
129
  return Number(esquerda) <= Number(direita);
125
130
  case tipos_de_simbolos_1.default.SUBTRACAO:
126
- this.verificarOperandosNumeros(expr.operador, esquerda, direita);
131
+ this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
127
132
  return Number(esquerda) - Number(direita);
128
133
  case tipos_de_simbolos_1.default.ADICAO:
129
134
  if (typeof esquerda === 'number' &&
@@ -134,30 +139,30 @@ var InterpretadorEguaClassico = /** @class */ (function () {
134
139
  typeof direita === 'string') {
135
140
  return String(esquerda) + String(direita);
136
141
  }
137
- throw new excecoes_1.ErroEmTempoDeExecucao(expr.operador, 'Operadores precisam ser dois números ou duas strings.');
142
+ throw new excecoes_1.ErroEmTempoDeExecucao(expressao.operador, 'Operadores precisam ser dois números ou duas strings.');
138
143
  case tipos_de_simbolos_1.default.DIVISAO:
139
- this.verificarOperandosNumeros(expr.operador, esquerda, direita);
144
+ this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
140
145
  return Number(esquerda) / Number(direita);
141
146
  case tipos_de_simbolos_1.default.MULTIPLICACAO:
142
- this.verificarOperandosNumeros(expr.operador, esquerda, direita);
147
+ this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
143
148
  return Number(esquerda) * Number(direita);
144
149
  case tipos_de_simbolos_1.default.MODULO:
145
- this.verificarOperandosNumeros(expr.operador, esquerda, direita);
150
+ this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
146
151
  return Number(esquerda) % Number(direita);
147
152
  case tipos_de_simbolos_1.default.BIT_AND:
148
- this.verificarOperandosNumeros(expr.operador, esquerda, direita);
153
+ this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
149
154
  return Number(esquerda) & Number(direita);
150
155
  case tipos_de_simbolos_1.default.BIT_XOR:
151
- this.verificarOperandosNumeros(expr.operador, esquerda, direita);
156
+ this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
152
157
  return Number(esquerda) ^ Number(direita);
153
158
  case tipos_de_simbolos_1.default.BIT_OR:
154
- this.verificarOperandosNumeros(expr.operador, esquerda, direita);
159
+ this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
155
160
  return Number(esquerda) | Number(direita);
156
161
  case tipos_de_simbolos_1.default.MENOR_MENOR:
157
- this.verificarOperandosNumeros(expr.operador, esquerda, direita);
162
+ this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
158
163
  return Number(esquerda) << Number(direita);
159
164
  case tipos_de_simbolos_1.default.MAIOR_MAIOR:
160
- this.verificarOperandosNumeros(expr.operador, esquerda, direita);
165
+ this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
161
166
  return Number(esquerda) >> Number(direita);
162
167
  case tipos_de_simbolos_1.default.DIFERENTE:
163
168
  return !this.eIgual(esquerda, direita);
@@ -179,7 +184,7 @@ var InterpretadorEguaClassico = /** @class */ (function () {
179
184
  if (entidadeChamada instanceof funcao_1.DeleguaFuncao) {
180
185
  parametros = entidadeChamada.declaracao.parametros;
181
186
  }
182
- else if (entidadeChamada instanceof classe_1.DeleguaClasse) {
187
+ else if (entidadeChamada instanceof delegua_classe_1.DeleguaClasse) {
183
188
  parametros = entidadeChamada.metodos.init
184
189
  ? entidadeChamada.metodos.init.declaracao.parametros
185
190
  : [];
@@ -197,36 +202,24 @@ var InterpretadorEguaClassico = /** @class */ (function () {
197
202
  else {
198
203
  if (parametros &&
199
204
  parametros.length > 0 &&
200
- parametros[parametros.length - 1]['tipo'] === 'wildcard') {
205
+ parametros[parametros.length - 1]['tipo'] === 'estrela') {
201
206
  var novosArgumentos = argumentos.slice(0, parametros.length - 1);
202
207
  novosArgumentos.push(argumentos.slice(parametros.length - 1, argumentos.length));
203
208
  argumentos = novosArgumentos;
204
209
  }
205
210
  }
206
211
  if (entidadeChamada instanceof funcao_padrao_1.FuncaoPadrao) {
207
- return entidadeChamada.chamar(this, argumentos, expressao.entidadeChamada.nome);
212
+ return entidadeChamada.chamar(argumentos, expressao.entidadeChamada.nome);
208
213
  }
209
214
  return entidadeChamada.chamar(this, argumentos);
210
215
  };
211
216
  InterpretadorEguaClassico.prototype.visitarExpressaoDeAtribuicao = function (expressao) {
212
217
  var valor = this.avaliar(expressao.valor);
213
- var distancia = this.locais.get(expressao);
214
- if (distancia !== undefined) {
215
- this.ambiente.atribuirVariavelEm(distancia, expressao.simbolo, valor);
216
- }
217
- else {
218
- this.ambiente.atribuirVariavel(expressao.simbolo, valor);
219
- }
218
+ this.pilhaEscoposExecucao.atribuirVariavel(expressao.simbolo, valor);
220
219
  return valor;
221
220
  };
222
- InterpretadorEguaClassico.prototype.procurarVariavel = function (simbolo, expr) {
223
- var distancia = this.locais.get(expr);
224
- if (distancia !== undefined) {
225
- return this.ambiente.obterVariavelEm(distancia, simbolo.lexema);
226
- }
227
- else {
228
- return this.global.obterVariavel(simbolo);
229
- }
221
+ InterpretadorEguaClassico.prototype.procurarVariavel = function (simbolo, expressao) {
222
+ return this.pilhaEscoposExecucao.obterVariavel(simbolo);
230
223
  };
231
224
  InterpretadorEguaClassico.prototype.visitarExpressaoDeVariavel = function (expressao) {
232
225
  return this.procurarVariavel(expressao.simbolo, expressao);
@@ -291,14 +284,7 @@ var InterpretadorEguaClassico = /** @class */ (function () {
291
284
  this.executar(declaracao.corpo);
292
285
  }
293
286
  catch (erro) {
294
- if (erro instanceof excecoes_1.ExcecaoSustar) {
295
- break;
296
- }
297
- else if (erro instanceof excecoes_1.ExcecaoContinuar) {
298
- }
299
- else {
300
- throw erro;
301
- }
287
+ throw erro;
302
288
  }
303
289
  if (declaracao.incrementar !== null) {
304
290
  this.avaliar(declaracao.incrementar);
@@ -312,14 +298,7 @@ var InterpretadorEguaClassico = /** @class */ (function () {
312
298
  this.executar(declaracao.caminhoFazer);
313
299
  }
314
300
  catch (erro) {
315
- if (erro instanceof excecoes_1.ExcecaoSustar) {
316
- break;
317
- }
318
- else if (erro instanceof excecoes_1.ExcecaoContinuar) {
319
- }
320
- else {
321
- throw erro;
322
- }
301
+ throw erro;
323
302
  }
324
303
  } while (this.eVerdadeiro(this.avaliar(declaracao.condicaoEnquanto)));
325
304
  };
@@ -331,8 +310,8 @@ var InterpretadorEguaClassico = /** @class */ (function () {
331
310
  try {
332
311
  for (var i = 0; i < caminhos.length; i++) {
333
312
  var caminho_1 = caminhos[i];
334
- for (var j = 0; j < caminho_1.conditions.length; j++) {
335
- if (this.avaliar(caminho_1.conditions[j]) === condicaoEscolha) {
313
+ for (var j = 0; j < caminho_1.condicoes.length; j++) {
314
+ if (this.avaliar(caminho_1.condicoes[j]) === condicaoEscolha) {
336
315
  encontrado = true;
337
316
  try {
338
317
  for (var k = 0; k < caminho_1.declaracoes.length; k++) {
@@ -340,11 +319,7 @@ var InterpretadorEguaClassico = /** @class */ (function () {
340
319
  }
341
320
  }
342
321
  catch (erro) {
343
- if (erro instanceof excecoes_1.ExcecaoContinuar) {
344
- }
345
- else {
346
- throw erro;
347
- }
322
+ throw erro;
348
323
  }
349
324
  }
350
325
  }
@@ -356,32 +331,31 @@ var InterpretadorEguaClassico = /** @class */ (function () {
356
331
  }
357
332
  }
358
333
  catch (erro) {
359
- if (erro instanceof excecoes_1.ExcecaoSustar) {
360
- }
361
- else {
362
- throw erro;
363
- }
334
+ throw erro;
364
335
  }
365
336
  };
366
337
  InterpretadorEguaClassico.prototype.visitarExpressaoTente = function (declaracao) {
367
338
  try {
368
339
  var sucesso = true;
369
340
  try {
370
- this.executarBloco(declaracao.caminhoTente, new ambiente_1.Ambiente(this.ambiente));
341
+ this.executarBloco(declaracao.caminhoTente);
371
342
  }
372
343
  catch (erro) {
373
344
  sucesso = false;
374
345
  if (declaracao.caminhoPegue !== null) {
375
- this.executarBloco(declaracao.caminhoPegue, new ambiente_1.Ambiente(this.ambiente));
346
+ this.executarBloco(declaracao.caminhoPegue);
347
+ }
348
+ else {
349
+ this.erros.push(erro);
376
350
  }
377
351
  }
378
352
  if (sucesso && declaracao.caminhoSenao !== null) {
379
- this.executarBloco(declaracao.caminhoSenao, new ambiente_1.Ambiente(this.ambiente));
353
+ this.executarBloco(declaracao.caminhoSenao);
380
354
  }
381
355
  }
382
356
  finally {
383
357
  if (declaracao.caminhoFinalmente !== null)
384
- this.executarBloco(declaracao.caminhoFinalmente, new ambiente_1.Ambiente(this.ambiente));
358
+ this.executarBloco(declaracao.caminhoFinalmente);
385
359
  }
386
360
  };
387
361
  InterpretadorEguaClassico.prototype.visitarExpressaoEnquanto = function (declaracao) {
@@ -390,14 +364,7 @@ var InterpretadorEguaClassico = /** @class */ (function () {
390
364
  this.executar(declaracao.corpo);
391
365
  }
392
366
  catch (erro) {
393
- if (erro instanceof excecoes_1.ExcecaoSustar) {
394
- break;
395
- }
396
- else if (erro instanceof excecoes_1.ExcecaoContinuar) {
397
- }
398
- else {
399
- throw erro;
400
- }
367
+ throw erro;
401
368
  }
402
369
  }
403
370
  return null;
@@ -420,7 +387,7 @@ var InterpretadorEguaClassico = /** @class */ (function () {
420
387
  dados = fs.readFileSync(caminhoTotal).toString();
421
388
  var delegua = new delegua_1.Delegua(this.Delegua.dialeto, false, nomeArquivo);
422
389
  delegua.executar(dados);
423
- var exportar = delegua.interpretador.global.valores.exports;
390
+ var exportar = this.pilhaEscoposExecucao.obterTodasDeleguaFuncao();
424
391
  var eDicionario = function (objeto) { return objeto.constructor === Object; };
425
392
  if (eDicionario(exportar)) {
426
393
  var novoModulo = new modulo_1.DeleguaModulo();
@@ -433,30 +400,32 @@ var InterpretadorEguaClassico = /** @class */ (function () {
433
400
  return exportar;
434
401
  };
435
402
  InterpretadorEguaClassico.prototype.visitarExpressaoEscreva = function (declaracao) {
436
- var valor = this.avaliar(declaracao.expressao);
437
- console.log(this.paraTexto(valor));
438
- return null;
439
- };
440
- InterpretadorEguaClassico.prototype.executarBloco = function (declaracoes, ambiente) {
441
- var anterior = this.ambiente;
442
403
  try {
443
- this.ambiente = ambiente;
444
- if (declaracoes && declaracoes.length) {
445
- for (var i = 0; i < declaracoes.length; i++) {
446
- this.executar(declaracoes[i]);
447
- }
448
- }
404
+ var valor = this.avaliar(declaracao.expressao);
405
+ console.log(this.paraTexto(valor));
406
+ return null;
449
407
  }
450
408
  catch (erro) {
451
- // TODO: try sem catch é uma roubada total. Implementar uma forma de quebra de fluxo sem exceção.
452
- throw erro;
453
- }
454
- finally {
455
- this.ambiente = anterior;
409
+ this.erros.push(erro);
456
410
  }
457
411
  };
412
+ /**
413
+ * Empilha declarações na pilha de escopos de execução, cria um novo ambiente e
414
+ * executa as declarações empilhadas.
415
+ * @param declaracoes Um vetor de declaracoes a ser executado.
416
+ * @param ambiente O ambiente de execução quando houver, como parâmetros, argumentos, etc.
417
+ */
418
+ InterpretadorEguaClassico.prototype.executarBloco = function (declaracoes, ambiente) {
419
+ var escopoExecucao = {
420
+ declaracoes: declaracoes,
421
+ declaracaoAtual: 0,
422
+ ambiente: ambiente || new ambiente_1.Ambiente()
423
+ };
424
+ this.pilhaEscoposExecucao.empilhar(escopoExecucao);
425
+ return this.executarUltimoEscopo();
426
+ };
458
427
  InterpretadorEguaClassico.prototype.visitarExpressaoBloco = function (declaracao) {
459
- this.executarBloco(declaracao.declaracoes, new ambiente_1.Ambiente(this.ambiente));
428
+ this.executarBloco(declaracao.declaracoes);
460
429
  return null;
461
430
  };
462
431
  InterpretadorEguaClassico.prototype.visitarExpressaoVar = function (declaracao) {
@@ -464,23 +433,23 @@ var InterpretadorEguaClassico = /** @class */ (function () {
464
433
  if (declaracao.inicializador !== null) {
465
434
  valor = this.avaliar(declaracao.inicializador);
466
435
  }
467
- this.ambiente.definirVariavel(declaracao.simbolo.lexema, valor);
436
+ this.pilhaEscoposExecucao.definirVariavel(declaracao.simbolo.lexema, valor);
468
437
  return null;
469
438
  };
470
439
  InterpretadorEguaClassico.prototype.visitarExpressaoContinua = function (declaracao) {
471
- throw new excecoes_1.ExcecaoContinuar();
440
+ return new quebras_1.ContinuarQuebra();
472
441
  };
473
442
  InterpretadorEguaClassico.prototype.visitarExpressaoSustar = function (declaracao) {
474
- throw new excecoes_1.ExcecaoSustar();
443
+ return new quebras_1.SustarQuebra();
475
444
  };
476
445
  InterpretadorEguaClassico.prototype.visitarExpressaoRetornar = function (declaracao) {
477
446
  var valor = null;
478
447
  if (declaracao.valor != null)
479
448
  valor = this.avaliar(declaracao.valor);
480
- throw new excecoes_1.ExcecaoRetornar(valor);
449
+ return new quebras_1.RetornoQuebra(valor);
481
450
  };
482
451
  InterpretadorEguaClassico.prototype.visitarExpressaoDeleguaFuncao = function (expressao) {
483
- return new funcao_1.DeleguaFuncao(null, expressao, this.ambiente, false);
452
+ return new funcao_1.DeleguaFuncao(null, expressao);
484
453
  };
485
454
  InterpretadorEguaClassico.prototype.visitarExpressaoAtribuicaoSobrescrita = function (expressao) {
486
455
  var objeto = this.avaliar(expressao.objeto);
@@ -498,9 +467,9 @@ var InterpretadorEguaClassico = /** @class */ (function () {
498
467
  objeto[indice] = valor;
499
468
  }
500
469
  else if (objeto.constructor === Object ||
501
- objeto instanceof instancia_1.DeleguaInstancia ||
470
+ objeto instanceof objeto_delegua_classe_1.ObjetoDeleguaClasse ||
502
471
  objeto instanceof funcao_1.DeleguaFuncao ||
503
- objeto instanceof classe_1.DeleguaClasse ||
472
+ objeto instanceof delegua_classe_1.DeleguaClasse ||
504
473
  objeto instanceof modulo_1.DeleguaModulo) {
505
474
  objeto[indice] = valor;
506
475
  }
@@ -526,9 +495,9 @@ var InterpretadorEguaClassico = /** @class */ (function () {
526
495
  return objeto[indice];
527
496
  }
528
497
  else if (objeto.constructor === Object ||
529
- objeto instanceof instancia_1.DeleguaInstancia ||
498
+ objeto instanceof objeto_delegua_classe_1.ObjetoDeleguaClasse ||
530
499
  objeto instanceof funcao_1.DeleguaFuncao ||
531
- objeto instanceof classe_1.DeleguaClasse ||
500
+ objeto instanceof delegua_classe_1.DeleguaClasse ||
532
501
  objeto instanceof modulo_1.DeleguaModulo) {
533
502
  return objeto[indice] || null;
534
503
  }
@@ -552,12 +521,12 @@ var InterpretadorEguaClassico = /** @class */ (function () {
552
521
  };
553
522
  InterpretadorEguaClassico.prototype.visitarExpressaoDefinir = function (expressao) {
554
523
  var objeto = this.avaliar(expressao.objeto);
555
- if (!(objeto instanceof instancia_1.DeleguaInstancia) &&
524
+ if (!(objeto instanceof objeto_delegua_classe_1.ObjetoDeleguaClasse) &&
556
525
  objeto.constructor !== Object) {
557
526
  throw new excecoes_1.ErroEmTempoDeExecucao(expressao.objeto.nome, 'Somente instâncias e dicionários podem possuir campos.', expressao.linha);
558
527
  }
559
528
  var valor = this.avaliar(expressao.valor);
560
- if (objeto instanceof instancia_1.DeleguaInstancia) {
529
+ if (objeto instanceof objeto_delegua_classe_1.ObjetoDeleguaClasse) {
561
530
  objeto.set(expressao.nome, valor);
562
531
  return valor;
563
532
  }
@@ -566,40 +535,40 @@ var InterpretadorEguaClassico = /** @class */ (function () {
566
535
  }
567
536
  };
568
537
  InterpretadorEguaClassico.prototype.visitarExpressaoFuncao = function (declaracao) {
569
- var funcao = new funcao_1.DeleguaFuncao(declaracao.simbolo.lexema, declaracao.funcao, this.ambiente, false);
570
- this.ambiente.definirVariavel(declaracao.simbolo.lexema, funcao);
538
+ var funcao = new funcao_1.DeleguaFuncao(declaracao.simbolo.lexema, declaracao.funcao);
539
+ this.pilhaEscoposExecucao.definirVariavel(declaracao.simbolo.lexema, funcao);
571
540
  };
572
541
  InterpretadorEguaClassico.prototype.visitarExpressaoClasse = function (declaracao) {
573
542
  var superClasse = null;
574
543
  if (declaracao.superClasse !== null) {
575
544
  superClasse = this.avaliar(declaracao.superClasse);
576
- if (!(superClasse instanceof classe_1.DeleguaClasse)) {
545
+ if (!(superClasse instanceof delegua_classe_1.DeleguaClasse)) {
577
546
  throw new excecoes_1.ErroEmTempoDeExecucao(declaracao.superClasse.nome, 'SuperClasse precisa ser uma classe.', declaracao.linha);
578
547
  }
579
548
  }
580
- this.ambiente.definirVariavel(declaracao.simbolo.lexema, null);
549
+ this.pilhaEscoposExecucao.definirVariavel(declaracao.simbolo.lexema, null);
581
550
  if (declaracao.superClasse !== null) {
582
- this.ambiente = new ambiente_1.Ambiente(this.ambiente);
583
- this.ambiente.definirVariavel('super', superClasse);
551
+ this.pilhaEscoposExecucao.definirVariavel('super', superClasse);
584
552
  }
585
553
  var metodos = {};
586
554
  var definirMetodos = declaracao.metodos;
587
555
  for (var i = 0; i < declaracao.metodos.length; i++) {
588
556
  var metodoAtual = definirMetodos[i];
589
- var eInicializado = metodoAtual.simbolo.lexema === 'construtor';
590
- var funcao = new funcao_1.DeleguaFuncao(metodoAtual.simbolo.lexema, metodoAtual.funcao, this.ambiente, eInicializado);
557
+ var eInicializador = metodoAtual.simbolo.lexema === 'construtor';
558
+ var funcao = new funcao_1.DeleguaFuncao(metodoAtual.simbolo.lexema, metodoAtual.funcao, undefined, eInicializador);
591
559
  metodos[metodoAtual.simbolo.lexema] = funcao;
592
560
  }
593
- var criado = new classe_1.DeleguaClasse(declaracao.simbolo.lexema, superClasse, metodos);
594
- if (superClasse !== null) {
561
+ var criado = new delegua_classe_1.DeleguaClasse(declaracao.simbolo.lexema, superClasse, metodos);
562
+ // TODO: Recolocar isso se for necessário.
563
+ /* if (superClasse !== null) {
595
564
  this.ambiente = this.ambiente.enclosing;
596
- }
597
- this.ambiente.atribuirVariavel(declaracao.simbolo, criado);
565
+ } */
566
+ this.pilhaEscoposExecucao.atribuirVariavel(declaracao.simbolo, criado);
598
567
  return null;
599
568
  };
600
569
  InterpretadorEguaClassico.prototype.visitarExpressaoAcessoMetodo = function (expressao) {
601
570
  var objeto = this.avaliar(expressao.objeto);
602
- if (objeto instanceof instancia_1.DeleguaInstancia) {
571
+ if (objeto instanceof objeto_delegua_classe_1.ObjetoDeleguaClasse) {
603
572
  return objeto.get(expressao.simbolo) || null;
604
573
  }
605
574
  else if (objeto.constructor === Object) {
@@ -629,13 +598,13 @@ var InterpretadorEguaClassico = /** @class */ (function () {
629
598
  };
630
599
  InterpretadorEguaClassico.prototype.visitarExpressaoSuper = function (expressao) {
631
600
  var distancia = this.locais.get(expressao);
632
- var superClasse = this.ambiente.obterVariavelEm(distancia, 'super');
633
- var objeto = this.ambiente.obterVariavelEm(distancia - 1, 'isto');
601
+ var superClasse = this.pilhaEscoposExecucao.obterVariavelEm(distancia, 'super');
602
+ var objeto = this.pilhaEscoposExecucao.obterVariavelEm(distancia - 1, 'isto');
634
603
  var metodo = superClasse.encontrarMetodo(expressao.metodo.lexema);
635
604
  if (metodo === undefined) {
636
605
  throw new excecoes_1.ErroEmTempoDeExecucao(expressao.metodo, 'Método chamado indefinido.', expressao.linha);
637
606
  }
638
- return metodo.definirEscopo(objeto);
607
+ return metodo.definirInstancia(objeto);
639
608
  };
640
609
  InterpretadorEguaClassico.prototype.paraTexto = function (objeto) {
641
610
  if (objeto === null)
@@ -654,24 +623,37 @@ var InterpretadorEguaClassico = /** @class */ (function () {
654
623
  return objeto;
655
624
  if (typeof objeto === 'object')
656
625
  return JSON.stringify(objeto);
626
+ if (objeto === undefined) {
627
+ return 'nulo';
628
+ }
657
629
  return objeto.toString();
658
630
  };
659
631
  InterpretadorEguaClassico.prototype.executar = function (declaracao, mostrarResultado) {
660
632
  if (mostrarResultado === void 0) { mostrarResultado = false; }
661
633
  declaracao.aceitar(this);
662
634
  };
663
- InterpretadorEguaClassico.prototype.interpretar = function (declaracoes) {
664
- this.erros = [];
665
- var retornoResolvedor = this.Delegua.resolvedor.resolver(declaracoes);
666
- this.locais = retornoResolvedor.locais;
635
+ InterpretadorEguaClassico.prototype.executarUltimoEscopo = function () {
636
+ var ultimoEscopo = this.pilhaEscoposExecucao.topoDaPilha();
667
637
  try {
668
- for (var i = 0; i < declaracoes.length; i++) {
669
- this.executar(declaracoes[i], false);
638
+ for (; ultimoEscopo.declaracaoAtual < ultimoEscopo.declaracoes.length; ultimoEscopo.declaracaoAtual++) {
639
+ this.executar(ultimoEscopo.declaracoes[ultimoEscopo.declaracaoAtual]);
670
640
  }
671
641
  }
672
- catch (erro) {
673
- this.erros.push(erro);
642
+ finally {
643
+ this.pilhaEscoposExecucao.removerUltimo();
674
644
  }
645
+ };
646
+ InterpretadorEguaClassico.prototype.interpretar = function (declaracoes) {
647
+ this.erros = [];
648
+ var retornoResolvedor = this.Delegua.resolvedor.resolver(declaracoes);
649
+ this.locais = retornoResolvedor.locais;
650
+ var escopoExecucao = {
651
+ declaracoes: declaracoes,
652
+ declaracaoAtual: 0,
653
+ ambiente: new ambiente_1.Ambiente()
654
+ };
655
+ this.pilhaEscoposExecucao.empilhar(escopoExecucao);
656
+ this.executarUltimoEscopo();
675
657
  return {
676
658
  erros: this.erros
677
659
  };
@@ -1 +1 @@
1
- {"version":3,"file":"egua-classico.js","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/egua-classico.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"egua-classico.js","sourceRoot":"","sources":["../../../../fontes/interpretador/dialetos/egua-classico.ts"],"names":[],"mappings":"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"}