Repository: DesignLiquido/delegua
Pull request #273 (2023-02-10 16:03:21)

- Interpretador base deixa de ter referência a Importador
- Ajustes colaterais.

github-actions[bot]: <!-- jest coverage report action for options with hash 825fd481788efa7282e8569b20438413 -->

## Coverage report 



| <div title="Status of coverage:&#10; 🟢 - ok&#10; 🟡 - slightly more than threshold&#10; 🔴 - under the threshold">St.<sup>:grey_question:</sup></div> | Category   | Percentage                                                     | Covered / Total |
| :----------------------------------------------------------------------------------------------------------------------------------------------------: | :--------- | :------------------------------------------------------------- | :-------------: |
|                                                                           🟡                                                                           | Statements | <div title="Base coverage is: 64.1%">70.16% (+6.06% 🔼)</div>  |    4004/5707    |
|                                                                           🔴                                                                           | Branches   | <div title="Base coverage is: 58.78%">58.17% (-0.61% 🔻)</div> |    1211/2082    |
|                                                                           🟡                                                                           | Functions  | <div title="Base coverage is: 65.89%">70.88% (+4.99% 🔼)</div> |     594/838     |
|                                                                           🟡                                                                           | Lines      | <div title="Base coverage is: 64.73%">70.55% (+5.83% 🔼)</div> |    3869/5484    |

<details><summary>Show new covered files 🐣</summary>
<br/>

| <div title="Status of coverage:&#10; 🟢 - ok&#10; 🟡 - slightly more than threshold&#10; 🔴 - under the threshold">St.<sup>:grey_question:</sup></div> | File                                                                                                                                    | Statements | Branches | Functions | Lines  |
| :----------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------- | :--------- | :------- | :-------- | :----- |
|                                                                           🟢                                                                           | <div title="interpretador/index.ts">`...` / index.ts</div>                                                                              | 100%       | 100%     | 100%      | 100%   |
|                                                                           🟡                                                                           | <div title="interpretador/interpretador-base.ts">`...` / interpretador-base.ts</div>                                                    | 70.21%     | 59.72%   | 79.31%    | 69.42% |
|                                                                           🟢                                                                           | espaco-variaveis.ts                                                                                                                     | 100%       | 100%     | 100%      | 100%   |
|                                                                           🔴                                                                           | <div title="bibliotecas/biblioteca-global.ts">`...` / biblioteca-global.ts</div>                                                        | 53.51%     | 34.72%   | 65%       | 53.77% |
|                                                                           🟢                                                                           | excecoes/index.ts                                                                                                                       | 100%       | 100%     | 100%      | 100%   |
|                                                                           🟢                                                                           | <div title="excecoes/erro-em-tempo-de-execucao.ts">`...` / erro-em-tempo-de-execucao.ts</div>                                           | 100%       | 100%     | 100%      | 100%   |
|                                                                           🟡                                                                           | <div title="estruturas/objeto-delegua-classe.ts">`...` / objeto-delegua-classe.ts</div>                                                 | 75%        | 50%      | 50%       | 72.73% |
|                                                                           🟢                                                                           | <div title="estruturas/funcao-padrao.ts">`...` / funcao-padrao.ts</div>                                                                 | 87.5%      | 100%     | 66.67%    | 87.5%  |
|                                                                           🟡                                                                           | <div title="estruturas/chamavel.ts">`...` / chamavel.ts</div>                                                                           | 66.67%     | 100%     | 50%       | 66.67% |
|                                                                           🟢                                                                           | <div title="estruturas/delegua-classe.ts">`...` / delegua-classe.ts</div>                                                               | 90%        | 60%      | 80%       | 90%    |
|                                                                           🟢                                                                           | estruturas/index.ts                                                                                                                     | 100%       | 100%     | 100%      | 100%   |
|                                                                           🔴                                                                           | <div title="estruturas/classe-padrao.ts">`...` / classe-padrao.ts</div>                                                                 | 25%        | 100%     | 0%        | 25%    |
|                                                                           🟢                                                                           | <div title="estruturas/delegua-funcao.ts">`...` / delegua-funcao.ts</div>                                                               | 84.85%     | 68.18%   | 80%       | 87.1%  |
|                                                                           🟢                                                                           | quebras/index.ts                                                                                                                        | 100%       | 100%     | 100%      | 100%   |
|                                                                           🔴                                                                           | <div title="estruturas/metodo-primitiva.ts">`...` / metodo-primitiva.ts</div>                                                           | 28.57%     | 0%       | 0%        | 28.57% |
|                                                                           🔴                                                                           | <div title="estruturas/modulo.ts">`...` / modulo.ts</div>                                                                               | 25%        | 0%       | 0%        | 25%    |
|                                                                           🔴                                                                           | <div title="estruturas/objeto-padrao.ts">`...` / objeto-padrao.ts</div>                                                                 | 14.29%     | 100%     | 0%        | 14.29% |
|                                                                           🔴                                                                           | <div title="interpretador/pilha-escopos-execucao.ts">`...` / pilha-escopos-execucao.ts</div>                                            | 46.38%     | 29.41%   | 50%       | 47.54% |
|                                                                           🟡                                                                           | <div title="interpretador/inferenciador.ts">`...` / inferenciador.ts</div>                                                              | 70.59%     | 54.55%   | 100%      | 71.43% |
|                                                                           🔴                                                                           | <div title="interpretador/interpretador-com-depuracao.ts">`...` / interpretador-com-depuracao.ts</div>                                  | 3.09%      | 0%       | 0%        | 3.11%  |
|                                                                           🟢                                                                           | <div title="interpretador/dialetos/index.ts">`...` / index.ts</div>                                                                     | 100%       | 100%     | 100%      | 100%   |
|                                                                           🟢                                                                           | <div title="interpretador/dialetos/egua-classico/index.ts">`...` / index.ts</div>                                                       | 100%       | 100%     | 100%      | 100%   |
|                                                                           🔴                                                                           | <div title="interpretador/dialetos/egua-classico/interpretador-egua-classico.ts">`...` / interpretador-egua-classico.ts</div>           | 56.5%      | 46.48%   | 66%       | 57.51% |
|                                                                           🔴                                                                           | <div title="bibliotecas/dialetos/egua-classico/biblioteca-global.ts">`...` / biblioteca-global.ts</div>                                 | 14.37%     | 0%       | 5.26%     | 15.54% |
|                                                                           🔴                                                                           | <div title="interpretador/dialetos/visualg/interpretador-visualg.ts">`...` / interpretador-visualg.ts</div>                             | 11.76%     | 18.18%   | 11.11%    | 12.12% |
|                                                                           🔴                                                                           | <div title="interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.ts">`...` / interpretador-visualg-com-depuracao.ts</div> | 11.54%     | 0%       | 0%        | 11.54% |

</details>


## Test suite run success
272 tests passing in 25 suites.

<p align="right">Report generated by <a href="https://github.com/ArtiomTr/jest-coverage-report-action">🧪jest coverage report action</a> from e9214b5c21af64157c0d1aca72cda9bbaa5fafe3</p>
<!-- Sticky Pull Request Comment -->
leonelsanchesdasilva: Vou precisar fazer o merge disso pra `delegua-node`.

Patch:
diff --git a/fontes/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.ts b/fontes/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.ts
index 1fee63ee..8e372d51 100644
--- a/fontes/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.ts
+++ b/fontes/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.ts
@@ -1,12 +1,11 @@
 import { Construto } from '../../../construtos';
 import { EscrevaMesmaLinha, Escreva, Fazer } from '../../../declaracoes';
-import { ImportadorInterface } from '../../../interfaces';
 import { ContinuarQuebra, Quebra } from '../../../quebras';
 import { InterpretadorComDepuracao } from '../../interpretador-com-depuracao';
 
 export class InterpretadorVisuAlgComDepuracao extends InterpretadorComDepuracao {
-    constructor(importador: ImportadorInterface, diretorioBase: string, funcaoDeRetorno: Function = null) {
-        super(importador, diretorioBase, funcaoDeRetorno);
+    constructor(diretorioBase: string, funcaoDeRetorno: Function = null) {
+        super(diretorioBase, funcaoDeRetorno);
     }
 
     private async avaliarArgumentosEscrevaVisuAlg(argumentos: Construto[]): Promise<string> {
diff --git a/fontes/interpretador/dialetos/visualg/interpretador-visualg.ts b/fontes/interpretador/dialetos/visualg/interpretador-visualg.ts
index 0609e182..6dc38a48 100644
--- a/fontes/interpretador/dialetos/visualg/interpretador-visualg.ts
+++ b/fontes/interpretador/dialetos/visualg/interpretador-visualg.ts
@@ -1,6 +1,5 @@
 import { Construto, Variavel } from '../../../construtos';
 import { Escreva, EscrevaMesmaLinha, Fazer, Leia } from '../../../declaracoes';
-import { ImportadorInterface } from '../../../interfaces';
 import { InterpretadorBase } from '../..';
 import { ContinuarQuebra, Quebra } from '../../../quebras';
 
@@ -12,12 +11,11 @@ import { ContinuarQuebra, Quebra } from '../../../quebras';
  */
 export class InterpretadorVisuAlg extends InterpretadorBase {
     constructor(
-        importador: ImportadorInterface,
         diretorioBase: string,
         performance = false,
         funcaoDeRetorno: Function = null
     ) {
-        super(importador, diretorioBase, performance, funcaoDeRetorno);
+        super(diretorioBase, performance, funcaoDeRetorno);
     }
 
     private async avaliarArgumentosEscrevaVisuAlg(argumentos: Construto[]): Promise<string> {
diff --git a/fontes/interpretador/interpretador-base.ts b/fontes/interpretador/interpretador-base.ts
index a21e62f5..4eb1f485 100644
--- a/fontes/interpretador/interpretador-base.ts
+++ b/fontes/interpretador/interpretador-base.ts
@@ -50,7 +50,6 @@ import {
 } from '../construtos';
 import { ErroInterpretador } from './erro-interpretador';
 import { RetornoInterpretador } from '../interfaces/retornos/retorno-interpretador';
-import { ImportadorInterface } from '../interfaces/importador-interface';
 import { EscopoExecucao } from '../interfaces/escopo-execucao';
 import { PilhaEscoposExecucao } from './pilha-escopos-execucao';
 import { ContinuarQuebra, Quebra, RetornoQuebra, SustarQuebra } from '../quebras';
@@ -70,8 +69,7 @@ import tiposDeSimbolos from '../tipos-de-simbolos/delegua';
  * recomendado para uso em execuções que ocorrem no navegador de internet.
  */
 export class InterpretadorBase implements InterpretadorInterface {
-    importador: ImportadorInterface;
-    diretorioBase: any;
+    diretorioBase: string;
     erros: ErroInterpretador[];
     performance: boolean;
     funcaoDeRetorno: Function = null;
@@ -84,12 +82,10 @@ export class InterpretadorBase implements InterpretadorInterface {
     regexInterpolacao = /\$\{([a-z_][\w]*)\}/gi;
 
     constructor(
-        importador: ImportadorInterface,
         diretorioBase: string,
         performance = false,
         funcaoDeRetorno: Function = null
     ) {
-        this.importador = importador;
         this.diretorioBase = diretorioBase;
         this.performance = performance;
 
diff --git a/fontes/interpretador/interpretador-com-depuracao.ts b/fontes/interpretador/interpretador-com-depuracao.ts
index 6a626706..a8074a38 100644
--- a/fontes/interpretador/interpretador-com-depuracao.ts
+++ b/fontes/interpretador/interpretador-com-depuracao.ts
@@ -1,7 +1,7 @@
 import { EspacoVariaveis } from '../espaco-variaveis';
 import { Declaracao, Escreva, Retorna, Var } from '../declaracoes';
 import { PontoParada } from '../depuracao';
-import { ComandoDepurador, ImportadorInterface, InterpretadorComDepuracaoInterface } from '../interfaces';
+import { ComandoDepurador, InterpretadorComDepuracaoInterface } from '../interfaces';
 import { EscopoExecucao, TipoEscopoExecucao } from '../interfaces/escopo-execucao';
 import { Quebra, RetornoQuebra } from '../quebras';
 import { RetornoInterpretador } from '../interfaces/retornos/retorno-interpretador';
@@ -45,8 +45,8 @@ export class InterpretadorComDepuracao
     idChamadaAtual?: string;
     passos: number;
 
-    constructor(importador: ImportadorInterface, diretorioBase: string, funcaoDeRetorno: Function) {
-        super(importador, diretorioBase, false, funcaoDeRetorno);
+    constructor(diretorioBase: string, funcaoDeRetorno: Function) {
+        super(diretorioBase, false, funcaoDeRetorno);
 
         this.pontosParada = [];
         this.pontoDeParadaAtivo = false;
diff --git a/index.ts b/index.ts
index e337cb86..f6565c40 100644
--- a/index.ts
+++ b/index.ts
@@ -1,6 +1,5 @@
 export * from './fontes/avaliador-sintatico';
 export { PontoParada, cyrb53 } from './fontes/depuracao';
 export * from './fontes/formatadores';
-export * from './fontes/importador';
 export * from './fontes/interpretador';
 export * from './fontes/lexador';


Test patch:
diff --git a/testes/biblioteca-global.test.ts b/testes/biblioteca-global.test.ts
index 163ff240..b7e6b17d 100644
--- a/testes/biblioteca-global.test.ts
+++ b/testes/biblioteca-global.test.ts
@@ -10,7 +10,7 @@ describe('Biblioteca Global', () => {
     beforeEach(() => {
         lexador = new Lexador();
         avaliadorSintatico = new AvaliadorSintatico();
-        interpretador = new InterpretadorBase(null as any, process.cwd());
+        interpretador = new InterpretadorBase(process.cwd());
     });
 
     describe('aleatorio()', () => {
diff --git a/testes/eguap/interpretador.test.ts b/testes/eguap/interpretador.test.ts
index b59e751a..c5cbd84e 100644
--- a/testes/eguap/interpretador.test.ts
+++ b/testes/eguap/interpretador.test.ts
@@ -11,7 +11,7 @@ describe('Interpretador (EguaP)', () => {
         beforeEach(() => {
             lexador = new LexadorEguaP();
             avaliadorSintatico = new AvaliadorSintaticoEguaP();
-            interpretador = new InterpretadorBase(null as any, process.cwd());
+            interpretador = new InterpretadorBase(process.cwd());
         });
 
         describe('Cenários de sucesso', () => {
diff --git a/testes/interpretador.test.ts b/testes/interpretador.test.ts
index d0aedd47..706b065a 100644
--- a/testes/interpretador.test.ts
+++ b/testes/interpretador.test.ts
@@ -11,7 +11,7 @@ describe('Interpretador', () => {
         beforeEach(() => {
             lexador = new Lexador();
             avaliadorSintatico = new AvaliadorSintatico();
-            interpretador = new InterpretadorBase(null as any, process.cwd());
+            interpretador = new InterpretadorBase(process.cwd());
         });
 
         describe('Cenários de sucesso', () => {
diff --git a/testes/portugol-studio/interpretador.test.ts b/testes/portugol-studio/interpretador.test.ts
index 6c70d3db..ffe70063 100644
--- a/testes/portugol-studio/interpretador.test.ts
+++ b/testes/portugol-studio/interpretador.test.ts
@@ -11,7 +11,7 @@ describe('Interpretador', () => {
         beforeEach(() => {
             lexador = new LexadorPortugolStudio();
             avaliadorSintatico = new AvaliadorSintaticoPortugolStudio();
-            interpretador = new InterpretadorBase(null as any, process.cwd());
+            interpretador = new InterpretadorBase(process.cwd());
         });
 
         describe('Cenários de sucesso', () => {
diff --git a/testes/visualg/interpretador.test.ts b/testes/visualg/interpretador.test.ts
index c17cfe5c..500e1f73 100644
--- a/testes/visualg/interpretador.test.ts
+++ b/testes/visualg/interpretador.test.ts
@@ -11,7 +11,7 @@ describe('Interpretador', () => {
         beforeEach(() => {
             lexador = new LexadorVisuAlg();
             avaliadorSintatico = new AvaliadorSintaticoVisuAlg();
-            interpretador = new InterpretadorVisuAlg(null as any, process.cwd());
+            interpretador = new InterpretadorVisuAlg(process.cwd());
         });
 
         describe('Cenários de sucesso', () => {