@designliquido/delegua 0.14.5 → 0.14.7
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 +4 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.d.ts +9 -8
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.js +54 -28
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.js.map +1 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.d.ts +8 -1
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js +94 -40
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.js.map +1 -1
- package/fontes/formatadores/delegua.d.ts +8 -1
- package/fontes/formatadores/delegua.js +12 -29
- package/fontes/formatadores/delegua.js.map +1 -1
- package/fontes/lexador/dialetos/lexador-portugol-studio.js +3 -1
- package/fontes/lexador/dialetos/lexador-portugol-studio.js.map +1 -1
- package/fontes/lexador/dialetos/palavras-reservadas/portugol-studio.d.ts +3 -0
- package/fontes/lexador/dialetos/palavras-reservadas/portugol-studio.js +3 -0
- package/fontes/lexador/dialetos/palavras-reservadas/portugol-studio.js.map +1 -1
- package/fontes/lexador/dialetos/palavras-reservadas/visualg.d.ts +2 -0
- package/fontes/lexador/dialetos/palavras-reservadas/visualg.js +2 -0
- package/fontes/lexador/dialetos/palavras-reservadas/visualg.js.map +1 -1
- package/fontes/lexador/lexador-base.js +1 -1
- package/fontes/lexador/lexador-base.js.map +1 -1
- package/fontes/tipos-de-simbolos/portugol-studio.d.ts +2 -0
- package/fontes/tipos-de-simbolos/portugol-studio.js +2 -0
- package/fontes/tipos-de-simbolos/portugol-studio.js.map +1 -1
- package/fontes/tipos-de-simbolos/visualg.d.ts +2 -0
- package/fontes/tipos-de-simbolos/visualg.js +2 -0
- package/fontes/tipos-de-simbolos/visualg.js.map +1 -1
- package/fontes/tradutores/python/python3-lexer.d.ts +152 -0
- package/fontes/tradutores/python/python3-lexer.js +1227 -0
- package/fontes/tradutores/python/python3-lexer.js.map +1 -0
- package/fontes/tradutores/python/python3-listener.d.ts +953 -0
- package/fontes/tradutores/python/python3-listener.js +3 -0
- package/fontes/tradutores/python/python3-listener.js.map +1 -0
- package/fontes/tradutores/python/python3-parser.d.ts +1330 -0
- package/fontes/tradutores/python/python3-parser.js +11157 -0
- package/fontes/tradutores/python/python3-parser.js.map +1 -0
- package/fontes/tradutores/python/python3-visitor.d.ts +612 -0
- package/fontes/tradutores/python/python3-visitor.js +3 -0
- package/fontes/tradutores/python/python3-visitor.js.map +1 -0
- package/fontes/tradutores/tradutor-python.d.ts +1 -0
- package/fontes/tradutores/tradutor-python.js +35 -0
- package/fontes/tradutores/tradutor-python.js.map +1 -0
- package/package.json +4 -1
package/bin/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@designliquido/delegua",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.6",
|
|
4
4
|
"description": "Linguagem de programação simples e moderna usando português estruturado, com suporte a múltiplos dialetos",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -63,6 +63,8 @@
|
|
|
63
63
|
"@types/jest": "^29.4.0",
|
|
64
64
|
"@typescript-eslint/eslint-plugin": "^5.46.1",
|
|
65
65
|
"@typescript-eslint/parser": "^5.46.1",
|
|
66
|
+
"antlr4": "^4.12.0",
|
|
67
|
+
"antlr4ts-cli": "^0.5.0-alpha.4",
|
|
66
68
|
"copyfiles": "^2.4.1",
|
|
67
69
|
"eslint": "^8.29.0",
|
|
68
70
|
"eslint-config-prettier": "^8.5.0",
|
|
@@ -79,6 +81,7 @@
|
|
|
79
81
|
"typescript": "^4.9.4"
|
|
80
82
|
},
|
|
81
83
|
"dependencies": {
|
|
84
|
+
"antlr4ts": "^0.5.0-alpha.4",
|
|
82
85
|
"browser-process-hrtime": "^1.0.0",
|
|
83
86
|
"esprima": "^4.0.1"
|
|
84
87
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Construto, FuncaoConstruto } from
|
|
2
|
-
import { Escreva, Declaracao, Se, Enquanto, Para, Escolha, Fazer, Leia, Var } from
|
|
3
|
-
import { RetornoLexador, RetornoAvaliadorSintatico } from
|
|
4
|
-
import { AvaliadorSintaticoBase } from
|
|
1
|
+
import { Construto, FuncaoConstruto } from '../../construtos';
|
|
2
|
+
import { Escreva, Declaracao, Se, Enquanto, Para, Escolha, Fazer, Leia, Var } from '../../declaracoes';
|
|
3
|
+
import { RetornoLexador, RetornoAvaliadorSintatico } from '../../interfaces/retornos';
|
|
4
|
+
import { AvaliadorSintaticoBase } from '../avaliador-sintatico-base';
|
|
5
5
|
/**
|
|
6
6
|
* O avaliador sintático (Parser) é responsável por transformar os símbolos do Lexador em estruturas de alto nível.
|
|
7
7
|
* Essas estruturas de alto nível são as partes que executam lógica de programação de fato.
|
|
@@ -16,16 +16,17 @@ export declare class AvaliadorSintaticoPortugolStudio extends AvaliadorSintatico
|
|
|
16
16
|
blocoEscopo(): Declaracao[];
|
|
17
17
|
declaracaoSe(): Se;
|
|
18
18
|
declaracaoEnquanto(): Enquanto;
|
|
19
|
-
|
|
19
|
+
declaracaoEscolha(): Escolha;
|
|
20
|
+
declaracaoFazer(): Fazer;
|
|
21
|
+
corpoDaFuncao(tipo: string): FuncaoConstruto;
|
|
22
|
+
declaracaoInteiro(): Var[];
|
|
20
23
|
/**
|
|
21
24
|
* Análise de uma declaração `leia()`. No VisuAlg, `leia()` aceita 1..N argumentos.
|
|
22
25
|
* @returns Uma declaração `Leia`.
|
|
23
26
|
*/
|
|
24
27
|
declaracaoLeia(): Leia;
|
|
25
28
|
declaracaoPara(): Para;
|
|
26
|
-
|
|
27
|
-
declaracaoFazer(): Fazer;
|
|
28
|
-
corpoDaFuncao(tipo: string): FuncaoConstruto;
|
|
29
|
+
declaracaoReal(): Var[];
|
|
29
30
|
expressao(): Construto;
|
|
30
31
|
declaracao(): Declaracao | Declaracao[] | Construto | Construto[] | any;
|
|
31
32
|
analisar(retornoLexador: RetornoLexador, hashArquivo?: number): RetornoAvaliadorSintatico;
|
|
@@ -21,9 +21,9 @@ class AvaliadorSintaticoPortugolStudio extends avaliador_sintatico_base_1.Avalia
|
|
|
21
21
|
declaracoes.push(this.declaracao());
|
|
22
22
|
}
|
|
23
23
|
if (this.simbolos[this.atual - 1].tipo !== portugol_studio_1.default.CHAVE_DIREITA) {
|
|
24
|
-
throw this.erro(this.simbolos[this.atual - 1],
|
|
24
|
+
throw this.erro(this.simbolos[this.atual - 1], 'Esperado chave direita final para término do programa.');
|
|
25
25
|
}
|
|
26
|
-
const encontrarDeclaracaoInicio = declaracoes.filter(d => d instanceof declaracoes_1.FuncaoDeclaracao && d.simbolo.lexema === 'inicio');
|
|
26
|
+
const encontrarDeclaracaoInicio = declaracoes.filter((d) => d instanceof declaracoes_1.FuncaoDeclaracao && d.simbolo.lexema === 'inicio');
|
|
27
27
|
if (encontrarDeclaracaoInicio.length <= 0) {
|
|
28
28
|
throw this.erro(this.simbolos[0], "Função 'inicio()' para iniciar o programa não foi definida.");
|
|
29
29
|
}
|
|
@@ -35,7 +35,7 @@ class AvaliadorSintaticoPortugolStudio extends avaliador_sintatico_base_1.Avalia
|
|
|
35
35
|
if (this.verificarSeSimboloAtualEIgualA(portugol_studio_1.default.IDENTIFICADOR)) {
|
|
36
36
|
return new construtos_1.Variavel(this.hashArquivo, this.simbolos[this.atual - 1]);
|
|
37
37
|
}
|
|
38
|
-
if (this.verificarSeSimboloAtualEIgualA(portugol_studio_1.default.REAL, portugol_studio_1.default.CADEIA)) {
|
|
38
|
+
if (this.verificarSeSimboloAtualEIgualA(portugol_studio_1.default.REAL, portugol_studio_1.default.INTEIRO, portugol_studio_1.default.CADEIA)) {
|
|
39
39
|
const simboloAnterior = this.simbolos[this.atual - 1];
|
|
40
40
|
return new construtos_1.Literal(this.hashArquivo, Number(simboloAnterior.linha), simboloAnterior.literal);
|
|
41
41
|
}
|
|
@@ -88,6 +88,7 @@ class AvaliadorSintaticoPortugolStudio extends avaliador_sintatico_base_1.Avalia
|
|
|
88
88
|
return new declaracoes_1.Escreva(Number(simboloAtual.linha), simboloAtual.hashArquivo, argumentos);
|
|
89
89
|
}
|
|
90
90
|
blocoEscopo() {
|
|
91
|
+
this.consumir(portugol_studio_1.default.CHAVE_ESQUERDA, "Esperado '}' antes do bloco.");
|
|
91
92
|
let declaracoes = [];
|
|
92
93
|
while (!this.verificarTipoSimboloAtual(portugol_studio_1.default.CHAVE_DIREITA) && !this.estaNoFinal()) {
|
|
93
94
|
const declaracaoOuVetor = this.declaracao();
|
|
@@ -102,13 +103,41 @@ class AvaliadorSintaticoPortugolStudio extends avaliador_sintatico_base_1.Avalia
|
|
|
102
103
|
return declaracoes;
|
|
103
104
|
}
|
|
104
105
|
declaracaoSe() {
|
|
105
|
-
|
|
106
|
+
this.consumir(portugol_studio_1.default.SE, "");
|
|
107
|
+
this.consumir(portugol_studio_1.default.PARENTESE_ESQUERDO, "Esperado '(' após 'se'.");
|
|
108
|
+
const condicao = this.expressao();
|
|
109
|
+
this.consumir(portugol_studio_1.default.PARENTESE_DIREITO, "Esperado ')' após condição do se.");
|
|
110
|
+
const caminhoEntao = this.declaracao();
|
|
111
|
+
let caminhoSenao = null;
|
|
112
|
+
if (this.verificarSeSimboloAtualEIgualA(portugol_studio_1.default.SENAO)) {
|
|
113
|
+
caminhoSenao = this.declaracao();
|
|
114
|
+
}
|
|
115
|
+
return new declaracoes_1.Se(condicao, caminhoEntao, [], caminhoSenao);
|
|
106
116
|
}
|
|
107
117
|
declaracaoEnquanto() {
|
|
108
|
-
throw new Error(
|
|
118
|
+
throw new Error('Método não implementado.');
|
|
119
|
+
}
|
|
120
|
+
declaracaoEscolha() {
|
|
121
|
+
throw new Error('Método não implementado.');
|
|
122
|
+
}
|
|
123
|
+
declaracaoFazer() {
|
|
124
|
+
throw new Error('Método não implementado.');
|
|
125
|
+
}
|
|
126
|
+
corpoDaFuncao(tipo) {
|
|
127
|
+
// O parêntese esquerdo é considerado o símbolo inicial para
|
|
128
|
+
// fins de pragma.
|
|
129
|
+
const parenteseEsquerdo = this.consumir(portugol_studio_1.default.PARENTESE_ESQUERDO, `Esperado '(' após o nome ${tipo}.`);
|
|
130
|
+
let parametros = [];
|
|
131
|
+
if (!this.verificarTipoSimboloAtual(portugol_studio_1.default.PARENTESE_DIREITO)) {
|
|
132
|
+
parametros = this.logicaComumParametros();
|
|
133
|
+
}
|
|
134
|
+
this.consumir(portugol_studio_1.default.PARENTESE_DIREITO, "Esperado ')' após parâmetros.");
|
|
135
|
+
// this.consumir(tiposDeSimbolos.CHAVE_ESQUERDA, `Esperado '{' antes do escopo do ${tipo}.`);
|
|
136
|
+
const corpo = this.blocoEscopo();
|
|
137
|
+
return new construtos_1.FuncaoConstruto(this.hashArquivo, Number(parenteseEsquerdo.linha), parametros, corpo);
|
|
109
138
|
}
|
|
110
|
-
|
|
111
|
-
const simboloInteiro = this.consumir(portugol_studio_1.default.INTEIRO,
|
|
139
|
+
declaracaoInteiro() {
|
|
140
|
+
const simboloInteiro = this.consumir(portugol_studio_1.default.INTEIRO, '');
|
|
112
141
|
const inicializacoes = [];
|
|
113
142
|
do {
|
|
114
143
|
const identificador = this.consumir(portugol_studio_1.default.IDENTIFICADOR, "Esperado identificador após palavra reservada 'inteiro'.");
|
|
@@ -131,26 +160,16 @@ class AvaliadorSintaticoPortugolStudio extends avaliador_sintatico_base_1.Avalia
|
|
|
131
160
|
return new declaracoes_1.Leia(simboloAtual.hashArquivo, Number(simboloAtual.linha), argumentos);
|
|
132
161
|
}
|
|
133
162
|
declaracaoPara() {
|
|
134
|
-
throw new Error(
|
|
135
|
-
}
|
|
136
|
-
declaracaoEscolha() {
|
|
137
|
-
throw new Error("Método não implementado.");
|
|
138
|
-
}
|
|
139
|
-
declaracaoFazer() {
|
|
140
|
-
throw new Error("Método não implementado.");
|
|
163
|
+
throw new Error('Método não implementado.');
|
|
141
164
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
this.consumir(portugol_studio_1.default.PARENTESE_DIREITO, "Esperado ')' após parâmetros.");
|
|
151
|
-
this.consumir(portugol_studio_1.default.CHAVE_ESQUERDA, `Esperado '{' antes do escopo do ${tipo}.`);
|
|
152
|
-
const corpo = this.blocoEscopo();
|
|
153
|
-
return new construtos_1.FuncaoConstruto(this.hashArquivo, Number(parenteseEsquerdo.linha), parametros, corpo);
|
|
165
|
+
declaracaoReal() {
|
|
166
|
+
const simboloReal = this.consumir(portugol_studio_1.default.REAL, '');
|
|
167
|
+
const inicializacoes = [];
|
|
168
|
+
do {
|
|
169
|
+
const identificador = this.consumir(portugol_studio_1.default.IDENTIFICADOR, "Esperado identificador após palavra reservada 'real'.");
|
|
170
|
+
inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(simboloReal.linha), 0)));
|
|
171
|
+
} while (this.verificarSeSimboloAtualEIgualA(portugol_studio_1.default.VIRGULA));
|
|
172
|
+
return inicializacoes;
|
|
154
173
|
}
|
|
155
174
|
expressao() {
|
|
156
175
|
// if (this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos.LEIA)) return this.declaracaoLeia();
|
|
@@ -159,18 +178,25 @@ class AvaliadorSintaticoPortugolStudio extends avaliador_sintatico_base_1.Avalia
|
|
|
159
178
|
declaracao() {
|
|
160
179
|
const simboloAtual = this.simbolos[this.atual];
|
|
161
180
|
switch (simboloAtual.tipo) {
|
|
181
|
+
case portugol_studio_1.default.CHAVE_ESQUERDA:
|
|
182
|
+
const simboloInicioBloco = this.simbolos[this.atual];
|
|
183
|
+
return new declaracoes_1.Bloco(simboloInicioBloco.hashArquivo, Number(simboloInicioBloco.linha), this.blocoEscopo());
|
|
162
184
|
case portugol_studio_1.default.ESCREVA:
|
|
163
185
|
return this.declaracaoEscreva();
|
|
164
186
|
case portugol_studio_1.default.FUNCAO:
|
|
165
187
|
return this.funcao('funcao');
|
|
166
188
|
case portugol_studio_1.default.INTEIRO:
|
|
167
|
-
return this.
|
|
189
|
+
return this.declaracaoInteiro();
|
|
168
190
|
case portugol_studio_1.default.LEIA:
|
|
169
191
|
return this.declaracaoLeia();
|
|
170
192
|
case portugol_studio_1.default.PROGRAMA:
|
|
171
193
|
case portugol_studio_1.default.CHAVE_DIREITA:
|
|
172
194
|
this.avancarEDevolverAnterior();
|
|
173
195
|
return null;
|
|
196
|
+
case portugol_studio_1.default.REAL:
|
|
197
|
+
return this.declaracaoReal();
|
|
198
|
+
case portugol_studio_1.default.SE:
|
|
199
|
+
return this.declaracaoSe();
|
|
174
200
|
default:
|
|
175
201
|
return this.expressao();
|
|
176
202
|
}
|
|
@@ -184,7 +210,7 @@ class AvaliadorSintaticoPortugolStudio extends avaliador_sintatico_base_1.Avalia
|
|
|
184
210
|
const declaracoes = [];
|
|
185
211
|
this.validarEscopoPrograma(declaracoes);
|
|
186
212
|
return {
|
|
187
|
-
declaracoes: declaracoes.filter(d => d),
|
|
213
|
+
declaracoes: declaracoes.filter((d) => d),
|
|
188
214
|
erros: this.erros,
|
|
189
215
|
};
|
|
190
216
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avaliador-sintatico-portugol-studio.js","sourceRoot":"","sources":["../../../../fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"avaliador-sintatico-portugol-studio.js","sourceRoot":"","sources":["../../../../fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { RetornoLexador, RetornoAvaliadorSintatico } from '../../interfaces/retornos';
|
|
2
2
|
import { AvaliadorSintaticoBase } from '../avaliador-sintatico-base';
|
|
3
|
-
import { Declaracao, Enquanto, Escolha, Escreva, EscrevaMesmaLinha, Fazer, Leia, Para, Se } from '../../declaracoes';
|
|
3
|
+
import { Declaracao, Enquanto, Escolha, Escreva, EscrevaMesmaLinha, Fazer, FuncaoDeclaracao, Leia, Para, Se } from '../../declaracoes';
|
|
4
4
|
import { Construto, FuncaoConstruto } from '../../construtos';
|
|
5
|
+
import { ParametroInterface } from '../../interfaces';
|
|
5
6
|
export declare class AvaliadorSintaticoVisuAlg extends AvaliadorSintaticoBase {
|
|
6
7
|
private validarSegmentoAlgoritmo;
|
|
7
8
|
private criarVetorNDimensional;
|
|
8
9
|
private validarDimensoesVetor;
|
|
10
|
+
private logicaComumParametroVisuAlg;
|
|
9
11
|
/**
|
|
10
12
|
* Validação do segmento de declaração de variáveis (opcional).
|
|
11
13
|
* @returns Vetor de Construtos para inicialização de variáveis.
|
|
@@ -48,6 +50,11 @@ export declare class AvaliadorSintaticoVisuAlg extends AvaliadorSintaticoBase {
|
|
|
48
50
|
*/
|
|
49
51
|
declaracaoLeia(): Leia;
|
|
50
52
|
declaracaoPara(): Para;
|
|
53
|
+
logicaComumParametros(): ParametroInterface[];
|
|
54
|
+
/**
|
|
55
|
+
* Procedimentos nada mais são do que funções que não retornam valor.
|
|
56
|
+
*/
|
|
57
|
+
declaracaoProcedimento(): FuncaoDeclaracao;
|
|
51
58
|
declaracaoSe(): Se;
|
|
52
59
|
declaracao(): Declaracao | Declaracao[] | Construto | Construto[] | any;
|
|
53
60
|
/**
|
|
@@ -40,13 +40,30 @@ class AvaliadorSintaticoVisuAlg extends avaliador_sintatico_base_1.AvaliadorSint
|
|
|
40
40
|
} while (this.verificarSeSimboloAtualEIgualA(visualg_1.default.VIRGULA));
|
|
41
41
|
return dimensoes;
|
|
42
42
|
}
|
|
43
|
+
logicaComumParametroVisuAlg() {
|
|
44
|
+
const identificadores = [];
|
|
45
|
+
do {
|
|
46
|
+
identificadores.push(this.consumir(visualg_1.default.IDENTIFICADOR, 'Esperado nome de variável.'));
|
|
47
|
+
} while (this.verificarSeSimboloAtualEIgualA(visualg_1.default.VIRGULA));
|
|
48
|
+
this.consumir(visualg_1.default.DOIS_PONTOS, 'Esperado dois-pontos após nome de variável.');
|
|
49
|
+
if (!this.verificarSeSimboloAtualEIgualA(visualg_1.default.CARACTERE, visualg_1.default.INTEIRO, visualg_1.default.LOGICO, visualg_1.default.REAL, visualg_1.default.VETOR)) {
|
|
50
|
+
throw this.erro(this.simbolos[this.atual], 'Tipo de variável não conhecido.');
|
|
51
|
+
}
|
|
52
|
+
const simboloAnterior = this.simbolos[this.atual - 1];
|
|
53
|
+
const tipoVariavel = simboloAnterior.tipo;
|
|
54
|
+
return {
|
|
55
|
+
identificadores,
|
|
56
|
+
tipo: tipoVariavel,
|
|
57
|
+
simbolo: simboloAnterior
|
|
58
|
+
};
|
|
59
|
+
}
|
|
43
60
|
/**
|
|
44
61
|
* Validação do segmento de declaração de variáveis (opcional).
|
|
45
62
|
* @returns Vetor de Construtos para inicialização de variáveis.
|
|
46
63
|
*/
|
|
47
64
|
validarSegmentoVar() {
|
|
48
65
|
// Podem haver linhas de comentários acima de `var`, que geram
|
|
49
|
-
// quebras de linha.
|
|
66
|
+
// quebras de linha.
|
|
50
67
|
while (this.simbolos[this.atual].tipo === visualg_1.default.QUEBRA_LINHA) {
|
|
51
68
|
this.avancarEDevolverAnterior();
|
|
52
69
|
}
|
|
@@ -56,48 +73,48 @@ class AvaliadorSintaticoVisuAlg extends avaliador_sintatico_base_1.AvaliadorSint
|
|
|
56
73
|
const inicializacoes = [];
|
|
57
74
|
this.avancarEDevolverAnterior(); // Var
|
|
58
75
|
// Quebra de linha é opcional aqui.
|
|
59
|
-
this.verificarSeSimboloAtualEIgualA(
|
|
76
|
+
// this.verificarSeSimboloAtualEIgualA(tiposDeSimbolos.QUEBRA_LINHA);
|
|
60
77
|
while (!this.verificarTipoSimboloAtual(visualg_1.default.INICIO)) {
|
|
61
78
|
// Se ainda houver quebras de linha, volta para o começo do `while`.
|
|
62
79
|
if (this.verificarSeSimboloAtualEIgualA(visualg_1.default.QUEBRA_LINHA)) {
|
|
63
80
|
continue;
|
|
64
81
|
}
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
82
|
+
const simboloAtual = this.simbolos[this.atual];
|
|
83
|
+
switch (simboloAtual.tipo) {
|
|
84
|
+
case visualg_1.default.PROCEDIMENTO:
|
|
85
|
+
const dadosProcedimento = this.declaracaoProcedimento();
|
|
86
|
+
inicializacoes.push(dadosProcedimento);
|
|
87
|
+
break;
|
|
88
|
+
default:
|
|
89
|
+
const dadosVariaveis = this.logicaComumParametroVisuAlg();
|
|
90
|
+
// Se chegou até aqui, variáveis são válidas.
|
|
91
|
+
// Devem ser declaradas com um valor inicial padrão.
|
|
92
|
+
for (let identificador of dadosVariaveis.identificadores) {
|
|
93
|
+
switch (dadosVariaveis.tipo) {
|
|
94
|
+
case visualg_1.default.CARACTERE:
|
|
95
|
+
inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(dadosVariaveis.simbolo.linha), '')));
|
|
96
|
+
break;
|
|
97
|
+
case visualg_1.default.INTEIRO:
|
|
98
|
+
case visualg_1.default.REAL:
|
|
99
|
+
inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(dadosVariaveis.simbolo.linha), 0)));
|
|
100
|
+
break;
|
|
101
|
+
case visualg_1.default.LOGICO:
|
|
102
|
+
inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(dadosVariaveis.simbolo.linha), false)));
|
|
103
|
+
break;
|
|
104
|
+
case visualg_1.default.VETOR:
|
|
105
|
+
// TODO: Validar vetor
|
|
106
|
+
this.consumir(visualg_1.default.COLCHETE_ESQUERDO, 'Esperado colchete esquerdo após palavra reservada "vetor".');
|
|
107
|
+
const dimensoes = this.validarDimensoesVetor();
|
|
108
|
+
this.consumir(visualg_1.default.COLCHETE_DIREITO, 'Esperado colchete direito após declaração de dimensões de vetor.');
|
|
109
|
+
this.consumir(visualg_1.default.DE, 'Esperado palavra reservada "de" após declaração de dimensões de vetor.');
|
|
110
|
+
if (!this.verificarSeSimboloAtualEIgualA(visualg_1.default.CARACTERE, visualg_1.default.INTEIRO, visualg_1.default.LOGICO, visualg_1.default.REAL, visualg_1.default.VETOR)) {
|
|
111
|
+
throw this.erro(this.simbolos[this.atual], 'Tipo de variável não conhecido para inicialização de vetor.');
|
|
112
|
+
}
|
|
113
|
+
inicializacoes.push(new declaracoes_1.Var(identificador, new construtos_1.Literal(this.hashArquivo, Number(dadosVariaveis.simbolo.linha), this.criarVetorNDimensional(dimensoes))));
|
|
114
|
+
break;
|
|
97
115
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
116
|
+
}
|
|
117
|
+
break;
|
|
101
118
|
}
|
|
102
119
|
this.consumir(visualg_1.default.QUEBRA_LINHA, 'Esperado quebra de linha após declaração de variável.');
|
|
103
120
|
}
|
|
@@ -181,10 +198,15 @@ class AvaliadorSintaticoVisuAlg extends avaliador_sintatico_base_1.AvaliadorSint
|
|
|
181
198
|
}
|
|
182
199
|
blocoEscopo() {
|
|
183
200
|
const declaracoes = [];
|
|
184
|
-
while (!
|
|
201
|
+
while (![
|
|
202
|
+
visualg_1.default.FIM_FUNCAO,
|
|
203
|
+
visualg_1.default.FIM_PROCEDIMENTO
|
|
204
|
+
].includes(this.simbolos[this.atual].tipo) && !this.estaNoFinal()) {
|
|
185
205
|
declaracoes.push(this.declaracao());
|
|
186
206
|
}
|
|
187
|
-
|
|
207
|
+
// Se chegou até aqui, simplesmente consome o símbolo.
|
|
208
|
+
this.avancarEDevolverAnterior();
|
|
209
|
+
// this.consumir(tiposDeSimbolos.FIM_FUNCAO, "Esperado palavra-chave 'fimfuncao' após o bloco.");
|
|
188
210
|
return declaracoes;
|
|
189
211
|
}
|
|
190
212
|
chamar() {
|
|
@@ -386,11 +408,41 @@ class AvaliadorSintaticoVisuAlg extends avaliador_sintatico_base_1.AvaliadorSint
|
|
|
386
408
|
declaracoesBlocoPara.push(this.declaracao());
|
|
387
409
|
simboloAtualBlocoPara = this.simbolos[this.atual];
|
|
388
410
|
}
|
|
389
|
-
this.consumir(visualg_1.default.FIM_PARA,
|
|
411
|
+
this.consumir(visualg_1.default.FIM_PARA, '');
|
|
390
412
|
this.consumir(visualg_1.default.QUEBRA_LINHA, "Esperado quebra de linha após palavra reservada 'fimpara'.");
|
|
391
413
|
const corpo = new declaracoes_1.Bloco(this.hashArquivo, Number(simboloPara.linha) + 1, declaracoesBlocoPara.filter((d) => d));
|
|
392
414
|
return new declaracoes_1.Para(this.hashArquivo, Number(simboloPara.linha), new construtos_1.Atribuir(this.hashArquivo, variavelIteracao, new construtos_1.Literal(this.hashArquivo, Number(simboloPara.linha), numeroInicio.literal)), new construtos_1.Binario(this.hashArquivo, new construtos_1.Variavel(this.hashArquivo, variavelIteracao), new lexador_1.Simbolo(visualg_1.default.MENOR, '', '', Number(simboloPara.linha), this.hashArquivo), new construtos_1.Literal(this.hashArquivo, Number(simboloPara.linha), numeroFim.literal)), new construtos_1.Atribuir(this.hashArquivo, variavelIteracao, new construtos_1.Binario(this.hashArquivo, new construtos_1.Variavel(this.hashArquivo, variavelIteracao), new lexador_1.Simbolo(visualg_1.default.ADICAO, '', null, Number(simboloPara.linha), this.hashArquivo), new construtos_1.Literal(this.hashArquivo, Number(simboloPara.linha), 1))), corpo);
|
|
393
415
|
}
|
|
416
|
+
logicaComumParametros() {
|
|
417
|
+
const parametros = [];
|
|
418
|
+
if (this.verificarSeSimboloAtualEIgualA(visualg_1.default.PARENTESE_ESQUERDO)) {
|
|
419
|
+
while (!this.verificarTipoSimboloAtual(visualg_1.default.PARENTESE_DIREITO)) {
|
|
420
|
+
const dadosParametros = this.logicaComumParametroVisuAlg();
|
|
421
|
+
for (let parametro of dadosParametros.identificadores) {
|
|
422
|
+
parametros.push({
|
|
423
|
+
tipo: 'padrao',
|
|
424
|
+
nome: parametro
|
|
425
|
+
});
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
// Consumir parêntese direito
|
|
429
|
+
this.consumir(visualg_1.default.PARENTESE_DIREITO, "Esperado parêntese direito para finalização da leitura de parâmetros.");
|
|
430
|
+
}
|
|
431
|
+
return parametros;
|
|
432
|
+
}
|
|
433
|
+
/**
|
|
434
|
+
* Procedimentos nada mais são do que funções que não retornam valor.
|
|
435
|
+
*/
|
|
436
|
+
declaracaoProcedimento() {
|
|
437
|
+
const simboloProcedimento = this.avancarEDevolverAnterior();
|
|
438
|
+
const nomeProcedimento = this.consumir(visualg_1.default.IDENTIFICADOR, "Esperado nome do procedimento após palavra-chave `procedimento`.");
|
|
439
|
+
// Parâmetros
|
|
440
|
+
const parametros = this.logicaComumParametros();
|
|
441
|
+
this.validarSegmentoVar();
|
|
442
|
+
this.validarSegmentoInicio('procedimento');
|
|
443
|
+
const corpo = this.blocoEscopo();
|
|
444
|
+
return new declaracoes_1.FuncaoDeclaracao(nomeProcedimento, new construtos_1.FuncaoConstruto(this.hashArquivo, Number(simboloProcedimento.linha), parametros, corpo.filter(d => d)));
|
|
445
|
+
}
|
|
394
446
|
declaracaoSe() {
|
|
395
447
|
const simboloSe = this.avancarEDevolverAnterior();
|
|
396
448
|
const condicao = this.expressao();
|
|
@@ -435,6 +487,8 @@ class AvaliadorSintaticoVisuAlg extends avaliador_sintatico_base_1.AvaliadorSint
|
|
|
435
487
|
return this.declaracaoPara();
|
|
436
488
|
case visualg_1.default.PARENTESE_DIREITO:
|
|
437
489
|
throw new Error('Não deveria estar caindo aqui.');
|
|
490
|
+
case visualg_1.default.PROCEDIMENTO:
|
|
491
|
+
return this.declaracaoProcedimento();
|
|
438
492
|
case visualg_1.default.QUEBRA_LINHA:
|
|
439
493
|
this.avancarEDevolverAnterior();
|
|
440
494
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avaliador-sintatico-visualg.js","sourceRoot":"","sources":["../../../../fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"avaliador-sintatico-visualg.js","sourceRoot":"","sources":["../../../../fontes/avaliador-sintatico/dialetos/avaliador-sintatico-visualg.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,5 +7,12 @@ export declare class FormatadorDelegua {
|
|
|
7
7
|
indentacao: number;
|
|
8
8
|
blocoAberto: boolean;
|
|
9
9
|
constructor();
|
|
10
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Devolve código formatado de acordo com os símbolos encontrados.
|
|
12
|
+
* @param simbolos Um vetor de símbolos.
|
|
13
|
+
* @param quebraLinha O símbolo de quebra de linha. Normalmente `\r\n` para Windows e `\n` para outros sistemas operacionais.
|
|
14
|
+
* @param tamanhoIndentacao O tamanho de cada bloco de indentação (por padrão, 4)
|
|
15
|
+
* @returns Código Delégua formatado.
|
|
16
|
+
*/
|
|
17
|
+
formatar(simbolos: SimboloInterface[], quebraLinha: string, tamanhoIndentacao?: number): string;
|
|
11
18
|
}
|