Repository: DesignLiquido/delegua
Pull request #400 (2023-05-22 23:43:23)

Correção Bug retorna.

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.24%">54.25% (+0.01% 🔼)</div> |    7296/13449   |
|                                                                           🔴                                                                           | Branches   | <div title="Base coverage is: 44.6%">44.61% (+0.01% 🔼)</div>  |    2217/4970    |
|                                                                           🔴                                                                           | Functions  | 47.68%                                                         |    1058/2219    |
|                                                                           🔴                                                                           | Lines      | <div title="Base coverage is: 54.11%">54.12% (+0.01% 🔼)</div> |    7128/13171   |


## Test suite run success
496 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 3f958a6420a4d686445e7f52e3ae17b7ab84722b</p>
<!-- Sticky Pull Request Comment -->

Patch:
diff --git a/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.ts b/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.ts
index 2ebe84e3..30f4979a 100644
--- a/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.ts
+++ b/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.ts
@@ -415,9 +415,7 @@ export class AvaliadorSintaticoBirl extends AvaliadorSintaticoBase {
                     );
                     valorInicializacao = parseFloat(literalInicializacao.literal);
                 } else {
-                    throw new Error(
-                        `Simbolo passado para inicialização de variável do tipo 'TRAPEZIO' não é válido.`
-                    )
+                    throw new Error(`Simbolo passado para inicialização de variável do tipo 'TRAPEZIO' não é válido.`);
                 }
                 inicializacoes.push(
                     new Var(
@@ -428,11 +426,7 @@ export class AvaliadorSintaticoBirl extends AvaliadorSintaticoBase {
                 );
             } else {
                 inicializacoes.push(
-                    new Var(
-                        identificador,
-                        new Literal(this.hashArquivo, Number(simboloFloat.linha), 0),
-                        'numero'
-                    )
+                    new Var(identificador, new Literal(this.hashArquivo, Number(simboloFloat.linha), 0), 'numero')
                 );
             }
         } while (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos.VIRGULA));
@@ -442,7 +436,9 @@ export class AvaliadorSintaticoBirl extends AvaliadorSintaticoBase {
     declaracaoRetorna(): Retorna {
         const primeiroSimbolo = this.consumir(tiposDeSimbolos.BORA, 'Esperado expressão `BORA` para retornar valor.');
         this.consumir(tiposDeSimbolos.CUMPADE, 'Esperado expressão `CUMPADE` após `BORA` para retornar valor.');
-        // this.consumir(tiposDeSimbolos.INTERROGACAO, 'Esperado interrogação após `CUMPADE` para retornar valor.');
+        if (this.verificarTipoSimboloAtual(tiposDeSimbolos.INTERROGACAO)) {
+            this.consumir(tiposDeSimbolos.INTERROGACAO, 'Esperado interrogação após `CUMPADE` para retornar valor.');
+        }
 
         const valor = this.declaracao();
 


Test patch:
diff --git a/testes/birl/interpretador.test.ts b/testes/birl/interpretador.test.ts
index 301667af..6fc1bf05 100644
--- a/testes/birl/interpretador.test.ts
+++ b/testes/birl/interpretador.test.ts
@@ -15,6 +15,21 @@ describe('Interpretador', () => {
                 interpretador = new InterpretadorBirl(process.cwd());
             });
 
+            it('Sucesso - Teste - Hello World', async () => {
+                const retornoLexador = lexador.mapear([
+                    'HORA DO SHOW\n',
+                    '   CE QUER VER ESSA PORRA? ("Hello, World! Porra!\n");\n',
+                    '   BORA CUMPADE? 0;\n',
+                    'BIRL'
+                ]);
+
+                const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador, -1);
+
+                const retornoInterpretador = await interpretador.interpretar(retornoAvaliadorSintatico.declaracoes);
+
+                expect(retornoInterpretador.erros).toHaveLength(0);
+            })
+
             it('Sucesso - declaração - for - decremento - depois', async () => {
                 const retornoLexador = lexador.mapear([
                     'HORA DO SHOW \n',