@designliquido/delegua 1.16.0 → 1.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/analisador-documentario/index.js +2 -4
- package/analisador-documentario/index.js.map +1 -1
- package/analisador-semantico/analisador-semantico-base.js +8 -13
- package/analisador-semantico/analisador-semantico-base.js.map +1 -1
- package/analisador-semantico/analisador-semantico.js +13 -21
- package/analisador-semantico/analisador-semantico.js.map +1 -1
- package/analisador-semantico/dialetos/analisador-semantico-pitugues.js +13 -20
- package/analisador-semantico/dialetos/analisador-semantico-pitugues.js.map +1 -1
- package/avaliador-sintatico/avaliador-sintatico.d.ts +1 -0
- package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
- package/avaliador-sintatico/avaliador-sintatico.js +45 -8
- package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
- package/avaliador-sintatico/comum.js +3 -4
- package/avaliador-sintatico/comum.js.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-calango.js +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-calango.js.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +4 -5
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.js +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-ipt.js.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-prisma.js +2 -3
- package/avaliador-sintatico/dialetos/avaliador-sintatico-prisma.js.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.js +2 -3
- package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.js.map +1 -1
- package/avaliador-sintatico/dialetos/micro-avaliador-sintatico-pitugues.js +1 -1
- package/avaliador-sintatico/dialetos/micro-avaliador-sintatico-pitugues.js.map +1 -1
- package/avaliador-sintatico/micro-avaliador-sintatico.js +1 -1
- package/avaliador-sintatico/micro-avaliador-sintatico.js.map +1 -1
- package/bibliotecas/biblioteca-global.js +9 -11
- package/bibliotecas/biblioteca-global.js.map +1 -1
- package/bibliotecas/dialetos/tenda/biblioteca-global.js +3 -3
- package/bibliotecas/dialetos/tenda/biblioteca-global.js.map +1 -1
- package/bin/package.json +1 -1
- package/construtos/atribuir.js +2 -2
- package/construtos/atribuir.js.map +1 -1
- package/declaracoes/classe.js +3 -4
- package/declaracoes/classe.js.map +1 -1
- package/declaracoes/const.js +1 -1
- package/declaracoes/const.js.map +1 -1
- package/declaracoes/var.js +1 -1
- package/declaracoes/var.js.map +1 -1
- package/estilizador/estilizador-delegua.js +2 -3
- package/estilizador/estilizador-delegua.js.map +1 -1
- package/formatadores/formatador-pitugues.js +1 -2
- package/formatadores/formatador-pitugues.js.map +1 -1
- package/interpretador/comum.d.ts.map +1 -1
- package/interpretador/comum.js +117 -11
- package/interpretador/comum.js.map +1 -1
- package/interpretador/depuracao/comum.js +9 -5
- package/interpretador/depuracao/comum.js.map +1 -1
- package/interpretador/depuracao/interpretador-base-com-depuracao.js +1 -1
- package/interpretador/depuracao/interpretador-base-com-depuracao.js.map +1 -1
- package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +1 -1
- package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
- package/interpretador/dialetos/pitugues/comum.js +1 -2
- package/interpretador/dialetos/pitugues/comum.js.map +1 -1
- package/interpretador/dialetos/pitugues/interpretador-pitugues.js +1 -2
- package/interpretador/dialetos/pitugues/interpretador-pitugues.js.map +1 -1
- package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js +2 -2
- package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js.map +1 -1
- package/interpretador/estruturas/delegua-funcao-nativa.js +1 -2
- package/interpretador/estruturas/delegua-funcao-nativa.js.map +1 -1
- package/interpretador/estruturas/delegua-funcao.d.ts +3 -0
- package/interpretador/estruturas/delegua-funcao.d.ts.map +1 -1
- package/interpretador/estruturas/delegua-funcao.js +12 -4
- package/interpretador/estruturas/delegua-funcao.js.map +1 -1
- package/interpretador/estruturas/descritor-tipo-classe.js +11 -18
- package/interpretador/estruturas/descritor-tipo-classe.js.map +1 -1
- package/interpretador/estruturas/index.d.ts +1 -0
- package/interpretador/estruturas/index.d.ts.map +1 -1
- package/interpretador/estruturas/index.js +1 -0
- package/interpretador/estruturas/index.js.map +1 -1
- package/interpretador/estruturas/metodo-polimorfico.js +5 -10
- package/interpretador/estruturas/metodo-polimorfico.js.map +1 -1
- package/interpretador/estruturas/objeto-base.js +4 -6
- package/interpretador/estruturas/objeto-base.js.map +1 -1
- package/interpretador/estruturas/objeto-delegua-classe.js +8 -10
- package/interpretador/estruturas/objeto-delegua-classe.js.map +1 -1
- package/interpretador/estruturas/super-proxy.d.ts +24 -0
- package/interpretador/estruturas/super-proxy.d.ts.map +1 -0
- package/interpretador/estruturas/super-proxy.js +38 -0
- package/interpretador/estruturas/super-proxy.js.map +1 -0
- package/interpretador/interpretador-base.js +11 -14
- package/interpretador/interpretador-base.js.map +1 -1
- package/interpretador/interpretador.d.ts +17 -5
- package/interpretador/interpretador.d.ts.map +1 -1
- package/interpretador/interpretador.js +118 -32
- package/interpretador/interpretador.js.map +1 -1
- package/lexador/filtro-paradigma.js +1 -1
- package/lexador/filtro-paradigma.js.map +1 -1
- package/lexador/mapeamento-paradigmas.js +2 -3
- package/lexador/mapeamento-paradigmas.js.map +1 -1
- package/package.json +1 -1
- package/tradutores/tradutor-assembly-arm.js +12 -24
- package/tradutores/tradutor-assembly-arm.js.map +1 -1
- package/tradutores/tradutor-assembly-risc-v.js +10 -20
- package/tradutores/tradutor-assembly-risc-v.js.map +1 -1
- package/tradutores/tradutor-assembly-x64.js +12 -24
- package/tradutores/tradutor-assembly-x64.js.map +1 -1
- package/tradutores/tradutor-assemblyscript.js +12 -13
- package/tradutores/tradutor-assemblyscript.js.map +1 -1
- package/tradutores/tradutor-javascript.js +10 -13
- package/tradutores/tradutor-javascript.js.map +1 -1
- package/tradutores/tradutor-mermaidjs.js +1 -2
- package/tradutores/tradutor-mermaidjs.js.map +1 -1
- package/tradutores/tradutor-python.js +4 -5
- package/tradutores/tradutor-python.js.map +1 -1
- package/tradutores/tradutor-reverso-javascript.js +1 -1
- package/tradutores/tradutor-reverso-javascript.js.map +1 -1
- package/tradutores/tradutor-reverso-tenda.js +7 -10
- package/tradutores/tradutor-reverso-tenda.js.map +1 -1
- package/tradutores/tradutor-ruby.js +4 -5
- package/tradutores/tradutor-ruby.js.map +1 -1
- package/tradutores/tradutor-webassembly.js +20 -35
- package/tradutores/tradutor-webassembly.js.map +1 -1
- package/umd/delegua.js +833 -658
|
@@ -8,13 +8,12 @@ const REGEX_DEPRECIADO = /^@depreciado\s*(.*)$/;
|
|
|
8
8
|
const REGEX_VEJA = /^@veja\s+(\S+).*$/;
|
|
9
9
|
const REGEX_TAG = /^@\w+/;
|
|
10
10
|
function segmentar(linhas) {
|
|
11
|
-
var _a, _b;
|
|
12
11
|
const segmentos = [];
|
|
13
12
|
let atual = { tag: '', linhas: [] };
|
|
14
13
|
for (const linha of linhas) {
|
|
15
14
|
if (REGEX_TAG.test(linha)) {
|
|
16
15
|
segmentos.push(atual);
|
|
17
|
-
const tag =
|
|
16
|
+
const tag = linha.match(/^@(\w+)/)?.[1] ?? '';
|
|
18
17
|
atual = { tag, linhas: [linha] };
|
|
19
18
|
}
|
|
20
19
|
else {
|
|
@@ -25,7 +24,6 @@ function segmentar(linhas) {
|
|
|
25
24
|
return segmentos;
|
|
26
25
|
}
|
|
27
26
|
function analisarDocumentario(conteudo) {
|
|
28
|
-
var _a;
|
|
29
27
|
const resultado = {
|
|
30
28
|
descricao: '',
|
|
31
29
|
parametros: [],
|
|
@@ -38,7 +36,7 @@ function analisarDocumentario(conteudo) {
|
|
|
38
36
|
resultado.descricao = segmento.linhas.join('\n').trim();
|
|
39
37
|
continue;
|
|
40
38
|
}
|
|
41
|
-
const primeiraLinha =
|
|
39
|
+
const primeiraLinha = segmento.linhas[0] ?? '';
|
|
42
40
|
let m;
|
|
43
41
|
m = primeiraLinha.match(REGEX_PARAMETRO);
|
|
44
42
|
if (m) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../fontes/analisador-documentario/index.ts"],"names":[],"mappings":";;AA6BA,oDAiEC;AA5FD,MAAM,eAAe,GAAG,6DAA6D,CAAC;AACtF,MAAM,aAAa,GAAG,0CAA0C,CAAC;AACjE,MAAM,aAAa,GAAG,uBAAuB,CAAC;AAC9C,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAChD,MAAM,UAAU,GAAG,mBAAmB,CAAC;AACvC,MAAM,SAAS,GAAG,OAAO,CAAC;AAI1B,SAAS,SAAS,CAAC,MAAgB
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../fontes/analisador-documentario/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,12 +17,9 @@ class AnalisadorSemanticoBase {
|
|
|
17
17
|
this.diagnosticos = [];
|
|
18
18
|
}
|
|
19
19
|
diagnosticoJaExiste(simbolo, mensagem) {
|
|
20
|
-
return this.diagnosticos.some((d) =>
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
d.mensagem === mensagem &&
|
|
24
|
-
((_a = d.simbolo) === null || _a === void 0 ? void 0 : _a.lexema) === simbolo.lexema;
|
|
25
|
-
});
|
|
20
|
+
return this.diagnosticos.some((d) => d.linha === simbolo.linha &&
|
|
21
|
+
d.mensagem === mensagem &&
|
|
22
|
+
d.simbolo?.lexema === simbolo.lexema);
|
|
26
23
|
}
|
|
27
24
|
erro(simbolo, mensagem) {
|
|
28
25
|
if (this.diagnosticoJaExiste(simbolo, mensagem)) {
|
|
@@ -49,7 +46,6 @@ class AnalisadorSemanticoBase {
|
|
|
49
46
|
});
|
|
50
47
|
}
|
|
51
48
|
sugestao(simbolo, mensagem, correcoes) {
|
|
52
|
-
var _a, _b;
|
|
53
49
|
if (this.diagnosticoJaExiste(simbolo, mensagem)) {
|
|
54
50
|
return;
|
|
55
51
|
}
|
|
@@ -59,8 +55,8 @@ class AnalisadorSemanticoBase {
|
|
|
59
55
|
hashArquivo: simbolo.hashArquivo,
|
|
60
56
|
linha: simbolo.linha,
|
|
61
57
|
severidade: interfaces_1.DiagnosticoSeveridade.SUGESTAO,
|
|
62
|
-
colunaInicio:
|
|
63
|
-
colunaFim:
|
|
58
|
+
colunaInicio: correcoes[0]?.colunaInicio,
|
|
59
|
+
colunaFim: correcoes[0]?.colunaFim,
|
|
64
60
|
correcoes: correcoes,
|
|
65
61
|
});
|
|
66
62
|
}
|
|
@@ -103,7 +99,7 @@ class AnalisadorSemanticoBase {
|
|
|
103
99
|
}
|
|
104
100
|
if (expressao instanceof construtos_1.Variavel) {
|
|
105
101
|
const variavel = this.gerenciadorEscopos.buscar(expressao.simbolo.lexema);
|
|
106
|
-
return
|
|
102
|
+
return variavel?.tipo || null;
|
|
107
103
|
}
|
|
108
104
|
if (expressao instanceof construtos_1.Binario) {
|
|
109
105
|
// Para binários, tentamos inferir o tipo baseado nos operandos
|
|
@@ -255,15 +251,14 @@ class AnalisadorSemanticoBase {
|
|
|
255
251
|
return false;
|
|
256
252
|
}
|
|
257
253
|
verificarSeRetorna(declaracaoSe) {
|
|
258
|
-
var _a, _b;
|
|
259
254
|
const caminhoEntaoResolvido = declaracaoSe.caminhoEntao;
|
|
260
255
|
const entaoRetorna = this.verificarBlocoRetorna(caminhoEntaoResolvido.declaracoes);
|
|
261
256
|
const caminhoSenaoResolvido = declaracaoSe.caminhoSenao;
|
|
262
|
-
if (!caminhoSenaoResolvido ||
|
|
257
|
+
if (!caminhoSenaoResolvido || caminhoSenaoResolvido.declaracoes?.length === 0) {
|
|
263
258
|
return false;
|
|
264
259
|
}
|
|
265
260
|
if (caminhoSenaoResolvido instanceof declaracoes_1.Se &&
|
|
266
|
-
|
|
261
|
+
caminhoSenaoResolvido.caminhoEntao.declaracoes?.length === 1) {
|
|
267
262
|
const senaoSeRetorna = this.verificarSeRetorna(caminhoSenaoResolvido);
|
|
268
263
|
return entaoRetorna && senaoSeRetorna;
|
|
269
264
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analisador-semantico-base.js","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico-base.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analisador-semantico-base.js","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,13 +38,13 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
|
|
|
38
38
|
const vetor = declaracao.inicializador;
|
|
39
39
|
const vetorSemSeparadores = vetor.elementos;
|
|
40
40
|
if (declaracao.tipo === 'inteiro[]') {
|
|
41
|
-
const apenasValores = vetorSemSeparadores.find((v) => typeof
|
|
41
|
+
const apenasValores = vetorSemSeparadores.find((v) => typeof v?.valor !== 'number');
|
|
42
42
|
if (apenasValores) {
|
|
43
43
|
this.erro(declaracao.simbolo, `Atribuição inválida para '${declaracao.simbolo.lexema}': é esperado um valor do tipo vetor de inteiro ou real. Atual: ${vetor.tipo}.`);
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
if (declaracao.tipo === 'texto[]') {
|
|
47
|
-
const apenasValores = vetorSemSeparadores.find((v) => typeof
|
|
47
|
+
const apenasValores = vetorSemSeparadores.find((v) => typeof v?.valor !== 'string');
|
|
48
48
|
if (apenasValores) {
|
|
49
49
|
this.erro(declaracao.simbolo, `Atribuição inválida para '${declaracao.simbolo.lexema}': é esperado um valor do tipo vetor de texto. Atual: ${vetor.tipo}.`);
|
|
50
50
|
}
|
|
@@ -133,10 +133,9 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
|
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
135
|
visitarChamadaPorArgumentoReferenciaFuncao(argumentoReferenciaFuncao, argumentos) {
|
|
136
|
-
var _a;
|
|
137
136
|
const variavelCorrespondente =
|
|
138
137
|
// this.variaveis[argumentoReferenciaFuncao.simboloFuncao.lexema].valor;
|
|
139
|
-
|
|
138
|
+
this.gerenciadorEscopos.buscar(argumentoReferenciaFuncao.simboloFuncao.lexema)?.valor;
|
|
140
139
|
if (!variavelCorrespondente) {
|
|
141
140
|
return;
|
|
142
141
|
}
|
|
@@ -794,7 +793,6 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
|
|
|
794
793
|
return Promise.resolve();
|
|
795
794
|
}
|
|
796
795
|
visitarDeclaracaoConst(declaracao) {
|
|
797
|
-
var _a;
|
|
798
796
|
this.verificarTipoAtribuido(declaracao);
|
|
799
797
|
if (declaracao.inicializador) {
|
|
800
798
|
this.marcarVariaveisUsadasEmExpressao(declaracao.inicializador);
|
|
@@ -810,7 +808,7 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
|
|
|
810
808
|
nome: declaracao.simbolo.lexema,
|
|
811
809
|
tipo: declaracao.tipo || 'qualquer',
|
|
812
810
|
imutavel: true,
|
|
813
|
-
valor:
|
|
811
|
+
valor: declaracao.inicializador?.valor,
|
|
814
812
|
inicializada: true,
|
|
815
813
|
usada: false,
|
|
816
814
|
hashArquivo: declaracao.simbolo.hashArquivo,
|
|
@@ -905,7 +903,7 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
|
|
|
905
903
|
const declaradaComSucesso = this.gerenciadorEscopos.declarar(declaracao.simbolo.lexema, variavel);
|
|
906
904
|
if (!declaradaComSucesso) {
|
|
907
905
|
const variavelExistente = this.gerenciadorEscopos.buscarNoEscopoAtual(declaracao.simbolo.lexema);
|
|
908
|
-
this.aviso(declaracao.simbolo, `Variável '${declaracao.simbolo.lexema}' já foi declarada na linha ${variavelExistente
|
|
906
|
+
this.aviso(declaracao.simbolo, `Variável '${declaracao.simbolo.lexema}' já foi declarada na linha ${variavelExistente?.linha}.`);
|
|
909
907
|
}
|
|
910
908
|
return Promise.resolve();
|
|
911
909
|
}
|
|
@@ -942,12 +940,11 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
|
|
|
942
940
|
return null;
|
|
943
941
|
}
|
|
944
942
|
resolverTipoObjeto(objeto) {
|
|
945
|
-
var _a, _b;
|
|
946
943
|
if (objeto instanceof construtos_1.Variavel) {
|
|
947
944
|
if (objeto.simbolo.lexema === 'isto' && this.classeAtualEmAnalise) {
|
|
948
945
|
return this.classeAtualEmAnalise.simbolo.lexema;
|
|
949
946
|
}
|
|
950
|
-
return
|
|
947
|
+
return this.gerenciadorEscopos.buscar(objeto.simbolo.lexema)?.tipo ?? null;
|
|
951
948
|
}
|
|
952
949
|
if (objeto instanceof construtos_1.Chamada && objeto.entidadeChamada instanceof construtos_1.Variavel) {
|
|
953
950
|
const nomeCallee = objeto.entidadeChamada.simbolo.lexema;
|
|
@@ -957,7 +954,6 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
|
|
|
957
954
|
return null;
|
|
958
955
|
}
|
|
959
956
|
estaEmClasseOuSubclasse(nomeClasse) {
|
|
960
|
-
var _a;
|
|
961
957
|
const visitados = new Set();
|
|
962
958
|
const pilha = [this.classeAtualEmAnalise];
|
|
963
959
|
while (pilha.length > 0) {
|
|
@@ -970,7 +966,7 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
|
|
|
970
966
|
if (atual.simbolo.lexema === nomeClasse)
|
|
971
967
|
return true;
|
|
972
968
|
for (const sc of atual.superClasses) {
|
|
973
|
-
const pai =
|
|
969
|
+
const pai = this.classesRegistradas.get(sc.simbolo.lexema) ?? null;
|
|
974
970
|
if (pai)
|
|
975
971
|
pilha.push(pai);
|
|
976
972
|
}
|
|
@@ -978,7 +974,6 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
|
|
|
978
974
|
return false;
|
|
979
975
|
}
|
|
980
976
|
async visitarExpressaoAcessoMetodoOuPropriedade(expressao) {
|
|
981
|
-
var _a, _b;
|
|
982
977
|
const nomeMembro = expressao.simbolo.lexema;
|
|
983
978
|
const tipoObjeto = this.resolverTipoObjeto(expressao.objeto);
|
|
984
979
|
if (!tipoObjeto)
|
|
@@ -986,11 +981,12 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
|
|
|
986
981
|
const classeDef = this.classesRegistradas.get(tipoObjeto);
|
|
987
982
|
if (!classeDef)
|
|
988
983
|
return;
|
|
989
|
-
const membro =
|
|
984
|
+
const membro = classeDef.metodos.find((m) => m.simbolo.lexema === nomeMembro) ??
|
|
985
|
+
classeDef.propriedades.find((p) => p.nome.lexema === nomeMembro);
|
|
990
986
|
if (!membro)
|
|
991
987
|
return;
|
|
992
988
|
if (membro.acesso === 'privado') {
|
|
993
|
-
if (
|
|
989
|
+
if (this.classeAtualEmAnalise?.simbolo.lexema !== tipoObjeto) {
|
|
994
990
|
this.erro(expressao.simbolo, `Membro '${nomeMembro}' é privado e não pode ser acessado fora da classe '${tipoObjeto}'.`);
|
|
995
991
|
}
|
|
996
992
|
}
|
|
@@ -1029,7 +1025,6 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
|
|
|
1029
1025
|
this.classeAtualEmAnalise = classeAnterior;
|
|
1030
1026
|
}
|
|
1031
1027
|
async visitarDeclaracaoDefinicaoFuncao(declaracao) {
|
|
1032
|
-
var _a;
|
|
1033
1028
|
if (declaracao.funcao.tipo === undefined) {
|
|
1034
1029
|
this.erro(declaracao.simbolo, `Declaração de retorno da função é inválido.`);
|
|
1035
1030
|
}
|
|
@@ -1071,7 +1066,7 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
|
|
|
1071
1066
|
// Verifica tipos de retorno para funções não-vazio
|
|
1072
1067
|
const retornoComValor = retornos.find((retorno) => retorno.valor !== null && retorno.valor !== undefined);
|
|
1073
1068
|
if (retornoComValor) {
|
|
1074
|
-
const tipoValor = typeof
|
|
1069
|
+
const tipoValor = typeof retornoComValor.valor?.valor;
|
|
1075
1070
|
if (!['qualquer'].includes(tipoRetornoFuncao)) {
|
|
1076
1071
|
if (tipoValor === 'string' && tipoRetornoFuncao !== 'texto') {
|
|
1077
1072
|
this.erro(declaracao.simbolo, `Esperado retorno do tipo '${tipoRetornoFuncao}' dentro da função.`);
|
|
@@ -1114,11 +1109,8 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
|
|
|
1114
1109
|
const naoUsadas = this.gerenciadorEscopos.obterVariaveisNaoUsadas();
|
|
1115
1110
|
for (let variavel of naoUsadas) {
|
|
1116
1111
|
// Verifica se já existe um erro associado à variável.
|
|
1117
|
-
const temErro = this.diagnosticos.some((d) =>
|
|
1118
|
-
|
|
1119
|
-
return d.severidade === erros_1.DiagnosticoSeveridade.ERRO &&
|
|
1120
|
-
((_a = d.simbolo) === null || _a === void 0 ? void 0 : _a.lexema) === variavel.nome;
|
|
1121
|
-
});
|
|
1112
|
+
const temErro = this.diagnosticos.some((d) => d.severidade === erros_1.DiagnosticoSeveridade.ERRO &&
|
|
1113
|
+
d.simbolo?.lexema === variavel.nome);
|
|
1122
1114
|
// Se a variável já tem um erro associado, não emitir aviso de não usada.
|
|
1123
1115
|
if (temErro) {
|
|
1124
1116
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analisador-semantico.js","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analisador-semantico.js","sourceRoot":"","sources":["../../fontes/analisador-semantico/analisador-semantico.ts"],"names":[],"mappings":"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"}
|
|
@@ -77,13 +77,13 @@ class AnalisadorSemanticoPitugues extends analisador_semantico_base_1.Analisador
|
|
|
77
77
|
const vetor = declaracao.inicializador;
|
|
78
78
|
const vetorSemSeparadores = vetor.elementos;
|
|
79
79
|
if (declaracao.tipo === 'inteiro[]') {
|
|
80
|
-
const apenasValores = vetorSemSeparadores.find((v) => typeof
|
|
80
|
+
const apenasValores = vetorSemSeparadores.find((v) => typeof v?.valor !== 'number');
|
|
81
81
|
if (apenasValores) {
|
|
82
82
|
this.erro(declaracao.simbolo, `Atribuição inválida para '${declaracao.simbolo.lexema}': é esperado um valor do tipo vetor de inteiro ou real. Atual: ${vetor.tipo}.`);
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
if (declaracao.tipo === 'texto[]') {
|
|
86
|
-
const apenasValores = vetorSemSeparadores.find((v) => typeof
|
|
86
|
+
const apenasValores = vetorSemSeparadores.find((v) => typeof v?.valor !== 'string');
|
|
87
87
|
if (apenasValores) {
|
|
88
88
|
this.erro(declaracao.simbolo, `Atribuição inválida para '${declaracao.simbolo.lexema}': é esperado um valor do tipo vetor de texto. Atual: ${vetor.tipo}.`);
|
|
89
89
|
}
|
|
@@ -150,8 +150,7 @@ class AnalisadorSemanticoPitugues extends analisador_semantico_base_1.Analisador
|
|
|
150
150
|
return Promise.resolve();
|
|
151
151
|
}
|
|
152
152
|
visitarChamadaPorArgumentoReferenciaFuncao(argumentoReferenciaFuncao, argumentos) {
|
|
153
|
-
|
|
154
|
-
const variavelCorrespondente = (_a = this.gerenciadorEscopos.buscar(argumentoReferenciaFuncao.simboloFuncao.lexema)) === null || _a === void 0 ? void 0 : _a.valor;
|
|
153
|
+
const variavelCorrespondente = this.gerenciadorEscopos.buscar(argumentoReferenciaFuncao.simboloFuncao.lexema)?.valor;
|
|
155
154
|
if (!variavelCorrespondente) {
|
|
156
155
|
return;
|
|
157
156
|
}
|
|
@@ -217,8 +216,8 @@ class AnalisadorSemanticoPitugues extends analisador_semantico_base_1.Analisador
|
|
|
217
216
|
atual = atual.objeto;
|
|
218
217
|
continue;
|
|
219
218
|
}
|
|
220
|
-
const simbolo = atual
|
|
221
|
-
if (simbolo
|
|
219
|
+
const simbolo = atual?.simbolo;
|
|
220
|
+
if (simbolo?.lexema) {
|
|
222
221
|
return simbolo;
|
|
223
222
|
}
|
|
224
223
|
return undefined;
|
|
@@ -530,7 +529,7 @@ class AnalisadorSemanticoPitugues extends analisador_semantico_base_1.Analisador
|
|
|
530
529
|
}
|
|
531
530
|
if (expressao instanceof construtos_1.Variavel) {
|
|
532
531
|
const variavel = this.gerenciadorEscopos.buscar(expressao.simbolo.lexema);
|
|
533
|
-
return
|
|
532
|
+
return variavel?.tipo || null;
|
|
534
533
|
}
|
|
535
534
|
if (expressao instanceof construtos_1.Binario) {
|
|
536
535
|
// Para binários, tentamos inferir o tipo baseado nos operandos
|
|
@@ -682,7 +681,6 @@ class AnalisadorSemanticoPitugues extends analisador_semantico_base_1.Analisador
|
|
|
682
681
|
return Promise.resolve();
|
|
683
682
|
}
|
|
684
683
|
visitarDeclaracaoConst(declaracao) {
|
|
685
|
-
var _a;
|
|
686
684
|
this.verificarTipoAtribuido(declaracao);
|
|
687
685
|
if (declaracao.inicializador) {
|
|
688
686
|
this.marcarVariaveisUsadasEmExpressao(declaracao.inicializador);
|
|
@@ -697,7 +695,7 @@ class AnalisadorSemanticoPitugues extends analisador_semantico_base_1.Analisador
|
|
|
697
695
|
nome: declaracao.simbolo.lexema,
|
|
698
696
|
tipo: declaracao.tipo || 'qualquer',
|
|
699
697
|
imutavel: true,
|
|
700
|
-
valor:
|
|
698
|
+
valor: declaracao.inicializador?.valor,
|
|
701
699
|
inicializada: true,
|
|
702
700
|
usada: false,
|
|
703
701
|
hashArquivo: declaracao.simbolo.hashArquivo,
|
|
@@ -707,7 +705,6 @@ class AnalisadorSemanticoPitugues extends analisador_semantico_base_1.Analisador
|
|
|
707
705
|
return Promise.resolve();
|
|
708
706
|
}
|
|
709
707
|
visitarDeclaracaoVar(declaracao) {
|
|
710
|
-
var _a, _b;
|
|
711
708
|
this.verificarTipoAtribuido(declaracao);
|
|
712
709
|
if (declaracao.inicializador) {
|
|
713
710
|
this.marcarVariaveisUsadasEmExpressao(declaracao.inicializador);
|
|
@@ -772,8 +769,8 @@ class AnalisadorSemanticoPitugues extends analisador_semantico_base_1.Analisador
|
|
|
772
769
|
textoOriginal: 'qualquer',
|
|
773
770
|
textoSubstituto: tipoMelhor,
|
|
774
771
|
linha: declaracao.simbolo.linha,
|
|
775
|
-
colunaInicio:
|
|
776
|
-
colunaFim:
|
|
772
|
+
colunaInicio: declaracao.simbolo.colunaInicio ?? -1,
|
|
773
|
+
colunaFim: declaracao.simbolo.colunaFim ?? -1,
|
|
777
774
|
},
|
|
778
775
|
]);
|
|
779
776
|
}
|
|
@@ -791,7 +788,7 @@ class AnalisadorSemanticoPitugues extends analisador_semantico_base_1.Analisador
|
|
|
791
788
|
const declaradaComSucesso = this.gerenciadorEscopos.declarar(declaracao.simbolo.lexema, variavel);
|
|
792
789
|
if (!declaradaComSucesso) {
|
|
793
790
|
const variavelExistente = this.gerenciadorEscopos.buscarNoEscopoAtual(declaracao.simbolo.lexema);
|
|
794
|
-
this.aviso(declaracao.simbolo, `Variável '${declaracao.simbolo.lexema}' já foi declarada na linha ${variavelExistente
|
|
791
|
+
this.aviso(declaracao.simbolo, `Variável '${declaracao.simbolo.lexema}' já foi declarada na linha ${variavelExistente?.linha}.`);
|
|
795
792
|
}
|
|
796
793
|
return Promise.resolve();
|
|
797
794
|
}
|
|
@@ -846,7 +843,6 @@ class AnalisadorSemanticoPitugues extends analisador_semantico_base_1.Analisador
|
|
|
846
843
|
return Promise.resolve();
|
|
847
844
|
}
|
|
848
845
|
visitarDeclaracaoDefinicaoFuncao(declaracao) {
|
|
849
|
-
var _a;
|
|
850
846
|
if (declaracao.funcao.parametros.length >= 255) {
|
|
851
847
|
this.erro(declaracao.simbolo, 'Função não pode ter mais de 255 parâmetros.');
|
|
852
848
|
}
|
|
@@ -887,7 +883,7 @@ class AnalisadorSemanticoPitugues extends analisador_semantico_base_1.Analisador
|
|
|
887
883
|
// Verifica tipos de retorno para funções não-vazio
|
|
888
884
|
const retornoComValor = retornos.find((retorno) => retorno.valor !== null && retorno.valor !== undefined);
|
|
889
885
|
if (retornoComValor) {
|
|
890
|
-
const tipoValor = typeof
|
|
886
|
+
const tipoValor = typeof retornoComValor.valor?.valor;
|
|
891
887
|
if (!['qualquer'].includes(tipoRetornoFuncao)) {
|
|
892
888
|
if (tipoValor === 'string' && tipoRetornoFuncao !== 'texto') {
|
|
893
889
|
this.erro(declaracao.simbolo, `Esperado retorno do tipo '${tipoRetornoFuncao}' dentro da função.`);
|
|
@@ -909,11 +905,8 @@ class AnalisadorSemanticoPitugues extends analisador_semantico_base_1.Analisador
|
|
|
909
905
|
const naoUsadas = this.gerenciadorEscopos.obterVariaveisNaoUsadas();
|
|
910
906
|
for (let variavel of naoUsadas) {
|
|
911
907
|
// Verifica se já existe um erro associado à variável.
|
|
912
|
-
const temErro = this.diagnosticos.some((d) =>
|
|
913
|
-
|
|
914
|
-
return d.severidade === erros_1.DiagnosticoSeveridade.ERRO &&
|
|
915
|
-
((_a = d.simbolo) === null || _a === void 0 ? void 0 : _a.lexema) === variavel.nome;
|
|
916
|
-
});
|
|
908
|
+
const temErro = this.diagnosticos.some((d) => d.severidade === erros_1.DiagnosticoSeveridade.ERRO &&
|
|
909
|
+
d.simbolo?.lexema === variavel.nome);
|
|
917
910
|
// Se a variável já tem um erro associado, não emitir aviso de não usada.
|
|
918
911
|
if (temErro) {
|
|
919
912
|
continue;
|