@designliquido/portugol-studio 0.6.6 → 0.7.0
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/analisador-semantico/analisador-semantico-portugol-studio.d.ts +90 -2
- package/analisador-semantico/analisador-semantico-portugol-studio.d.ts.map +1 -1
- package/analisador-semantico/analisador-semantico-portugol-studio.js +613 -71
- package/analisador-semantico/analisador-semantico-portugol-studio.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Const, Declaracao, EscrevaMesmaLinha, Expressao, FuncaoDeclaracao, Var } from '@designliquido/delegua/declaracoes';
|
|
1
|
+
import { Const, Declaracao, Enquanto, Escolha, Escreva, EscrevaMesmaLinha, Expressao, FuncaoDeclaracao, Retorna, Var } from '@designliquido/delegua/declaracoes';
|
|
2
2
|
import { AnalisadorSemanticoBase } from '@designliquido/delegua/analisador-semantico/analisador-semantico-base';
|
|
3
3
|
import { SimboloInterface } from '@designliquido/delegua/interfaces';
|
|
4
4
|
import { DiagnosticoAnalisadorSemantico, DiagnosticoSeveridade } from '@designliquido/delegua/interfaces/erros';
|
|
@@ -19,17 +19,105 @@ export declare class AnalisadorSemanticoPortugolStudio extends AnalisadorSemanti
|
|
|
19
19
|
diagnosticos: DiagnosticoAnalisadorSemantico[];
|
|
20
20
|
corpoMetodoPrincipal: any[];
|
|
21
21
|
constructor();
|
|
22
|
+
/**
|
|
23
|
+
* Verifica o tipo atribuído a uma declaração
|
|
24
|
+
*/
|
|
25
|
+
private verificarTipoAtribuido;
|
|
22
26
|
adicionarDiagnostico(simbolo: SimboloInterface, mensagem: string, severidade?: DiagnosticoSeveridade): void;
|
|
27
|
+
/**
|
|
28
|
+
* Verifica interpolações de texto e marca variáveis como usadas
|
|
29
|
+
*/
|
|
30
|
+
private verificarInterpolacaoTexto;
|
|
31
|
+
/**
|
|
32
|
+
* Verifica a existência de uma variável e marca como usada
|
|
33
|
+
*/
|
|
34
|
+
private verificarVariavel;
|
|
35
|
+
/**
|
|
36
|
+
* Verifica condições em estruturas de controle
|
|
37
|
+
*/
|
|
38
|
+
private verificarCondicao;
|
|
39
|
+
/**
|
|
40
|
+
* Verifica variável em contexto binário/condicional
|
|
41
|
+
*/
|
|
42
|
+
private verificarVariavelBinaria;
|
|
43
|
+
/**
|
|
44
|
+
* Verifica expressões binárias
|
|
45
|
+
*/
|
|
46
|
+
private verificarBinario;
|
|
47
|
+
/**
|
|
48
|
+
* Verifica operadores binários
|
|
49
|
+
*/
|
|
50
|
+
private verificarOperadorBinario;
|
|
51
|
+
/**
|
|
52
|
+
* Verifica se os tipos dos operandos são compatíveis
|
|
53
|
+
*/
|
|
54
|
+
private verificarTiposOperandos;
|
|
55
|
+
/**
|
|
56
|
+
* Verifica divisão por zero recursivamente
|
|
57
|
+
*/
|
|
58
|
+
private verificarDivisaoPorZero;
|
|
59
|
+
/**
|
|
60
|
+
* Tenta avaliar uma expressão em tempo de compilação para detectar valores constantes
|
|
61
|
+
*/
|
|
62
|
+
private avaliarExpressaoConstante;
|
|
63
|
+
/**
|
|
64
|
+
* Calcula o resultado de uma operação binária em tempo de compilação
|
|
65
|
+
*/
|
|
66
|
+
private calcularOperacaoBinaria;
|
|
67
|
+
/**
|
|
68
|
+
* Obtém o tipo de uma expressão
|
|
69
|
+
*/
|
|
70
|
+
private obterTipoExpressao;
|
|
71
|
+
/**
|
|
72
|
+
* Infere o tipo de resultado de uma operação binária
|
|
73
|
+
*/
|
|
74
|
+
private inferirTipoBinario;
|
|
75
|
+
/**
|
|
76
|
+
* Verifica a existência de um construto
|
|
77
|
+
*/
|
|
78
|
+
private verificarExistenciaConstruto;
|
|
79
|
+
/**
|
|
80
|
+
* Verifica expressões lógicas
|
|
81
|
+
*/
|
|
82
|
+
private verificarLogico;
|
|
83
|
+
/**
|
|
84
|
+
* Verifica chamadas de função em condições
|
|
85
|
+
*/
|
|
86
|
+
private verificarChamada;
|
|
87
|
+
/**
|
|
88
|
+
* Verifica o lado de uma expressão lógica
|
|
89
|
+
*/
|
|
90
|
+
private verificarLadoLogico;
|
|
91
|
+
/**
|
|
92
|
+
* Verifica variáveis não usadas ao final da análise
|
|
93
|
+
*/
|
|
94
|
+
private verificarVariaveisNaoUsadas;
|
|
23
95
|
visitarDeclaracaoEscrevaMesmaLinha(declaracao: EscrevaMesmaLinha): Promise<any>;
|
|
24
96
|
visitarDeclaracaoDefinicaoFuncao(declaracao: FuncaoDeclaracao): Promise<any>;
|
|
25
97
|
visitarDeclaracaoVar(declaracao: Var): Promise<any>;
|
|
26
98
|
visitarExpressaoDeVariavel(expressao: Variavel): Promise<any>;
|
|
27
99
|
private validarCompatibilidadeTipos;
|
|
28
|
-
visitarExpressaoDeAtribuicao(expressao: Atribuir): Promise<
|
|
100
|
+
visitarExpressaoDeAtribuicao(expressao: Atribuir): Promise<any>;
|
|
29
101
|
visitarExpressaoDeChamada(expressao: Chamada): Promise<any>;
|
|
30
102
|
visitarExpressaoAtribuicaoPorIndice(expressao: AtribuicaoPorIndice): Promise<any>;
|
|
31
103
|
visitarDeclaracaoDeExpressao(declaracao: Expressao): Promise<void>;
|
|
32
104
|
visitarDeclaracaoConst(declaracao: Const): Promise<any>;
|
|
105
|
+
/**
|
|
106
|
+
* Visita declaração de escreva com validações adicionais
|
|
107
|
+
*/
|
|
108
|
+
visitarDeclaracaoEscreva(declaracao: Escreva): Promise<void>;
|
|
109
|
+
/**
|
|
110
|
+
* Visita declaração de enquanto com validação de condição
|
|
111
|
+
*/
|
|
112
|
+
visitarDeclaracaoEnquanto(declaracao: Enquanto): Promise<void>;
|
|
113
|
+
/**
|
|
114
|
+
* Visita declaração de escolha com validação de tipos
|
|
115
|
+
*/
|
|
116
|
+
visitarDeclaracaoEscolha(declaracao: Escolha): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Visita declaração de retorna
|
|
119
|
+
*/
|
|
120
|
+
visitarExpressaoRetornar(declaracao: Retorna): Promise<any>;
|
|
33
121
|
analisar(declaracoes: Declaracao[]): RetornoAnalisadorSemantico;
|
|
34
122
|
}
|
|
35
123
|
//# sourceMappingURL=analisador-semantico-portugol-studio.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analisador-semantico-portugol-studio.d.ts","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico-portugol-studio.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,EACL,UAAU,
|
|
1
|
+
{"version":3,"file":"analisador-semantico-portugol-studio.d.ts","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico-portugol-studio.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.AnalisadorSemanticoPortugolStudio = void 0;
|
|
7
7
|
const declaracoes_1 = require("@designliquido/delegua/declaracoes");
|
|
8
8
|
const analisador_semantico_base_1 = require("@designliquido/delegua/analisador-semantico/analisador-semantico-base");
|
|
9
|
+
const gerenciador_escopos_1 = require("@designliquido/delegua/analisador-semantico/gerenciador-escopos");
|
|
9
10
|
const erros_1 = require("@designliquido/delegua/interfaces/erros");
|
|
10
11
|
const pilha_variaveis_1 = require("./pilha-variaveis");
|
|
11
12
|
const construtos_1 = require("@designliquido/delegua/construtos");
|
|
@@ -20,6 +21,54 @@ class AnalisadorSemanticoPortugolStudio extends analisador_semantico_base_1.Anal
|
|
|
20
21
|
this.funcoes = {};
|
|
21
22
|
this.atual = 0;
|
|
22
23
|
this.diagnosticos = [];
|
|
24
|
+
this.gerenciadorEscopos = new gerenciador_escopos_1.GerenciadorEscopos();
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Verifica o tipo atribuído a uma declaração
|
|
28
|
+
*/
|
|
29
|
+
verificarTipoAtribuido(declaracao) {
|
|
30
|
+
if (!declaracao.tipo || !declaracao.inicializador) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
// Verifica vetores tipados
|
|
34
|
+
if (['vetor', 'qualquer[]', 'inteiro[]', 'texto[]'].includes(declaracao.tipo)) {
|
|
35
|
+
if (declaracao.inicializador instanceof construtos_1.Vetor) {
|
|
36
|
+
const vetor = declaracao.inicializador;
|
|
37
|
+
// Ignora vetores vazios (declarações como inteiro numeros[10])
|
|
38
|
+
if (vetor.valores.length === 0) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (declaracao.tipo === 'inteiro[]') {
|
|
42
|
+
const apenasValores = vetor.valores.find((v) => typeof (v === null || v === void 0 ? void 0 : v.valor) !== 'number');
|
|
43
|
+
if (apenasValores) {
|
|
44
|
+
this.erro(declaracao.simbolo, `Atribuição inválida para '${declaracao.simbolo.lexema}': é esperado um valor do tipo vetor de inteiro ou real.`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (declaracao.tipo === 'texto[]') {
|
|
48
|
+
const apenasValores = vetor.valores.find((v) => typeof (v === null || v === void 0 ? void 0 : v.valor) !== 'string');
|
|
49
|
+
if (apenasValores) {
|
|
50
|
+
this.erro(declaracao.simbolo, `Atribuição inválida para '${declaracao.simbolo.lexema}': é esperado um valor do tipo vetor de texto.`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// NOTA: Não reportamos erro se o inicializador não for um Vetor, pois pode ser
|
|
55
|
+
// uma declaração de array vazio (inteiro numeros[10]) ou uma variável
|
|
56
|
+
}
|
|
57
|
+
// Verifica literais - mas ignora se o tipo do literal é "qualquer" (não determinado ainda)
|
|
58
|
+
if (declaracao.inicializador instanceof construtos_1.Literal) {
|
|
59
|
+
const literal = declaracao.inicializador;
|
|
60
|
+
// Ignora validação se o tipo do literal não foi determinado
|
|
61
|
+
if (literal.tipo === 'qualquer') {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
if (declaracao.tipo === 'texto' && literal.tipo !== 'texto') {
|
|
65
|
+
this.erro(declaracao.simbolo, `Atribuição inválida para '${declaracao.simbolo.lexema}': é esperado um valor do tipo texto. Atual: ${literal.tipo}.`);
|
|
66
|
+
}
|
|
67
|
+
if (['inteiro', 'número', 'real'].includes(declaracao.tipo) &&
|
|
68
|
+
!['inteiro', 'número', 'real', 'qualquer'].includes(literal.tipo)) {
|
|
69
|
+
this.erro(declaracao.simbolo, `Atribuição inválida para '${declaracao.simbolo.lexema}': é esperado um valor do tipo número. Atual: ${literal.tipo}.`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
23
72
|
}
|
|
24
73
|
adicionarDiagnostico(simbolo, mensagem, severidade = erros_1.DiagnosticoSeveridade.ERRO) {
|
|
25
74
|
this.diagnosticos.push({
|
|
@@ -30,10 +79,326 @@ class AnalisadorSemanticoPortugolStudio extends analisador_semantico_base_1.Anal
|
|
|
30
79
|
severidade: severidade,
|
|
31
80
|
});
|
|
32
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Verifica interpolações de texto e marca variáveis como usadas
|
|
84
|
+
*/
|
|
85
|
+
verificarInterpolacaoTexto(texto, literal) {
|
|
86
|
+
// Regex para encontrar ${identificador}
|
|
87
|
+
const regexInterpolacao = /\$\{([a-zA-Z_][a-zA-Z0-9_]*)\}/g;
|
|
88
|
+
let match;
|
|
89
|
+
while ((match = regexInterpolacao.exec(texto)) !== null) {
|
|
90
|
+
const nomeVariavel = match[1];
|
|
91
|
+
// Verifica se a variável existe
|
|
92
|
+
const variavel = this.gerenciadorEscopos.buscar(nomeVariavel);
|
|
93
|
+
const funcao = this.funcoes[nomeVariavel];
|
|
94
|
+
if (!variavel && !funcao) {
|
|
95
|
+
this.erro({
|
|
96
|
+
lexema: nomeVariavel,
|
|
97
|
+
tipo: 'IDENTIFICADOR',
|
|
98
|
+
linha: literal.linha,
|
|
99
|
+
hashArquivo: literal.hashArquivo,
|
|
100
|
+
literal: null
|
|
101
|
+
}, `Variável ou função '${nomeVariavel}' usada em interpolação não existe.`);
|
|
102
|
+
}
|
|
103
|
+
else if (variavel) {
|
|
104
|
+
// Marca como usada
|
|
105
|
+
this.gerenciadorEscopos.marcarComoUsada(nomeVariavel);
|
|
106
|
+
// Verifica se foi inicializada
|
|
107
|
+
if (!variavel.inicializada) {
|
|
108
|
+
this.aviso({
|
|
109
|
+
lexema: nomeVariavel,
|
|
110
|
+
tipo: 'IDENTIFICADOR',
|
|
111
|
+
linha: literal.linha,
|
|
112
|
+
hashArquivo: literal.hashArquivo,
|
|
113
|
+
literal: null
|
|
114
|
+
}, `Variável '${nomeVariavel}' usada em interpolação pode não ter sido inicializada.`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Verifica a existência de uma variável e marca como usada
|
|
121
|
+
*/
|
|
122
|
+
verificarVariavel(variavel) {
|
|
123
|
+
const variavelEscopo = this.gerenciadorEscopos.buscar(variavel.simbolo.lexema);
|
|
124
|
+
if (!variavelEscopo) {
|
|
125
|
+
this.erro(variavel.simbolo, `Variável '${variavel.simbolo.lexema}' ainda não foi declarada até este ponto.`);
|
|
126
|
+
return Promise.resolve();
|
|
127
|
+
}
|
|
128
|
+
// Marca como usada
|
|
129
|
+
this.gerenciadorEscopos.marcarComoUsada(variavel.simbolo.lexema);
|
|
130
|
+
// Verifica se foi inicializada
|
|
131
|
+
if (!variavelEscopo.inicializada) {
|
|
132
|
+
this.aviso(variavel.simbolo, `Variável '${variavel.simbolo.lexema}' pode não ter sido inicializada antes do uso.`);
|
|
133
|
+
}
|
|
134
|
+
return Promise.resolve();
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Verifica condições em estruturas de controle
|
|
138
|
+
*/
|
|
139
|
+
verificarCondicao(condicao) {
|
|
140
|
+
if (condicao instanceof construtos_1.Agrupamento) {
|
|
141
|
+
return this.verificarCondicao(condicao.expressao);
|
|
142
|
+
}
|
|
143
|
+
if (condicao instanceof construtos_1.Variavel) {
|
|
144
|
+
return this.verificarVariavelBinaria(condicao);
|
|
145
|
+
}
|
|
146
|
+
if (condicao instanceof construtos_1.Binario) {
|
|
147
|
+
return this.verificarBinario(condicao);
|
|
148
|
+
}
|
|
149
|
+
if (condicao instanceof construtos_1.Logico) {
|
|
150
|
+
return this.verificarLogico(condicao);
|
|
151
|
+
}
|
|
152
|
+
if (condicao instanceof construtos_1.Chamada) {
|
|
153
|
+
return this.verificarChamada(condicao);
|
|
154
|
+
}
|
|
155
|
+
return Promise.resolve();
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Verifica variável em contexto binário/condicional
|
|
159
|
+
*/
|
|
160
|
+
verificarVariavelBinaria(variavel) {
|
|
161
|
+
this.verificarVariavel(variavel);
|
|
162
|
+
const variavelHipotetica = this.gerenciadorEscopos.buscar(variavel.simbolo.lexema);
|
|
163
|
+
if (variavelHipotetica &&
|
|
164
|
+
!(variavelHipotetica.valor instanceof construtos_1.Binario) &&
|
|
165
|
+
typeof variavelHipotetica.valor !== 'boolean') {
|
|
166
|
+
this.erro(variavel.simbolo, `Esperado tipo 'lógico' na condição do 'enquanto'.`);
|
|
167
|
+
}
|
|
168
|
+
return Promise.resolve();
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Verifica expressões binárias
|
|
172
|
+
*/
|
|
173
|
+
verificarBinario(binario) {
|
|
174
|
+
this.verificarExistenciaConstruto(binario.direita);
|
|
175
|
+
this.verificarExistenciaConstruto(binario.esquerda);
|
|
176
|
+
this.verificarOperadorBinario(binario);
|
|
177
|
+
return Promise.resolve();
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Verifica operadores binários
|
|
181
|
+
*/
|
|
182
|
+
verificarOperadorBinario(binario) {
|
|
183
|
+
if (binario.esquerda instanceof construtos_1.Binario) {
|
|
184
|
+
this.verificarOperadorBinario(binario.esquerda);
|
|
185
|
+
}
|
|
186
|
+
if (binario.direita instanceof construtos_1.Binario) {
|
|
187
|
+
this.verificarOperadorBinario(binario.direita);
|
|
188
|
+
}
|
|
189
|
+
const operadoresMatematicos = ['ADICAO', 'SUBTRACAO', 'MULTIPLICACAO', 'DIVISAO', 'MODULO'];
|
|
190
|
+
if (operadoresMatematicos.includes(binario.operador.tipo)) {
|
|
191
|
+
this.verificarTiposOperandos(binario);
|
|
192
|
+
}
|
|
193
|
+
if (binario.operador.tipo === 'DIVISAO') {
|
|
194
|
+
this.verificarDivisaoPorZero(binario);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Verifica se os tipos dos operandos são compatíveis
|
|
199
|
+
*/
|
|
200
|
+
verificarTiposOperandos(binario) {
|
|
201
|
+
const tipoEsquerda = this.obterTipoExpressao(binario.esquerda);
|
|
202
|
+
const tipoDireita = this.obterTipoExpressao(binario.direita);
|
|
203
|
+
if (tipoEsquerda && tipoDireita && tipoEsquerda !== tipoDireita) {
|
|
204
|
+
// Verificar se são tipos numéricos compatíveis
|
|
205
|
+
const tiposNumericos = ['inteiro', 'número', 'real'];
|
|
206
|
+
const ambosNumericos = tiposNumericos.includes(tipoEsquerda) &&
|
|
207
|
+
tiposNumericos.includes(tipoDireita);
|
|
208
|
+
if (!ambosNumericos) {
|
|
209
|
+
this.aviso(binario.operador, `Operação entre tipos diferentes: tipo esquerdo '${tipoEsquerda}' e tipo direito '${tipoDireita}'. O resultado será resolvido implicitamente.`);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Verifica divisão por zero recursivamente
|
|
215
|
+
*/
|
|
216
|
+
verificarDivisaoPorZero(binario) {
|
|
217
|
+
const valorDireita = this.avaliarExpressaoConstante(binario.direita);
|
|
218
|
+
if (valorDireita === 0) {
|
|
219
|
+
this.erro(binario.operador, `Divisão por zero.`);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Tenta avaliar uma expressão em tempo de compilação para detectar valores constantes
|
|
224
|
+
*/
|
|
225
|
+
avaliarExpressaoConstante(expressao) {
|
|
226
|
+
if (expressao instanceof construtos_1.Literal) {
|
|
227
|
+
return expressao.valor;
|
|
228
|
+
}
|
|
229
|
+
if (expressao instanceof construtos_1.Variavel) {
|
|
230
|
+
const variavel = this.gerenciadorEscopos.buscar(expressao.simbolo.lexema);
|
|
231
|
+
if (!variavel) {
|
|
232
|
+
return null;
|
|
233
|
+
}
|
|
234
|
+
if (variavel.imutavel && variavel.inicializada) {
|
|
235
|
+
return variavel.valor;
|
|
236
|
+
}
|
|
237
|
+
if (variavel.inicializada && variavel.valor !== undefined) {
|
|
238
|
+
return variavel.valor;
|
|
239
|
+
}
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
if (expressao instanceof construtos_1.Binario) {
|
|
243
|
+
const esquerda = this.avaliarExpressaoConstante(expressao.esquerda);
|
|
244
|
+
const direita = this.avaliarExpressaoConstante(expressao.direita);
|
|
245
|
+
if (esquerda !== null && direita !== null) {
|
|
246
|
+
return this.calcularOperacaoBinaria(expressao.operador.tipo, esquerda, direita);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
if (expressao instanceof construtos_1.Agrupamento) {
|
|
250
|
+
return this.avaliarExpressaoConstante(expressao.expressao);
|
|
251
|
+
}
|
|
252
|
+
return null;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Calcula o resultado de uma operação binária em tempo de compilação
|
|
256
|
+
*/
|
|
257
|
+
calcularOperacaoBinaria(operador, esquerda, direita) {
|
|
258
|
+
try {
|
|
259
|
+
switch (operador) {
|
|
260
|
+
case 'ADICAO': return esquerda + direita;
|
|
261
|
+
case 'SUBTRACAO': return esquerda - direita;
|
|
262
|
+
case 'MULTIPLICACAO': return esquerda * direita;
|
|
263
|
+
case 'DIVISAO': return esquerda / direita;
|
|
264
|
+
case 'MODULO': return esquerda % direita;
|
|
265
|
+
case 'MAIOR': return esquerda > direita;
|
|
266
|
+
case 'MAIOR_IGUAL': return esquerda >= direita;
|
|
267
|
+
case 'MENOR': return esquerda < direita;
|
|
268
|
+
case 'MENOR_IGUAL': return esquerda <= direita;
|
|
269
|
+
case 'IGUAL': return esquerda === direita;
|
|
270
|
+
case 'DIFERENTE': return esquerda !== direita;
|
|
271
|
+
default: return null;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
catch (e) {
|
|
275
|
+
return null;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Obtém o tipo de uma expressão
|
|
280
|
+
*/
|
|
281
|
+
obterTipoExpressao(expressao) {
|
|
282
|
+
if (expressao instanceof construtos_1.Literal) {
|
|
283
|
+
return expressao.tipo;
|
|
284
|
+
}
|
|
285
|
+
if (expressao instanceof construtos_1.Variavel) {
|
|
286
|
+
const variavel = this.gerenciadorEscopos.buscar(expressao.simbolo.lexema);
|
|
287
|
+
return (variavel === null || variavel === void 0 ? void 0 : variavel.tipo) || null;
|
|
288
|
+
}
|
|
289
|
+
if (expressao instanceof construtos_1.Binario) {
|
|
290
|
+
return this.inferirTipoBinario(expressao);
|
|
291
|
+
}
|
|
292
|
+
if (expressao instanceof construtos_1.Agrupamento) {
|
|
293
|
+
return this.obterTipoExpressao(expressao.expressao);
|
|
294
|
+
}
|
|
295
|
+
return null;
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Infere o tipo de resultado de uma operação binária
|
|
299
|
+
*/
|
|
300
|
+
inferirTipoBinario(binario) {
|
|
301
|
+
const tipoEsquerda = this.obterTipoExpressao(binario.esquerda);
|
|
302
|
+
const tipoDireita = this.obterTipoExpressao(binario.direita);
|
|
303
|
+
if (!tipoEsquerda || !tipoDireita) {
|
|
304
|
+
return null;
|
|
305
|
+
}
|
|
306
|
+
const operadoresMatematicos = ['ADICAO', 'SUBTRACAO', 'MULTIPLICACAO', 'DIVISAO', 'MODULO'];
|
|
307
|
+
const operadoresComparacao = ['MAIOR', 'MAIOR_IGUAL', 'MENOR', 'MENOR_IGUAL', 'IGUAL', 'DIFERENTE'];
|
|
308
|
+
if (operadoresComparacao.includes(binario.operador.tipo)) {
|
|
309
|
+
return 'lógico';
|
|
310
|
+
}
|
|
311
|
+
if (operadoresMatematicos.includes(binario.operador.tipo)) {
|
|
312
|
+
const tiposNumericos = ['inteiro', 'número', 'real'];
|
|
313
|
+
if (tiposNumericos.includes(tipoEsquerda) && tiposNumericos.includes(tipoDireita)) {
|
|
314
|
+
// Se um dos lados é 'real', o resultado é 'real'
|
|
315
|
+
if (tipoEsquerda === 'real' || tipoDireita === 'real') {
|
|
316
|
+
return 'real';
|
|
317
|
+
}
|
|
318
|
+
return 'número';
|
|
319
|
+
}
|
|
320
|
+
// Concatenação de textos
|
|
321
|
+
if (tipoEsquerda === 'texto' || tipoDireita === 'texto') {
|
|
322
|
+
return 'texto';
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
return 'qualquer';
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Verifica a existência de um construto
|
|
329
|
+
*/
|
|
330
|
+
verificarExistenciaConstruto(construto) {
|
|
331
|
+
if (construto instanceof construtos_1.Variavel) {
|
|
332
|
+
if (!this.gerenciadorEscopos.buscar(construto.simbolo.lexema)) {
|
|
333
|
+
this.erro(construto.simbolo, `Variável ${construto.simbolo.lexema} ainda não foi declarada até este ponto.`);
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
336
|
+
this.gerenciadorEscopos.marcarComoUsada(construto.simbolo.lexema);
|
|
337
|
+
return;
|
|
338
|
+
}
|
|
339
|
+
if (construto instanceof construtos_1.Binario) {
|
|
340
|
+
this.verificarBinario(construto);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Verifica expressões lógicas
|
|
345
|
+
*/
|
|
346
|
+
verificarLogico(logico) {
|
|
347
|
+
this.verificarLadoLogico(logico.direita);
|
|
348
|
+
this.verificarLadoLogico(logico.esquerda);
|
|
349
|
+
return Promise.resolve();
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Verifica chamadas de função em condições
|
|
353
|
+
*/
|
|
354
|
+
verificarChamada(chamada) {
|
|
355
|
+
if (chamada.entidadeChamada instanceof construtos_1.Variavel) {
|
|
356
|
+
const entidadeChamadaVariavel = chamada.entidadeChamada;
|
|
357
|
+
if (!this.funcoes[entidadeChamadaVariavel.simbolo.lexema]) {
|
|
358
|
+
this.erro(entidadeChamadaVariavel.simbolo, `Chamada da função '${entidadeChamadaVariavel.simbolo.lexema}' não existe.`);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
return Promise.resolve();
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Verifica o lado de uma expressão lógica
|
|
365
|
+
*/
|
|
366
|
+
verificarLadoLogico(lado) {
|
|
367
|
+
if (lado instanceof construtos_1.Variavel) {
|
|
368
|
+
this.verificarVariavelBinaria(lado);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Verifica variáveis não usadas ao final da análise
|
|
373
|
+
*/
|
|
374
|
+
verificarVariaveisNaoUsadas() {
|
|
375
|
+
const naoUsadas = this.gerenciadorEscopos.obterVariaveisNaoUsadas();
|
|
376
|
+
for (let variavel of naoUsadas) {
|
|
377
|
+
// Verifica se já existe um erro associado à variável
|
|
378
|
+
const temErro = this.diagnosticos.some(d => d.severidade === erros_1.DiagnosticoSeveridade.ERRO &&
|
|
379
|
+
d.simbolo.lexema === variavel.nome);
|
|
380
|
+
// Se a variável já tem um erro associado, não emitir aviso de não usada
|
|
381
|
+
if (temErro) {
|
|
382
|
+
continue;
|
|
383
|
+
}
|
|
384
|
+
this.aviso({
|
|
385
|
+
lexema: variavel.nome,
|
|
386
|
+
linha: variavel.linha,
|
|
387
|
+
tipo: variavel.tipo,
|
|
388
|
+
hashArquivo: variavel.hashArquivo,
|
|
389
|
+
literal: null
|
|
390
|
+
}, `Variável '${variavel.nome}' foi declarada mas nunca usada.`);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
33
393
|
visitarDeclaracaoEscrevaMesmaLinha(declaracao) {
|
|
34
394
|
declaracao.argumentos.forEach((argumento) => {
|
|
35
|
-
|
|
36
|
-
|
|
395
|
+
// Marca variáveis como usadas
|
|
396
|
+
this.marcarVariaveisUsadasEmExpressao(argumento);
|
|
397
|
+
if (argumento instanceof construtos_1.Variavel) {
|
|
398
|
+
const variavelExistente = this.gerenciadorEscopos.buscar(argumento.simbolo.lexema);
|
|
399
|
+
if (!variavelExistente) {
|
|
400
|
+
this.erro(argumento.simbolo, `Variável não declarada: ${argumento.simbolo.lexema}`);
|
|
401
|
+
}
|
|
37
402
|
}
|
|
38
403
|
});
|
|
39
404
|
return Promise.resolve();
|
|
@@ -54,38 +419,71 @@ class AnalisadorSemanticoPortugolStudio extends analisador_semantico_base_1.Anal
|
|
|
54
419
|
}
|
|
55
420
|
visitarDeclaracaoVar(declaracao) {
|
|
56
421
|
const { simbolo, inicializador } = declaracao;
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
if (
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
422
|
+
// Só verifica tipo atribuído se houver inicializador
|
|
423
|
+
if (inicializador) {
|
|
424
|
+
this.verificarTipoAtribuido(declaracao);
|
|
425
|
+
}
|
|
426
|
+
// Marca variáveis usadas no inicializador
|
|
427
|
+
if (inicializador) {
|
|
428
|
+
this.marcarVariaveisUsadasEmExpressao(inicializador);
|
|
429
|
+
// Verifica se inicializador é uma variável
|
|
430
|
+
if (inicializador instanceof construtos_1.Variavel) {
|
|
431
|
+
const { simbolo: simboloInicializador } = inicializador;
|
|
432
|
+
const variavelExistente = this.gerenciadorEscopos.buscar(simboloInicializador.lexema);
|
|
433
|
+
if (!variavelExistente) {
|
|
434
|
+
this.erro(simboloInicializador, `Variável não declarada: ${simboloInicializador.lexema}.`);
|
|
69
435
|
return Promise.resolve();
|
|
70
436
|
}
|
|
437
|
+
const tipoInferido = (0, inferenciador_1.inferirTipoVariavel)(variavelExistente.valor);
|
|
438
|
+
if (tipoInferido !== declaracao.tipo) {
|
|
439
|
+
const erroTipo = this.validarCompatibilidadeTipos(tipoInferido, declaracao.tipo);
|
|
440
|
+
if (erroTipo) {
|
|
441
|
+
this.erro(simbolo, erroTipo);
|
|
442
|
+
return Promise.resolve();
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
// Determina o valor do inicializador
|
|
448
|
+
let valorInicializador = undefined;
|
|
449
|
+
if (inicializador) {
|
|
450
|
+
if (inicializador.hasOwnProperty('valor')) {
|
|
451
|
+
valorInicializador = inicializador.valor;
|
|
452
|
+
}
|
|
453
|
+
else {
|
|
454
|
+
valorInicializador = inicializador;
|
|
71
455
|
}
|
|
72
456
|
}
|
|
457
|
+
// Declara a variável usando GerenciadorEscopos
|
|
458
|
+
const variavel = {
|
|
459
|
+
nome: simbolo.lexema,
|
|
460
|
+
tipo: declaracao.tipo || 'qualquer',
|
|
461
|
+
imutavel: false,
|
|
462
|
+
valor: valorInicializador,
|
|
463
|
+
inicializada: inicializador !== null && inicializador !== undefined,
|
|
464
|
+
usada: false,
|
|
465
|
+
hashArquivo: simbolo.hashArquivo,
|
|
466
|
+
linha: simbolo.linha
|
|
467
|
+
};
|
|
468
|
+
const declaradaComSucesso = this.gerenciadorEscopos.declarar(simbolo.lexema, variavel);
|
|
469
|
+
if (!declaradaComSucesso) {
|
|
470
|
+
const variavelExistente = this.gerenciadorEscopos.buscarNoEscopoAtual(simbolo.lexema);
|
|
471
|
+
this.aviso(simbolo, `Variável '${simbolo.lexema}' já foi declarada na linha ${variavelExistente === null || variavelExistente === void 0 ? void 0 : variavelExistente.linha}.`);
|
|
472
|
+
}
|
|
473
|
+
// Mantém compatibilidade com o dicionário antigo
|
|
73
474
|
this.variaveis[simbolo.lexema] = {
|
|
74
475
|
imutavel: false,
|
|
75
476
|
tipo: declaracao.tipo,
|
|
76
|
-
valor:
|
|
77
|
-
? inicializador.valor !== undefined
|
|
78
|
-
? inicializador.valor
|
|
79
|
-
: inicializador
|
|
80
|
-
: undefined,
|
|
477
|
+
valor: valorInicializador,
|
|
81
478
|
valorDefinido: true,
|
|
82
479
|
};
|
|
83
480
|
return Promise.resolve();
|
|
84
481
|
}
|
|
85
482
|
visitarExpressaoDeVariavel(expressao) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
483
|
+
// Verifica a variável e marca como usada
|
|
484
|
+
if (expressao instanceof construtos_1.Variavel) {
|
|
485
|
+
return this.verificarVariavel(expressao);
|
|
486
|
+
}
|
|
89
487
|
return Promise.resolve();
|
|
90
488
|
}
|
|
91
489
|
validarCompatibilidadeTipos(tipoInferido, tipoEsperado) {
|
|
@@ -107,88 +505,112 @@ class AnalisadorSemanticoPortugolStudio extends analisador_semantico_base_1.Anal
|
|
|
107
505
|
}
|
|
108
506
|
visitarExpressaoDeAtribuicao(expressao) {
|
|
109
507
|
const { valor, alvo } = expressao;
|
|
110
|
-
let simboloAlvo
|
|
111
|
-
|
|
508
|
+
let simboloAlvo;
|
|
509
|
+
// Determina o símbolo do alvo
|
|
112
510
|
switch (alvo.constructor.name) {
|
|
113
511
|
case 'Variavel':
|
|
114
512
|
const alvoVariavel = alvo;
|
|
115
513
|
simboloAlvo = alvoVariavel.simbolo;
|
|
116
|
-
nomeVariavel = simboloAlvo.lexema;
|
|
117
514
|
break;
|
|
118
515
|
default:
|
|
119
|
-
return Promise.reject('Terminar');
|
|
120
|
-
}
|
|
121
|
-
if (valor instanceof construtos_1.Variavel) {
|
|
122
|
-
const variavelExistente = this.variaveis[valor.simbolo.lexema];
|
|
123
|
-
if (!variavelExistente) {
|
|
124
|
-
this.adicionarDiagnostico(valor.simbolo, `Variável não declarada: ${valor.simbolo.lexema}.`);
|
|
125
516
|
return Promise.resolve();
|
|
126
|
-
}
|
|
127
|
-
const tipoInferido = (0, inferenciador_1.inferirTipoVariavel)(variavelExistente.valor);
|
|
128
|
-
if (tipoInferido !== variavelExistente.tipo) {
|
|
129
|
-
const erroTipo = this.validarCompatibilidadeTipos(variavelExistente.tipo, tipoInferido);
|
|
130
|
-
if (erroTipo) {
|
|
131
|
-
this.adicionarDiagnostico(valor.simbolo, erroTipo);
|
|
132
|
-
return Promise.resolve();
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
517
|
}
|
|
136
|
-
|
|
518
|
+
// Busca a variável no gerenciador de escopos
|
|
519
|
+
const variavel = this.gerenciadorEscopos.buscar(simboloAlvo.lexema);
|
|
137
520
|
if (!variavel) {
|
|
138
|
-
this.
|
|
521
|
+
this.erro(simboloAlvo, `Variável '${simboloAlvo.lexema}' ainda não foi declarada até este ponto.`);
|
|
139
522
|
return Promise.resolve();
|
|
140
523
|
}
|
|
524
|
+
// Verifica se é uma constante
|
|
141
525
|
if (variavel.imutavel) {
|
|
142
|
-
this.
|
|
526
|
+
this.erro(simboloAlvo, `Constante '${simboloAlvo.lexema}' não pode ser modificada.`);
|
|
143
527
|
return Promise.resolve();
|
|
144
528
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
529
|
+
// Marca como inicializada após atribuição
|
|
530
|
+
this.gerenciadorEscopos.marcarComoInicializada(simboloAlvo.lexema, valor);
|
|
531
|
+
// Verifica o tipo do valor sendo atribuído
|
|
532
|
+
if (variavel.tipo) {
|
|
533
|
+
if (valor instanceof construtos_1.Literal) {
|
|
534
|
+
const tipoInferido = (0, inferenciador_1.inferirTipoVariavel)(valor.valor);
|
|
535
|
+
if (tipoInferido !== variavel.tipo) {
|
|
536
|
+
const erroTipo = this.validarCompatibilidadeTipos(tipoInferido, variavel.tipo);
|
|
537
|
+
if (erroTipo) {
|
|
538
|
+
this.erro(simboloAlvo, erroTipo);
|
|
539
|
+
return Promise.resolve();
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
if (valor instanceof construtos_1.Variavel) {
|
|
544
|
+
const variavelValor = this.gerenciadorEscopos.buscar(valor.simbolo.lexema);
|
|
545
|
+
if (!variavelValor) {
|
|
546
|
+
this.erro(valor.simbolo, `Variável não declarada: ${valor.simbolo.lexema}.`);
|
|
151
547
|
return Promise.resolve();
|
|
152
548
|
}
|
|
549
|
+
const tipoInferido = (0, inferenciador_1.inferirTipoVariavel)(variavelValor.valor);
|
|
550
|
+
if (tipoInferido !== variavel.tipo) {
|
|
551
|
+
const erroTipo = this.validarCompatibilidadeTipos(tipoInferido, variavel.tipo);
|
|
552
|
+
if (erroTipo) {
|
|
553
|
+
this.erro(valor.simbolo, erroTipo);
|
|
554
|
+
return Promise.resolve();
|
|
555
|
+
}
|
|
556
|
+
}
|
|
153
557
|
}
|
|
558
|
+
// Verifica vetores
|
|
559
|
+
if (valor instanceof construtos_1.Vetor && !variavel.tipo.includes('[]')) {
|
|
560
|
+
this.erro(simboloAlvo, `Atribuição inválida, esperado tipo '${variavel.tipo}' na atribuição.`);
|
|
561
|
+
return Promise.resolve();
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
// Mantém compatibilidade com o dicionário antigo
|
|
565
|
+
if (this.variaveis[simboloAlvo.lexema]) {
|
|
566
|
+
this.variaveis[simboloAlvo.lexema].valor = valor;
|
|
154
567
|
}
|
|
155
|
-
|
|
568
|
+
return Promise.resolve();
|
|
156
569
|
}
|
|
157
570
|
visitarExpressaoDeChamada(expressao) {
|
|
571
|
+
// Marca argumentos como usados
|
|
572
|
+
for (const argumento of expressao.argumentos) {
|
|
573
|
+
if (argumento instanceof construtos_1.Variavel) {
|
|
574
|
+
this.gerenciadorEscopos.marcarComoUsada(argumento.simbolo.lexema);
|
|
575
|
+
}
|
|
576
|
+
}
|
|
158
577
|
if (expressao.entidadeChamada instanceof construtos_1.Variavel) {
|
|
159
578
|
const variavel = expressao.entidadeChamada;
|
|
160
|
-
const funcaoChamada = this.
|
|
579
|
+
const funcaoChamada = this.gerenciadorEscopos.buscar(variavel.simbolo.lexema) || this.funcoes[variavel.simbolo.lexema];
|
|
161
580
|
if (!funcaoChamada) {
|
|
162
|
-
this.
|
|
581
|
+
this.erro(variavel.simbolo, `Função não declarada: ${variavel.simbolo.lexema}`);
|
|
163
582
|
return Promise.resolve();
|
|
164
583
|
}
|
|
165
584
|
const funcao = funcaoChamada.valor;
|
|
166
585
|
if (funcao.parametros.length != expressao.argumentos.length) {
|
|
167
|
-
this.
|
|
586
|
+
this.erro(variavel.simbolo, `Esperava ${funcao.parametros.length} ${funcao.parametros.length > 1 ? 'parâmetros' : 'parâmetro'}, mas foi passado ${expressao.argumentos.length}.`);
|
|
168
587
|
}
|
|
169
588
|
for (let [indice, argumento] of expressao.argumentos.entries()) {
|
|
170
589
|
const parametroCorrespondente = funcao.parametros[indice];
|
|
171
|
-
if (parametroCorrespondente.tipoDado) {
|
|
590
|
+
if (parametroCorrespondente && parametroCorrespondente.tipoDado) {
|
|
172
591
|
const tipoDadoParametro = parametroCorrespondente.tipoDado.toLowerCase();
|
|
173
592
|
if (argumento instanceof construtos_1.Variavel) {
|
|
174
593
|
const lexemaVariavelCorrespondente = argumento.simbolo.lexema;
|
|
175
|
-
const
|
|
176
|
-
if (
|
|
177
|
-
|
|
594
|
+
const variavelCorrespondente = this.gerenciadorEscopos.buscar(lexemaVariavelCorrespondente);
|
|
595
|
+
if (variavelCorrespondente) {
|
|
596
|
+
const tipoVariavelCorrespondente = variavelCorrespondente.tipo.toLowerCase();
|
|
597
|
+
if (tipoVariavelCorrespondente !== tipoDadoParametro) {
|
|
598
|
+
this.erro(variavel.simbolo, `O tipo do valor passado para o parâmetro '${parametroCorrespondente.nome.lexema}' (${tipoVariavelCorrespondente}) é diferente do esperado pela função (${tipoDadoParametro}).`);
|
|
599
|
+
}
|
|
178
600
|
}
|
|
179
601
|
}
|
|
180
602
|
if (argumento instanceof construtos_1.Literal) {
|
|
181
603
|
switch (argumento.valor.constructor.name) {
|
|
182
604
|
case 'Number':
|
|
183
605
|
if (!['inteiro', 'real'].includes(tipoDadoParametro)) {
|
|
184
|
-
this.
|
|
606
|
+
this.erro(variavel.simbolo, `O tipo do valor passado para o parâmetro '${parametroCorrespondente.nome.lexema}' (inteiro ou real) é diferente do esperado pela função (${tipoDadoParametro}).`);
|
|
185
607
|
}
|
|
186
608
|
break;
|
|
187
609
|
}
|
|
188
610
|
}
|
|
189
611
|
}
|
|
190
|
-
else {
|
|
191
|
-
this.
|
|
612
|
+
else if (parametroCorrespondente && !parametroCorrespondente.tipoDado) {
|
|
613
|
+
this.aviso(variavel.simbolo, 'Tipo de dados não especificado');
|
|
192
614
|
}
|
|
193
615
|
}
|
|
194
616
|
}
|
|
@@ -200,17 +622,17 @@ class AnalisadorSemanticoPortugolStudio extends analisador_semantico_base_1.Anal
|
|
|
200
622
|
return Promise.resolve();
|
|
201
623
|
}
|
|
202
624
|
visitarDeclaracaoDeExpressao(declaracao) {
|
|
203
|
-
switch (declaracao.expressao.constructor
|
|
204
|
-
case
|
|
625
|
+
switch (declaracao.expressao.constructor) {
|
|
626
|
+
case construtos_1.Atribuir:
|
|
205
627
|
this.visitarExpressaoDeAtribuicao(declaracao.expressao);
|
|
206
628
|
break;
|
|
207
|
-
case
|
|
629
|
+
case construtos_1.Chamada:
|
|
208
630
|
this.visitarExpressaoDeChamada(declaracao.expressao);
|
|
209
631
|
break;
|
|
210
|
-
case
|
|
632
|
+
case construtos_1.Variavel:
|
|
211
633
|
this.visitarExpressaoDeVariavel(declaracao.expressao);
|
|
212
634
|
break;
|
|
213
|
-
case
|
|
635
|
+
case construtos_1.AtribuicaoPorIndice:
|
|
214
636
|
this.visitarExpressaoAtribuicaoPorIndice(declaracao.expressao);
|
|
215
637
|
break;
|
|
216
638
|
default:
|
|
@@ -220,20 +642,134 @@ class AnalisadorSemanticoPortugolStudio extends analisador_semantico_base_1.Anal
|
|
|
220
642
|
return Promise.resolve();
|
|
221
643
|
}
|
|
222
644
|
visitarDeclaracaoConst(declaracao) {
|
|
645
|
+
// Só verifica tipo atribuído se houver inicializador
|
|
646
|
+
if (declaracao.inicializador) {
|
|
647
|
+
this.verificarTipoAtribuido(declaracao);
|
|
648
|
+
this.marcarVariaveisUsadasEmExpressao(declaracao.inicializador);
|
|
649
|
+
}
|
|
650
|
+
// Verifica se já existe
|
|
651
|
+
const constanteCorrespondente = this.gerenciadorEscopos.buscarNoEscopoAtual(declaracao.simbolo.lexema);
|
|
652
|
+
if (constanteCorrespondente) {
|
|
653
|
+
this.erro(declaracao.simbolo, 'Declaração de constante já feita.');
|
|
654
|
+
return Promise.resolve();
|
|
655
|
+
}
|
|
656
|
+
// Determina o valor do inicializador
|
|
657
|
+
let valorInicializador = undefined;
|
|
658
|
+
if (declaracao.inicializador) {
|
|
659
|
+
if (declaracao.inicializador.hasOwnProperty('valor')) {
|
|
660
|
+
valorInicializador = declaracao.inicializador.valor;
|
|
661
|
+
}
|
|
662
|
+
else {
|
|
663
|
+
valorInicializador = declaracao.inicializador;
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
// Declara a constante usando GerenciadorEscopos
|
|
667
|
+
this.gerenciadorEscopos.declarar(declaracao.simbolo.lexema, {
|
|
668
|
+
nome: declaracao.simbolo.lexema,
|
|
669
|
+
tipo: declaracao.tipo || 'qualquer',
|
|
670
|
+
imutavel: true,
|
|
671
|
+
valor: valorInicializador,
|
|
672
|
+
inicializada: true,
|
|
673
|
+
usada: false,
|
|
674
|
+
hashArquivo: declaracao.simbolo.hashArquivo,
|
|
675
|
+
linha: declaracao.simbolo.linha
|
|
676
|
+
});
|
|
677
|
+
// Mantém compatibilidade com o dicionário antigo
|
|
223
678
|
this.variaveis[declaracao.simbolo.lexema] = {
|
|
224
679
|
imutavel: true,
|
|
225
680
|
tipo: declaracao.tipo,
|
|
226
|
-
valor:
|
|
227
|
-
? declaracao.inicializador.valor !== undefined
|
|
228
|
-
? declaracao.inicializador.valor
|
|
229
|
-
: declaracao.inicializador
|
|
230
|
-
: undefined,
|
|
681
|
+
valor: valorInicializador,
|
|
231
682
|
valorDefinido: true,
|
|
232
683
|
};
|
|
233
684
|
return Promise.resolve();
|
|
234
685
|
}
|
|
686
|
+
/**
|
|
687
|
+
* Visita declaração de escreva com validações adicionais
|
|
688
|
+
*/
|
|
689
|
+
visitarDeclaracaoEscreva(declaracao) {
|
|
690
|
+
if (declaracao.argumentos.length === 0) {
|
|
691
|
+
const { linha, hashArquivo } = declaracao;
|
|
692
|
+
const simbolo = {
|
|
693
|
+
literal: '',
|
|
694
|
+
tipo: '',
|
|
695
|
+
lexema: 'escreva',
|
|
696
|
+
linha,
|
|
697
|
+
hashArquivo,
|
|
698
|
+
};
|
|
699
|
+
this.erro(simbolo, `É preciso ter um ou mais parametros para 'escreva(...)'`);
|
|
700
|
+
return Promise.resolve();
|
|
701
|
+
}
|
|
702
|
+
for (const argumento of declaracao.argumentos) {
|
|
703
|
+
this.marcarVariaveisUsadasEmExpressao(argumento);
|
|
704
|
+
// Verifica interpolação de texto
|
|
705
|
+
if (argumento instanceof construtos_1.Literal && argumento.tipo === 'texto') {
|
|
706
|
+
this.verificarInterpolacaoTexto(argumento.valor, argumento);
|
|
707
|
+
}
|
|
708
|
+
// Verifica se variáveis existem
|
|
709
|
+
if (argumento instanceof construtos_1.Variavel) {
|
|
710
|
+
const possivelVariavel = this.gerenciadorEscopos.buscar(argumento.simbolo.lexema);
|
|
711
|
+
const possivelFuncao = this.funcoes[argumento.simbolo.lexema];
|
|
712
|
+
if (!possivelVariavel && !possivelFuncao) {
|
|
713
|
+
this.erro(argumento.simbolo, `Variável ou função '${argumento.simbolo.lexema}' não existe.`);
|
|
714
|
+
continue;
|
|
715
|
+
}
|
|
716
|
+
if (possivelVariavel && possivelVariavel.valor === undefined) {
|
|
717
|
+
this.aviso(argumento.simbolo, `Variável '${argumento.simbolo.lexema}' não foi inicializada.`);
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
return Promise.resolve();
|
|
722
|
+
}
|
|
723
|
+
/**
|
|
724
|
+
* Visita declaração de enquanto com validação de condição
|
|
725
|
+
*/
|
|
726
|
+
visitarDeclaracaoEnquanto(declaracao) {
|
|
727
|
+
return this.verificarCondicao(declaracao.condicao);
|
|
728
|
+
}
|
|
729
|
+
/**
|
|
730
|
+
* Visita declaração de escolha com validação de tipos
|
|
731
|
+
*/
|
|
732
|
+
visitarDeclaracaoEscolha(declaracao) {
|
|
733
|
+
const identificadorOuLiteral = declaracao.identificadorOuLiteral;
|
|
734
|
+
const tipo = identificadorOuLiteral.tipo;
|
|
735
|
+
for (let caminho of declaracao.caminhos) {
|
|
736
|
+
for (let condicao of caminho.condicoes) {
|
|
737
|
+
switch (condicao.constructor) {
|
|
738
|
+
case construtos_1.Literal:
|
|
739
|
+
const condicaoLiteral = condicao;
|
|
740
|
+
if (condicaoLiteral.tipo !== tipo) {
|
|
741
|
+
this.erro({
|
|
742
|
+
lexema: condicaoLiteral.valor,
|
|
743
|
+
tipo: condicaoLiteral.tipo,
|
|
744
|
+
linha: condicaoLiteral.linha,
|
|
745
|
+
hashArquivo: condicaoLiteral.hashArquivo,
|
|
746
|
+
}, `'caso ${condicaoLiteral.valor}:' não é do mesmo tipo esperado em 'escolha' (esperado: ${tipo}, atual: ${condicaoLiteral.tipo}).`);
|
|
747
|
+
}
|
|
748
|
+
break;
|
|
749
|
+
case construtos_1.Variavel:
|
|
750
|
+
const condicaoVariavel = condicao;
|
|
751
|
+
this.verificarVariavel(condicaoVariavel);
|
|
752
|
+
const variavelHipotetica = this.gerenciadorEscopos.buscar(condicaoVariavel.simbolo.lexema);
|
|
753
|
+
if (variavelHipotetica && typeof variavelHipotetica.valor !== tipo) {
|
|
754
|
+
this.erro(condicaoVariavel.simbolo, `'caso ${condicaoVariavel.simbolo.lexema}:' não é do mesmo tipo esperado em 'escolha'`);
|
|
755
|
+
}
|
|
756
|
+
break;
|
|
757
|
+
}
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
return Promise.resolve();
|
|
761
|
+
}
|
|
762
|
+
/**
|
|
763
|
+
* Visita declaração de retorna
|
|
764
|
+
*/
|
|
765
|
+
visitarExpressaoRetornar(declaracao) {
|
|
766
|
+
return Promise.resolve(null);
|
|
767
|
+
}
|
|
235
768
|
analisar(declaracoes) {
|
|
769
|
+
// Inicializa o estado do analisador
|
|
770
|
+
this.gerenciadorEscopos = new gerenciador_escopos_1.GerenciadorEscopos();
|
|
236
771
|
this.variaveis = {};
|
|
772
|
+
this.funcoes = {};
|
|
237
773
|
this.atual = 0;
|
|
238
774
|
this.diagnosticos = [];
|
|
239
775
|
this.corpoMetodoPrincipal = [];
|
|
@@ -241,17 +777,23 @@ class AnalisadorSemanticoPortugolStudio extends analisador_semantico_base_1.Anal
|
|
|
241
777
|
if (declaracaoMetodoPrincipal) {
|
|
242
778
|
this.corpoMetodoPrincipal = declaracaoMetodoPrincipal.funcao.corpo;
|
|
243
779
|
}
|
|
780
|
+
// Processa declarações globais (exceto o método principal)
|
|
244
781
|
for (const declaracao of declaracoes) {
|
|
245
|
-
if (declaracao instanceof declaracoes_1.FuncaoDeclaracao || declaracao instanceof declaracoes_1.Var) {
|
|
782
|
+
if (declaracao instanceof declaracoes_1.FuncaoDeclaracao || declaracao instanceof declaracoes_1.Var || declaracao instanceof declaracoes_1.Const) {
|
|
246
783
|
if (declaracao.simbolo.lexema !== 'inicio') {
|
|
247
784
|
declaracao.aceitar(this);
|
|
248
785
|
}
|
|
249
786
|
}
|
|
250
787
|
}
|
|
788
|
+
// Processa o corpo do método principal
|
|
251
789
|
while (this.atual < this.corpoMetodoPrincipal.length) {
|
|
252
790
|
this.corpoMetodoPrincipal[this.atual].aceitar(this);
|
|
253
791
|
this.atual++;
|
|
254
792
|
}
|
|
793
|
+
// Verifica variáveis não usadas ao final da análise
|
|
794
|
+
// NOTA: Este recurso está comentado para manter compatibilidade com testes existentes.
|
|
795
|
+
// Descomente para habilitar avisos sobre variáveis não utilizadas.
|
|
796
|
+
// this.verificarVariaveisNaoUsadas();
|
|
255
797
|
return {
|
|
256
798
|
diagnosticos: this.diagnosticos,
|
|
257
799
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analisador-semantico-portugol-studio.js","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico-portugol-studio.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analisador-semantico-portugol-studio.js","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico-portugol-studio.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@designliquido/portugol-studio",
|
|
3
3
|
"description": "Dialeto de Portugol Studio baseado em Delégua e TypeScript",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.7.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"bugs": {
|
|
7
7
|
"url": "https://github.com/DesignLiquido/portugol-studio/issues"
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"deixar-codigo-bonito": "yarn prettier --config .prettierrc --write fontes/**/*.ts"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@designliquido/delegua": "
|
|
27
|
+
"@designliquido/delegua": "0.65.0",
|
|
28
28
|
"lodash": "^4.17.21",
|
|
29
29
|
"node-fetch": "2",
|
|
30
30
|
"xml2js": "^0.6.2"
|