@designliquido/delegua 0.12.4 → 0.12.6

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/README.md +7 -2
  2. package/bin/package.json +4 -4
  3. package/fontes/avaliador-sintatico/avaliador-sintatico.js +4 -3
  4. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  5. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +7 -6
  6. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js.map +1 -1
  7. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js +11 -11
  8. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js.map +1 -1
  9. package/fontes/avaliador-sintatico/retornos/retorno-declaracao.d.ts +2 -2
  10. package/fontes/bibliotecas/biblioteca-global.js +54 -127
  11. package/fontes/bibliotecas/biblioteca-global.js.map +1 -1
  12. package/fontes/bibliotecas/dialetos/egua-classico/biblioteca-global.js +49 -51
  13. package/fontes/bibliotecas/dialetos/egua-classico/biblioteca-global.js.map +1 -1
  14. package/fontes/bibliotecas/dialetos/egua-classico/index.d.ts +1 -1
  15. package/fontes/bibliotecas/dialetos/egua-classico/index.js +7 -7
  16. package/fontes/bibliotecas/dialetos/egua-classico/index.js.map +1 -1
  17. package/fontes/bibliotecas/dialetos/egua-classico/tempo.js +3 -3
  18. package/fontes/bibliotecas/dialetos/egua-classico/tempo.js.map +1 -1
  19. package/fontes/bibliotecas/dialetos/egua-classico/textos.js +45 -45
  20. package/fontes/bibliotecas/dialetos/egua-classico/textos.js.map +1 -1
  21. package/fontes/bibliotecas/importar-biblioteca.js +4 -3
  22. package/fontes/bibliotecas/importar-biblioteca.js.map +1 -1
  23. package/fontes/bibliotecas/primitivas-texto.js +2 -4
  24. package/fontes/bibliotecas/primitivas-texto.js.map +1 -1
  25. package/fontes/bibliotecas/primitivas-vetor.js +1 -1
  26. package/fontes/bibliotecas/primitivas-vetor.js.map +1 -1
  27. package/fontes/construtos/acesso-indice-variavel.js.map +1 -1
  28. package/fontes/construtos/acesso-metodo.js.map +1 -1
  29. package/fontes/construtos/atribuicao-sobrescrita.js.map +1 -1
  30. package/fontes/construtos/binario.js.map +1 -1
  31. package/fontes/construtos/construto.d.ts +1 -1
  32. package/fontes/construtos/definir-valor.js.map +1 -1
  33. package/fontes/construtos/formatacao-escrita.d.ts +2 -2
  34. package/fontes/construtos/funcao.js.map +1 -1
  35. package/fontes/construtos/logico.js.map +1 -1
  36. package/fontes/construtos/super.js.map +1 -1
  37. package/fontes/construtos/variavel.js.map +1 -1
  38. package/fontes/declaracoes/declaracao.d.ts +1 -1
  39. package/fontes/declaracoes/escolha.js.map +1 -1
  40. package/fontes/declaracoes/fazer.js.map +1 -1
  41. package/fontes/declaracoes/para.js.map +1 -1
  42. package/fontes/delegua.js +3 -2
  43. package/fontes/delegua.js.map +1 -1
  44. package/fontes/depuracao/cyrb53.js +2 -6
  45. package/fontes/depuracao/cyrb53.js.map +1 -1
  46. package/fontes/depuracao/remota/servidor-depuracao.js +15 -47
  47. package/fontes/depuracao/remota/servidor-depuracao.js.map +1 -1
  48. package/fontes/estruturas/delegua-classe.js +1 -3
  49. package/fontes/estruturas/delegua-classe.js.map +1 -1
  50. package/fontes/estruturas/delegua-funcao.js +1 -3
  51. package/fontes/estruturas/delegua-funcao.js.map +1 -1
  52. package/fontes/estruturas/objeto-delegua-classe.js.map +1 -1
  53. package/fontes/formatadores/delegua.d.ts +6 -2
  54. package/fontes/formatadores/delegua.js +34 -12
  55. package/fontes/formatadores/delegua.js.map +1 -1
  56. package/fontes/interfaces/pilha-escopos-execucao-interface.d.ts +1 -0
  57. package/fontes/interfaces/tradutor-interface.d.ts +1 -1
  58. package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +19 -44
  59. package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
  60. package/fontes/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js +2 -4
  61. package/fontes/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js.map +1 -1
  62. package/fontes/interpretador/dialetos/visualg-com-depuracao.d.ts +3 -3
  63. package/fontes/interpretador/dialetos/visualg-com-depuracao.js +1 -3
  64. package/fontes/interpretador/dialetos/visualg-com-depuracao.js.map +1 -1
  65. package/fontes/interpretador/dialetos/visualg.d.ts +3 -3
  66. package/fontes/interpretador/dialetos/visualg.js +1 -3
  67. package/fontes/interpretador/dialetos/visualg.js.map +1 -1
  68. package/fontes/interpretador/inferenciador.js.map +1 -1
  69. package/fontes/interpretador/interpretador-com-depuracao.d.ts +4 -3
  70. package/fontes/interpretador/interpretador-com-depuracao.js +30 -25
  71. package/fontes/interpretador/interpretador-com-depuracao.js.map +1 -1
  72. package/fontes/interpretador/interpretador.d.ts +7 -2
  73. package/fontes/interpretador/interpretador.js +50 -78
  74. package/fontes/interpretador/interpretador.js.map +1 -1
  75. package/fontes/interpretador/pilha-escopos-execucao.d.ts +10 -2
  76. package/fontes/interpretador/pilha-escopos-execucao.js +21 -2
  77. package/fontes/interpretador/pilha-escopos-execucao.js.map +1 -1
  78. package/fontes/lexador/dialetos/lexador-birl.js +1 -3
  79. package/fontes/lexador/dialetos/lexador-birl.js.map +1 -1
  80. package/fontes/lexador/dialetos/lexador-egua-classico.js +4 -11
  81. package/fontes/lexador/dialetos/lexador-egua-classico.js.map +1 -1
  82. package/fontes/lexador/dialetos/lexador-eguap.js +4 -8
  83. package/fontes/lexador/dialetos/lexador-eguap.js.map +1 -1
  84. package/fontes/lexador/dialetos/lexador-visualg.js +4 -9
  85. package/fontes/lexador/dialetos/lexador-visualg.js.map +1 -1
  86. package/fontes/lexador/dialetos/palavras-reservadas/birl.js +1 -1
  87. package/fontes/lexador/dialetos/palavras-reservadas/egua-classico.js +1 -1
  88. package/fontes/lexador/dialetos/palavras-reservadas/visualg.js +1 -1
  89. package/fontes/lexador/lexador.js +2 -5
  90. package/fontes/lexador/lexador.js.map +1 -1
  91. package/fontes/lexador/palavras-reservadas.js +1 -1
  92. package/fontes/lexador/simbolo.js.map +1 -1
  93. package/fontes/tipos-de-simbolos/comum.js +1 -1
  94. package/fontes/tradutores/tradutor-javascript.d.ts +2 -2
  95. package/fontes/tradutores/tradutor-javascript.js +20 -10
  96. package/fontes/tradutores/tradutor-javascript.js.map +1 -1
  97. package/fontes/tradutores/tradutor-reverso-javascript.d.ts +27 -9
  98. package/fontes/tradutores/tradutor-reverso-javascript.js +207 -44
  99. package/fontes/tradutores/tradutor-reverso-javascript.js.map +1 -1
  100. package/package.json +4 -4
@@ -31,7 +31,7 @@ class InterpretadorComDepuracao extends interpretador_1.Interpretador {
31
31
  super(importador, diretorioBase, false, funcaoDeRetorno);
32
32
  this.pontosParada = [];
33
33
  this.pontoDeParadaAtivo = false;
34
- this.avisoPontoParadaAtivado = () => console.log("Aviso: Ponto de parada ativado.");
34
+ this.avisoPontoParadaAtivado = () => console.log('Aviso: Ponto de parada ativado.');
35
35
  this.escopoAtual = 0;
36
36
  this.executandoChamada = false;
37
37
  this.passos = 0;
@@ -42,7 +42,7 @@ class InterpretadorComDepuracao extends interpretador_1.Interpretador {
42
42
  * @returns Uma string com vírgulas escapadas.
43
43
  */
44
44
  escaparVirgulas(valor) {
45
- return String(valor).replace(/,/i, "\,");
45
+ return String(valor).replace(/,/i, ',');
46
46
  }
47
47
  /**
48
48
  * Gera um identificador para resolução de chamadas.
@@ -56,7 +56,7 @@ class InterpretadorComDepuracao extends interpretador_1.Interpretador {
56
56
  for (let argumento of expressao.argumentos) {
57
57
  argumentosResolvidos.push(await this.avaliar(argumento));
58
58
  }
59
- return argumentosResolvidos.reduce((acumulador, argumento) => acumulador += `,${this.escaparVirgulas(argumento.hasOwnProperty('valor') ? argumento.valor : argumento)}`, expressao.id);
59
+ return argumentosResolvidos.reduce((acumulador, argumento) => (acumulador += `,${this.escaparVirgulas(argumento.hasOwnProperty('valor') ? argumento.valor : argumento)}`), expressao.id);
60
60
  }
61
61
  async visitarExpressaoDeChamada(expressao) {
62
62
  const _idChamadaComArgumentos = await this.gerarIdResolucaoChamada(expressao);
@@ -112,9 +112,7 @@ class InterpretadorComDepuracao extends interpretador_1.Interpretador {
112
112
  else {
113
113
  resultadoAvaliacao = await this.avaliar(argumento);
114
114
  }
115
- let valor = (resultadoAvaliacao === null || resultadoAvaliacao === void 0 ? void 0 : resultadoAvaliacao.hasOwnProperty('valor'))
116
- ? resultadoAvaliacao.valor
117
- : resultadoAvaliacao;
115
+ let valor = (resultadoAvaliacao === null || resultadoAvaliacao === void 0 ? void 0 : resultadoAvaliacao.hasOwnProperty('valor')) ? resultadoAvaliacao.valor : resultadoAvaliacao;
118
116
  formatoTexto += `${this.paraTexto(valor)} `;
119
117
  }
120
118
  return formatoTexto;
@@ -139,7 +137,7 @@ class InterpretadorComDepuracao extends interpretador_1.Interpretador {
139
137
  this.erros.push({
140
138
  erroInterno: erro,
141
139
  linha: declaracao.linha,
142
- hashArquivo: declaracao.hashArquivo
140
+ hashArquivo: declaracao.hashArquivo,
143
141
  });
144
142
  }
145
143
  }
@@ -213,8 +211,7 @@ class InterpretadorComDepuracao extends interpretador_1.Interpretador {
213
211
  retornoExecucao = await this.executar(proximoEscopo.declaracoes[proximoEscopo.declaracaoAtual]);
214
212
  proximoEscopo.declaracaoAtual++;
215
213
  for (; !(retornoExecucao instanceof quebras_1.Quebra) &&
216
- proximoEscopo.declaracaoAtual <
217
- proximoEscopo.declaracoes.length; proximoEscopo.declaracaoAtual++) {
214
+ proximoEscopo.declaracaoAtual < proximoEscopo.declaracoes.length; proximoEscopo.declaracaoAtual++) {
218
215
  this.pontoDeParadaAtivo = this.verificarPontoParada(proximoEscopo.declaracoes[proximoEscopo.declaracaoAtual]);
219
216
  if (this.pontoDeParadaAtivo) {
220
217
  this.avisoPontoParadaAtivado();
@@ -222,7 +219,7 @@ class InterpretadorComDepuracao extends interpretador_1.Interpretador {
222
219
  }
223
220
  retornoExecucao = await this.executar(proximoEscopo.declaracoes[proximoEscopo.declaracaoAtual]);
224
221
  // Um ponto de parada ativo pode ter vindo de um escopo mais interno.
225
- // Por isso verificamos outra parada aqui para evitar que
222
+ // Por isso verificamos outra parada aqui para evitar que
226
223
  // `this.declaracaoAtual` seja incrementado.
227
224
  if (this.pontoDeParadaAtivo) {
228
225
  this.avisoPontoParadaAtivado();
@@ -252,8 +249,7 @@ class InterpretadorComDepuracao extends interpretador_1.Interpretador {
252
249
  * @returns True quando execução deve parar. False caso contrário.
253
250
  */
254
251
  verificarPontoParada(declaracao) {
255
- const buscaPontoParada = this.pontosParada.filter((p) => p.hashArquivo === declaracao.hashArquivo &&
256
- p.linha === declaracao.linha);
252
+ const buscaPontoParada = this.pontosParada.filter((p) => p.hashArquivo === declaracao.hashArquivo && p.linha === declaracao.linha);
257
253
  if (buscaPontoParada.length > 0) {
258
254
  console.log(`Ponto de parada encontrado. Linha: ${declaracao.linha}.`);
259
255
  return true;
@@ -332,8 +328,7 @@ class InterpretadorComDepuracao extends interpretador_1.Interpretador {
332
328
  const ultimoEscopo = this.pilhaEscoposExecucao.topoDaPilha();
333
329
  let retornoExecucao;
334
330
  try {
335
- for (; !(retornoExecucao instanceof quebras_1.Quebra) &&
336
- ultimoEscopo.declaracaoAtual < ultimoEscopo.declaracoes.length; ultimoEscopo.declaracaoAtual++) {
331
+ for (; !(retornoExecucao instanceof quebras_1.Quebra) && ultimoEscopo.declaracaoAtual < ultimoEscopo.declaracoes.length; ultimoEscopo.declaracaoAtual++) {
337
332
  if (naoVerificarPrimeiraExecucao) {
338
333
  naoVerificarPrimeiraExecucao = false;
339
334
  }
@@ -346,7 +341,7 @@ class InterpretadorComDepuracao extends interpretador_1.Interpretador {
346
341
  }
347
342
  retornoExecucao = await this.executar(ultimoEscopo.declaracoes[ultimoEscopo.declaracaoAtual]);
348
343
  // Um ponto de parada ativo pode ter vindo de um escopo mais interno.
349
- // Por isso verificamos outra parada aqui para evitar que
344
+ // Por isso verificamos outra parada aqui para evitar que
350
345
  // `this.declaracaoAtual` seja incrementado.
351
346
  if (this.pontoDeParadaAtivo) {
352
347
  this.avisoPontoParadaAtivado();
@@ -375,11 +370,19 @@ class InterpretadorComDepuracao extends interpretador_1.Interpretador {
375
370
  * Quando um ponto de parada é ativado, a pilha de execução do TypeScript é perdida.
376
371
  * Esse método cria uma nova pilha de execução do lado do JS, começando do último elemento executado do
377
372
  * primeiro escopo, subindo até o último elemento executado do último escopo.
378
- * Diferentemente de `executarUltimoEscopo`, este método descarta apenas um escopo (o que foi chamado).
379
- * @see executarBloco
373
+ * Se entre escopos houver ponto de parada ativo, a execução é suspensa até o próximo comando
374
+ * do desenvolvedor.
375
+ * @see executarUltimoEscopo
380
376
  */
381
- async instrucaoContinuarInterpretacao() {
382
- this.executarUltimoEscopoComandoContinuar(false, true);
377
+ async instrucaoContinuarInterpretacao(escopo = 1) {
378
+ let retornoExecucao;
379
+ if (escopo < this.escopoAtual) {
380
+ retornoExecucao = await this.instrucaoContinuarInterpretacao(escopo + 1);
381
+ }
382
+ if (this.pontoDeParadaAtivo) {
383
+ return;
384
+ }
385
+ await this.executarUltimoEscopoComandoContinuar(false, true);
383
386
  }
384
387
  /**
385
388
  * Empilha um escopo se for possível.
@@ -433,7 +436,7 @@ class InterpretadorComDepuracao extends interpretador_1.Interpretador {
433
436
  declaracaoAtual: 0,
434
437
  ambiente: ambiente || new espaco_variaveis_1.EspacoVariaveis(),
435
438
  finalizado: false,
436
- tipo: tipoEscopo
439
+ tipo: tipoEscopo,
437
440
  };
438
441
  this.pilhaEscoposExecucao.empilhar(escopoExecucao);
439
442
  this.escopoAtual++;
@@ -465,7 +468,7 @@ class InterpretadorComDepuracao extends interpretador_1.Interpretador {
465
468
  const retorno = {
466
469
  erros: this.erros,
467
470
  // resultado: this.resultadoInterpretador // Removido para simplificar `this.executar()`.
468
- resultado: [resultado]
471
+ resultado: [resultado],
469
472
  };
470
473
  this.resultadoInterpretador = [];
471
474
  return retorno;
@@ -480,10 +483,12 @@ class InterpretadorComDepuracao extends interpretador_1.Interpretador {
480
483
  */
481
484
  obterVariavel(nome) {
482
485
  const valorOuVariavel = this.pilhaEscoposExecucao.obterValorVariavel({ lexema: nome });
483
- return valorOuVariavel.hasOwnProperty('valor') ? valorOuVariavel : {
484
- valor: valorOuVariavel,
485
- tipo: (0, inferenciador_1.inferirTipoVariavel)(valorOuVariavel)
486
- };
486
+ return valorOuVariavel.hasOwnProperty('valor')
487
+ ? valorOuVariavel
488
+ : {
489
+ valor: valorOuVariavel,
490
+ tipo: (0, inferenciador_1.inferirTipoVariavel)(valorOuVariavel),
491
+ };
487
492
  }
488
493
  }
489
494
  exports.InterpretadorComDepuracao = InterpretadorComDepuracao;
@@ -1 +1 @@
1
- {"version":3,"file":"interpretador-com-depuracao.js","sourceRoot":"","sources":["../../../fontes/interpretador/interpretador-com-depuracao.ts"],"names":[],"mappings":";;;AAAA,0DAAsD;AAStD,wCAAmD;AACnD,mDAAgD;AAEhD,8CAA6D;AAC7D,mDAAsD;AAEtD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAa,yBACT,SAAQ,6BAAa;IAerB,YACI,UAA+B,EAC/B,aAAqB,EACrB,eAAyB;QAEzB,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;QAEzD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,uBAAuB,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;QACnF,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACK,eAAe,CAAC,KAAU;QAC9B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,uBAAuB,CAAC,SAAkB;QACpD,MAAM,oBAAoB,GAAG,EAAE,CAAC;QAChC,KAAK,IAAI,SAAS,IAAI,SAAS,CAAC,UAAU,EAAE;YACxC,oBAAoB,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;SAC5D;QAED,OAAO,oBAAoB,CAAC,MAAM,CAC9B,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,CACtB,UAAU,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAC7G,SAAS,CAAC,EAAE,CACf,CAAC;IACN,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,SAAkB;QAC9C,MAAM,uBAAuB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QAC9E,mDAAmD;QACnD,IAAI,CAAC,cAAc,GAAG,uBAAuB,CAAC;QAE9C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;QACjE,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;QAC5D,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,GAAG,OAAO,CAAC;QAC3E,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,6BAA6B,CAAC,SAAmB;QACnD,IAAI,SAAS,CAAC,KAAK,YAAY,oBAAO,EAAE;YACpC,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;YAC5D,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACnF,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,cAAc,CAAC,sBAAsB,CAAC,EAAE;gBAChF,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;gBACjF,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAExE,OAAO,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;gBACvE,OAAO,QAAQ,CAAC;aACnB;SACJ;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAErE,OAAO,KAAK,CAAC;IACjB,CAAC;IAES,KAAK,CAAC,wBAAwB,CAAC,UAAuB;QAC5D,IAAI,YAAY,GAAW,EAAE,CAAC;QAE9B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAChC,IAAI,kBAAuB,CAAC;YAC5B,IAAI,SAAS,YAAY,oBAAO,EAAE;gBAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;gBAC5D,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;gBAC7E,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,cAAc,CAAC,sBAAsB,CAAC,EAAE;oBAChF,kBAAkB,GAAG,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;oBACrF,OAAO,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;iBAC1E;qBAAM;oBACH,kBAAkB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;iBACtD;aACJ;iBAAM;gBACH,kBAAkB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;aACtD;YAED,IAAI,KAAK,GAAG,CAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,cAAc,CAAC,OAAO,CAAC;gBAC3C,CAAC,CAAC,kBAAkB,CAAC,KAAK;gBAC1B,CAAC,CAAC,kBAAkB,CAAC;YAEjC,YAAY,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;SAC/C;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,wBAAwB,CAAC,UAAmB;QAC9C,IAAI;YACA,MAAM,YAAY,GAAW,MAAM,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACxF,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACzB,OAAO,IAAI,CAAC;aACf;YAED,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;SACf;QAAC,OAAO,IAAS,EAAE;YAChB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACZ,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,WAAW,EACX,UAAU,CAAC,WAAW;aACzB,CAAC,CAAC;SACN;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,oBAAoB,CAAC,UAAe;QACtC,IAAI,UAAU,CAAC,aAAa,YAAY,oBAAO,EAAE;YAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;YAC5D,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAC5F,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,cAAc,CAAC,sBAAsB,CAAC,EAAE;gBAChF,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;gBACjF,IAAI,CAAC,oBAAoB,CAAC,eAAe,CACrC,UAAU,CAAC,OAAO,CAAC,MAAM,EACzB,QAAQ,CACX,CAAC;gBAEF,OAAO,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;gBACvE,OAAO,QAAQ,CAAC;aACnB;SACJ;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QACjE,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE;YACjD,IAAI,CAAC,oBAAoB,CAAC,eAAe,CACrC,UAAU,CAAC,OAAO,CAAC,MAAM,EACzB,UAAU,CACb,CAAC;SACL;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,wBAAwB,CAAC,UAAmB;QAC9C,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;QAEjE,6DAA6D;QAC7D,wCAAwC;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;QAC5D,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC;QAE9B,oCAAoC;QACpC,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC5E,IAAI,YAAY,KAAK,SAAS,EAAE;YAC5B,OAAO,OAAO,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAAC;SAC1E;QAED,IAAI,YAAY,CAAC,SAAS,KAAK,SAAS,EAAE;YACtC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC;gBAC3D,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;SAC5E;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,aAAa,CAAC,WAAyB,EAAE,QAA0B;QACrE,oCAAoC;QACpC,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;YAC9D,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CACrD,IAAI,CAAC,WAAW,CACnB,CAAC;YACF,IAAI,eAAoB,CAAC;YAEzB,sEAAsE;YACtE,eAAe,GAAG,MAAM,IAAI,CAAC,QAAQ,CACjC,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,eAAe,CAAC,CAC3D,CAAC;YACF,aAAa,CAAC,eAAe,EAAE,CAAC;YAEhC,OAEI,CAAC,CAAC,eAAe,YAAY,gBAAM,CAAC;gBACpC,aAAa,CAAC,eAAe;oBACzB,aAAa,CAAC,WAAW,CAAC,MAAM,EACpC,aAAa,CAAC,eAAe,EAAE,EACjC;gBACE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAC/C,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,eAAe,CAAC,CAC3D,CAAC;gBAEF,IAAI,IAAI,CAAC,kBAAkB,EAAE;oBACzB,IAAI,CAAC,uBAAuB,EAAE,CAAC;oBAC/B,MAAM;iBACT;gBAED,eAAe,GAAG,MAAM,IAAI,CAAC,QAAQ,CACjC,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,eAAe,CAAC,CAC3D,CAAC;gBAEF,qEAAqE;gBACrE,0DAA0D;gBAC1D,4CAA4C;gBAC5C,IAAI,IAAI,CAAC,kBAAkB,EAAE;oBACzB,IAAI,CAAC,uBAAuB,EAAE,CAAC;oBAC/B,MAAM;iBACT;aACJ;YAED,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,CAAC;YAC1C,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO,eAAe,CAAC;SAC1B;aAAM;YACH,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,CAAC;YAChF,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;YAC7D,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;gBAC7C,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;aACnC;YACD,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;YAE/B,IAAI,IAAI,CAAC,OAAO,KAAK,gBAAgB,EAAE;gBACnC,OAAO,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;aAC5C;SACJ;IACL,CAAC;IAED;;;;OAIG;IACK,oBAAoB,CAAC,UAAsB;QAC/C,MAAM,gBAAgB,GAAkB,IAAI,CAAC,YAAY,CAAC,MAAM,CAC5D,CAAC,CAAc,EAAE,EAAE,CACf,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC,WAAW;YACxC,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,CACnC,CAAC;QAEF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,OAAO,CAAC,GAAG,CAAC,sCAAsC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;YACvE,OAAO,IAAI,CAAC;SACf;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,oBAAoB,CACtB,cAAc,GAAG,KAAK,EACtB,4BAA4B,GAAG,KAAK;QAEpC,QAAQ,IAAI,CAAC,OAAO,EAAE;YAClB,KAAK,gBAAgB,CAAC;YACtB,KAAK,SAAS;gBACV,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;oBACzB,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC;iBACzC;qBAAM;oBACH,OAAO,IAAI,CAAC,oCAAoC,CAAC,cAAc,EAAE,4BAA4B,CAAC,CAAC;iBAClG;YACL;gBACI,OAAO,IAAI,CAAC,oCAAoC,CAAC,cAAc,EAAE,4BAA4B,CAAC,CAAC;SACtG;IACL,CAAC;IAEO,KAAK,CAAC,uBAAuB;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;QAC7D,IAAI,eAAoB,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACjB,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,eAAe,GAAG,MAAM,IAAI,CAAC,QAAQ,CACjC,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,eAAe,CAAC,CACzD,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBAC1B,YAAY,CAAC,eAAe,EAAE,CAAC;aAClC;YAED,IAAI,YAAY,CAAC,eAAe,IAAI,YAAY,CAAC,WAAW,CAAC,MAAM,IAAI,YAAY,CAAC,UAAU,EAAE;gBAC5F,IAAI,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;gBAC1D,IAAI,eAAe,YAAY,uBAAa,EAAE;oBAC1C,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE;wBAClC,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,CAAC;wBAC1C,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;wBAC/D,cAAc,CAAC,QAAQ,CAAC,kBAAkB,GAAG,MAAM,CAAC,MAAM,CACtD,cAAc,CAAC,QAAQ,CAAC,kBAAkB,EAC1C,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAC1C,CAAC;wBACF,IAAI,CAAC,WAAW,EAAE,CAAC;wBACnB,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;qBACzD;iBACJ;gBAED,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,CAAC;gBAC1C,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;gBAC/D,cAAc,CAAC,QAAQ,CAAC,kBAAkB,GAAG,MAAM,CAAC,MAAM,CACtD,cAAc,CAAC,QAAQ,CAAC,kBAAkB,EAC1C,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAC1C,CAAC;gBACF,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;YAED,IAAI,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;gBAC7C,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAChC;SACJ;QAED,OAAO,eAAe,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;OAUG;IACK,KAAK,CAAC,oCAAoC,CAC9C,cAAc,GAAG,KAAK,EACtB,4BAA4B,GAAG,KAAK;QAEpC,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;QAC7D,IAAI,eAAoB,CAAC;QAEzB,IAAI;YACA,OAEI,CAAC,CAAC,eAAe,YAAY,gBAAM,CAAC;gBACpC,YAAY,CAAC,eAAe,GAAG,YAAY,CAAC,WAAW,CAAC,MAAM,EAC9D,YAAY,CAAC,eAAe,EAAE,EAChC;gBACE,IAAI,4BAA4B,EAAE;oBAC9B,4BAA4B,GAAG,KAAK,CAAC;iBACxC;qBAAM;oBACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,oBAAoB,CAC/C,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,eAAe,CAAC,CACzD,CAAC;oBAEF,IAAI,IAAI,CAAC,kBAAkB,EAAE;wBACzB,IAAI,CAAC,uBAAuB,EAAE,CAAC;wBAC/B,MAAM;qBACT;iBACJ;gBAED,eAAe,GAAG,MAAM,IAAI,CAAC,QAAQ,CACjC,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,eAAe,CAAC,CACzD,CAAC;gBAEF,qEAAqE;gBACrE,0DAA0D;gBAC1D,4CAA4C;gBAC5C,IAAI,IAAI,CAAC,kBAAkB,EAAE;oBACzB,IAAI,CAAC,uBAAuB,EAAE,CAAC;oBAC/B,MAAM;iBACT;aACJ;YAED,OAAO,eAAe,CAAC;SAC1B;gBAAS;YACN,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,OAAO,KAAK,gBAAgB,EAAE;gBAC/D,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,CAAC;gBAC1C,MAAM,cAAc,GAChB,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;gBAC5C,cAAc,CAAC,QAAQ,CAAC,kBAAkB,GAAG,MAAM,CAAC,MAAM,CACtD,cAAc,CAAC,QAAQ,CAAC,kBAAkB,EAC1C,YAAY,CAAC,QAAQ,CAAC,kBAAkB,CAC3C,CAAC;gBAEF,IAAI,cAAc,EAAE;oBAChB,cAAc,CAAC,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3C,cAAc,CAAC,QAAQ,CAAC,OAAO,EAC/B,YAAY,CAAC,QAAQ,CAAC,OAAO,CAChC,CAAC;iBACL;gBACD,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;YAED,IAAI,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;gBAC7C,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAChC;SACJ;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,+BAA+B;QACjC,IAAI,CAAC,oCAAoC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc;QAChB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEnE,IAAI,cAAc,CAAC,eAAe,IAAI,cAAc,CAAC,WAAW,CAAC,MAAM,IAAI,cAAc,CAAC,UAAU,EAAE;YAClG,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,CAAC;SAC7C;QAED,IAAI,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;YAC7C,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;SACvC;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE;YAC3B,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SACzC;aAAM;YACH,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;SACxC;IACL,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,qBAAqB;QACvB,IAAI,CAAC,oCAAoC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CAAC,WAAyB;QAC3C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAEO,oBAAoB,CAAC,WAAyB,EAAE,QAA0B,EAAE,aAAiC,OAAO;QACxH,MAAM,cAAc,GAAmB;YACnC,WAAW,EAAE,WAAW;YACxB,eAAe,EAAE,CAAC;YAClB,QAAQ,EAAE,QAAQ,IAAI,IAAI,kCAAe,EAAE;YAC3C,UAAU,EAAE,KAAK;YACjB,IAAI,EAAE,UAAU;SACnB,CAAC;QACF,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CAAC,UAAsB,EAAE,gBAAgB,GAAG,KAAK;QAC3D,OAAO,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,WAAW,CACb,WAAyB,EACzB,cAAc,GAAG,KAAK;QAEtB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAEnE,+BAA+B;QAC/B,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,MAAM,OAAO,GAAG;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,yFAAyF;YACzF,SAAS,EAAE,CAAC,SAAS,CAAC;SACD,CAAC;QAE1B,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;;;;;OAOG;IACH,aAAa,CAAC,IAAY;QACtB,MAAM,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAS,CAAQ,CAAC;QACrG,OAAO,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;YAC/D,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,IAAA,mCAAmB,EAAC,eAAe,CAAC;SAC7C,CAAC;IACN,CAAC;CACJ;AAplBD,8DAolBC"}
1
+ {"version":3,"file":"interpretador-com-depuracao.js","sourceRoot":"","sources":["../../../fontes/interpretador/interpretador-com-depuracao.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import * as readline from 'readline';
3
3
  import { EspacoVariaveis } from '../espaco-variaveis';
4
4
  import { InterpretadorInterface, SimboloInterface, VariavelInterface } from '../interfaces';
5
5
  import { Bloco, Classe, Continua, Declaracao, Enquanto, Escolha, Escreva, EscrevaMesmaLinha, Expressao, Fazer, FuncaoDeclaracao, Importar, Leia, Para, Retorna, Se, Tente, Var } from '../declaracoes';
6
- import { DeleguaFuncao } from '../estruturas';
6
+ import { DeleguaFuncao, DeleguaModulo } from '../estruturas';
7
7
  import { AcessoIndiceVariavel, Agrupamento, Atribuir, Construto, FormatacaoEscrita, Literal, Logico, Super, Unario, Variavel } from '../construtos';
8
8
  import { ErroInterpretador } from './erro-interpretador';
9
9
  import { RetornoInterpretador } from '../interfaces/retornos/retorno-interpretador';
@@ -97,7 +97,12 @@ export declare class Interpretador implements InterpretadorInterface {
97
97
  */
98
98
  visitarDeclaracaoTente(declaracao: Tente): Promise<any>;
99
99
  visitarDeclaracaoEnquanto(declaracao: Enquanto): Promise<any>;
100
- visitarDeclaracaoImportar(declaracao: Importar): Promise<any>;
100
+ /**
101
+ * Importa um arquivo como módulo.
102
+ * @param declaracao A declaração de importação.
103
+ * @returns Ou um `DeleguaModulo`, ou um dicionário de funções.
104
+ */
105
+ visitarDeclaracaoImportar(declaracao: Importar): Promise<DeleguaModulo>;
101
106
  protected avaliarArgumentosEscreva(argumentos: Construto[]): Promise<string>;
102
107
  /**
103
108
  * Execução de uma escrita na saída padrão, sem quebras de linha.
@@ -65,7 +65,7 @@ class Interpretador {
65
65
  declaracaoAtual: 0,
66
66
  ambiente: new espaco_variaveis_1.EspacoVariaveis(),
67
67
  finalizado: false,
68
- tipo: 'outro'
68
+ tipo: 'outro',
69
69
  };
70
70
  this.pilhaEscoposExecucao.empilhar(escopoExecucao);
71
71
  (0, biblioteca_global_1.default)(this, this.pilhaEscoposExecucao);
@@ -78,7 +78,7 @@ class Interpretador {
78
78
  */
79
79
  async visitarExpressaoLeia(expressao) {
80
80
  const mensagem = expressao.argumentos && expressao.argumentos[0] ? expressao.argumentos[0].valor : '> ';
81
- return new Promise(resolucao => this.interfaceEntradaSaida.question(mensagem, (resposta) => {
81
+ return new Promise((resolucao) => this.interfaceEntradaSaida.question(mensagem, (resposta) => {
82
82
  resolucao(resposta);
83
83
  }));
84
84
  }
@@ -153,9 +153,7 @@ class Interpretador {
153
153
  }
154
154
  async visitarExpressaoUnaria(expressao) {
155
155
  const direita = await this.avaliar(expressao.direita);
156
- const valor = direita.hasOwnProperty('valor') ?
157
- direita.valor :
158
- direita;
156
+ const valor = direita.hasOwnProperty('valor') ? direita.valor : direita;
159
157
  switch (expressao.operador.tipo) {
160
158
  case delegua_1.default.SUBTRACAO:
161
159
  this.verificarOperandoNumero(expressao.operador, valor);
@@ -168,14 +166,10 @@ class Interpretador {
168
166
  return null;
169
167
  }
170
168
  async visitarExpressaoFormatacaoEscrita(declaracao) {
171
- let resultado = "";
169
+ let resultado = '';
172
170
  const conteudo = await this.avaliar(declaracao.expressao);
173
- const valorConteudo = (conteudo === null || conteudo === void 0 ? void 0 : conteudo.hasOwnProperty('valor'))
174
- ? conteudo.valor
175
- : conteudo;
176
- const tipoConteudo = conteudo.hasOwnProperty('tipo')
177
- ? conteudo.tipo
178
- : typeof conteudo;
171
+ const valorConteudo = (conteudo === null || conteudo === void 0 ? void 0 : conteudo.hasOwnProperty('valor')) ? conteudo.valor : conteudo;
172
+ const tipoConteudo = conteudo.hasOwnProperty('tipo') ? conteudo.tipo : typeof conteudo;
179
173
  resultado = valorConteudo;
180
174
  if (['número', 'number'].includes(tipoConteudo) && declaracao.casasDecimais > 0) {
181
175
  resultado = valorConteudo.toLocaleString('pt', { maximumFractionDigits: declaracao.casasDecimais });
@@ -201,11 +195,7 @@ class Interpretador {
201
195
  * @returns Se ambos os operandos são números ou não.
202
196
  */
203
197
  verificarOperandosNumeros(operador, direita, esquerda) {
204
- const tipoDireita = direita.tipo
205
- ? direita.tipo
206
- : typeof direita === 'number'
207
- ? 'número'
208
- : String(NaN);
198
+ const tipoDireita = direita.tipo ? direita.tipo : typeof direita === 'number' ? 'número' : String(NaN);
209
199
  const tipoEsquerda = esquerda.tipo
210
200
  ? esquerda.tipo
211
201
  : typeof esquerda === 'number'
@@ -219,18 +209,12 @@ class Interpretador {
219
209
  try {
220
210
  const esquerda = await this.avaliar(expressao.esquerda);
221
211
  const direita = await this.avaliar(expressao.direita);
222
- const valorEsquerdo = (esquerda === null || esquerda === void 0 ? void 0 : esquerda.hasOwnProperty('valor'))
223
- ? esquerda.valor
224
- : esquerda;
225
- const valorDireito = (direita === null || direita === void 0 ? void 0 : direita.hasOwnProperty('valor'))
226
- ? direita.valor
227
- : direita;
212
+ const valorEsquerdo = (esquerda === null || esquerda === void 0 ? void 0 : esquerda.hasOwnProperty('valor')) ? esquerda.valor : esquerda;
213
+ const valorDireito = (direita === null || direita === void 0 ? void 0 : direita.hasOwnProperty('valor')) ? direita.valor : direita;
228
214
  const tipoEsquerdo = (esquerda === null || esquerda === void 0 ? void 0 : esquerda.hasOwnProperty('tipo'))
229
215
  ? esquerda.tipo
230
216
  : (0, inferenciador_1.inferirTipoVariavel)(esquerda);
231
- const tipoDireito = (direita === null || direita === void 0 ? void 0 : direita.hasOwnProperty('tipo'))
232
- ? direita.tipo
233
- : (0, inferenciador_1.inferirTipoVariavel)(direita);
217
+ const tipoDireito = (direita === null || direita === void 0 ? void 0 : direita.hasOwnProperty('tipo')) ? direita.tipo : (0, inferenciador_1.inferirTipoVariavel)(direita);
234
218
  switch (expressao.operador.tipo) {
235
219
  case delegua_1.default.EXPONENCIACAO:
236
220
  this.verificarOperandosNumeros(expressao.operador, esquerda, direita);
@@ -325,9 +309,7 @@ class Interpretador {
325
309
  const argumentosResolvidos = [];
326
310
  for (const argumento of expressao.argumentos) {
327
311
  const valorResolvido = await this.avaliar(argumento);
328
- argumentosResolvidos.push(valorResolvido.hasOwnProperty('valor')
329
- ? valorResolvido.valor
330
- : valorResolvido);
312
+ argumentosResolvidos.push(valorResolvido.hasOwnProperty('valor') ? valorResolvido.valor : valorResolvido);
331
313
  }
332
314
  return entidadeChamada.chamar(argumentosResolvidos);
333
315
  }
@@ -343,8 +325,7 @@ class Interpretador {
343
325
  else {
344
326
  parametros = [];
345
327
  }
346
- const aridade = entidadeChamada.aridade ?
347
- entidadeChamada.aridade() : entidadeChamada.length;
328
+ const aridade = entidadeChamada.aridade ? entidadeChamada.aridade() : entidadeChamada.length;
348
329
  // Completar os parâmetros não preenchidos com nulos.
349
330
  if (argumentos.length < aridade) {
350
331
  const diferenca = aridade - argumentos.length;
@@ -353,9 +334,7 @@ class Interpretador {
353
334
  }
354
335
  }
355
336
  else {
356
- if (parametros &&
357
- parametros.length > 0 &&
358
- parametros[parametros.length - 1].tipo === 'estrela') {
337
+ if (parametros && parametros.length > 0 && parametros[parametros.length - 1].tipo === 'estrela') {
359
338
  const novosArgumentos = argumentos.slice(0, parametros.length - 1);
360
339
  novosArgumentos.push(argumentos.slice(parametros.length - 1, argumentos.length));
361
340
  argumentos = novosArgumentos;
@@ -363,13 +342,13 @@ class Interpretador {
363
342
  }
364
343
  if (entidadeChamada instanceof estruturas_1.FuncaoPadrao) {
365
344
  try {
366
- return entidadeChamada.chamar(argumentos.map(a => a !== null && a.hasOwnProperty('valor') ? a.valor : a), expressao.entidadeChamada.nome);
345
+ return entidadeChamada.chamar(argumentos.map((a) => (a !== null && a.hasOwnProperty('valor') ? a.valor : a)), expressao.entidadeChamada.nome);
367
346
  }
368
347
  catch (erro) {
369
348
  this.erros.push(erro);
370
349
  }
371
350
  }
372
- if ((entidadeChamada instanceof estruturas_1.Chamavel)) {
351
+ if (entidadeChamada instanceof estruturas_1.Chamavel) {
373
352
  return entidadeChamada.chamar(this, argumentos);
374
353
  }
375
354
  // A função chamada pode ser de uma biblioteca JavaScript.
@@ -459,8 +438,7 @@ class Interpretador {
459
438
  }
460
439
  let retornoExecucao;
461
440
  while (!(retornoExecucao instanceof quebras_1.Quebra)) {
462
- if (declaracao.condicao !== null &&
463
- !this.eVerdadeiro(await this.avaliar(declaracao.condicao))) {
441
+ if (declaracao.condicao !== null && !this.eVerdadeiro(await this.avaliar(declaracao.condicao))) {
464
442
  break;
465
443
  }
466
444
  try {
@@ -502,7 +480,7 @@ class Interpretador {
502
480
  for (let i = 0; i < caminhos.length; i++) {
503
481
  const caminho = caminhos[i];
504
482
  for (let j = 0; j < caminho.condicoes.length; j++) {
505
- if (await this.avaliar(caminho.condicoes[j]) === condicaoEscolha) {
483
+ if ((await this.avaliar(caminho.condicoes[j])) === condicaoEscolha) {
506
484
  encontrado = true;
507
485
  try {
508
486
  await this.executarBloco(caminho.declaracoes);
@@ -557,8 +535,7 @@ class Interpretador {
557
535
  }
558
536
  async visitarDeclaracaoEnquanto(declaracao) {
559
537
  let retornoExecucao;
560
- while (!(retornoExecucao instanceof quebras_1.Quebra) &&
561
- this.eVerdadeiro(await this.avaliar(declaracao.condicao))) {
538
+ while (!(retornoExecucao instanceof quebras_1.Quebra) && this.eVerdadeiro(await this.avaliar(declaracao.condicao))) {
562
539
  try {
563
540
  retornoExecucao = await this.executar(declaracao.corpo);
564
541
  if (retornoExecucao instanceof quebras_1.ContinuarQuebra) {
@@ -571,12 +548,16 @@ class Interpretador {
571
548
  }
572
549
  return null;
573
550
  }
551
+ /**
552
+ * Importa um arquivo como módulo.
553
+ * @param declaracao A declaração de importação.
554
+ * @returns Ou um `DeleguaModulo`, ou um dicionário de funções.
555
+ */
574
556
  async visitarDeclaracaoImportar(declaracao) {
575
557
  const caminhoRelativo = await this.avaliar(declaracao.caminho);
576
558
  const caminhoTotal = caminho.join(this.diretorioBase, caminhoRelativo);
577
559
  const nomeArquivo = caminho.basename(caminhoTotal);
578
- if (!caminhoTotal.endsWith('.egua') &&
579
- !caminhoTotal.endsWith('.delegua')) {
560
+ if (!caminhoTotal.endsWith('.delegua')) {
580
561
  try {
581
562
  return await (0, importar_biblioteca_1.default)(caminhoRelativo);
582
563
  }
@@ -588,24 +569,26 @@ class Interpretador {
588
569
  const conteudoImportacao = this.importador.importar(caminhoRelativo, false, false);
589
570
  const retornoInterpretador = await this.interpretar(conteudoImportacao.retornoAvaliadorSintatico.declaracoes, true);
590
571
  const funcoesChamaveis = this.pilhaEscoposExecucao.obterTodasDeleguaFuncao();
591
- const eDicionario = (objeto) => objeto.constructor === Object;
592
- if (eDicionario(funcoesChamaveis)) {
593
- const novoModulo = new estruturas_1.DeleguaModulo();
594
- const chaves = Object.keys(funcoesChamaveis);
595
- for (let i = 0; i < chaves.length; i++) {
596
- novoModulo.componentes[chaves[i]] = funcoesChamaveis[chaves[i]];
597
- }
598
- return novoModulo;
572
+ const declaracoesClasse = this.pilhaEscoposExecucao.obterTodasDeclaracaoClasse();
573
+ if (declaracoesClasse.hasOwnProperty('super')) {
574
+ delete declaracoesClasse['super'];
575
+ }
576
+ const novoModulo = new estruturas_1.DeleguaModulo();
577
+ const chavesFuncoesChamaveis = Object.keys(funcoesChamaveis);
578
+ for (let i = 0; i < chavesFuncoesChamaveis.length; i++) {
579
+ novoModulo.componentes[chavesFuncoesChamaveis[i]] = funcoesChamaveis[chavesFuncoesChamaveis[i]];
580
+ }
581
+ const chavesDeclaracoesClasse = Object.keys(declaracoesClasse);
582
+ for (let i = 0; i < chavesDeclaracoesClasse.length; i++) {
583
+ novoModulo.componentes[chavesDeclaracoesClasse[i]] = declaracoesClasse[chavesDeclaracoesClasse[i]];
599
584
  }
600
- return funcoesChamaveis;
585
+ return novoModulo;
601
586
  }
602
587
  async avaliarArgumentosEscreva(argumentos) {
603
588
  let formatoTexto = '';
604
589
  for (const argumento of argumentos) {
605
590
  const resultadoAvaliacao = await this.avaliar(argumento);
606
- let valor = (resultadoAvaliacao === null || resultadoAvaliacao === void 0 ? void 0 : resultadoAvaliacao.hasOwnProperty('valor'))
607
- ? resultadoAvaliacao.valor
608
- : resultadoAvaliacao;
591
+ let valor = (resultadoAvaliacao === null || resultadoAvaliacao === void 0 ? void 0 : resultadoAvaliacao.hasOwnProperty('valor')) ? resultadoAvaliacao.valor : resultadoAvaliacao;
609
592
  formatoTexto += `${this.paraTexto(valor)} `;
610
593
  }
611
594
  return formatoTexto;
@@ -626,7 +609,7 @@ class Interpretador {
626
609
  this.erros.push({
627
610
  erroInterno: erro,
628
611
  linha: declaracao.linha,
629
- hashArquivo: declaracao.hashArquivo
612
+ hashArquivo: declaracao.hashArquivo,
630
613
  });
631
614
  }
632
615
  }
@@ -646,7 +629,7 @@ class Interpretador {
646
629
  this.erros.push({
647
630
  erroInterno: erro,
648
631
  linha: declaracao.linha,
649
- hashArquivo: declaracao.hashArquivo
632
+ hashArquivo: declaracao.hashArquivo,
650
633
  });
651
634
  }
652
635
  }
@@ -665,7 +648,7 @@ class Interpretador {
665
648
  declaracaoAtual: 0,
666
649
  ambiente: ambiente || new espaco_variaveis_1.EspacoVariaveis(),
667
650
  finalizado: false,
668
- tipo: 'outro'
651
+ tipo: 'outro',
669
652
  };
670
653
  this.pilhaEscoposExecucao.empilhar(escopoExecucao);
671
654
  const retornoUltimoEscopo = await this.executarUltimoEscopo();
@@ -719,7 +702,7 @@ class Interpretador {
719
702
  const promises = await Promise.all([
720
703
  this.avaliar(expressao.objeto),
721
704
  this.avaliar(expressao.indice),
722
- this.avaliar(expressao.valor)
705
+ this.avaliar(expressao.valor),
723
706
  ]);
724
707
  let objeto = promises[0];
725
708
  let indice = promises[1];
@@ -750,9 +733,7 @@ class Interpretador {
750
733
  }
751
734
  async visitarExpressaoAcessoIndiceVariavel(expressao) {
752
735
  const variavelObjeto = await this.avaliar(expressao.entidadeChamada);
753
- const objeto = variavelObjeto.hasOwnProperty('valor')
754
- ? variavelObjeto.valor
755
- : variavelObjeto;
736
+ const objeto = variavelObjeto.hasOwnProperty('valor') ? variavelObjeto.valor : variavelObjeto;
756
737
  const indice = await this.avaliar(expressao.indice);
757
738
  let valorIndice = indice.hasOwnProperty('valor') ? indice.valor : indice;
758
739
  if (Array.isArray(objeto)) {
@@ -796,11 +777,8 @@ class Interpretador {
796
777
  }
797
778
  async visitarExpressaoDefinirValor(expressao) {
798
779
  const variavelObjeto = await this.avaliar(expressao.objeto);
799
- const objeto = variavelObjeto.hasOwnProperty('valor')
800
- ? variavelObjeto.valor
801
- : variavelObjeto;
802
- if (!(objeto instanceof estruturas_1.ObjetoDeleguaClasse) &&
803
- objeto.constructor !== Object) {
780
+ const objeto = variavelObjeto.hasOwnProperty('valor') ? variavelObjeto.valor : variavelObjeto;
781
+ if (!(objeto instanceof estruturas_1.ObjetoDeleguaClasse) && objeto.constructor !== Object) {
804
782
  return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(expressao.objeto.nome, 'Somente instâncias e dicionários podem possuir campos.', expressao.linha));
805
783
  }
806
784
  const valor = await this.avaliar(expressao.valor);
@@ -857,13 +835,11 @@ class Interpretador {
857
835
  */
858
836
  async visitarExpressaoAcessoMetodo(expressao) {
859
837
  const variavelObjeto = await this.avaliar(expressao.objeto);
860
- const objeto = variavelObjeto.hasOwnProperty('valor')
861
- ? variavelObjeto.valor
862
- : variavelObjeto;
838
+ const objeto = variavelObjeto.hasOwnProperty('valor') ? variavelObjeto.valor : variavelObjeto;
863
839
  if (objeto instanceof estruturas_1.ObjetoDeleguaClasse) {
864
840
  return objeto.obter(expressao.simbolo) || null;
865
841
  }
866
- // TODO: Possivelmente depreciar esta forma.
842
+ // TODO: Possivelmente depreciar esta forma.
867
843
  // Não parece funcionar em momento algum.
868
844
  if (objeto.constructor === Object) {
869
845
  return objeto[expressao.simbolo.lexema] || null;
@@ -903,10 +879,7 @@ class Interpretador {
903
879
  async visitarExpressaoDicionario(expressao) {
904
880
  const dicionario = {};
905
881
  for (let i = 0; i < expressao.chaves.length; i++) {
906
- const promises = await Promise.all([
907
- this.avaliar(expressao.chaves[i]),
908
- this.avaliar(expressao.valores[i])
909
- ]);
882
+ const promises = await Promise.all([this.avaliar(expressao.chaves[i]), this.avaliar(expressao.valores[i])]);
910
883
  dicionario[promises[0]] = promises[1];
911
884
  }
912
885
  return dicionario;
@@ -979,8 +952,7 @@ class Interpretador {
979
952
  const ultimoEscopo = this.pilhaEscoposExecucao.topoDaPilha();
980
953
  try {
981
954
  let retornoExecucao;
982
- for (; !(retornoExecucao instanceof quebras_1.Quebra) &&
983
- ultimoEscopo.declaracaoAtual < ultimoEscopo.declaracoes.length; ultimoEscopo.declaracaoAtual++) {
955
+ for (; !(retornoExecucao instanceof quebras_1.Quebra) && ultimoEscopo.declaracaoAtual < ultimoEscopo.declaracoes.length; ultimoEscopo.declaracaoAtual++) {
984
956
  retornoExecucao = await this.executar(ultimoEscopo.declaracoes[ultimoEscopo.declaracaoAtual]);
985
957
  }
986
958
  return retornoExecucao;
@@ -1011,7 +983,7 @@ class Interpretador {
1011
983
  declaracaoAtual: 0,
1012
984
  ambiente: new espaco_variaveis_1.EspacoVariaveis(),
1013
985
  finalizado: false,
1014
- tipo: 'outro'
986
+ tipo: 'outro',
1015
987
  };
1016
988
  this.pilhaEscoposExecucao.empilhar(escopoExecucao);
1017
989
  const inicioInterpretacao = (0, browser_process_hrtime_1.default)();