Repository: DesignLiquido/delegua
Pull request #337 (2023-05-01 03:13:59)

Renomeando método, Adicionando palavra reservada variável com acento …
…e atualiando DeleguaParserarser.g4

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 | 73.67%     |    5617/7625    |
|                                                                           🟡                                                                           | Branches   | 62.06%     |    1778/2865    |
|                                                                           🟡                                                                           | Functions  | 73.65%     |     830/1127    |
|                                                                           🟡                                                                           | Lines      | 74.14%     |    5468/7375    |


## Test suite run success
392 tests passing in 35 suites.

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

Patch:
diff --git a/README.md b/README.md
index 62ee1f92..eaf2b700 100644
--- a/README.md
+++ b/README.md
@@ -49,14 +49,14 @@ Delégua tem retrocompatibilidade com a linguagem Égua e compreende sua extens
 ## Características
 
 - **Simples e Completa.** Podendo ser usada por pessoas com ou sem experiência em programação.
-- **Totalmente em Português.** Desenvolvida totalmente em português para quebrar a barreira do inglês.
-- **Grátis.** Sem planos, sem limitações e sem propaganda.
-- **Código aberto (_open source_).** Todo o código fonte disponível para estudar, modificar e contribuir.
-- **Linguagem Científica.** Apoiamos e encorajamos o desenvolvimento e aprimoramento da ciência e da educação.
+- **Totalmente em Português.** Desenvolvida totalmente em português (mesmo) para quebrar a barreira do inglês.
+- **Grátis.** Sem planos, sem limitações e sem propaganda. A licença é MIT.
+- **Código aberto (_open source_).** Todo o código fonte disponível para estudar, modificar e contribuir. Usamos 100% TypeScript. As gramáticas são escritas em ANTLR4.
+- **Linguagem Científica.** Apoiamos e encorajamos o desenvolvimento e aprimoramento da ciência e da educação. Temos diferentes pacotes e bibliotecas para física, matemática, etc.
 - **Modular.** Escreva múltiplos fontes e os reuse em seu código.
 - **Orientada a Objetos.** Classes, objetos e herança são implementados em Delégua e EguaP.
-- **Multidialetos.** Execute algoritmos em [Portugol VisuAlg](http://visualg3.com.br) e [Portugol Studio](http://lite.acad.univali.br/portugol/).
-- **Depurável.** Usando um editor com suporte à depuração como o [Visual Studio Code](https://code.visualstudio.com), você pode inspecionar o seu programa, suas variáveis e executar linha por linha
+- **Multidialetos.** Execute algoritmos em [Portugol VisuAlg](http://visualg3.com.br), [Portugol Studio](http://lite.acad.univali.br/portugol/), [Portugol Mapler](https://portugol.sourceforge.io/) e [Portugol IPT](http://orion.ipt.pt/~manso/Portugol/menuEsquerda.html). 
+- **Depurável.** Usando um editor com suporte à depuração como o [Visual Studio Code](https://code.visualstudio.com), você pode inspecionar o seu programa, suas variáveis e executar linha por linha.
 - **Portável.** Escreva sua aplicação e coloque Delégua dentro dela. Funciona em qualquer sistema operacional e qualquer navegador de internet.
 
 ## Aplicações
diff --git a/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.ts b/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.ts
index 8c28d1d3..e903d0b7 100644
--- a/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.ts
+++ b/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.ts
@@ -33,7 +33,6 @@ import { ParametroInterface, SimboloInterface } from '../../interfaces';
 import tiposDeSimbolos from '../../tipos-de-simbolos/birl';
 import { Construto } from '../../construtos/construto';
 import { TiposDadosInterface } from '../../interfaces/tipos-dados-interface';
-import { limpaItensNull } from '../../utilidades';
 
 export class AvaliadorSintaticoBirl extends AvaliadorSintaticoBase {
     tratarSimbolos(simbolos: Array<SimboloInterface>): string | void {
@@ -588,7 +587,7 @@ export class AvaliadorSintaticoBirl extends AvaliadorSintaticoBase {
             this.hashArquivo,
             Number(parenteseEsquerdo.linha),
             paramentros,
-            limpaItensNull(corpo)
+            corpo.filter(c => c)
         );
     }
 
diff --git a/fontes/lexador/palavras-reservadas.ts b/fontes/lexador/palavras-reservadas.ts
index 64c90152..3f57d6f1 100644
--- a/fontes/lexador/palavras-reservadas.ts
+++ b/fontes/lexador/palavras-reservadas.ts
@@ -37,5 +37,6 @@ export default {
     tente: tiposDeSimbolos.TENTE,
     var: tiposDeSimbolos.VARIAVEL,
     variavel: tiposDeSimbolos.VARIAVEL,
+    variável: tiposDeSimbolos.VARIAVEL,
     verdadeiro: tiposDeSimbolos.VERDADEIRO,
 };
diff --git a/fontes/utilidades/index.ts b/fontes/utilidades/index.ts
deleted file mode 100644
index 407be4ad..00000000
--- a/fontes/utilidades/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export function limpaItensNull<T>(arr: Array<T | null>): Array<T> {
-    return arr.filter((item) => item !== null);
-}
diff --git a/gramaticas/DeleguaParser.g4 b/gramaticas/DeleguaParser.g4
index 15ced177..7ea5253d 100644
--- a/gramaticas/DeleguaParser.g4
+++ b/gramaticas/DeleguaParser.g4
@@ -172,7 +172,7 @@ comandoIteracao
 varModificador  // let, const - ECMAScript 6
     : Var
 //    | let_
-//    | Const
+    | Const
     ;
 
 comandoContinua


Test patch:
diff --git a/testes/interpretador.test.ts b/testes/interpretador.test.ts
index fed492d6..09e07b35 100644
--- a/testes/interpretador.test.ts
+++ b/testes/interpretador.test.ts
@@ -19,7 +19,8 @@ describe('Interpretador', () => {
                 it('Trivial var/variavel', async () => {
                     const retornoLexador = lexador.mapear([
                         "var a = 1",
-                        "variavel b = 2"
+                        "variavel b = 2",
+                        "variável c = 3"
                     ], -1);
                     const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador, -1);