@designliquido/delegua 0.5.4 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +7 -1
  2. package/bin/package.json +9 -2
  3. package/fontes/ambiente.d.ts +4 -1
  4. package/fontes/ambiente.js.map +1 -1
  5. package/fontes/bibliotecas/biblioteca-global.js +37 -28
  6. package/fontes/bibliotecas/biblioteca-global.js.map +1 -1
  7. package/fontes/bibliotecas/importar-biblioteca.js +18 -1
  8. package/fontes/bibliotecas/importar-biblioteca.js.map +1 -1
  9. package/fontes/construtos/acesso-indice-variavel.d.ts +4 -3
  10. package/fontes/construtos/acesso-indice-variavel.js.map +1 -1
  11. package/fontes/construtos/acesso-metodo.d.ts +2 -2
  12. package/fontes/construtos/acesso-metodo.js.map +1 -1
  13. package/fontes/construtos/agrupamento.d.ts +2 -2
  14. package/fontes/construtos/agrupamento.js.map +1 -1
  15. package/fontes/construtos/atribuir.d.ts +2 -2
  16. package/fontes/construtos/atribuir.js.map +1 -1
  17. package/fontes/construtos/binario.d.ts +2 -2
  18. package/fontes/construtos/binario.js.map +1 -1
  19. package/fontes/construtos/chamada.d.ts +2 -2
  20. package/fontes/construtos/chamada.js.map +1 -1
  21. package/fontes/construtos/literal.d.ts +2 -2
  22. package/fontes/construtos/literal.js.map +1 -1
  23. package/fontes/construtos/variavel.d.ts +2 -2
  24. package/fontes/construtos/variavel.js.map +1 -1
  25. package/fontes/declaracoes/bloco.d.ts +2 -2
  26. package/fontes/declaracoes/bloco.js.map +1 -1
  27. package/fontes/declaracoes/escreva.d.ts +2 -2
  28. package/fontes/declaracoes/escreva.js.map +1 -1
  29. package/fontes/declaracoes/expressao.d.ts +2 -2
  30. package/fontes/declaracoes/expressao.js.map +1 -1
  31. package/fontes/declaracoes/funcao.d.ts +2 -2
  32. package/fontes/declaracoes/funcao.js.map +1 -1
  33. package/fontes/declaracoes/retorna.d.ts +2 -2
  34. package/fontes/declaracoes/retorna.js.map +1 -1
  35. package/fontes/declaracoes/se.d.ts +2 -2
  36. package/fontes/declaracoes/se.js.map +1 -1
  37. package/fontes/declaracoes/sustar.d.ts +2 -2
  38. package/fontes/declaracoes/sustar.js.map +1 -1
  39. package/fontes/declaracoes/tente.d.ts +2 -2
  40. package/fontes/declaracoes/tente.js.map +1 -1
  41. package/fontes/declaracoes/var.d.ts +2 -2
  42. package/fontes/declaracoes/var.js.map +1 -1
  43. package/fontes/delegua.d.ts +0 -2
  44. package/fontes/delegua.js +6 -10
  45. package/fontes/delegua.js.map +1 -1
  46. package/fontes/estruturas/delegua-classe.d.ts +4 -2
  47. package/fontes/estruturas/funcao.js +1 -1
  48. package/fontes/estruturas/funcao.js.map +1 -1
  49. package/fontes/interfaces/delegua-interface.d.ts +1 -2
  50. package/fontes/interfaces/index.d.ts +1 -0
  51. package/fontes/interfaces/index.js +1 -0
  52. package/fontes/interfaces/index.js.map +1 -1
  53. package/fontes/interfaces/interpretador-interface.d.ts +1 -2
  54. package/fontes/interfaces/pilha-escopos-execucao-interface.d.ts +6 -4
  55. package/fontes/interfaces/variavel-interface.d.ts +4 -0
  56. package/fontes/interfaces/variavel-interface.js +3 -0
  57. package/fontes/interfaces/variavel-interface.js.map +1 -0
  58. package/fontes/interpretador/dialetos/egua-classico.d.ts +22 -13
  59. package/fontes/interpretador/dialetos/egua-classico.js +69 -43
  60. package/fontes/interpretador/dialetos/egua-classico.js.map +1 -1
  61. package/fontes/interpretador/inferenciador.d.ts +1 -0
  62. package/fontes/interpretador/inferenciador.js +26 -0
  63. package/fontes/interpretador/inferenciador.js.map +1 -0
  64. package/fontes/interpretador/interpretador-com-depuracao.d.ts +2 -2
  65. package/fontes/interpretador/interpretador-com-depuracao.js +2 -2
  66. package/fontes/interpretador/interpretador-com-depuracao.js.map +1 -1
  67. package/fontes/interpretador/interpretador.d.ts +42 -10
  68. package/fontes/interpretador/interpretador.js +96 -49
  69. package/fontes/interpretador/interpretador.js.map +1 -1
  70. package/fontes/interpretador/pilha-escopos-execucao.d.ts +5 -4
  71. package/fontes/interpretador/pilha-escopos-execucao.js +18 -5
  72. package/fontes/interpretador/pilha-escopos-execucao.js.map +1 -1
  73. package/fontes/lexador/dialetos/lexador-egua-classico.js +1 -0
  74. package/fontes/lexador/dialetos/lexador-egua-classico.js.map +1 -1
  75. package/fontes/resolvedor/index.d.ts +0 -1
  76. package/fontes/resolvedor/index.js +0 -1
  77. package/fontes/resolvedor/index.js.map +1 -1
  78. package/package.json +9 -2
  79. package/testes/__mocks__/estatistica.d.ts +2 -0
  80. package/testes/__mocks__/estatistica.js +4 -0
  81. package/testes/__mocks__/estatistica.js.map +1 -0
  82. package/testes/__mocks__/fisica.d.ts +2 -0
  83. package/testes/__mocks__/fisica.js +4 -0
  84. package/testes/__mocks__/fisica.js.map +1 -0
  85. package/testes/__mocks__/matematica.d.ts +2 -0
  86. package/testes/__mocks__/matematica.js +4 -0
  87. package/testes/__mocks__/matematica.js.map +1 -0
  88. package/testes/biblioteca-global.test.js +10 -0
  89. package/testes/biblioteca-global.test.js.map +1 -1
  90. package/testes/egua-classico/interpretador.test.js +1 -1
  91. package/testes/egua-classico/interpretador.test.js.map +1 -1
  92. package/testes/egua-classico/resolvedor.test.js +18 -19
  93. package/testes/egua-classico/resolvedor.test.js.map +1 -1
  94. package/testes/interpretador.test.js +64 -0
  95. package/testes/interpretador.test.js.map +1 -1
  96. package/fontes/resolvedor/resolvedor.d.ts +0 -64
  97. package/fontes/resolvedor/resolvedor.js +0 -345
  98. package/fontes/resolvedor/resolvedor.js.map +0 -1
  99. package/testes/eguap/resolvedor.test.d.ts +0 -1
  100. package/testes/eguap/resolvedor.test.js +0 -38
  101. package/testes/eguap/resolvedor.test.js.map +0 -1
  102. package/testes/resolvedor.test.d.ts +0 -1
  103. package/testes/resolvedor.test.js +0 -35
  104. package/testes/resolvedor.test.js.map +0 -1
package/fontes/delegua.js CHANGED
@@ -33,18 +33,17 @@ var readline = __importStar(require("readline"));
33
33
  var chalk_1 = __importDefault(require("chalk"));
34
34
  var lexador_1 = require("./lexador/lexador");
35
35
  var avaliador_sintatico_1 = require("./avaliador-sintatico/avaliador-sintatico");
36
- var resolvedor_1 = require("./resolvedor");
37
36
  var interpretador_1 = require("./interpretador/interpretador");
38
37
  var tipos_de_simbolos_1 = __importDefault(require("./tipos-de-simbolos"));
39
38
  var egua_classico_1 = require("./interpretador/dialetos/egua-classico");
40
39
  var lexador_egua_classico_1 = require("./lexador/dialetos/lexador-egua-classico");
41
40
  var lexador_eguap_1 = require("./lexador/dialetos/lexador-eguap");
42
41
  var avaliador_sintatico_eguap_1 = require("./avaliador-sintatico/dialetos/avaliador-sintatico-eguap");
43
- var egua_classico_2 = require("./resolvedor/dialetos/egua-classico");
44
42
  var dialetos_1 = require("./avaliador-sintatico/dialetos");
45
43
  var depuracao_1 = require("./depuracao");
46
44
  var importador_1 = require("./importador");
47
45
  var interpretador_com_depuracao_1 = require("./interpretador/interpretador-com-depuracao");
46
+ var dialetos_2 = require("./resolvedor/dialetos");
48
47
  /**
49
48
  * O núcleo da linguagem.
50
49
  *
@@ -66,31 +65,28 @@ var Delegua = /** @class */ (function () {
66
65
  if (depurador) {
67
66
  throw new Error("Dialeto " + this.dialeto + " não suporta depuração.");
68
67
  }
69
- this.resolvedor = new egua_classico_2.ResolvedorEguaClassico();
70
68
  this.lexador = new lexador_egua_classico_1.LexadorEguaClassico();
71
69
  this.avaliadorSintatico = new dialetos_1.AvaliadorSintaticoEguaClassico();
72
70
  this.importador = new importador_1.Importador(this.lexador, this.avaliadorSintatico, this.arquivosAbertos, this.conteudoArquivosAbertos, depurador);
73
- this.interpretador = new egua_classico_1.InterpretadorEguaClassico(this, process.cwd());
71
+ this.interpretador = new egua_classico_1.InterpretadorEguaClassico(this, new dialetos_2.ResolvedorEguaClassico(), process.cwd());
74
72
  console.log('Usando dialeto: Égua');
75
73
  break;
76
74
  case 'eguap':
77
- this.resolvedor = new resolvedor_1.Resolvedor();
78
75
  this.lexador = new lexador_eguap_1.LexadorEguaP();
79
76
  this.avaliadorSintatico = new avaliador_sintatico_eguap_1.AvaliadorSintaticoEguaP();
80
77
  this.importador = new importador_1.Importador(this.lexador, this.avaliadorSintatico, this.arquivosAbertos, this.conteudoArquivosAbertos, depurador);
81
78
  this.interpretador = depurador ?
82
- new interpretador_com_depuracao_1.InterpretadorComDepuracao(this.importador, this.resolvedor, process.cwd(), funcaoDeRetorno) :
83
- new interpretador_1.Interpretador(this.importador, this.resolvedor, process.cwd(), performance, funcaoDeRetorno);
79
+ new interpretador_com_depuracao_1.InterpretadorComDepuracao(this.importador, process.cwd(), funcaoDeRetorno) :
80
+ new interpretador_1.Interpretador(this.importador, process.cwd(), performance, funcaoDeRetorno);
84
81
  console.log('Usando dialeto: ÉguaP');
85
82
  break;
86
83
  default:
87
- this.resolvedor = new resolvedor_1.Resolvedor();
88
84
  this.lexador = new lexador_1.Lexador(performance);
89
85
  this.avaliadorSintatico = new avaliador_sintatico_1.AvaliadorSintatico(performance);
90
86
  this.importador = new importador_1.Importador(this.lexador, this.avaliadorSintatico, this.arquivosAbertos, this.conteudoArquivosAbertos, depurador);
91
87
  this.interpretador = depurador ?
92
- new interpretador_com_depuracao_1.InterpretadorComDepuracao(this.importador, this.resolvedor, process.cwd(), funcaoDeRetorno) :
93
- new interpretador_1.Interpretador(this.importador, this.resolvedor, process.cwd(), performance, funcaoDeRetorno);
88
+ new interpretador_com_depuracao_1.InterpretadorComDepuracao(this.importador, process.cwd(), funcaoDeRetorno) :
89
+ new interpretador_1.Interpretador(this.importador, process.cwd(), performance, funcaoDeRetorno);
94
90
  console.log('Usando dialeto: padrão');
95
91
  break;
96
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"delegua.js","sourceRoot":"","sources":["../../fontes/delegua.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delegua.js","sourceRoot":"","sources":["../../fontes/delegua.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,10 @@ import { DeleguaFuncao } from "./funcao";
4
4
  import { ObjetoDeleguaClasse } from "./objeto-delegua-classe";
5
5
  export declare class DeleguaClasse extends Chamavel {
6
6
  nome: string;
7
- superClasse: any;
8
- metodos: any;
7
+ superClasse: DeleguaClasse;
8
+ metodos: {
9
+ [nome: string]: DeleguaFuncao;
10
+ };
9
11
  constructor(nome?: string, superClasse?: any, metodos?: any);
10
12
  encontrarMetodo(nome: string): DeleguaFuncao;
11
13
  paraTexto(): string;
@@ -55,7 +55,7 @@ var DeleguaFuncao = /** @class */ (function (_super) {
55
55
  }
56
56
  }
57
57
  if (this.instancia !== undefined) {
58
- ambiente.valores['isto'] = this.instancia;
58
+ ambiente.valores['isto'] = { valor: this.instancia, tipo: "objeto" };
59
59
  }
60
60
  var retornoBloco = interpretador.executarBloco(this.declaracao.corpo, ambiente);
61
61
  if (retornoBloco instanceof quebras_1.RetornoQuebra) {
@@ -1 +1 @@
1
- {"version":3,"file":"funcao.js","sourceRoot":"","sources":["../../../fontes/estruturas/funcao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,uCAAsC;AACtC,wCAAuC;AAGvC,sCAA2C;AAG3C;IAAmC,iCAAQ;IAMvC,uBAAY,IAAY,EAAE,UAAe,EAAE,SAA0C,EAAE,cAAsB;QAAlE,0BAAA,EAAA,qBAA0C;QAAE,+BAAA,EAAA,sBAAsB;QAA7G,YACI,iBAAO,SAKV;QAJG,KAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,KAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,KAAI,CAAC,cAAc,GAAG,cAAc,CAAC;;IACzC,CAAC;IAED,+BAAO,GAAP;;QACI,OAAO,CAAA,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,UAAU,0CAAE,MAAM,KAAI,CAAC,CAAC;IACpD,CAAC;IAED,iCAAS,GAAT;QACI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,UAAU,CAAC;QAC1C,OAAO,4BAAW,IAAI,CAAC,IAAI,MAAG,CAAC;IACnC,CAAC;IAED,8BAAM,GAAN,UAAO,aAAqC,EAAE,UAAe;QACzD,IAAI,QAAQ,GAAG,IAAI,mBAAQ,EAAE,CAAC;QAC9B,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAE5C,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACxC,IAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAEhC,IAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;gBACtC,IAAI,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;oBACxB,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;iBAClE;gBAED,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;aAClC;SACJ;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAC9B,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;SAC7C;QAED,IAAM,YAAY,GAAQ,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACvF,IAAI,YAAY,YAAY,uBAAa,EAAE;YACvC,OAAO,YAAY,CAAC,KAAK,CAAC;SAC7B;QAED,IAAI,IAAI,CAAC,cAAc,EAAG;YACtB,OAAO,IAAI,CAAC,SAAS,CAAC;SACzB;QAED,OAAO,YAAY,CAAC;IAExB,CAAC;IAED,wCAAgB,GAAhB,UAAiB,SAA8B;QAC3C,OAAO,IAAI,aAAa,CACpB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,UAAU,EACf,SAAS,EACT,IAAI,CAAC,cAAc,CACtB,CAAC;IACN,CAAC;IACL,oBAAC;AAAD,CAAC,AAlED,CAAmC,mBAAQ,GAkE1C;AAlEY,sCAAa"}
1
+ {"version":3,"file":"funcao.js","sourceRoot":"","sources":["../../../fontes/estruturas/funcao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,uCAAsC;AACtC,wCAAuC;AAGvC,sCAA2C;AAG3C;IAAmC,iCAAQ;IAMvC,uBAAY,IAAY,EAAE,UAAe,EAAE,SAA0C,EAAE,cAAsB;QAAlE,0BAAA,EAAA,qBAA0C;QAAE,+BAAA,EAAA,sBAAsB;QAA7G,YACI,iBAAO,SAKV;QAJG,KAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,KAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,KAAI,CAAC,cAAc,GAAG,cAAc,CAAC;;IACzC,CAAC;IAED,+BAAO,GAAP;;QACI,OAAO,CAAA,MAAA,MAAA,IAAI,CAAC,UAAU,0CAAE,UAAU,0CAAE,MAAM,KAAI,CAAC,CAAC;IACpD,CAAC;IAED,iCAAS,GAAT;QACI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,UAAU,CAAC;QAC1C,OAAO,4BAAW,IAAI,CAAC,IAAI,MAAG,CAAC;IACnC,CAAC;IAED,8BAAM,GAAN,UAAO,aAAqC,EAAE,UAAe;QACzD,IAAI,QAAQ,GAAG,IAAI,mBAAQ,EAAE,CAAC;QAC9B,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAE5C,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACxC,IAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAEhC,IAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;gBACtC,IAAI,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;oBACxB,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;iBAClE;gBAED,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;aAClC;SACJ;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;YAC9B,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAC,CAAC;SACvE;QAED,IAAM,YAAY,GAAQ,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACvF,IAAI,YAAY,YAAY,uBAAa,EAAE;YACvC,OAAO,YAAY,CAAC,KAAK,CAAC;SAC7B;QAED,IAAI,IAAI,CAAC,cAAc,EAAG;YACtB,OAAO,IAAI,CAAC,SAAS,CAAC;SACzB;QAED,OAAO,YAAY,CAAC;IAExB,CAAC;IAED,wCAAgB,GAAhB,UAAiB,SAA8B;QAC3C,OAAO,IAAI,aAAa,CACpB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,UAAU,EACf,SAAS,EACT,IAAI,CAAC,cAAc,CACtB,CAAC;IACN,CAAC;IACL,oBAAC;AAAD,CAAC,AAlED,CAAmC,mBAAQ,GAkE1C;AAlEY,sCAAa"}
@@ -1,5 +1,5 @@
1
1
  import { RetornoImportador } from "../importador";
2
- import { AvaliadorSintaticoInterface, ImportadorInterface, InterpretadorComDepuracaoInterface, InterpretadorInterface, LexadorInterface, ResolvedorInterface, RetornoExecucaoInterface, SimboloInterface } from "../interfaces";
2
+ import { AvaliadorSintaticoInterface, ImportadorInterface, InterpretadorComDepuracaoInterface, InterpretadorInterface, LexadorInterface, RetornoExecucaoInterface, SimboloInterface } from "../interfaces";
3
3
  export interface DeleguaInterface {
4
4
  dialeto: string;
5
5
  arquivosAbertos: {
@@ -12,7 +12,6 @@ export interface DeleguaInterface {
12
12
  interpretador: InterpretadorInterface | InterpretadorComDepuracaoInterface;
13
13
  lexador: LexadorInterface;
14
14
  avaliadorSintatico: AvaliadorSintaticoInterface;
15
- resolvedor: ResolvedorInterface;
16
15
  importador: ImportadorInterface;
17
16
  versao(): string;
18
17
  carregarArquivo(caminhoRelativoArquivo: string): void;
@@ -8,3 +8,4 @@ export * from './pilha-interface';
8
8
  export * from './resolvedor-interface';
9
9
  export * from './retornos/retorno-execucao-interface';
10
10
  export * from './simbolo-interface';
11
+ export * from './variavel-interface';
@@ -24,4 +24,5 @@ __exportStar(require("./pilha-interface"), exports);
24
24
  __exportStar(require("./resolvedor-interface"), exports);
25
25
  __exportStar(require("./retornos/retorno-execucao-interface"), exports);
26
26
  __exportStar(require("./simbolo-interface"), exports);
27
+ __exportStar(require("./variavel-interface"), exports);
27
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kEAAgD;AAChD,sDAAoC;AACpC,yDAAuC;AACvC,0EAAwD;AACxD,4DAA0C;AAC1C,sDAAoC;AACpC,oDAAkC;AAClC,yDAAuC;AACvC,wEAAsD;AACtD,sDAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kEAAgD;AAChD,sDAAoC;AACpC,yDAAuC;AACvC,0EAAwD;AACxD,4DAA0C;AAC1C,sDAAoC;AACpC,oDAAkC;AAClC,yDAAuC;AACvC,wEAAsD;AACtD,sDAAoC;AACpC,uDAAqC"}
@@ -1,5 +1,5 @@
1
1
  import { Ambiente } from "../ambiente";
2
- import { Atribuir, Construto, Literal, Super } from "../construtos";
2
+ import { Atribuir, Literal, Super } from "../construtos";
3
3
  import { Bloco, Classe, Continua, Declaracao, Enquanto, Escolha, Escreva, Expressao, Fazer, Funcao, Importar, Para, Retorna, Se, Sustar, Tente, Var } from "../declaracoes";
4
4
  import { ContinuarQuebra, RetornoQuebra, SustarQuebra } from "../quebras";
5
5
  import { PilhaEscoposExecucaoInterface } from "./pilha-escopos-execucao-interface";
@@ -8,7 +8,6 @@ import { SimboloInterface } from "./simbolo-interface";
8
8
  export interface InterpretadorInterface {
9
9
  diretorioBase: any;
10
10
  funcaoDeRetorno: Function;
11
- locais: Map<Construto, number>;
12
11
  pilhaEscoposExecucao: PilhaEscoposExecucaoInterface;
13
12
  visitarExpressaoLiteral(expressao: Literal): any;
14
13
  avaliar(expressao: any): any;
@@ -2,15 +2,17 @@ import { DeleguaFuncao } from "../estruturas";
2
2
  import { EscopoExecucao } from "./escopo-execucao";
3
3
  import { PilhaInterface } from "./pilha-interface";
4
4
  import { SimboloInterface } from "./simbolo-interface";
5
+ import { VariavelInterface } from "./variavel-interface";
5
6
  export interface PilhaEscoposExecucaoInterface extends PilhaInterface<EscopoExecucao> {
6
7
  atribuirVariavel(simbolo: SimboloInterface, valor: any): void;
7
- atribuirVariavelEm(distancia: number, simbolo: any, valor: any): void;
8
+ atribuirVariavelEm(distancia: number, simbolo: SimboloInterface, valor: any): void;
8
9
  definirVariavel(nomeVariavel: string, valor: any): void;
9
10
  elementos(): number;
10
11
  naPosicao(posicao: number): EscopoExecucao;
11
- obterTodasVariaveis(todasVariaveis: any[]): any[];
12
- obterVariavel(simbolo: SimboloInterface): any;
13
- obterVariavelEm(distancia: number, nome: string): any;
12
+ obterTodasVariaveis(todasVariaveis: any[]): VariavelInterface[];
13
+ obterVariavel(simbolo: SimboloInterface): VariavelInterface;
14
+ obterVariavelEm(distancia: number, nome: string): VariavelInterface;
15
+ obterVariavelPorNome(nome: string): VariavelInterface;
14
16
  obterTodasDeleguaFuncao(): {
15
17
  [nome: string]: DeleguaFuncao;
16
18
  };
@@ -0,0 +1,4 @@
1
+ export interface VariavelInterface {
2
+ valor: any;
3
+ tipo: 'texto' | 'número' | "longo" | 'vetor' | 'dicionário' | 'nulo' | 'lógico' | "função" | "símbolo" | "objeto";
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=variavel-interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variavel-interface.js","sourceRoot":"","sources":["../../../fontes/interfaces/variavel-interface.ts"],"names":[],"mappings":""}
@@ -1,9 +1,9 @@
1
1
  import { Ambiente } from '../../ambiente';
2
2
  import { Delegua } from '../../delegua';
3
3
  import { DeleguaFuncao } from '../../estruturas/funcao';
4
- import { InterpretadorInterface, SimboloInterface } from '../../interfaces';
4
+ import { InterpretadorInterface, SimboloInterface, ResolvedorInterface, VariavelInterface } from '../../interfaces';
5
5
  import { Classe, Declaracao, Enquanto, Escolha, Escreva, Expressao, Fazer, Funcao, Importar, Para, Se, Tente, Var } from '../../declaracoes';
6
- import { Atribuir, Construto, Literal, Super, Variavel } from '../../construtos';
6
+ import { AcessoIndiceVariavel, Atribuir, Construto, Literal, Super, Variavel } from '../../construtos';
7
7
  import { RetornoInterpretador } from '../../interfaces/retornos/retorno-interpretador';
8
8
  import { ErroInterpretador } from '../erro-interpretador';
9
9
  import { PilhaEscoposExecucao } from '../pilha-escopos-execucao';
@@ -14,25 +14,26 @@ import { ContinuarQuebra, RetornoQuebra, SustarQuebra } from '../../quebras';
14
14
  */
15
15
  export declare class InterpretadorEguaClassico implements InterpretadorInterface {
16
16
  Delegua: Delegua;
17
+ resolvedor: ResolvedorInterface;
17
18
  diretorioBase: any;
18
19
  funcaoDeRetorno: Function;
19
20
  locais: Map<Construto, number>;
20
21
  erros: ErroInterpretador[];
21
22
  pilhaEscoposExecucao: PilhaEscoposExecucao;
22
- constructor(Delegua: Delegua, diretorioBase: string);
23
+ constructor(Delegua: Delegua, resolvedor: ResolvedorInterface, diretorioBase: string);
23
24
  visitarExpressaoLiteral(expressao: Literal): any;
24
- avaliar(expressao: Construto): any;
25
+ avaliar(expressao: Construto): VariavelInterface | any;
25
26
  visitarExpressaoAgrupamento(expressao: any): any;
26
27
  eVerdadeiro(objeto: any): boolean;
27
28
  verificarOperandoNumero(operador: any, operand: any): void;
28
29
  visitarExpressaoUnaria(expr: any): number | boolean;
29
- eIgual(esquerda: any, direita: any): boolean;
30
- verificarOperandosNumeros(operador: any, direita: any, esquerda: any): void;
31
- visitarExpressaoBinaria(expressao: any): string | number | boolean;
30
+ eIgual(esquerda: VariavelInterface | any, direita: VariavelInterface | any): boolean;
31
+ verificarOperandosNumeros(operador: any, direita: VariavelInterface | any, esquerda: VariavelInterface | any): void;
32
+ visitarExpressaoBinaria(expressao: any): any;
32
33
  visitarExpressaoDeChamada(expressao: any): any;
33
34
  visitarExpressaoDeAtribuicao(expressao: Atribuir): any;
34
- procurarVariavel(simbolo: SimboloInterface, expressao: any): any;
35
- visitarExpressaoDeVariavel(expressao: Variavel): any;
35
+ procurarVariavel(simbolo: SimboloInterface, expressao: any): VariavelInterface;
36
+ visitarExpressaoDeVariavel(expressao: Variavel): VariavelInterface;
36
37
  visitarDeclaracaoDeExpressao(declaracao: Expressao): any;
37
38
  visitarExpressaoLogica(expressao: any): any;
38
39
  visitarExpressaoSe(declaracao: Se): any;
@@ -57,17 +58,25 @@ export declare class InterpretadorEguaClassico implements InterpretadorInterface
57
58
  visitarExpressaoRetornar(declaracao: any): RetornoQuebra;
58
59
  visitarExpressaoDeleguaFuncao(expressao: any): DeleguaFuncao;
59
60
  visitarExpressaoAtribuicaoSobrescrita(expressao: any): void;
60
- visitarExpressaoAcessoIndiceVariavel(expressao: any): any;
61
+ visitarExpressaoAcessoIndiceVariavel(expressao: AcessoIndiceVariavel | any): any;
61
62
  visitarExpressaoDefinir(expressao: any): any;
62
63
  visitarExpressaoFuncao(declaracao: Funcao): void;
63
64
  visitarExpressaoClasse(declaracao: Classe): any;
64
65
  visitarExpressaoAcessoMetodo(expressao: any): any;
65
- visitarExpressaoIsto(expressao: any): any;
66
+ visitarExpressaoIsto(expressao: any): VariavelInterface;
66
67
  visitarExpressaoDicionario(expressao: any): {};
67
68
  visitarExpressaoVetor(expressao: any): any[];
68
69
  visitarExpressaoSuper(expressao: Super): any;
69
70
  paraTexto(objeto: any): any;
70
- executar(declaracao: Declaracao, mostrarResultado?: boolean): void;
71
- executarUltimoEscopo(): void;
71
+ executar(declaracao: Declaracao, mostrarResultado?: boolean): any;
72
+ /**
73
+ * Executa o último escopo empilhado no topo na pilha de escopos do Interpretador.
74
+ * Originalmente, Égua não trabalha com uma pilha de escopos.
75
+ * Essa implementação é derivada do Interpretador de Delégua, mas simulando todos os
76
+ * comportamos do interpretador Égua original.
77
+ * Interpretador Égua: https://github.com/eguatech/egua/blob/master/src/interpreter.js
78
+ * @returns O resultado da execução do escopo, se houver.
79
+ */
80
+ executarUltimoEscopo(): any;
72
81
  interpretar(declaracoes: Declaracao[]): RetornoInterpretador;
73
82
  }
@@ -43,13 +43,15 @@ var modulo_1 = require("../../estruturas/modulo");
43
43
  var excecoes_1 = require("../../excecoes");
44
44
  var pilha_escopos_execucao_1 = require("../pilha-escopos-execucao");
45
45
  var quebras_1 = require("../../quebras");
46
+ var inferenciador_1 = require("../inferenciador");
46
47
  /**
47
48
  * O Interpretador visita todos os elementos complexos gerados pelo analisador sintático (Parser)
48
49
  * e de fato executa a lógica de programação descrita no código.
49
50
  */
50
51
  var InterpretadorEguaClassico = /** @class */ (function () {
51
- function InterpretadorEguaClassico(Delegua, diretorioBase) {
52
+ function InterpretadorEguaClassico(Delegua, resolvedor, diretorioBase) {
52
53
  this.Delegua = Delegua;
54
+ this.resolvedor = resolvedor;
53
55
  this.diretorioBase = diretorioBase;
54
56
  this.funcaoDeRetorno = console.log;
55
57
  this.locais = new Map();
@@ -98,6 +100,13 @@ var InterpretadorEguaClassico = /** @class */ (function () {
98
100
  return null;
99
101
  };
100
102
  InterpretadorEguaClassico.prototype.eIgual = function (esquerda, direita) {
103
+ if (esquerda.tipo) {
104
+ if (esquerda.tipo === "nulo" && direita.tipo && direita.tipo === "nulo")
105
+ return true;
106
+ if (esquerda.tipo === "nulo")
107
+ return false;
108
+ return esquerda.valor === direita.valor;
109
+ }
101
110
  if (esquerda === null && direita === null)
102
111
  return true;
103
112
  if (esquerda === null)
@@ -105,75 +114,82 @@ var InterpretadorEguaClassico = /** @class */ (function () {
105
114
  return esquerda === direita;
106
115
  };
107
116
  InterpretadorEguaClassico.prototype.verificarOperandosNumeros = function (operador, direita, esquerda) {
108
- if (typeof direita === 'number' && typeof esquerda === 'number')
117
+ var tipoDireita = direita.tipo ? direita.tipo : (typeof direita === 'number' ? 'número' : String(NaN));
118
+ var tipoEsquerda = esquerda.tipo ? esquerda.tipo : (typeof esquerda === 'number' ? 'número' : String(NaN));
119
+ if (tipoDireita === "número" && tipoEsquerda === "número")
109
120
  return;
110
121
  throw new excecoes_1.ErroEmTempoDeExecucao(operador, 'Operadores precisam ser números.', operador.linha);
111
122
  };
112
123
  InterpretadorEguaClassico.prototype.visitarExpressaoBinaria = function (expressao) {
113
124
  var esquerda = this.avaliar(expressao.esquerda);
114
125
  var direita = this.avaliar(expressao.direita);
126
+ var valorEsquerdo = esquerda.hasOwnProperty('valor') ? esquerda.valor : esquerda;
127
+ var valorDireito = direita.hasOwnProperty('valor') ? direita.valor : direita;
128
+ var tipoEsquerdo = esquerda.hasOwnProperty('tipo') ? esquerda.tipo : (0, inferenciador_1.inferirTipoVariavel)(esquerda);
129
+ var tipoDireito = direita.hasOwnProperty('tipo') ? direita.tipo : (0, inferenciador_1.inferirTipoVariavel)(direita);
115
130
  switch (expressao.operador.tipo) {
116
131
  case tipos_de_simbolos_1.default.EXPONENCIACAO:
117
132
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
118
- return Math.pow(esquerda, direita);
133
+ return Math.pow(valorEsquerdo, valorDireito);
119
134
  case tipos_de_simbolos_1.default.MAIOR:
120
135
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
121
- return Number(esquerda) > Number(direita);
136
+ return Number(valorEsquerdo) > Number(valorDireito);
122
137
  case tipos_de_simbolos_1.default.MAIOR_IGUAL:
123
138
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
124
- return Number(esquerda) >= Number(direita);
139
+ return Number(valorEsquerdo) >= Number(valorDireito);
125
140
  case tipos_de_simbolos_1.default.MENOR:
126
141
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
127
- return Number(esquerda) < Number(direita);
142
+ return Number(valorEsquerdo) < Number(valorDireito);
128
143
  case tipos_de_simbolos_1.default.MENOR_IGUAL:
129
144
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
130
- return Number(esquerda) <= Number(direita);
145
+ return Number(valorEsquerdo) <= Number(valorDireito);
131
146
  case tipos_de_simbolos_1.default.SUBTRACAO:
132
147
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
133
- return Number(esquerda) - Number(direita);
148
+ return Number(valorEsquerdo) - Number(valorDireito);
134
149
  case tipos_de_simbolos_1.default.ADICAO:
135
- if (typeof esquerda === 'number' &&
136
- typeof direita === 'number') {
150
+ if (tipoEsquerdo === 'número' &&
151
+ tipoDireito === 'número') {
137
152
  return Number(esquerda) + Number(direita);
138
153
  }
139
- else if (typeof esquerda === 'string' &&
140
- typeof direita === 'string') {
154
+ else if (tipoEsquerdo === 'texto' &&
155
+ tipoDireito === 'texto') {
141
156
  return String(esquerda) + String(direita);
142
157
  }
143
158
  throw new excecoes_1.ErroEmTempoDeExecucao(expressao.operador, 'Operadores precisam ser dois números ou duas strings.');
144
159
  case tipos_de_simbolos_1.default.DIVISAO:
145
160
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
146
- return Number(esquerda) / Number(direita);
161
+ return Number(valorEsquerdo) / Number(valorDireito);
147
162
  case tipos_de_simbolos_1.default.MULTIPLICACAO:
148
163
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
149
- return Number(esquerda) * Number(direita);
164
+ return Number(valorEsquerdo) * Number(valorDireito);
150
165
  case tipos_de_simbolos_1.default.MODULO:
151
166
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
152
- return Number(esquerda) % Number(direita);
167
+ return Number(valorEsquerdo) % Number(valorDireito);
153
168
  case tipos_de_simbolos_1.default.BIT_AND:
154
169
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
155
- return Number(esquerda) & Number(direita);
170
+ return Number(valorEsquerdo) & Number(valorDireito);
156
171
  case tipos_de_simbolos_1.default.BIT_XOR:
157
172
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
158
- return Number(esquerda) ^ Number(direita);
173
+ return Number(valorEsquerdo) ^ Number(valorDireito);
159
174
  case tipos_de_simbolos_1.default.BIT_OR:
160
175
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
161
- return Number(esquerda) | Number(direita);
176
+ return Number(valorEsquerdo) | Number(valorDireito);
162
177
  case tipos_de_simbolos_1.default.MENOR_MENOR:
163
178
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
164
- return Number(esquerda) << Number(direita);
179
+ return Number(valorEsquerdo) << Number(valorDireito);
165
180
  case tipos_de_simbolos_1.default.MAIOR_MAIOR:
166
181
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
167
- return Number(esquerda) >> Number(direita);
182
+ return Number(valorEsquerdo) >> Number(valorDireito);
168
183
  case tipos_de_simbolos_1.default.DIFERENTE:
169
- return !this.eIgual(esquerda, direita);
184
+ return !this.eIgual(valorEsquerdo, valorDireito);
170
185
  case tipos_de_simbolos_1.default.IGUAL_IGUAL:
171
- return this.eIgual(esquerda, direita);
186
+ return this.eIgual(valorEsquerdo, valorDireito);
172
187
  }
173
188
  return null;
174
189
  };
175
190
  InterpretadorEguaClassico.prototype.visitarExpressaoDeChamada = function (expressao) {
176
- var entidadeChamada = this.avaliar(expressao.entidadeChamada);
191
+ var variavelEntidadeChamada = this.avaliar(expressao.entidadeChamada);
192
+ var entidadeChamada = variavelEntidadeChamada.valor ? variavelEntidadeChamada.valor : variavelEntidadeChamada;
177
193
  var argumentos = [];
178
194
  for (var i = 0; i < expressao.argumentos.length; i++) {
179
195
  argumentos.push(this.avaliar(expressao.argumentos[i]));
@@ -186,8 +202,8 @@ var InterpretadorEguaClassico = /** @class */ (function () {
186
202
  parametros = entidadeChamada.declaracao.parametros;
187
203
  }
188
204
  else if (entidadeChamada instanceof delegua_classe_1.DeleguaClasse) {
189
- parametros = entidadeChamada.metodos.init
190
- ? entidadeChamada.metodos.init.declaracao.parametros
205
+ parametros = entidadeChamada.metodos.inicializacao
206
+ ? entidadeChamada.metodos.inicializacao.declaracao.parametros
191
207
  : [];
192
208
  }
193
209
  else {
@@ -256,18 +272,16 @@ var InterpretadorEguaClassico = /** @class */ (function () {
256
272
  };
257
273
  InterpretadorEguaClassico.prototype.visitarExpressaoSe = function (declaracao) {
258
274
  if (this.eVerdadeiro(this.avaliar(declaracao.condicao))) {
259
- this.executar(declaracao.caminhoEntao);
260
- return null;
275
+ return this.executar(declaracao.caminhoEntao);
261
276
  }
262
277
  for (var i = 0; i < declaracao.caminhosSeSenao.length; i++) {
263
278
  var atual = declaracao.caminhosSeSenao[i];
264
279
  if (this.eVerdadeiro(this.avaliar(atual.condicao))) {
265
- this.executar(atual.caminho);
266
- return null;
280
+ return this.executar(atual.caminho);
267
281
  }
268
282
  }
269
283
  if (declaracao.caminhoSenao !== null) {
270
- this.executar(declaracao.caminhoSenao);
284
+ return this.executar(declaracao.caminhoSenao);
271
285
  }
272
286
  return null;
273
287
  };
@@ -426,8 +440,7 @@ var InterpretadorEguaClassico = /** @class */ (function () {
426
440
  return this.executarUltimoEscopo();
427
441
  };
428
442
  InterpretadorEguaClassico.prototype.visitarExpressaoBloco = function (declaracao) {
429
- this.executarBloco(declaracao.declaracoes);
430
- return null;
443
+ return this.executarBloco(declaracao.declaracoes);
431
444
  };
432
445
  InterpretadorEguaClassico.prototype.visitarExpressaoVar = function (declaracao) {
433
446
  var valor = null;
@@ -479,7 +492,8 @@ var InterpretadorEguaClassico = /** @class */ (function () {
479
492
  }
480
493
  };
481
494
  InterpretadorEguaClassico.prototype.visitarExpressaoAcessoIndiceVariavel = function (expressao) {
482
- var objeto = this.avaliar(expressao.entidadeChamada);
495
+ var variavelObjeto = this.avaliar(expressao.entidadeChamada);
496
+ var objeto = variavelObjeto.valor ? variavelObjeto.valor : variavelObjeto;
483
497
  var indice = this.avaliar(expressao.indice);
484
498
  if (Array.isArray(objeto)) {
485
499
  if (!Number.isInteger(indice)) {
@@ -542,7 +556,8 @@ var InterpretadorEguaClassico = /** @class */ (function () {
542
556
  InterpretadorEguaClassico.prototype.visitarExpressaoClasse = function (declaracao) {
543
557
  var superClasse = null;
544
558
  if (declaracao.superClasse !== null) {
545
- superClasse = this.avaliar(declaracao.superClasse);
559
+ var variavelSuperClasse = this.avaliar(declaracao.superClasse);
560
+ superClasse = variavelSuperClasse.valor;
546
561
  if (!(superClasse instanceof delegua_classe_1.DeleguaClasse)) {
547
562
  throw new excecoes_1.ErroEmTempoDeExecucao(declaracao.superClasse.nome, 'SuperClasse precisa ser uma classe.', declaracao.linha);
548
563
  }
@@ -559,16 +574,17 @@ var InterpretadorEguaClassico = /** @class */ (function () {
559
574
  var funcao = new funcao_1.DeleguaFuncao(metodoAtual.simbolo.lexema, metodoAtual.funcao, undefined, eInicializador);
560
575
  metodos[metodoAtual.simbolo.lexema] = funcao;
561
576
  }
562
- var criado = new delegua_classe_1.DeleguaClasse(declaracao.simbolo.lexema, superClasse, metodos);
577
+ var deleguaClasse = new delegua_classe_1.DeleguaClasse(declaracao.simbolo.lexema, superClasse, metodos);
563
578
  // TODO: Recolocar isso se for necessário.
564
579
  /* if (superClasse !== null) {
565
580
  this.ambiente = this.ambiente.enclosing;
566
581
  } */
567
- this.pilhaEscoposExecucao.atribuirVariavel(declaracao.simbolo, criado);
582
+ this.pilhaEscoposExecucao.atribuirVariavel(declaracao.simbolo, deleguaClasse);
568
583
  return null;
569
584
  };
570
585
  InterpretadorEguaClassico.prototype.visitarExpressaoAcessoMetodo = function (expressao) {
571
- var objeto = this.avaliar(expressao.objeto);
586
+ var variavelObjeto = this.avaliar(expressao.objeto);
587
+ var objeto = variavelObjeto === null || variavelObjeto === void 0 ? void 0 : variavelObjeto.valor;
572
588
  if (objeto instanceof objeto_delegua_classe_1.ObjetoDeleguaClasse) {
573
589
  return objeto.get(expressao.simbolo) || null;
574
590
  }
@@ -601,11 +617,11 @@ var InterpretadorEguaClassico = /** @class */ (function () {
601
617
  var distancia = this.locais.get(expressao);
602
618
  var superClasse = this.pilhaEscoposExecucao.obterVariavelEm(distancia, 'super');
603
619
  var objeto = this.pilhaEscoposExecucao.obterVariavelEm(distancia - 1, 'isto');
604
- var metodo = superClasse.encontrarMetodo(expressao.metodo.lexema);
620
+ var metodo = superClasse.valor.encontrarMetodo(expressao.metodo.lexema);
605
621
  if (metodo === undefined) {
606
622
  throw new excecoes_1.ErroEmTempoDeExecucao(expressao.metodo, 'Método chamado indefinido.', expressao.linha);
607
623
  }
608
- return metodo.definirInstancia(objeto);
624
+ return metodo.definirInstancia(objeto.valor);
609
625
  };
610
626
  InterpretadorEguaClassico.prototype.paraTexto = function (objeto) {
611
627
  if (objeto === null)
@@ -631,14 +647,24 @@ var InterpretadorEguaClassico = /** @class */ (function () {
631
647
  };
632
648
  InterpretadorEguaClassico.prototype.executar = function (declaracao, mostrarResultado) {
633
649
  if (mostrarResultado === void 0) { mostrarResultado = false; }
634
- declaracao.aceitar(this);
650
+ return declaracao.aceitar(this);
635
651
  };
652
+ /**
653
+ * Executa o último escopo empilhado no topo na pilha de escopos do Interpretador.
654
+ * Originalmente, Égua não trabalha com uma pilha de escopos.
655
+ * Essa implementação é derivada do Interpretador de Delégua, mas simulando todos os
656
+ * comportamos do interpretador Égua original.
657
+ * Interpretador Égua: https://github.com/eguatech/egua/blob/master/src/interpreter.js
658
+ * @returns O resultado da execução do escopo, se houver.
659
+ */
636
660
  InterpretadorEguaClassico.prototype.executarUltimoEscopo = function () {
637
661
  var ultimoEscopo = this.pilhaEscoposExecucao.topoDaPilha();
638
662
  try {
639
- for (; ultimoEscopo.declaracaoAtual < ultimoEscopo.declaracoes.length; ultimoEscopo.declaracaoAtual++) {
640
- this.executar(ultimoEscopo.declaracoes[ultimoEscopo.declaracaoAtual]);
663
+ var retornoExecucao = void 0;
664
+ for (; !(retornoExecucao instanceof quebras_1.Quebra) && ultimoEscopo.declaracaoAtual < ultimoEscopo.declaracoes.length; ultimoEscopo.declaracaoAtual++) {
665
+ retornoExecucao = this.executar(ultimoEscopo.declaracoes[ultimoEscopo.declaracaoAtual]);
641
666
  }
667
+ return retornoExecucao;
642
668
  }
643
669
  finally {
644
670
  this.pilhaEscoposExecucao.removerUltimo();
@@ -646,7 +672,7 @@ var InterpretadorEguaClassico = /** @class */ (function () {
646
672
  };
647
673
  InterpretadorEguaClassico.prototype.interpretar = function (declaracoes) {
648
674
  this.erros = [];
649
- var retornoResolvedor = this.Delegua.resolvedor.resolver(declaracoes);
675
+ var retornoResolvedor = this.resolvedor.resolver(declaracoes);
650
676
  this.locais = retornoResolvedor.locais;
651
677
  var escopoExecucao = {
652
678
  declaracoes: declaracoes,