@designliquido/delegua 0.7.6 → 0.8.1
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.
- package/bin/package.json +78 -65
- package/fontes/avaliador-sintatico/avaliador-sintatico-base.d.ts +63 -0
- package/fontes/avaliador-sintatico/avaliador-sintatico-base.js +180 -0
- package/fontes/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -0
- package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +5 -4
- package/fontes/avaliador-sintatico/avaliador-sintatico.js +189 -188
- package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.d.ts +34 -32
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +154 -148
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.d.ts +13 -12
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +144 -142
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js.map +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.d.ts +48 -0
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js +297 -0
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js.map +1 -0
- package/fontes/avaliador-sintatico/erro-avaliador-sintatico.d.ts +1 -1
- package/fontes/avaliador-sintatico/retornos/index.d.ts +3 -0
- package/fontes/avaliador-sintatico/retornos/index.js +20 -0
- package/fontes/avaliador-sintatico/retornos/index.js.map +1 -0
- package/fontes/avaliador-sintatico/retornos/retorno-declaracao.d.ts +3 -0
- package/fontes/avaliador-sintatico/retornos/retorno-declaracao.js +3 -0
- package/fontes/avaliador-sintatico/retornos/retorno-declaracao.js.map +1 -0
- package/fontes/avaliador-sintatico/retornos/retorno-primario.d.ts +3 -0
- package/fontes/avaliador-sintatico/retornos/retorno-primario.js +3 -0
- package/fontes/avaliador-sintatico/retornos/retorno-primario.js.map +1 -0
- package/fontes/avaliador-sintatico/retornos/retorno-resolver-declaracao.d.ts +2 -0
- package/fontes/avaliador-sintatico/retornos/retorno-resolver-declaracao.js +3 -0
- package/fontes/avaliador-sintatico/retornos/retorno-resolver-declaracao.js.map +1 -0
- package/fontes/bibliotecas/biblioteca-global.d.ts +2 -2
- package/fontes/bibliotecas/biblioteca-global.js +112 -57
- package/fontes/bibliotecas/biblioteca-global.js.map +1 -1
- package/fontes/bibliotecas/importar-biblioteca.d.ts +1 -1
- package/fontes/bibliotecas/importar-biblioteca.js +13 -14
- package/fontes/bibliotecas/importar-biblioteca.js.map +1 -1
- package/fontes/bibliotecas/primitivas-texto.js +13 -7
- package/fontes/bibliotecas/primitivas-texto.js.map +1 -1
- package/fontes/bibliotecas/primitivas-vetor.js +25 -11
- package/fontes/bibliotecas/primitivas-vetor.js.map +1 -1
- package/fontes/construtos/acesso-indice-variavel.d.ts +2 -2
- package/fontes/construtos/acesso-indice-variavel.js.map +1 -1
- package/fontes/construtos/acesso-metodo.d.ts +2 -2
- package/fontes/construtos/acesso-metodo.js.map +1 -1
- package/fontes/construtos/agrupamento.d.ts +2 -2
- package/fontes/construtos/atribuicao-sobrescrita.d.ts +1 -1
- package/fontes/construtos/atribuicao-sobrescrita.js.map +1 -1
- package/fontes/construtos/atribuir.d.ts +2 -2
- package/fontes/construtos/atribuir.js.map +1 -1
- package/fontes/construtos/binario.d.ts +2 -2
- package/fontes/construtos/binario.js.map +1 -1
- package/fontes/construtos/chamada.d.ts +2 -2
- package/fontes/construtos/chamada.js.map +1 -1
- package/fontes/construtos/conjunto.d.ts +1 -1
- package/fontes/construtos/conjunto.js.map +1 -1
- package/fontes/construtos/construto.d.ts +1 -0
- package/fontes/construtos/dicionario.d.ts +1 -1
- package/fontes/construtos/dicionario.js.map +1 -1
- package/fontes/construtos/funcao.d.ts +2 -2
- package/fontes/construtos/funcao.js.map +1 -1
- package/fontes/construtos/index.d.ts +18 -18
- package/fontes/construtos/isto.d.ts +1 -1
- package/fontes/construtos/isto.js.map +1 -1
- package/fontes/construtos/literal.d.ts +5 -4
- package/fontes/construtos/literal.js.map +1 -1
- package/fontes/construtos/logico.d.ts +1 -1
- package/fontes/construtos/logico.js.map +1 -1
- package/fontes/construtos/super.d.ts +4 -4
- package/fontes/construtos/super.js.map +1 -1
- package/fontes/construtos/unario.d.ts +1 -1
- package/fontes/construtos/unario.js.map +1 -1
- package/fontes/construtos/variavel.d.ts +2 -2
- package/fontes/construtos/variavel.js.map +1 -1
- package/fontes/construtos/vetor.d.ts +3 -3
- package/fontes/construtos/vetor.js.map +1 -1
- package/fontes/declaracoes/bloco.d.ts +4 -4
- package/fontes/declaracoes/bloco.js.map +1 -1
- package/fontes/declaracoes/classe.d.ts +2 -2
- package/fontes/declaracoes/classe.js.map +1 -1
- package/fontes/declaracoes/continua.d.ts +2 -2
- package/fontes/declaracoes/continua.js.map +1 -1
- package/fontes/declaracoes/declaracao.js +2 -2
- package/fontes/declaracoes/declaracao.js.map +1 -1
- package/fontes/declaracoes/enquanto.d.ts +2 -2
- package/fontes/declaracoes/enquanto.js.map +1 -1
- package/fontes/declaracoes/escolha.d.ts +7 -4
- package/fontes/declaracoes/escolha.js +6 -3
- package/fontes/declaracoes/escolha.js.map +1 -1
- package/fontes/declaracoes/escreva.d.ts +3 -3
- package/fontes/declaracoes/escreva.js.map +1 -1
- package/fontes/declaracoes/expressao.d.ts +3 -3
- package/fontes/declaracoes/expressao.js.map +1 -1
- package/fontes/declaracoes/fazer.d.ts +1 -1
- package/fontes/declaracoes/fazer.js.map +1 -1
- package/fontes/declaracoes/funcao.d.ts +2 -2
- package/fontes/declaracoes/funcao.js.map +1 -1
- package/fontes/declaracoes/importar.d.ts +2 -2
- package/fontes/declaracoes/importar.js.map +1 -1
- package/fontes/declaracoes/index.d.ts +1 -0
- package/fontes/declaracoes/index.js +1 -0
- package/fontes/declaracoes/index.js.map +1 -1
- package/fontes/declaracoes/leia.d.ts +12 -0
- package/fontes/declaracoes/leia.js +37 -0
- package/fontes/declaracoes/leia.js.map +1 -0
- package/fontes/declaracoes/para.d.ts +1 -1
- package/fontes/declaracoes/para.js.map +1 -1
- package/fontes/declaracoes/retorna.d.ts +2 -2
- package/fontes/declaracoes/retorna.js.map +1 -1
- package/fontes/declaracoes/se.d.ts +2 -2
- package/fontes/declaracoes/se.js.map +1 -1
- package/fontes/declaracoes/sustar.d.ts +2 -2
- package/fontes/declaracoes/sustar.js.map +1 -1
- package/fontes/declaracoes/tente.d.ts +2 -2
- package/fontes/declaracoes/tente.js.map +1 -1
- package/fontes/declaracoes/var.d.ts +5 -4
- package/fontes/declaracoes/var.js.map +1 -1
- package/fontes/delegua.d.ts +3 -3
- package/fontes/delegua.js +38 -22
- package/fontes/delegua.js.map +1 -1
- package/fontes/depuracao/cyrb53.js +6 -3
- package/fontes/depuracao/cyrb53.js.map +1 -1
- package/fontes/depuracao/servidor-depuracao.js +84 -46
- package/fontes/depuracao/servidor-depuracao.js.map +1 -1
- package/fontes/espaco-variaveis.d.ts +1 -1
- package/fontes/espaco-variaveis.js +0 -1
- package/fontes/espaco-variaveis.js.map +1 -1
- package/fontes/estruturas/chamavel.js +1 -1
- package/fontes/estruturas/classe-padrao.d.ts +1 -1
- package/fontes/estruturas/classe-padrao.js.map +1 -1
- package/fontes/estruturas/delegua-classe.d.ts +4 -4
- package/fontes/estruturas/delegua-classe.js +5 -3
- package/fontes/estruturas/delegua-classe.js.map +1 -1
- package/fontes/estruturas/funcao-padrao.d.ts +1 -1
- package/fontes/estruturas/funcao-padrao.js +1 -1
- package/fontes/estruturas/funcao.d.ts +4 -4
- package/fontes/estruturas/funcao.js +9 -4
- package/fontes/estruturas/funcao.js.map +1 -1
- package/fontes/estruturas/index.d.ts +9 -9
- package/fontes/estruturas/metodo-primitiva.d.ts +1 -1
- package/fontes/estruturas/modulo.d.ts +1 -1
- package/fontes/estruturas/modulo.js +1 -1
- package/fontes/estruturas/objeto-delegua-classe.d.ts +2 -2
- package/fontes/estruturas/objeto-delegua-classe.js +2 -2
- package/fontes/estruturas/objeto-delegua-classe.js.map +1 -1
- package/fontes/estruturas/objeto-padrao.js.map +1 -1
- package/fontes/excecoes/erro-em-tempo-de-execucao.d.ts +1 -1
- package/fontes/excecoes/erro-em-tempo-de-execucao.js.map +1 -1
- package/fontes/excecoes/index.d.ts +1 -1
- package/fontes/importador/importador.d.ts +1 -1
- package/fontes/importador/importador.js +3 -2
- package/fontes/importador/importador.js.map +1 -1
- package/fontes/importador/retorno-importador.d.ts +2 -2
- package/fontes/interfaces/avaliador-sintatico-interface.d.ts +3 -5
- package/fontes/interfaces/delegua-interface.d.ts +2 -2
- package/fontes/interfaces/escopo-execucao.d.ts +2 -2
- package/fontes/interfaces/importador-interface.d.ts +1 -1
- package/fontes/interfaces/interpretador-com-depuracao-interface.d.ts +3 -3
- package/fontes/interfaces/interpretador-interface.d.ts +8 -7
- package/fontes/interfaces/lexador-interface.d.ts +4 -4
- package/fontes/interfaces/parametro-interface.d.ts +1 -1
- package/fontes/interfaces/pilha-escopos-execucao-interface.d.ts +5 -5
- package/fontes/interfaces/resolvedor-interface.d.ts +5 -5
- package/fontes/interfaces/retornos/retorno-avaliador-sintatico.d.ts +2 -2
- package/fontes/interfaces/retornos/retorno-execucao-interface.d.ts +1 -1
- package/fontes/interfaces/retornos/retorno-interpretador.d.ts +1 -1
- package/fontes/interfaces/retornos/retorno-lexador.d.ts +3 -3
- package/fontes/interfaces/variavel-interface.d.ts +1 -1
- package/fontes/interpretador/dialetos/egua-classico.d.ts +2 -1
- package/fontes/interpretador/dialetos/egua-classico.js +75 -47
- package/fontes/interpretador/dialetos/egua-classico.js.map +1 -1
- package/fontes/interpretador/dialetos/index.js.map +1 -1
- package/fontes/interpretador/erro-interpretador.d.ts +1 -1
- package/fontes/interpretador/inferenciador.js.map +1 -1
- package/fontes/interpretador/interpretador-com-depuracao.js +5 -3
- package/fontes/interpretador/interpretador-com-depuracao.js.map +1 -1
- package/fontes/interpretador/interpretador.d.ts +10 -4
- package/fontes/interpretador/interpretador.js +57 -47
- package/fontes/interpretador/interpretador.js.map +1 -1
- package/fontes/interpretador/pilha-escopos-execucao.js +16 -5
- package/fontes/interpretador/pilha-escopos-execucao.js.map +1 -1
- package/fontes/lexador/dialetos/index.js.map +1 -1
- package/fontes/lexador/dialetos/lexador-birl.d.ts +25 -0
- package/fontes/lexador/dialetos/lexador-birl.js +75 -0
- package/fontes/lexador/dialetos/lexador-birl.js.map +1 -0
- package/fontes/lexador/dialetos/lexador-egua-classico.js +38 -38
- package/fontes/lexador/dialetos/lexador-egua-classico.js.map +1 -1
- package/fontes/lexador/dialetos/lexador-eguap.d.ts +4 -4
- package/fontes/lexador/dialetos/lexador-eguap.js +50 -44
- package/fontes/lexador/dialetos/lexador-eguap.js.map +1 -1
- package/fontes/lexador/dialetos/lexador-visualg.d.ts +16 -0
- package/fontes/lexador/dialetos/lexador-visualg.js +227 -0
- package/fontes/lexador/dialetos/lexador-visualg.js.map +1 -0
- package/fontes/lexador/dialetos/palavras-reservadas/birl.d.ts +2 -0
- package/fontes/lexador/dialetos/palavras-reservadas/birl.js +4 -0
- package/fontes/lexador/dialetos/palavras-reservadas/birl.js.map +1 -0
- package/fontes/lexador/dialetos/palavras-reservadas/visualg.d.ts +26 -0
- package/fontes/lexador/dialetos/palavras-reservadas/visualg.js +32 -0
- package/fontes/lexador/dialetos/palavras-reservadas/visualg.js.map +1 -0
- package/fontes/lexador/lexador-base-linha-unica.d.ts +33 -0
- package/fontes/lexador/lexador-base-linha-unica.js +92 -0
- package/fontes/lexador/lexador-base-linha-unica.js.map +1 -0
- package/fontes/lexador/lexador.d.ts +3 -3
- package/fontes/lexador/lexador.js +43 -43
- package/fontes/lexador/lexador.js.map +1 -1
- package/fontes/lexador/palavras-reservadas.js +33 -33
- package/fontes/lexador/palavras-reservadas.js.map +1 -1
- package/fontes/lexador/simbolo.d.ts +1 -1
- package/fontes/lexador/simbolo.js +1 -1
- package/fontes/lexador/simbolo.js.map +1 -1
- package/fontes/quebras/index.js.map +1 -1
- package/fontes/resolvedor/dialetos/egua-classico.js +1 -1
- package/fontes/resolvedor/dialetos/egua-classico.js.map +1 -1
- package/fontes/resolvedor/dialetos/index.js.map +1 -1
- package/fontes/resolvedor/erro-resolvedor.d.ts +1 -1
- package/fontes/resolvedor/pilha-escopos.d.ts +1 -1
- package/fontes/resolvedor/pilha-escopos.js +2 -2
- package/fontes/resolvedor/pilha-escopos.js.map +1 -1
- package/fontes/resolvedor/retorno-resolvedor.d.ts +2 -2
- package/fontes/tipos-de-simbolos/birl.d.ts +18 -0
- package/fontes/tipos-de-simbolos/birl.js +21 -0
- package/fontes/tipos-de-simbolos/birl.js.map +1 -0
- package/fontes/tipos-de-simbolos/comum.d.ts +18 -0
- package/fontes/tipos-de-simbolos/comum.js +20 -0
- package/fontes/tipos-de-simbolos/comum.js.map +1 -0
- package/fontes/{tipos-de-simbolos.d.ts → tipos-de-simbolos/delegua.d.ts} +0 -0
- package/fontes/tipos-de-simbolos/delegua.js +78 -0
- package/fontes/tipos-de-simbolos/delegua.js.map +1 -0
- package/fontes/{lexador/dialetos/tipos-de-simbolos-eguap.d.ts → tipos-de-simbolos/eguap.d.ts} +0 -0
- package/fontes/tipos-de-simbolos/eguap.js +74 -0
- package/fontes/tipos-de-simbolos/eguap.js.map +1 -0
- package/fontes/tipos-de-simbolos/visualg.d.ts +47 -0
- package/fontes/tipos-de-simbolos/visualg.js +49 -0
- package/fontes/tipos-de-simbolos/visualg.js.map +1 -0
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/jest.config.js +2 -2
- package/jest.config.js.map +1 -1
- package/package.json +78 -65
- package/testes/avaliador-sintatico.test.js +5 -5
- package/testes/avaliador-sintatico.test.js.map +1 -1
- package/testes/egua-classico/avaliador-sintatico.test.js +4 -1
- package/testes/egua-classico/avaliador-sintatico.test.js.map +1 -1
- package/testes/egua-classico/delegua.test.js.map +1 -1
- package/testes/egua-classico/resolvedor.test.js.map +1 -1
- package/testes/eguap/avaliador-sintatico.test.js +1 -5
- package/testes/eguap/avaliador-sintatico.test.js.map +1 -1
- package/testes/eguap/lexador.test.js +1 -1
- package/testes/eguap/lexador.test.js.map +1 -1
- package/testes/interpretador.test.js +48 -0
- package/testes/interpretador.test.js.map +1 -1
- package/testes/lexador.test.js +45 -45
- package/testes/lexador.test.js.map +1 -1
- package/testes/visualg/avaliador-sintatico.test.d.ts +1 -0
- package/testes/visualg/avaliador-sintatico.test.js +113 -0
- package/testes/visualg/avaliador-sintatico.test.js.map +1 -0
- package/testes/visualg/lexador.test.d.ts +1 -0
- package/testes/visualg/lexador.test.js +67 -0
- package/testes/visualg/lexador.test.js.map +1 -0
- package/fontes/lexador/dialetos/tipos-de-simbolos-eguap.js +0 -74
- package/fontes/lexador/dialetos/tipos-de-simbolos-eguap.js.map +0 -1
- package/fontes/tipos-de-simbolos.js +0 -78
- package/fontes/tipos-de-simbolos.js.map +0 -1
package/bin/package.json
CHANGED
|
@@ -1,70 +1,83 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
"url": "git+https://github.com/DesignLiquido/delegua.git"
|
|
21
|
-
},
|
|
22
|
-
"bin": {
|
|
23
|
-
"delegua": "./bin/delegua"
|
|
24
|
-
},
|
|
25
|
-
"keywords": [
|
|
26
|
-
"egua",
|
|
27
|
-
"eguap",
|
|
28
|
-
"delegua"
|
|
29
|
-
],
|
|
30
|
-
"author": "Leonel Sanches da Silva",
|
|
31
|
-
"contributors": [
|
|
32
|
-
{
|
|
33
|
-
"name": "Leonel Sanches da Silva",
|
|
34
|
-
"url": "https://www.linkedin.com/in/leonelsanchesdasilva/"
|
|
2
|
+
"name": "@designliquido/delegua",
|
|
3
|
+
"version": "0.8.0",
|
|
4
|
+
"description": "Linguagem de programação simples e moderna usando português",
|
|
5
|
+
"main": "index.ts",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"empacotar": "rm -Rf ./dist && tsc && copyfiles -V ./bin/delegua ./bin/delegua.cmd ./dist && copyfiles -V ./package.json ./dist/bin && copyfiles -V ./README.md ./dist",
|
|
8
|
+
"lair": "ts-node index.ts",
|
|
9
|
+
"publicar-npm": "npm publish ./dist --access public",
|
|
10
|
+
"testes": "./bin/delegua-ts testes/exemplos/testes.egua",
|
|
11
|
+
"testes:delegua:bhaskara": "./bin/delegua-ts testes/exemplos/dialetos/egua-classico/bhaskara.egua",
|
|
12
|
+
"testes:delegua:fibonacci": "./bin/delegua-ts testes/exemplos/dialetos/egua-classico/fibonacci.egua",
|
|
13
|
+
"testes:egua-classico": "./bin/delegua-ts --dialeto egua testes/exemplos/dialetos/egua-classico/testes.egua",
|
|
14
|
+
"testes:servidor-depuracao": "ts-node ./fontes/depuracao/servidor-depuracao.ts",
|
|
15
|
+
"testes-unitarios": "jest --coverage",
|
|
16
|
+
"observar-testes-unitarios": "jest --watchAll",
|
|
17
|
+
"observar-testes-unitarios-com-coverage": "jest --coverage --watchAll",
|
|
18
|
+
"lint": "eslint . --ext .ts",
|
|
19
|
+
"prettier-format": "prettier --config .prettierrc 'fontes/**/*.ts' --write"
|
|
35
20
|
},
|
|
36
|
-
{
|
|
37
|
-
|
|
38
|
-
|
|
21
|
+
"repository": {
|
|
22
|
+
"type": "git",
|
|
23
|
+
"url": "git+https://github.com/DesignLiquido/delegua.git"
|
|
39
24
|
},
|
|
40
|
-
{
|
|
41
|
-
|
|
42
|
-
|
|
25
|
+
"bin": {
|
|
26
|
+
"delegua": "./bin/delegua"
|
|
27
|
+
},
|
|
28
|
+
"keywords": [
|
|
29
|
+
"egua",
|
|
30
|
+
"eguap",
|
|
31
|
+
"delegua"
|
|
32
|
+
],
|
|
33
|
+
"author": "Leonel Sanches da Silva",
|
|
34
|
+
"contributors": [
|
|
35
|
+
{
|
|
36
|
+
"name": "Leonel Sanches da Silva",
|
|
37
|
+
"url": "https://www.linkedin.com/in/leonelsanchesdasilva/"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"name": "Samuel Renan Gonçalves Vaz",
|
|
41
|
+
"url": "https://www.linkedin.com/in/samuel-renan-gon%C3%A7alves-vaz-b6b83a103/"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"name": "Alessandro Fuhr de Mello",
|
|
45
|
+
"url": "https://github.com/AlessandroFMello"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "Italo Brito Brandão",
|
|
49
|
+
"url": "https://github.com/ItaloCobains"
|
|
50
|
+
}
|
|
51
|
+
],
|
|
52
|
+
"license": "MIT",
|
|
53
|
+
"bugs": {
|
|
54
|
+
"url": "https://github.com/DesignLiquido/delegua/issues"
|
|
55
|
+
},
|
|
56
|
+
"homepage": "https://github.com/DesignLiquido/delegua#readme",
|
|
57
|
+
"devDependencies": {
|
|
58
|
+
"@babel/preset-env": "^7.12.1",
|
|
59
|
+
"@designliquido/delegua-estatistica": "^0.0.5",
|
|
60
|
+
"@designliquido/delegua-fisica": "^0.0.2",
|
|
61
|
+
"@designliquido/delegua-matematica": "^0.0.2",
|
|
62
|
+
"@designliquido/delegua-tempo": "^0.0.1",
|
|
63
|
+
"@types/jest": "^29.0.3",
|
|
64
|
+
"@types/node": "^17.0.13",
|
|
65
|
+
"@typescript-eslint/eslint-plugin": "^5.42.0",
|
|
66
|
+
"@typescript-eslint/parser": "^5.42.0",
|
|
67
|
+
"copyfiles": "^2.4.1",
|
|
68
|
+
"eslint": "^8.26.0",
|
|
69
|
+
"eslint-config-prettier": "^8.5.0",
|
|
70
|
+
"eslint-plugin-prettier": "^4.2.1",
|
|
71
|
+
"jest": "^29.0.3",
|
|
72
|
+
"prettier": "^2.7.1",
|
|
73
|
+
"release-it": "^14.14.2",
|
|
74
|
+
"ts-jest": "^29.0.1",
|
|
75
|
+
"ts-node": "^10.9.1",
|
|
76
|
+
"typescript": "^4.6.3"
|
|
77
|
+
},
|
|
78
|
+
"dependencies": {
|
|
79
|
+
"browser-process-hrtime": "^1.0.0",
|
|
80
|
+
"chalk": "4.1.2",
|
|
81
|
+
"commander": "^8.3.0"
|
|
43
82
|
}
|
|
44
|
-
],
|
|
45
|
-
"license": "MIT",
|
|
46
|
-
"bugs": {
|
|
47
|
-
"url": "https://github.com/DesignLiquido/delegua/issues"
|
|
48
|
-
},
|
|
49
|
-
"homepage": "https://github.com/DesignLiquido/delegua#readme",
|
|
50
|
-
"devDependencies": {
|
|
51
|
-
"@babel/preset-env": "^7.12.1",
|
|
52
|
-
"@designliquido/delegua-estatistica": "^0.0.5",
|
|
53
|
-
"@designliquido/delegua-fisica": "^0.0.2",
|
|
54
|
-
"@designliquido/delegua-matematica": "^0.0.2",
|
|
55
|
-
"@designliquido/delegua-tempo": "^0.0.1",
|
|
56
|
-
"@types/jest": "^29.0.3",
|
|
57
|
-
"@types/node": "^17.0.13",
|
|
58
|
-
"copyfiles": "^2.4.1",
|
|
59
|
-
"jest": "^29.0.3",
|
|
60
|
-
"release-it": "^14.14.2",
|
|
61
|
-
"ts-jest": "^29.0.1",
|
|
62
|
-
"ts-node": "^10.9.1",
|
|
63
|
-
"typescript": "^4.6.3"
|
|
64
|
-
},
|
|
65
|
-
"dependencies": {
|
|
66
|
-
"browser-process-hrtime": "^1.0.0",
|
|
67
|
-
"chalk": "4.1.2",
|
|
68
|
-
"commander": "^8.3.0"
|
|
69
|
-
}
|
|
70
83
|
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Construto, Funcao } from '../construtos';
|
|
2
|
+
import { Escreva, Expressao, Se, Enquanto, Para, Sustar, Continua, Retorna, Escolha, Importar, Tente, Fazer, Var, Funcao as FuncaoDeclaracao, Classe, Declaracao } from '../declaracoes';
|
|
3
|
+
import { AvaliadorSintaticoInterface, SimboloInterface } from '../interfaces';
|
|
4
|
+
import { RetornoLexador, RetornoAvaliadorSintatico } from '../interfaces/retornos';
|
|
5
|
+
import { ErroAvaliadorSintatico } from './erro-avaliador-sintatico';
|
|
6
|
+
/**
|
|
7
|
+
* O Avaliador Sintático Base é uma tentativa de mapear métodos em comum
|
|
8
|
+
* entre todos os outros Avaliadores Sintáticos. Depende de um dicionário
|
|
9
|
+
* de tipos de símbolos comuns entre todos os dialetos.
|
|
10
|
+
*/
|
|
11
|
+
export declare abstract class AvaliadorSintaticoBase implements AvaliadorSintaticoInterface {
|
|
12
|
+
simbolos: SimboloInterface[];
|
|
13
|
+
erros: ErroAvaliadorSintatico[];
|
|
14
|
+
atual: number;
|
|
15
|
+
ciclos: number;
|
|
16
|
+
consumir(tipo: string, mensagemDeErro: string): SimboloInterface;
|
|
17
|
+
erro(simbolo: SimboloInterface, mensagemDeErro: string): ErroAvaliadorSintatico;
|
|
18
|
+
verificarTipoSimboloAtual(tipo: string): boolean;
|
|
19
|
+
verificarTipoProximoSimbolo(tipo: string): boolean;
|
|
20
|
+
estaNoFinal(): boolean;
|
|
21
|
+
avancarEDevolverAnterior(): SimboloInterface;
|
|
22
|
+
verificarSeSimboloAtualEIgualA(...argumentos: string[]): boolean;
|
|
23
|
+
abstract primario(): Construto;
|
|
24
|
+
finalizarChamada(entidadeChamada: Construto): Construto;
|
|
25
|
+
abstract chamar(): Construto;
|
|
26
|
+
unario(): Construto;
|
|
27
|
+
exponenciacao(): Construto;
|
|
28
|
+
multiplicar(): Construto;
|
|
29
|
+
adicaoOuSubtracao(): Construto;
|
|
30
|
+
bitFill(): Construto;
|
|
31
|
+
bitE(): Construto;
|
|
32
|
+
bitOu(): Construto;
|
|
33
|
+
comparar(): Construto;
|
|
34
|
+
comparacaoIgualdade(): Construto;
|
|
35
|
+
em(): Construto;
|
|
36
|
+
e(): Construto;
|
|
37
|
+
ou(): Construto;
|
|
38
|
+
/**
|
|
39
|
+
* `atribuir()` deve chamar `ou()` na implementação.
|
|
40
|
+
*/
|
|
41
|
+
abstract atribuir(): Construto;
|
|
42
|
+
expressao(): Construto;
|
|
43
|
+
abstract declaracaoEscreva(): Escreva;
|
|
44
|
+
declaracaoExpressao(): Expressao;
|
|
45
|
+
abstract blocoEscopo(): Declaracao[];
|
|
46
|
+
declaracaoSe(): Se;
|
|
47
|
+
abstract declaracaoEnquanto(): Enquanto;
|
|
48
|
+
abstract declaracaoPara(): Para;
|
|
49
|
+
declaracaoSustar(): Sustar;
|
|
50
|
+
declaracaoContinua(): Continua;
|
|
51
|
+
declaracaoRetorna(): Retorna;
|
|
52
|
+
abstract declaracaoEscolha(): Escolha;
|
|
53
|
+
declaracaoImportar(): Importar;
|
|
54
|
+
declaracaoTente(): Tente;
|
|
55
|
+
abstract declaracaoFazer(): Fazer;
|
|
56
|
+
resolverDeclaracao(): void;
|
|
57
|
+
declaracaoDeVariavel(): Var;
|
|
58
|
+
funcao(tipo: string): FuncaoDeclaracao;
|
|
59
|
+
abstract corpoDaFuncao(tipo: string): Funcao;
|
|
60
|
+
declaracaoDeClasse(): Classe;
|
|
61
|
+
abstract declaracao(): Declaracao;
|
|
62
|
+
abstract analisar(retornoLexador: RetornoLexador, hashArquivo?: number): RetornoAvaliadorSintatico;
|
|
63
|
+
}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.AvaliadorSintaticoBase = void 0;
|
|
7
|
+
var construtos_1 = require("../construtos");
|
|
8
|
+
var declaracoes_1 = require("../declaracoes");
|
|
9
|
+
var erro_avaliador_sintatico_1 = require("./erro-avaliador-sintatico");
|
|
10
|
+
var comum_1 = __importDefault(require("../tipos-de-simbolos/comum"));
|
|
11
|
+
/**
|
|
12
|
+
* O Avaliador Sintático Base é uma tentativa de mapear métodos em comum
|
|
13
|
+
* entre todos os outros Avaliadores Sintáticos. Depende de um dicionário
|
|
14
|
+
* de tipos de símbolos comuns entre todos os dialetos.
|
|
15
|
+
*/
|
|
16
|
+
var AvaliadorSintaticoBase = /** @class */ (function () {
|
|
17
|
+
function AvaliadorSintaticoBase() {
|
|
18
|
+
}
|
|
19
|
+
AvaliadorSintaticoBase.prototype.consumir = function (tipo, mensagemDeErro) {
|
|
20
|
+
if (this.verificarTipoSimboloAtual(tipo))
|
|
21
|
+
return this.avancarEDevolverAnterior();
|
|
22
|
+
throw this.erro(this.simbolos[this.atual], mensagemDeErro);
|
|
23
|
+
};
|
|
24
|
+
AvaliadorSintaticoBase.prototype.erro = function (simbolo, mensagemDeErro) {
|
|
25
|
+
var excecao = new erro_avaliador_sintatico_1.ErroAvaliadorSintatico(simbolo, mensagemDeErro);
|
|
26
|
+
this.erros.push(excecao);
|
|
27
|
+
return excecao;
|
|
28
|
+
};
|
|
29
|
+
AvaliadorSintaticoBase.prototype.verificarTipoSimboloAtual = function (tipo) {
|
|
30
|
+
if (this.estaNoFinal())
|
|
31
|
+
return false;
|
|
32
|
+
return this.simbolos[this.atual].tipo === tipo;
|
|
33
|
+
};
|
|
34
|
+
AvaliadorSintaticoBase.prototype.verificarTipoProximoSimbolo = function (tipo) {
|
|
35
|
+
return this.simbolos[this.atual + 1].tipo === tipo;
|
|
36
|
+
};
|
|
37
|
+
AvaliadorSintaticoBase.prototype.estaNoFinal = function () {
|
|
38
|
+
return this.atual === this.simbolos.length;
|
|
39
|
+
};
|
|
40
|
+
AvaliadorSintaticoBase.prototype.avancarEDevolverAnterior = function () {
|
|
41
|
+
if (!this.estaNoFinal())
|
|
42
|
+
this.atual += 1;
|
|
43
|
+
return this.simbolos[this.atual - 1];
|
|
44
|
+
};
|
|
45
|
+
AvaliadorSintaticoBase.prototype.verificarSeSimboloAtualEIgualA = function () {
|
|
46
|
+
var argumentos = [];
|
|
47
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
48
|
+
argumentos[_i] = arguments[_i];
|
|
49
|
+
}
|
|
50
|
+
for (var i = 0; i < argumentos.length; i++) {
|
|
51
|
+
var tipoAtual = argumentos[i];
|
|
52
|
+
if (this.verificarTipoSimboloAtual(tipoAtual)) {
|
|
53
|
+
this.avancarEDevolverAnterior();
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return false;
|
|
58
|
+
};
|
|
59
|
+
AvaliadorSintaticoBase.prototype.finalizarChamada = function (entidadeChamada) {
|
|
60
|
+
throw new Error('Método não implementado.');
|
|
61
|
+
};
|
|
62
|
+
AvaliadorSintaticoBase.prototype.unario = function () {
|
|
63
|
+
if (this.verificarSeSimboloAtualEIgualA(comum_1.default.NEGACAO, comum_1.default.SUBTRACAO)) {
|
|
64
|
+
var operador = this.simbolos[this.atual - 1];
|
|
65
|
+
var direito = this.unario();
|
|
66
|
+
return new construtos_1.Unario(-1, operador, direito);
|
|
67
|
+
}
|
|
68
|
+
return this.chamar();
|
|
69
|
+
};
|
|
70
|
+
AvaliadorSintaticoBase.prototype.exponenciacao = function () {
|
|
71
|
+
throw new Error('Método não implementado.');
|
|
72
|
+
};
|
|
73
|
+
AvaliadorSintaticoBase.prototype.multiplicar = function () {
|
|
74
|
+
var expressao = this.unario();
|
|
75
|
+
while (this.verificarSeSimboloAtualEIgualA(comum_1.default.DIVISAO, comum_1.default.MULTIPLICACAO, comum_1.default.MODULO)) {
|
|
76
|
+
var operador = this.simbolos[this.atual - 1];
|
|
77
|
+
var direito = this.unario();
|
|
78
|
+
expressao = new construtos_1.Binario(-1, expressao, operador, direito);
|
|
79
|
+
}
|
|
80
|
+
return expressao;
|
|
81
|
+
};
|
|
82
|
+
AvaliadorSintaticoBase.prototype.adicaoOuSubtracao = function () {
|
|
83
|
+
var expressao = this.multiplicar();
|
|
84
|
+
while (this.verificarSeSimboloAtualEIgualA(comum_1.default.SUBTRACAO, comum_1.default.ADICAO)) {
|
|
85
|
+
var operador = this.simbolos[this.atual - 1];
|
|
86
|
+
var direito = this.multiplicar();
|
|
87
|
+
expressao = new construtos_1.Binario(-1, expressao, operador, direito);
|
|
88
|
+
}
|
|
89
|
+
return expressao;
|
|
90
|
+
};
|
|
91
|
+
AvaliadorSintaticoBase.prototype.bitFill = function () {
|
|
92
|
+
throw new Error('Método não implementado.');
|
|
93
|
+
};
|
|
94
|
+
AvaliadorSintaticoBase.prototype.bitE = function () {
|
|
95
|
+
throw new Error('Método não implementado.');
|
|
96
|
+
};
|
|
97
|
+
AvaliadorSintaticoBase.prototype.bitOu = function () {
|
|
98
|
+
throw new Error('Método não implementado.');
|
|
99
|
+
};
|
|
100
|
+
AvaliadorSintaticoBase.prototype.comparar = function () {
|
|
101
|
+
var expressao = this.adicaoOuSubtracao();
|
|
102
|
+
while (this.verificarSeSimboloAtualEIgualA(comum_1.default.MAIOR, comum_1.default.MAIOR_IGUAL, comum_1.default.MENOR, comum_1.default.MENOR_IGUAL)) {
|
|
103
|
+
var operador = this.simbolos[this.atual - 1];
|
|
104
|
+
var direito = this.adicaoOuSubtracao();
|
|
105
|
+
expressao = new construtos_1.Binario(-1, expressao, operador, direito);
|
|
106
|
+
}
|
|
107
|
+
return expressao;
|
|
108
|
+
};
|
|
109
|
+
AvaliadorSintaticoBase.prototype.comparacaoIgualdade = function () {
|
|
110
|
+
var expressao = this.comparar();
|
|
111
|
+
while (this.verificarSeSimboloAtualEIgualA(comum_1.default.DIFERENTE, comum_1.default.IGUAL)) {
|
|
112
|
+
var operador = this.simbolos[this.atual - 1];
|
|
113
|
+
var direito = this.comparar();
|
|
114
|
+
expressao = new construtos_1.Binario(-1, expressao, operador, direito);
|
|
115
|
+
}
|
|
116
|
+
return expressao;
|
|
117
|
+
};
|
|
118
|
+
AvaliadorSintaticoBase.prototype.em = function () {
|
|
119
|
+
throw new Error('Método não implementado.');
|
|
120
|
+
};
|
|
121
|
+
AvaliadorSintaticoBase.prototype.e = function () {
|
|
122
|
+
var expressao = this.comparacaoIgualdade();
|
|
123
|
+
while (this.verificarSeSimboloAtualEIgualA(comum_1.default.E)) {
|
|
124
|
+
var operador = this.simbolos[this.atual - 1];
|
|
125
|
+
var direito = this.comparacaoIgualdade();
|
|
126
|
+
expressao = new construtos_1.Logico(-1, expressao, operador, direito);
|
|
127
|
+
}
|
|
128
|
+
return expressao;
|
|
129
|
+
};
|
|
130
|
+
AvaliadorSintaticoBase.prototype.ou = function () {
|
|
131
|
+
var expressao = this.e();
|
|
132
|
+
while (this.verificarSeSimboloAtualEIgualA(comum_1.default.OU)) {
|
|
133
|
+
var operador = this.simbolos[this.atual - 1];
|
|
134
|
+
var direito = this.e();
|
|
135
|
+
expressao = new construtos_1.Logico(-1, expressao, operador, direito);
|
|
136
|
+
}
|
|
137
|
+
return expressao;
|
|
138
|
+
};
|
|
139
|
+
AvaliadorSintaticoBase.prototype.expressao = function () {
|
|
140
|
+
return this.atribuir();
|
|
141
|
+
};
|
|
142
|
+
AvaliadorSintaticoBase.prototype.declaracaoExpressao = function () {
|
|
143
|
+
throw new Error('Método não implementado.');
|
|
144
|
+
};
|
|
145
|
+
AvaliadorSintaticoBase.prototype.declaracaoSe = function () {
|
|
146
|
+
throw new Error('Método não implementado.');
|
|
147
|
+
};
|
|
148
|
+
AvaliadorSintaticoBase.prototype.declaracaoSustar = function () {
|
|
149
|
+
throw new Error('Método não implementado.');
|
|
150
|
+
};
|
|
151
|
+
AvaliadorSintaticoBase.prototype.declaracaoContinua = function () {
|
|
152
|
+
throw new Error('Método não implementado.');
|
|
153
|
+
};
|
|
154
|
+
AvaliadorSintaticoBase.prototype.declaracaoRetorna = function () {
|
|
155
|
+
throw new Error('Método não implementado.');
|
|
156
|
+
};
|
|
157
|
+
AvaliadorSintaticoBase.prototype.declaracaoImportar = function () {
|
|
158
|
+
throw new Error('Método não implementado.');
|
|
159
|
+
};
|
|
160
|
+
AvaliadorSintaticoBase.prototype.declaracaoTente = function () {
|
|
161
|
+
throw new Error('Método não implementado.');
|
|
162
|
+
};
|
|
163
|
+
AvaliadorSintaticoBase.prototype.resolverDeclaracao = function () {
|
|
164
|
+
throw new Error('Método não implementado.');
|
|
165
|
+
};
|
|
166
|
+
AvaliadorSintaticoBase.prototype.declaracaoDeVariavel = function () {
|
|
167
|
+
throw new Error('Método não implementado.');
|
|
168
|
+
};
|
|
169
|
+
AvaliadorSintaticoBase.prototype.funcao = function (tipo) {
|
|
170
|
+
var simboloFuncao = this.avancarEDevolverAnterior();
|
|
171
|
+
var nomeFuncao = this.consumir(comum_1.default.IDENTIFICADOR, "Esperado nome ".concat(tipo, "."));
|
|
172
|
+
return new declaracoes_1.Funcao(nomeFuncao, this.corpoDaFuncao(tipo));
|
|
173
|
+
};
|
|
174
|
+
AvaliadorSintaticoBase.prototype.declaracaoDeClasse = function () {
|
|
175
|
+
throw new Error('Método não implementado.');
|
|
176
|
+
};
|
|
177
|
+
return AvaliadorSintaticoBase;
|
|
178
|
+
}());
|
|
179
|
+
exports.AvaliadorSintaticoBase = AvaliadorSintaticoBase;
|
|
180
|
+
//# sourceMappingURL=avaliador-sintatico-base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avaliador-sintatico-base.js","sourceRoot":"","sources":["../../../fontes/avaliador-sintatico/avaliador-sintatico-base.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA2E;AAC3E,8CAiBwB;AAMxB,uEAAoE;AAEpE,qEAAyD;AAEzD;;;;GAIG;AACH;IAAA;IA8QA,CAAC;IAtQG,yCAAQ,GAAR,UAAS,IAAY,EAAE,cAAsB;QACzC,IAAI,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC;YACpC,OAAO,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAC3C,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,CAAC;IAC/D,CAAC;IAED,qCAAI,GAAJ,UACI,OAAyB,EACzB,cAAsB;QAEtB,IAAM,OAAO,GAAG,IAAI,iDAAsB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,0DAAyB,GAAzB,UAA0B,IAAY;QAClC,IAAI,IAAI,CAAC,WAAW,EAAE;YAAE,OAAO,KAAK,CAAC;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;IACnD,CAAC;IAED,4DAA2B,GAA3B,UAA4B,IAAY;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;IACvD,CAAC;IAED,4CAAW,GAAX;QACI,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC/C,CAAC;IAED,yDAAwB,GAAxB;QACI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,+DAA8B,GAA9B;QAA+B,oBAAuB;aAAvB,UAAuB,EAAvB,qBAAuB,EAAvB,IAAuB;YAAvB,+BAAuB;;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,IAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,EAAE;gBAC3C,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC;aACf;SACJ;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAID,iDAAgB,GAAhB,UAAiB,eAA0B;QACvC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAID,uCAAM,GAAN;QACI,IACI,IAAI,CAAC,8BAA8B,CAC/B,eAAe,CAAC,OAAO,EACvB,eAAe,CAAC,SAAS,CAC5B,EACH;YACE,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC/C,IAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,OAAO,IAAI,mBAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;SAC5C;QAED,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;IAED,8CAAa,GAAb;QACI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAED,4CAAW,GAAX;QACI,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAE9B,OACI,IAAI,CAAC,8BAA8B,CAC/B,eAAe,CAAC,OAAO,EACvB,eAAe,CAAC,aAAa,EAC7B,eAAe,CAAC,MAAM,CACzB,EACH;YACE,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC/C,IAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,SAAS,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;SAC7D;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,kDAAiB,GAAjB;QACI,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnC,OACI,IAAI,CAAC,8BAA8B,CAC/B,eAAe,CAAC,SAAS,EACzB,eAAe,CAAC,MAAM,CACzB,EACH;YACE,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC/C,IAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,SAAS,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;SAC7D;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,wCAAO,GAAP;QACI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAED,qCAAI,GAAJ;QACI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAED,sCAAK,GAAL;QACI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAED,yCAAQ,GAAR;QACI,IAAI,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzC,OACI,IAAI,CAAC,8BAA8B,CAC/B,eAAe,CAAC,KAAK,EACrB,eAAe,CAAC,WAAW,EAC3B,eAAe,CAAC,KAAK,EACrB,eAAe,CAAC,WAAW,CAC9B,EACH;YACE,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC/C,IAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzC,SAAS,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;SAC7D;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,oDAAmB,GAAnB;QACI,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhC,OACI,IAAI,CAAC,8BAA8B,CAC/B,eAAe,CAAC,SAAS,EACzB,eAAe,CAAC,KAAK,CACxB,EACH;YACE,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC/C,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,SAAS,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;SAC7D;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,mCAAE,GAAF;QACI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAED,kCAAC,GAAD;QACI,IAAI,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3C,OAAO,IAAI,CAAC,8BAA8B,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;YAC3D,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC/C,IAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3C,SAAS,GAAG,IAAI,mBAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;SAC5D;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,mCAAE,GAAF;QACI,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;QAEzB,OAAO,IAAI,CAAC,8BAA8B,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE;YAC5D,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC/C,IAAM,OAAO,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;YACzB,SAAS,GAAG,IAAI,mBAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;SAC5D;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAOD,0CAAS,GAAT;QACI,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAID,oDAAmB,GAAnB;QACI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAID,6CAAY,GAAZ;QACI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAMD,iDAAgB,GAAhB;QACI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAED,mDAAkB,GAAlB;QACI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAED,kDAAiB,GAAjB;QACI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAID,mDAAkB,GAAlB;QACI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAED,gDAAe,GAAf;QACI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAID,mDAAkB,GAAlB;QACI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAED,qDAAoB,GAApB;QACI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAED,uCAAM,GAAN,UAAO,IAAY;QACf,IAAM,aAAa,GAAqB,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAExE,IAAM,UAAU,GAAqB,IAAI,CAAC,QAAQ,CAC9C,eAAe,CAAC,aAAa,EAC7B,wBAAiB,IAAI,MAAG,CAC3B,CAAC;QACF,OAAO,IAAI,oBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,CAAC;IAID,mDAAkB,GAAlB;QACI,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAQL,6BAAC;AAAD,CAAC,AA9QD,IA8QC;AA9QqB,wDAAsB"}
|
|
@@ -4,6 +4,7 @@ import { ErroAvaliadorSintatico } from './erro-avaliador-sintatico';
|
|
|
4
4
|
import { Classe, Continua, Enquanto, Escolha, Escreva, Expressao, Fazer, Funcao as FuncaoDeclaracao, Importar, Para, Sustar, Retorna, Se, Tente, Var } from '../declaracoes';
|
|
5
5
|
import { RetornoAvaliadorSintatico } from '../interfaces/retornos/retorno-avaliador-sintatico';
|
|
6
6
|
import { RetornoLexador } from '../interfaces/retornos/retorno-lexador';
|
|
7
|
+
import { RetornoDeclaracao, RetornoResolverDeclaracao } from './retornos';
|
|
7
8
|
/**
|
|
8
9
|
* O avaliador sintático (Parser) é responsável por transformar os símbolos do Lexador em estruturas de alto nível.
|
|
9
10
|
* Essas estruturas de alto nível são as partes que executam lógica de programação de fato.
|
|
@@ -25,7 +26,7 @@ export declare class AvaliadorSintatico implements AvaliadorSintaticoInterface {
|
|
|
25
26
|
simboloAnterior(): SimboloInterface;
|
|
26
27
|
estaNoFinal(): boolean;
|
|
27
28
|
avancarEDevolverAnterior(): SimboloInterface;
|
|
28
|
-
verificarSeSimboloAtualEIgualA(...argumentos:
|
|
29
|
+
verificarSeSimboloAtualEIgualA(...argumentos: string[]): boolean;
|
|
29
30
|
primario(): Construto;
|
|
30
31
|
finalizarChamada(entidadeChamada: Construto): Construto;
|
|
31
32
|
chamar(): Construto;
|
|
@@ -54,7 +55,7 @@ export declare class AvaliadorSintatico implements AvaliadorSintaticoInterface {
|
|
|
54
55
|
expressao(): Construto;
|
|
55
56
|
declaracaoEscreva(): Escreva;
|
|
56
57
|
declaracaoExpressao(): Expressao;
|
|
57
|
-
blocoEscopo():
|
|
58
|
+
blocoEscopo(): Array<RetornoDeclaracao>;
|
|
58
59
|
declaracaoSe(): Se;
|
|
59
60
|
declaracaoEnquanto(): Enquanto;
|
|
60
61
|
declaracaoPara(): Para;
|
|
@@ -65,7 +66,7 @@ export declare class AvaliadorSintatico implements AvaliadorSintaticoInterface {
|
|
|
65
66
|
declaracaoImportar(): Importar;
|
|
66
67
|
declaracaoTente(): Tente;
|
|
67
68
|
declaracaoFazer(): Fazer;
|
|
68
|
-
resolverDeclaracao():
|
|
69
|
+
resolverDeclaracao(): RetornoResolverDeclaracao;
|
|
69
70
|
/**
|
|
70
71
|
* Caso símbolo atual seja `var`, devolve uma declaração de variável.
|
|
71
72
|
* @returns Um Construto do tipo Var.
|
|
@@ -75,7 +76,7 @@ export declare class AvaliadorSintatico implements AvaliadorSintaticoInterface {
|
|
|
75
76
|
logicaComumParametros(): ParametroInterface[];
|
|
76
77
|
corpoDaFuncao(tipo: string): Funcao;
|
|
77
78
|
declaracaoDeClasse(): Classe;
|
|
78
|
-
declaracao():
|
|
79
|
+
declaracao(): RetornoDeclaracao;
|
|
79
80
|
/**
|
|
80
81
|
* Usado quando há erros na avaliação sintática.
|
|
81
82
|
* Garante que o código não entre em loop infinito.
|