@designliquido/potigol 0.8.18 → 0.9.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-potigol.d.ts +18 -3
- package/analisador-semantico/analisador-semantico-potigol.d.ts.map +1 -1
- package/analisador-semantico/analisador-semantico-potigol.js +255 -3
- package/analisador-semantico/analisador-semantico-potigol.js.map +1 -1
- package/avaliador-sintatico/avaliador-sintatico-potigol.d.ts +9 -2
- package/avaliador-sintatico/avaliador-sintatico-potigol.d.ts.map +1 -1
- package/avaliador-sintatico/avaliador-sintatico-potigol.js +147 -45
- package/avaliador-sintatico/avaliador-sintatico-potigol.js.map +1 -1
- package/bibliotecas/biblioteca-global.d.ts +2 -2
- package/bibliotecas/biblioteca-global.d.ts.map +1 -1
- package/bibliotecas/biblioteca-global.js +27 -4
- package/bibliotecas/biblioteca-global.js.map +1 -1
- package/bibliotecas/primitivas-cubo.d.ts +10 -0
- package/bibliotecas/primitivas-cubo.d.ts.map +1 -0
- package/bibliotecas/primitivas-cubo.js +14 -0
- package/bibliotecas/primitivas-cubo.js.map +1 -0
- package/bibliotecas/primitivas-matriz.d.ts +9 -0
- package/bibliotecas/primitivas-matriz.d.ts.map +1 -0
- package/bibliotecas/primitivas-matriz.js +13 -0
- package/bibliotecas/primitivas-matriz.js.map +1 -0
- package/bibliotecas/primitivas-numero.d.ts +2 -2
- package/bibliotecas/primitivas-numero.d.ts.map +1 -1
- package/bibliotecas/primitivas-numero.js +5 -1
- package/bibliotecas/primitivas-numero.js.map +1 -1
- package/bibliotecas/primitivas-texto.d.ts +29 -25
- package/bibliotecas/primitivas-texto.d.ts.map +1 -1
- package/bibliotecas/primitivas-texto.js +115 -4
- package/bibliotecas/primitivas-texto.js.map +1 -1
- package/bibliotecas/primitivas-vetor.d.ts +6 -3
- package/bibliotecas/primitivas-vetor.d.ts.map +1 -1
- package/bibliotecas/primitivas-vetor.js +49 -10
- package/bibliotecas/primitivas-vetor.js.map +1 -1
- package/declaracoes/alias-tipo.d.ts +11 -0
- package/declaracoes/alias-tipo.d.ts.map +1 -0
- package/declaracoes/alias-tipo.js +19 -0
- package/declaracoes/alias-tipo.js.map +1 -0
- package/declaracoes/index.d.ts +2 -0
- package/declaracoes/index.d.ts.map +1 -1
- package/declaracoes/index.js +2 -0
- package/declaracoes/index.js.map +1 -1
- package/declaracoes/para-gere.d.ts +16 -0
- package/declaracoes/para-gere.d.ts.map +1 -0
- package/declaracoes/para-gere.js +23 -0
- package/declaracoes/para-gere.js.map +1 -0
- package/formatador/formatador-potigol.d.ts +16 -12
- package/formatador/formatador-potigol.d.ts.map +1 -1
- package/formatador/formatador-potigol.js +262 -89
- package/formatador/formatador-potigol.js.map +1 -1
- package/interfaces/visitante-comum-potigol-interface.d.ts +3 -1
- package/interfaces/visitante-comum-potigol-interface.d.ts.map +1 -1
- package/interpretador/comum.d.ts +4 -2
- package/interpretador/comum.d.ts.map +1 -1
- package/interpretador/comum.js +159 -11
- package/interpretador/comum.js.map +1 -1
- package/interpretador/estruturas/cubo.d.ts +47 -0
- package/interpretador/estruturas/cubo.d.ts.map +1 -0
- package/interpretador/estruturas/cubo.js +106 -0
- package/interpretador/estruturas/cubo.js.map +1 -0
- package/interpretador/estruturas/index.d.ts +2 -0
- package/interpretador/estruturas/index.d.ts.map +1 -1
- package/interpretador/estruturas/index.js +2 -0
- package/interpretador/estruturas/index.js.map +1 -1
- package/interpretador/estruturas/matriz.d.ts +40 -0
- package/interpretador/estruturas/matriz.d.ts.map +1 -0
- package/interpretador/estruturas/matriz.js +84 -0
- package/interpretador/estruturas/matriz.js.map +1 -0
- package/interpretador/inferenciador.d.ts +1 -1
- package/interpretador/inferenciador.d.ts.map +1 -1
- package/interpretador/inferenciador.js +20 -2
- package/interpretador/inferenciador.js.map +1 -1
- package/interpretador/interpretador-potigol-com-depuracao.d.ts +5 -2
- package/interpretador/interpretador-potigol-com-depuracao.d.ts.map +1 -1
- package/interpretador/interpretador-potigol-com-depuracao.js +9 -0
- package/interpretador/interpretador-potigol-com-depuracao.js.map +1 -1
- package/interpretador/interpretador-potigol.d.ts +7 -2
- package/interpretador/interpretador-potigol.d.ts.map +1 -1
- package/interpretador/interpretador-potigol.js +44 -0
- package/interpretador/interpretador-potigol.js.map +1 -1
- package/lexador/lexador-potigol.d.ts.map +1 -1
- package/lexador/lexador-potigol.js +13 -1
- package/lexador/lexador-potigol.js.map +1 -1
- package/lexador/palavras-reservadas.d.ts +9 -0
- package/lexador/palavras-reservadas.d.ts.map +1 -1
- package/lexador/palavras-reservadas.js +9 -0
- package/lexador/palavras-reservadas.js.map +1 -1
- package/package.json +4 -4
- package/tipos-de-dados.d.ts +3 -0
- package/tipos-de-dados.d.ts.map +1 -1
- package/tipos-de-dados.js +3 -0
- package/tipos-de-dados.js.map +1 -1
- package/tipos-de-simbolos/lexico-regular.d.ts +8 -0
- package/tipos-de-simbolos/lexico-regular.d.ts.map +1 -1
- package/tipos-de-simbolos/lexico-regular.js +8 -0
- package/tipos-de-simbolos/lexico-regular.js.map +1 -1
- package/tipos-de-simbolos/micro-lexico.d.ts +1 -0
- package/tipos-de-simbolos/micro-lexico.d.ts.map +1 -1
- package/tipos-de-simbolos/micro-lexico.js +1 -0
- package/tipos-de-simbolos/micro-lexico.js.map +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { AnalisadorSemanticoBase, PilhaVariaveis } from '@designliquido/delegua/analisador-semantico';
|
|
2
|
-
import { Const, Declaracao, Enquanto, Escolha, Escreva, Expressao, Falhar, Var } from '@designliquido/delegua/declaracoes';
|
|
3
|
-
import { Atribuir, Binario, Chamada, Construto, Literal, Variavel, Constante, TipoDe } from '@designliquido/delegua';
|
|
2
|
+
import { Classe, Const, Declaracao, Enquanto, Escolha, Escreva, Expressao, Falhar, ParaCada, Var, VarMultiplo } from '@designliquido/delegua/declaracoes';
|
|
3
|
+
import { AcessoMetodoOuPropriedade, Atribuir, Binario, Chamada, Construto, Literal, Variavel, Constante, TipoDe } from '@designliquido/delegua';
|
|
4
4
|
import { DiagnosticoAnalisadorSemantico, ParametroInterface, SimboloInterface } from '@designliquido/delegua/interfaces';
|
|
5
5
|
import { FuncaoHipoteticaInterface } from '@designliquido/delegua/interfaces/funcao-hipotetica-interface';
|
|
6
6
|
import { RetornoAnalisadorSemantico } from '@designliquido/delegua/interfaces/retornos/retorno-analisador-semantico';
|
|
7
|
-
import { ReatribuicaoVariavel } from '../declaracoes';
|
|
7
|
+
import { AliasTipo, ParaGere, ReatribuicaoVariavel } from '../declaracoes';
|
|
8
8
|
import { VisitanteComumPotigolInterface } from '../interfaces';
|
|
9
9
|
import { LeiaInteiro, LeiaInteiros, LeiaReais, LeiaReal, LeiaTexto, LeiaTextos } from '../construtos';
|
|
10
10
|
/**
|
|
@@ -19,7 +19,12 @@ export declare class AnalisadorSemanticoPotigol extends AnalisadorSemanticoBase
|
|
|
19
19
|
};
|
|
20
20
|
atual: number;
|
|
21
21
|
diagnosticos: DiagnosticoAnalisadorSemantico[];
|
|
22
|
+
aliasesTipoNormalizados: Set<string>;
|
|
23
|
+
private readonly tiposBaseNormalizados;
|
|
22
24
|
constructor();
|
|
25
|
+
private normalizarTipo;
|
|
26
|
+
private tipoEhConhecido;
|
|
27
|
+
private valorEhClasse;
|
|
23
28
|
/**
|
|
24
29
|
* Verifica o tipo atribuído a uma variável na declaração
|
|
25
30
|
*/
|
|
@@ -71,6 +76,10 @@ export declare class AnalisadorSemanticoPotigol extends AnalisadorSemanticoBase
|
|
|
71
76
|
* Verifica divisão por zero em tempo de compilação
|
|
72
77
|
*/
|
|
73
78
|
private verificarDivisaoPorZero;
|
|
79
|
+
/**
|
|
80
|
+
* Verifica o número de argumentos em chamadas de método
|
|
81
|
+
*/
|
|
82
|
+
private verificarArgumentosMetodo;
|
|
74
83
|
/**
|
|
75
84
|
* Tenta avaliar uma expressão em tempo de compilação para detectar valores constantes
|
|
76
85
|
* Retorna o valor se puder ser determinado, ou null caso contrário
|
|
@@ -101,12 +110,14 @@ export declare class AnalisadorSemanticoPotigol extends AnalisadorSemanticoBase
|
|
|
101
110
|
*/
|
|
102
111
|
protected verificarInterpolacaoTexto(texto: string, literal: Literal): void;
|
|
103
112
|
visitarDeclaracaoEscreva(declaracao: Escreva): Promise<any>;
|
|
113
|
+
visitarDeclaracaoClasse(declaracao: Classe): Promise<any>;
|
|
104
114
|
/**
|
|
105
115
|
* Verifica variáveis não usadas no escopo atual
|
|
106
116
|
*/
|
|
107
117
|
private verificarVariaveisNaoUsadas;
|
|
108
118
|
visitarDeclaracaoConst(declaracao: Const): Promise<any>;
|
|
109
119
|
visitarDeclaracaoVar(declaracao: Var): Promise<any>;
|
|
120
|
+
visitarDeclaracaoVarMultiplo(declaracao: VarMultiplo): Promise<any>;
|
|
110
121
|
visitarExpressaoDeVariavel(expressao: Variavel | Constante): Promise<any>;
|
|
111
122
|
visitarDeclaracaoLeiaInteiro(declaracao: LeiaInteiro): Promise<any> | void;
|
|
112
123
|
visitarDeclaracaoLeiaInteiros(declaracao: LeiaInteiros): Promise<any> | void;
|
|
@@ -114,7 +125,11 @@ export declare class AnalisadorSemanticoPotigol extends AnalisadorSemanticoBase
|
|
|
114
125
|
visitarDeclaracaoLeiaReal(declaracao: LeiaReal): Promise<any> | void;
|
|
115
126
|
visitarDeclaracaoLeiaTexto(declaracao: LeiaTexto): Promise<any> | void;
|
|
116
127
|
visitarDeclaracaoLeiaTextos(declaracao: LeiaTextos): Promise<any> | void;
|
|
128
|
+
visitarDeclaracaoAliasTipo(declaracao: AliasTipo): Promise<any> | void;
|
|
129
|
+
visitarDeclaracaoParaGere(declaracao: ParaGere): Promise<any> | void;
|
|
130
|
+
visitarDeclaracaoParaCada(declaracao: ParaCada): Promise<any>;
|
|
117
131
|
visitarExpressaoBinaria(expressao: Binario): Promise<any>;
|
|
132
|
+
visitarExpressaoAcessoMetodoOuPropriedade(expressao: AcessoMetodoOuPropriedade): Promise<any>;
|
|
118
133
|
visitarDeclaracaoReatribuicaoVariavel(declaracao: ReatribuicaoVariavel): void | Promise<any>;
|
|
119
134
|
/**
|
|
120
135
|
* Método principal de análise semântica
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analisador-semantico-potigol.d.ts","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico-potigol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAsB,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC1H,OAAO,EACH,KAAK,EACL,UAAU,EACV,QAAQ,EACR,OAAO,EACP,OAAO,EACP,SAAS,EACT,MAAM,EAEN,GAAG,
|
|
1
|
+
{"version":3,"file":"analisador-semantico-potigol.d.ts","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico-potigol.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AnalisadorSemanticoPotigol = void 0;
|
|
4
4
|
const analisador_semantico_1 = require("@designliquido/delegua/analisador-semantico");
|
|
5
|
+
const declaracoes_1 = require("@designliquido/delegua/declaracoes");
|
|
5
6
|
const delegua_1 = require("@designliquido/delegua");
|
|
6
7
|
/**
|
|
7
8
|
* Analisador Semântico do Potigol.
|
|
@@ -11,10 +12,40 @@ const delegua_1 = require("@designliquido/delegua");
|
|
|
11
12
|
class AnalisadorSemanticoPotigol extends analisador_semantico_1.AnalisadorSemanticoBase {
|
|
12
13
|
constructor() {
|
|
13
14
|
super();
|
|
15
|
+
this.tiposBaseNormalizados = new Set([
|
|
16
|
+
'inteiro',
|
|
17
|
+
'real',
|
|
18
|
+
'numero',
|
|
19
|
+
'logico',
|
|
20
|
+
'texto',
|
|
21
|
+
'caractere',
|
|
22
|
+
'qualquer',
|
|
23
|
+
'vetor',
|
|
24
|
+
]);
|
|
14
25
|
this.pilhaVariaveis = new analisador_semantico_1.PilhaVariaveis();
|
|
15
26
|
this.funcoes = {};
|
|
16
27
|
this.atual = 0;
|
|
17
28
|
this.diagnosticos = [];
|
|
29
|
+
this.aliasesTipoNormalizados = new Set();
|
|
30
|
+
}
|
|
31
|
+
normalizarTipo(tipo) {
|
|
32
|
+
return tipo
|
|
33
|
+
.normalize('NFD')
|
|
34
|
+
.replace(/[\u0300-\u036f]/g, '')
|
|
35
|
+
.toLowerCase()
|
|
36
|
+
.trim();
|
|
37
|
+
}
|
|
38
|
+
tipoEhConhecido(tipo) {
|
|
39
|
+
const tipoNormalizado = this.normalizarTipo(tipo);
|
|
40
|
+
if (tipoNormalizado.endsWith('[]')) {
|
|
41
|
+
return this.tipoEhConhecido(tipoNormalizado.slice(0, -2));
|
|
42
|
+
}
|
|
43
|
+
return (this.tiposBaseNormalizados.has(tipoNormalizado) ||
|
|
44
|
+
this.aliasesTipoNormalizados.has(tipoNormalizado));
|
|
45
|
+
}
|
|
46
|
+
valorEhClasse(valor) {
|
|
47
|
+
var _a;
|
|
48
|
+
return valor instanceof declaracoes_1.Classe || ((_a = valor === null || valor === void 0 ? void 0 : valor.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'Classe';
|
|
18
49
|
}
|
|
19
50
|
/**
|
|
20
51
|
* Verifica o tipo atribuído a uma variável na declaração
|
|
@@ -125,14 +156,27 @@ class AnalisadorSemanticoPotigol extends analisador_semantico_1.AnalisadorSemant
|
|
|
125
156
|
}
|
|
126
157
|
}
|
|
127
158
|
switch (expressao.entidadeChamada.constructor) {
|
|
159
|
+
case delegua_1.AcessoMetodoOuPropriedade: {
|
|
160
|
+
const acesso = expressao.entidadeChamada;
|
|
161
|
+
this.verificarArgumentosMetodo(acesso.simbolo.lexema, expressao.argumentos.length, acesso.simbolo, acesso.objeto);
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
128
164
|
case delegua_1.Variavel:
|
|
165
|
+
case delegua_1.Constante:
|
|
129
166
|
const entidadeChamadaVariavel = expressao.entidadeChamada;
|
|
130
|
-
const
|
|
131
|
-
|
|
167
|
+
const simboloNoEscopo = this.gerenciadorEscopos.buscar(entidadeChamadaVariavel.simbolo.lexema);
|
|
168
|
+
const funcaoChamada = simboloNoEscopo || this.funcoes[entidadeChamadaVariavel.simbolo.lexema];
|
|
132
169
|
if (!funcaoChamada) {
|
|
133
170
|
this.erro(entidadeChamadaVariavel.simbolo, `Chamada da função '${entidadeChamadaVariavel.simbolo.lexema}' não existe.`);
|
|
134
171
|
return Promise.resolve();
|
|
135
172
|
}
|
|
173
|
+
if (this.valorEhClasse(simboloNoEscopo === null || simboloNoEscopo === void 0 ? void 0 : simboloNoEscopo.valor)) {
|
|
174
|
+
this.gerenciadorEscopos.marcarComoUsada(entidadeChamadaVariavel.simbolo.lexema);
|
|
175
|
+
if (simboloNoEscopo.valor.abstrata) {
|
|
176
|
+
this.erro(entidadeChamadaVariavel.simbolo, `Tipo abstrato '${entidadeChamadaVariavel.simbolo.lexema}' não pode ser instanciado.`);
|
|
177
|
+
}
|
|
178
|
+
return Promise.resolve();
|
|
179
|
+
}
|
|
136
180
|
const funcao = funcaoChamada.valor;
|
|
137
181
|
this.comparacaoArgumentosContraParametrosFuncao(entidadeChamadaVariavel.simbolo, funcao.parametros, expressao.argumentos);
|
|
138
182
|
break;
|
|
@@ -214,6 +258,9 @@ class AnalisadorSemanticoPotigol extends analisador_semantico_1.AnalisadorSemant
|
|
|
214
258
|
const identificadorOuLiteral = declaracao.identificadorOuLiteral;
|
|
215
259
|
const tipo = identificadorOuLiteral.tipo;
|
|
216
260
|
for (let caminho of declaracao.caminhos) {
|
|
261
|
+
if (caminho.guarda) {
|
|
262
|
+
this.verificarCondicao(caminho.guarda);
|
|
263
|
+
}
|
|
217
264
|
for (let condicao of caminho.condicoes) {
|
|
218
265
|
switch (condicao.constructor) {
|
|
219
266
|
case delegua_1.Literal:
|
|
@@ -247,6 +294,17 @@ class AnalisadorSemanticoPotigol extends analisador_semantico_1.AnalisadorSemant
|
|
|
247
294
|
* Verifica recursivamente uma condição
|
|
248
295
|
*/
|
|
249
296
|
verificarCondicao(condicao) {
|
|
297
|
+
if (condicao instanceof delegua_1.Literal) {
|
|
298
|
+
if (typeof condicao.valor !== 'boolean') {
|
|
299
|
+
this.erro({
|
|
300
|
+
lexema: `${condicao.valor}`,
|
|
301
|
+
tipo: condicao.tipo,
|
|
302
|
+
linha: condicao.linha,
|
|
303
|
+
hashArquivo: condicao.hashArquivo,
|
|
304
|
+
}, `Esperado tipo 'lógico' na condição.`);
|
|
305
|
+
}
|
|
306
|
+
return Promise.resolve();
|
|
307
|
+
}
|
|
250
308
|
if (condicao instanceof delegua_1.Agrupamento) {
|
|
251
309
|
return this.verificarCondicao(condicao.expressao);
|
|
252
310
|
}
|
|
@@ -333,7 +391,7 @@ class AnalisadorSemanticoPotigol extends analisador_semantico_1.AnalisadorSemant
|
|
|
333
391
|
const ambosNumericos = tiposNumericos.includes(tipoEsquerda) &&
|
|
334
392
|
tiposNumericos.includes(tipoDireita);
|
|
335
393
|
if (!ambosNumericos) {
|
|
336
|
-
this.
|
|
394
|
+
this.erro(binario.operador, `Operação entre tipos incompatíveis: tipo esquerdo '${tipoEsquerda}' e tipo direito '${tipoDireita}'.`);
|
|
337
395
|
}
|
|
338
396
|
}
|
|
339
397
|
}
|
|
@@ -346,6 +404,93 @@ class AnalisadorSemanticoPotigol extends analisador_semantico_1.AnalisadorSemant
|
|
|
346
404
|
this.erro(binario.operador, `Divisão por zero.`);
|
|
347
405
|
}
|
|
348
406
|
}
|
|
407
|
+
/**
|
|
408
|
+
* Verifica o número de argumentos em chamadas de método
|
|
409
|
+
*/
|
|
410
|
+
verificarArgumentosMetodo(nomeMetodo, numeroArgumentos, simbolo, objeto) {
|
|
411
|
+
// Métodos de vetor/lista
|
|
412
|
+
const metodosVetor = {
|
|
413
|
+
'cabeça': [0],
|
|
414
|
+
'cauda': [0],
|
|
415
|
+
'contém': [1],
|
|
416
|
+
'descarte': [1],
|
|
417
|
+
'descarte_enquanto': [1],
|
|
418
|
+
'divida_quando': [1],
|
|
419
|
+
'injete': [1, 2],
|
|
420
|
+
'inverta': [0],
|
|
421
|
+
'junte': [0, 1],
|
|
422
|
+
'mapeie': [1],
|
|
423
|
+
'ordene': [0, 1],
|
|
424
|
+
'ordene_por': [1],
|
|
425
|
+
'pegue': [1],
|
|
426
|
+
'pegue_enquanto': [1],
|
|
427
|
+
'posição': [1],
|
|
428
|
+
'remova': [1],
|
|
429
|
+
'selecione': [1],
|
|
430
|
+
'tamanho': [0],
|
|
431
|
+
'último': [0],
|
|
432
|
+
'vazia': [0],
|
|
433
|
+
'primeiro': [0],
|
|
434
|
+
'filtre': [1],
|
|
435
|
+
'reduza': [1]
|
|
436
|
+
};
|
|
437
|
+
// Métodos de texto
|
|
438
|
+
const metodosTexto = {
|
|
439
|
+
'cabeça': [0],
|
|
440
|
+
'cauda': [0],
|
|
441
|
+
'contém': [1],
|
|
442
|
+
'descarte': [1],
|
|
443
|
+
'descarte_enquanto': [1],
|
|
444
|
+
'divida': [0, 1],
|
|
445
|
+
'injete': [1, 2],
|
|
446
|
+
'inverta': [0],
|
|
447
|
+
'junte': [0, 1],
|
|
448
|
+
'maiúsculo': [0],
|
|
449
|
+
'minúsculo': [0],
|
|
450
|
+
'ordene': [0],
|
|
451
|
+
'pegue': [1],
|
|
452
|
+
'pegue_enquanto': [1],
|
|
453
|
+
'posição': [1],
|
|
454
|
+
'remova': [1],
|
|
455
|
+
'selecione': [1],
|
|
456
|
+
'tamanho': [0],
|
|
457
|
+
'último': [0],
|
|
458
|
+
'primeiro': [0],
|
|
459
|
+
'filtre': [1],
|
|
460
|
+
'reduza': [1]
|
|
461
|
+
};
|
|
462
|
+
// Métodos de número
|
|
463
|
+
const metodosNumero = {
|
|
464
|
+
'arredonde': [0, 1],
|
|
465
|
+
'caractere': [0],
|
|
466
|
+
'inteiro': [0],
|
|
467
|
+
'formato': [1],
|
|
468
|
+
'piso': [0],
|
|
469
|
+
'real': [0],
|
|
470
|
+
'teto': [0],
|
|
471
|
+
'texto': [0],
|
|
472
|
+
'qual_tipo': [0]
|
|
473
|
+
};
|
|
474
|
+
// Verificar se é método conhecido
|
|
475
|
+
let metodosConhecidos;
|
|
476
|
+
// Tentar determinar o tipo do objeto
|
|
477
|
+
const tipoObjeto = this.obterTipoExpressao(objeto);
|
|
478
|
+
if (tipoObjeto === 'vetor' || tipoObjeto === 'lista') {
|
|
479
|
+
metodosConhecidos = metodosVetor;
|
|
480
|
+
}
|
|
481
|
+
else if (tipoObjeto === 'texto') {
|
|
482
|
+
metodosConhecidos = metodosTexto;
|
|
483
|
+
}
|
|
484
|
+
else if (tipoObjeto === 'inteiro' || tipoObjeto === 'real' || tipoObjeto === 'número') {
|
|
485
|
+
metodosConhecidos = metodosNumero;
|
|
486
|
+
}
|
|
487
|
+
if (metodosConhecidos && metodosConhecidos[nomeMetodo]) {
|
|
488
|
+
const argumentosEsperados = metodosConhecidos[nomeMetodo];
|
|
489
|
+
if (!argumentosEsperados.includes(numeroArgumentos)) {
|
|
490
|
+
this.erro(simbolo, `Método '${nomeMetodo}' espera ${argumentosEsperados.join(' ou ')} argumento(s), mas recebeu ${numeroArgumentos}.`);
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
}
|
|
349
494
|
/**
|
|
350
495
|
* Tenta avaliar uma expressão em tempo de compilação para detectar valores constantes
|
|
351
496
|
* Retorna o valor se puder ser determinado, ou null caso contrário
|
|
@@ -497,6 +642,19 @@ class AnalisadorSemanticoPotigol extends analisador_semantico_1.AnalisadorSemant
|
|
|
497
642
|
}
|
|
498
643
|
return Promise.resolve();
|
|
499
644
|
}
|
|
645
|
+
visitarDeclaracaoClasse(declaracao) {
|
|
646
|
+
this.gerenciadorEscopos.declarar(declaracao.simbolo.lexema, {
|
|
647
|
+
nome: declaracao.simbolo.lexema,
|
|
648
|
+
tipo: 'tipo',
|
|
649
|
+
imutavel: true,
|
|
650
|
+
valor: declaracao,
|
|
651
|
+
inicializada: true,
|
|
652
|
+
usada: false,
|
|
653
|
+
hashArquivo: declaracao.simbolo.hashArquivo,
|
|
654
|
+
linha: declaracao.simbolo.linha,
|
|
655
|
+
});
|
|
656
|
+
return Promise.resolve();
|
|
657
|
+
}
|
|
500
658
|
/**
|
|
501
659
|
* Verifica variáveis não usadas no escopo atual
|
|
502
660
|
*/
|
|
@@ -512,6 +670,9 @@ class AnalisadorSemanticoPotigol extends analisador_semantico_1.AnalisadorSemant
|
|
|
512
670
|
}
|
|
513
671
|
}
|
|
514
672
|
visitarDeclaracaoConst(declaracao) {
|
|
673
|
+
if (declaracao.tipo && !this.tipoEhConhecido(declaracao.tipo)) {
|
|
674
|
+
this.erro(declaracao.simbolo, `Tipo '${declaracao.tipo}' nao existe.`);
|
|
675
|
+
}
|
|
515
676
|
this.gerenciadorEscopos.declarar(declaracao.simbolo.lexema, {
|
|
516
677
|
nome: declaracao.simbolo.lexema,
|
|
517
678
|
tipo: declaracao.tipo,
|
|
@@ -523,11 +684,17 @@ class AnalisadorSemanticoPotigol extends analisador_semantico_1.AnalisadorSemant
|
|
|
523
684
|
linha: declaracao.simbolo.linha
|
|
524
685
|
});
|
|
525
686
|
if (declaracao.inicializador) {
|
|
687
|
+
if (declaracao.inicializador instanceof delegua_1.Chamada) {
|
|
688
|
+
this.visitarExpressaoDeChamada(declaracao.inicializador);
|
|
689
|
+
}
|
|
526
690
|
this.verificarTipoAtribuido(declaracao);
|
|
527
691
|
}
|
|
528
692
|
return Promise.resolve();
|
|
529
693
|
}
|
|
530
694
|
visitarDeclaracaoVar(declaracao) {
|
|
695
|
+
if (declaracao.tipo && !this.tipoEhConhecido(declaracao.tipo)) {
|
|
696
|
+
this.erro(declaracao.simbolo, `Tipo '${declaracao.tipo}' nao existe.`);
|
|
697
|
+
}
|
|
531
698
|
this.gerenciadorEscopos.declarar(declaracao.simbolo.lexema, {
|
|
532
699
|
nome: declaracao.simbolo.lexema,
|
|
533
700
|
tipo: declaracao.tipo,
|
|
@@ -539,10 +706,28 @@ class AnalisadorSemanticoPotigol extends analisador_semantico_1.AnalisadorSemant
|
|
|
539
706
|
linha: declaracao.simbolo.linha
|
|
540
707
|
});
|
|
541
708
|
if (declaracao.inicializador) {
|
|
709
|
+
if (declaracao.inicializador instanceof delegua_1.Chamada) {
|
|
710
|
+
this.visitarExpressaoDeChamada(declaracao.inicializador);
|
|
711
|
+
}
|
|
542
712
|
this.verificarTipoAtribuido(declaracao);
|
|
543
713
|
}
|
|
544
714
|
return Promise.resolve();
|
|
545
715
|
}
|
|
716
|
+
visitarDeclaracaoVarMultiplo(declaracao) {
|
|
717
|
+
for (const simbolo of declaracao.simbolos) {
|
|
718
|
+
this.gerenciadorEscopos.declarar(simbolo.lexema, {
|
|
719
|
+
nome: simbolo.lexema,
|
|
720
|
+
tipo: declaracao.tipo,
|
|
721
|
+
imutavel: false,
|
|
722
|
+
valor: declaracao.inicializador,
|
|
723
|
+
inicializada: declaracao.inicializador !== undefined,
|
|
724
|
+
usada: false,
|
|
725
|
+
hashArquivo: simbolo.hashArquivo,
|
|
726
|
+
linha: simbolo.linha,
|
|
727
|
+
});
|
|
728
|
+
}
|
|
729
|
+
return Promise.resolve();
|
|
730
|
+
}
|
|
546
731
|
visitarExpressaoDeVariavel(expressao) {
|
|
547
732
|
if (expressao instanceof delegua_1.Variavel) {
|
|
548
733
|
this.verificarVariavel(expressao);
|
|
@@ -568,12 +753,78 @@ class AnalisadorSemanticoPotigol extends analisador_semantico_1.AnalisadorSemant
|
|
|
568
753
|
visitarDeclaracaoLeiaTextos(declaracao) {
|
|
569
754
|
return Promise.resolve();
|
|
570
755
|
}
|
|
756
|
+
visitarDeclaracaoAliasTipo(declaracao) {
|
|
757
|
+
const aliasNormalizado = this.normalizarTipo(declaracao.simbolo.lexema);
|
|
758
|
+
if (this.tiposBaseNormalizados.has(aliasNormalizado) || this.aliasesTipoNormalizados.has(aliasNormalizado)) {
|
|
759
|
+
this.erro(declaracao.simbolo, `Alias de tipo '${declaracao.simbolo.lexema}' ja existe.`);
|
|
760
|
+
return Promise.resolve();
|
|
761
|
+
}
|
|
762
|
+
if (!this.tipoEhConhecido(declaracao.tipoOriginal)) {
|
|
763
|
+
this.erro(declaracao.simbolo, `Tipo base '${declaracao.tipoOriginal}' nao existe para alias '${declaracao.simbolo.lexema}'.`);
|
|
764
|
+
return Promise.resolve();
|
|
765
|
+
}
|
|
766
|
+
this.aliasesTipoNormalizados.add(aliasNormalizado);
|
|
767
|
+
return Promise.resolve();
|
|
768
|
+
}
|
|
769
|
+
visitarDeclaracaoParaGere(declaracao) {
|
|
770
|
+
if (declaracao.inicio instanceof delegua_1.Literal && typeof declaracao.inicio.valor !== 'number') {
|
|
771
|
+
this.erro(declaracao.simboloIteracao, `Valor inicial de 'para gere' deve ser numerico.`);
|
|
772
|
+
}
|
|
773
|
+
if (declaracao.fim instanceof delegua_1.Literal && typeof declaracao.fim.valor !== 'number') {
|
|
774
|
+
this.erro(declaracao.simboloIteracao, `Valor final de 'para gere' deve ser numerico.`);
|
|
775
|
+
}
|
|
776
|
+
if (declaracao.passo instanceof delegua_1.Literal && typeof declaracao.passo.valor !== 'number') {
|
|
777
|
+
this.erro(declaracao.simboloIteracao, `Passo de 'para gere' deve ser numerico.`);
|
|
778
|
+
}
|
|
779
|
+
this.gerenciadorEscopos.empilharEscopo();
|
|
780
|
+
this.gerenciadorEscopos.declarar(declaracao.simboloIteracao.lexema, {
|
|
781
|
+
nome: declaracao.simboloIteracao.lexema,
|
|
782
|
+
tipo: 'inteiro',
|
|
783
|
+
imutavel: false,
|
|
784
|
+
valor: undefined,
|
|
785
|
+
inicializada: true,
|
|
786
|
+
usada: false,
|
|
787
|
+
hashArquivo: declaracao.simboloIteracao.hashArquivo,
|
|
788
|
+
linha: declaracao.simboloIteracao.linha,
|
|
789
|
+
});
|
|
790
|
+
if (declaracao.condicao) {
|
|
791
|
+
this.verificarCondicao(declaracao.condicao);
|
|
792
|
+
}
|
|
793
|
+
for (const declaracaoCorpo of declaracao.corpo) {
|
|
794
|
+
declaracaoCorpo.aceitar(this);
|
|
795
|
+
}
|
|
796
|
+
this.gerenciadorEscopos.desempilharEscopo();
|
|
797
|
+
return Promise.resolve();
|
|
798
|
+
}
|
|
799
|
+
visitarDeclaracaoParaCada(declaracao) {
|
|
800
|
+
const nomeVariavel = declaracao.variavelIteracao.simbolo.lexema;
|
|
801
|
+
this.gerenciadorEscopos.empilharEscopo();
|
|
802
|
+
this.gerenciadorEscopos.declarar(nomeVariavel, {
|
|
803
|
+
nome: nomeVariavel,
|
|
804
|
+
tipo: 'qualquer',
|
|
805
|
+
imutavel: false,
|
|
806
|
+
valor: undefined,
|
|
807
|
+
inicializada: true,
|
|
808
|
+
usada: false,
|
|
809
|
+
hashArquivo: declaracao.variavelIteracao.simbolo.hashArquivo,
|
|
810
|
+
linha: declaracao.variavelIteracao.simbolo.linha,
|
|
811
|
+
});
|
|
812
|
+
for (const declaracaoCorpo of declaracao.corpo.declaracoes) {
|
|
813
|
+
declaracaoCorpo.aceitar(this);
|
|
814
|
+
}
|
|
815
|
+
this.gerenciadorEscopos.desempilharEscopo();
|
|
816
|
+
return Promise.resolve();
|
|
817
|
+
}
|
|
571
818
|
visitarExpressaoBinaria(expressao) {
|
|
572
819
|
this.verificarExistenciaConstruto(expressao.direita);
|
|
573
820
|
this.verificarExistenciaConstruto(expressao.esquerda);
|
|
574
821
|
this.verificarOperadorBinario(expressao);
|
|
575
822
|
return Promise.resolve();
|
|
576
823
|
}
|
|
824
|
+
visitarExpressaoAcessoMetodoOuPropriedade(expressao) {
|
|
825
|
+
this.verificarExistenciaConstruto(expressao.objeto);
|
|
826
|
+
return Promise.resolve();
|
|
827
|
+
}
|
|
577
828
|
visitarDeclaracaoReatribuicaoVariavel(declaracao) {
|
|
578
829
|
// Verifica se a variável existe
|
|
579
830
|
const variavel = this.gerenciadorEscopos.buscar(declaracao.simbolo.lexema);
|
|
@@ -602,6 +853,7 @@ class AnalisadorSemanticoPotigol extends analisador_semantico_1.AnalisadorSemant
|
|
|
602
853
|
this.funcoes = {};
|
|
603
854
|
this.atual = 0;
|
|
604
855
|
this.diagnosticos = [];
|
|
856
|
+
this.aliasesTipoNormalizados = new Set();
|
|
605
857
|
while (this.atual < declaracoes.length) {
|
|
606
858
|
await declaracoes[this.atual].aceitar(this);
|
|
607
859
|
this.atual++;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analisador-semantico-potigol.js","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico-potigol.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analisador-semantico-potigol.js","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico-potigol.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Chamada, Constante, Construto, FuncaoConstruto, Leia, Tupla, Variavel } from '@designliquido/delegua/construtos';
|
|
2
|
-
import { Escreva, Declaracao, Se, Enquanto, Para, Escolha, Fazer, EscrevaMesmaLinha, Const, Var, FuncaoDeclaracao, Classe, ConstMultiplo } from '@designliquido/delegua/declaracoes';
|
|
2
|
+
import { Escreva, Declaracao, Se, Enquanto, Para, Escolha, Fazer, EscrevaMesmaLinha, Const, Var, FuncaoDeclaracao, Classe, ConstMultiplo, Importar } from '@designliquido/delegua/declaracoes';
|
|
3
3
|
import { RetornoLexador, RetornoAvaliadorSintatico } from '@designliquido/delegua/interfaces/retornos';
|
|
4
4
|
import { AvaliadorSintaticoBase } from '@designliquido/delegua/avaliador-sintatico/avaliador-sintatico-base';
|
|
5
5
|
import { ParametroInterface, SimboloInterface } from '@designliquido/delegua/interfaces';
|
|
6
6
|
import { ConstanteOuVariavel, LeiaInteiros, LeiaReais, LeiaTextos } from '../construtos';
|
|
7
|
+
import { AliasTipo } from '../declaracoes';
|
|
7
8
|
import { MicroAvaliadorSintaticoPotigol } from './micro-avaliador-sintatico-potigol';
|
|
8
9
|
import { PilhaEscoposVariaveisConhecidas } from './pilha-escopos-variaveis-conhecidas';
|
|
9
10
|
/**
|
|
@@ -13,6 +14,7 @@ import { PilhaEscoposVariaveisConhecidas } from './pilha-escopos-variaveis-conhe
|
|
|
13
14
|
*/
|
|
14
15
|
export declare class AvaliadorSintaticoPotigol extends AvaliadorSintaticoBase {
|
|
15
16
|
microAvaliadorSintatico: MicroAvaliadorSintaticoPotigol;
|
|
17
|
+
tiposDefinidosEmCodigo: Record<string, string>;
|
|
16
18
|
tiposPotigolParaDelegua: {
|
|
17
19
|
Caractere: string;
|
|
18
20
|
Inteiro: string;
|
|
@@ -88,7 +90,10 @@ export declare class AvaliadorSintaticoPotigol extends AvaliadorSintaticoBase {
|
|
|
88
90
|
* de funções anônimas.
|
|
89
91
|
* @param primeiroArgumento O primeiro argumento, já resolvido como construto.
|
|
90
92
|
*/
|
|
91
|
-
protected logicaArgumentosTipados(primeiroArgumento: Construto):
|
|
93
|
+
protected logicaArgumentosTipados(primeiroArgumento: Construto): {
|
|
94
|
+
parametros: ParametroInterface[];
|
|
95
|
+
tipagemDefinida: boolean;
|
|
96
|
+
};
|
|
92
97
|
protected logicaFuncaoAnonimaOuTupla(primeiroConstruto: Construto): Tupla | Promise<FuncaoConstruto>;
|
|
93
98
|
primario(): Promise<Construto>;
|
|
94
99
|
protected formato(): Promise<Construto>;
|
|
@@ -156,6 +161,8 @@ export declare class AvaliadorSintaticoPotigol extends AvaliadorSintaticoBase {
|
|
|
156
161
|
declaracaoPara(): Promise<Para>;
|
|
157
162
|
declaracaoEscolha(): Promise<Escolha>;
|
|
158
163
|
declaracaoFazer(): Fazer;
|
|
164
|
+
protected declaracaoUse(): Importar;
|
|
165
|
+
protected declaracaoTipoOuAlias(): Promise<Classe | AliasTipo>;
|
|
159
166
|
/**
|
|
160
167
|
* Uma declaração de tipo nada mais é do que um declaração de classe.
|
|
161
168
|
* Em Potigol, classe e tipo são praticamente a mesma coisa.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avaliador-sintatico-potigol.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico-potigol.ts"],"names":[],"mappings":"AAAA,OAAO,EAMH,OAAO,EACP,SAAS,EACT,SAAS,EAGT,eAAe,EAEf,IAAI,EAGJ,KAAK,EAEL,QAAQ,EAEX,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACH,OAAO,EACP,UAAU,EACV,EAAE,EACF,QAAQ,EACR,IAAI,
|
|
1
|
+
{"version":3,"file":"avaliador-sintatico-potigol.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico-potigol.ts"],"names":[],"mappings":"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"}
|