Repository: DesignLiquido/delegua
Pull request #406 (2023-05-23 19:08:51)

Modificação interpretador Birl:
Expressões

- [x] ==
- [x] <=
- [x] >=

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

## 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: 54.27%">54.36% (+0.09% 🔼)</div> |    7321/13467   |
|                                                                           🔴                                                                           | Branches   | <div title="Base coverage is: 44.62%">44.74% (+0.12% 🔼)</div> |    2224/4971    |
|                                                                           🔴                                                                           | Functions  | <div title="Base coverage is: 47.67%">47.71% (+0.04% 🔼)</div> |    1063/2228    |
|                                                                           🔴                                                                           | Lines      | <div title="Base coverage is: 54.14%">54.23% (+0.09% 🔼)</div> |    7153/13189   |


## Test suite run success
500 tests passing in 45 suites.

<p align="right">Report generated by <a href="https://github.com/ArtiomTr/jest-coverage-report-action">🧪jest coverage report action</a> from 63ad3a6ad0b07a4bf6c87a613164ad64c7ffe6ad</p>
<!-- Sticky Pull Request Comment -->

Patch:
diff --git a/fontes/avaliador-sintatico/avaliador-sintatico-base.ts b/fontes/avaliador-sintatico/avaliador-sintatico-base.ts
index 14f7c413..1b72afd0 100644
--- a/fontes/avaliador-sintatico/avaliador-sintatico-base.ts
+++ b/fontes/avaliador-sintatico/avaliador-sintatico-base.ts
@@ -195,7 +195,7 @@ export abstract class AvaliadorSintaticoBase implements AvaliadorSintaticoInterf
     comparacaoIgualdade(): Construto {
         let expressao = this.comparar();
 
-        while (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos.DIFERENTE, tiposDeSimbolos.IGUAL)) {
+        while (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos.DIFERENTE, tiposDeSimbolos.IGUAL, tiposDeSimbolos.IGUAL_IGUAL)) {
             const operador = this.simbolos[this.atual - 1];
             const direito = this.comparar();
             expressao = new Binario(this.hashArquivo, expressao, operador, direito);
diff --git a/fontes/tipos-de-simbolos/comum.ts b/fontes/tipos-de-simbolos/comum.ts
index 60497539..fa61cefb 100644
--- a/fontes/tipos-de-simbolos/comum.ts
+++ b/fontes/tipos-de-simbolos/comum.ts
@@ -7,6 +7,7 @@ export default {
     EXPONENCIACAO: 'EXPONENCIACAO',
     IDENTIFICADOR: 'IDENTIFICADOR',
     IGUAL: 'IGUAL',
+    IGUAL_IGUAL: 'IGUAL_IGUAL',
     MAIOR: 'MAIOR',
     MAIOR_IGUAL: 'MAIOR_IGUAL',
     MENOR: 'MENOR',


Test patch:
diff --git a/testes/birl/interpretador.test.ts b/testes/birl/interpretador.test.ts
index 6fc1bf05..81ad60f1 100644
--- a/testes/birl/interpretador.test.ts
+++ b/testes/birl/interpretador.test.ts
@@ -15,6 +15,57 @@ describe('Interpretador', () => {
                 interpretador = new InterpretadorBirl(process.cwd());
             });
 
+            it('Sucesso - maior igual - 1 <= 2', async () => {
+                const retornoLexador = lexador.mapear([
+                    'HORA DO SHOW \n',
+                    '   ELE QUE A GENTE QUER? (1 <= 2)\n',
+                    '     CE QUER VER ESSA PORRA? ("ativo");\n',
+                    '   NAO VAI DAR NAO\n',
+                    '     CE QUER VER ESSA PORRA? ("desativo");\n',
+                    '   BIRL\n',
+                    'BIRL\n',
+                ]);
+
+                const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador, -1);
+                const retornoInterpretador = await interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
+
+                expect(retornoInterpretador.erros).toHaveLength(0);
+            });
+
+            it('Sucesso - maior igual - 1 >= 2', async () => {
+                const retornoLexador = lexador.mapear([
+                    'HORA DO SHOW \n',
+                    '   ELE QUE A GENTE QUER? (1 >= 2)\n',
+                    '     CE QUER VER ESSA PORRA? ("desativo");\n',
+                    '   NAO VAI DAR NAO\n',
+                    '     CE QUER VER ESSA PORRA? ("ativo");\n',
+                    '   BIRL\n',
+                    'BIRL\n',
+                ]);
+
+                const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador, -1);
+                const retornoInterpretador = await interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
+
+                expect(retornoInterpretador.erros).toHaveLength(0);
+            });
+
+            it('Sucesso - maior igual - 1 == 2', async () => {
+                const retornoLexador = lexador.mapear([
+                    'HORA DO SHOW \n',
+                    '   ELE QUE A GENTE QUER? (1 == 2)\n',
+                    '     CE QUER VER ESSA PORRA? ("desativo");\n',
+                    '   NAO VAI DAR NAO\n',
+                    '     CE QUER VER ESSA PORRA? ("ativo");\n',
+                    '   BIRL\n',
+                    'BIRL\n',
+                ]);
+
+                const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador, -1);
+                const retornoInterpretador = await interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
+
+                expect(retornoInterpretador.erros).toHaveLength(0);
+            });
+
             it('Sucesso - Teste - Hello World', async () => {
                 const retornoLexador = lexador.mapear([
                     'HORA DO SHOW\n',