@designliquido/delegua 0.32.2 → 0.33.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.
Files changed (112) hide show
  1. package/bin/package.json +2 -2
  2. package/fontes/analisador-semantico/analisador-semantico-base.d.ts +65 -0
  3. package/fontes/analisador-semantico/analisador-semantico-base.js +168 -0
  4. package/fontes/analisador-semantico/analisador-semantico-base.js.map +1 -0
  5. package/fontes/analisador-semantico/analisador-semantico.d.ts +5 -45
  6. package/fontes/analisador-semantico/analisador-semantico.js +22 -133
  7. package/fontes/analisador-semantico/analisador-semantico.js.map +1 -1
  8. package/fontes/analisador-semantico/dialetos/analisador-semantico-birl.d.ts +6 -53
  9. package/fontes/analisador-semantico/dialetos/analisador-semantico-birl.js +3 -140
  10. package/fontes/analisador-semantico/dialetos/analisador-semantico-birl.js.map +1 -1
  11. package/fontes/analisador-semantico/dialetos/analisador-semantico-mapler.d.ts +6 -55
  12. package/fontes/analisador-semantico/dialetos/analisador-semantico-mapler.js +10 -148
  13. package/fontes/analisador-semantico/dialetos/analisador-semantico-mapler.js.map +1 -1
  14. package/fontes/analisador-semantico/dialetos/analisador-semantico-visualg.d.ts +11 -55
  15. package/fontes/analisador-semantico/dialetos/analisador-semantico-visualg.js +22 -144
  16. package/fontes/analisador-semantico/dialetos/analisador-semantico-visualg.js.map +1 -1
  17. package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +2 -1
  18. package/fontes/avaliador-sintatico/avaliador-sintatico.js +27 -5
  19. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  20. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js +1 -1
  21. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-birl.js.map +1 -1
  22. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-portugol-studio.js.map +1 -1
  23. package/fontes/avaliador-sintatico/dialetos/potigol/avaliador-sintatico-potigol.js +4 -2
  24. package/fontes/avaliador-sintatico/dialetos/potigol/avaliador-sintatico-potigol.js.map +1 -1
  25. package/fontes/avaliador-sintatico/dialetos/visualg/avaliador-sintatico-visualg.d.ts +0 -7
  26. package/fontes/avaliador-sintatico/dialetos/visualg/avaliador-sintatico-visualg.js +5 -12
  27. package/fontes/avaliador-sintatico/dialetos/visualg/avaliador-sintatico-visualg.js.map +1 -1
  28. package/fontes/bibliotecas/dialetos/egua-classico/matematica.js +12 -4
  29. package/fontes/bibliotecas/dialetos/egua-classico/matematica.js.map +1 -1
  30. package/fontes/bibliotecas/primitivas-dicionario.js.map +1 -1
  31. package/fontes/bibliotecas/primitivas-numero.js.map +1 -1
  32. package/fontes/construtos/acesso-elemento-matriz.js.map +1 -1
  33. package/fontes/construtos/atribuicao-por-indices-matriz.js.map +1 -1
  34. package/fontes/construtos/decorador.js.map +1 -1
  35. package/fontes/construtos/qual-tipo.js.map +1 -1
  36. package/fontes/declaracoes/aleatorio.d.ts +3 -3
  37. package/fontes/declaracoes/aleatorio.js.map +1 -1
  38. package/fontes/declaracoes/cabecalho-programa.d.ts +2 -2
  39. package/fontes/declaracoes/classe.js.map +1 -1
  40. package/fontes/declaracoes/funcao.js.map +1 -1
  41. package/fontes/declaracoes/index.d.ts +2 -0
  42. package/fontes/declaracoes/index.js +2 -0
  43. package/fontes/declaracoes/index.js.map +1 -1
  44. package/fontes/declaracoes/inicio-algoritmo.d.ts +2 -2
  45. package/fontes/declaracoes/inicio-algoritmo.js.map +1 -1
  46. package/fontes/declaracoes/propriedade-classe.js.map +1 -1
  47. package/fontes/declaracoes/tendo-como.d.ts +16 -0
  48. package/fontes/declaracoes/tendo-como.js +22 -0
  49. package/fontes/declaracoes/tendo-como.js.map +1 -0
  50. package/fontes/estruturas/delegua-classe.js.map +1 -1
  51. package/fontes/estruturas/delegua-funcao.js +1 -1
  52. package/fontes/estruturas/delegua-funcao.js.map +1 -1
  53. package/fontes/estruturas/objeto-delegua-classe.js.map +1 -1
  54. package/fontes/formatadores/formatador-delegua.d.ts +2 -1
  55. package/fontes/formatadores/formatador-delegua.js +10 -1
  56. package/fontes/formatadores/formatador-delegua.js.map +1 -1
  57. package/fontes/formatadores/formatador-portugol-studio.d.ts +6 -5
  58. package/fontes/formatadores/formatador-portugol-studio.js +53 -50
  59. package/fontes/formatadores/formatador-portugol-studio.js.map +1 -1
  60. package/fontes/formatadores/formatador-visualg.d.ts +5 -4
  61. package/fontes/formatadores/formatador-visualg.js +20 -14
  62. package/fontes/formatadores/formatador-visualg.js.map +1 -1
  63. package/fontes/interfaces/pilha-escopos-execucao-interface.d.ts +2 -2
  64. package/fontes/interfaces/resolvedor-interface.d.ts +1 -1
  65. package/fontes/interfaces/variavel-hipotetica-interface.d.ts +1 -1
  66. package/fontes/interfaces/visitante-comum-interface.d.ts +36 -41
  67. package/fontes/interpretador/dialetos/birl/interpretador-birl.d.ts +3 -3
  68. package/fontes/interpretador/dialetos/birl/interpretador-birl.js +4 -13
  69. package/fontes/interpretador/dialetos/birl/interpretador-birl.js.map +1 -1
  70. package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts +11 -10
  71. package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +11 -7
  72. package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
  73. package/fontes/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts +10 -9
  74. package/fontes/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js +13 -10
  75. package/fontes/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js.map +1 -1
  76. package/fontes/interpretador/dialetos/mapler/comum.js +2 -1
  77. package/fontes/interpretador/dialetos/mapler/comum.js.map +1 -1
  78. package/fontes/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts +23 -22
  79. package/fontes/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js +6 -6
  80. package/fontes/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js.map +1 -1
  81. package/fontes/interpretador/dialetos/potigol/inferenciador.d.ts +1 -1
  82. package/fontes/interpretador/dialetos/potigol/interpretador-potigol.js.map +1 -1
  83. package/fontes/interpretador/dialetos/visualg/comum.js +8 -5
  84. package/fontes/interpretador/dialetos/visualg/comum.js.map +1 -1
  85. package/fontes/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.js +1 -1
  86. package/fontes/interpretador/dialetos/visualg/interpretador-visualg-com-depuracao.js.map +1 -1
  87. package/fontes/interpretador/dialetos/visualg/interpretador-visualg.js.map +1 -1
  88. package/fontes/interpretador/inferenciador.d.ts +1 -1
  89. package/fontes/interpretador/interpretador-base.d.ts +8 -7
  90. package/fontes/interpretador/interpretador-base.js +53 -38
  91. package/fontes/interpretador/interpretador-base.js.map +1 -1
  92. package/fontes/interpretador/pilha-escopos-execucao.d.ts +2 -2
  93. package/fontes/interpretador/pilha-escopos-execucao.js +52 -18
  94. package/fontes/interpretador/pilha-escopos-execucao.js.map +1 -1
  95. package/fontes/lexador/palavras-reservadas.d.ts +2 -0
  96. package/fontes/lexador/palavras-reservadas.js +2 -0
  97. package/fontes/lexador/palavras-reservadas.js.map +1 -1
  98. package/fontes/tipos-de-dados/delegua.d.ts +4 -0
  99. package/fontes/tipos-de-dados/delegua.js +5 -1
  100. package/fontes/tipos-de-dados/delegua.js.map +1 -1
  101. package/fontes/tipos-de-dados/listas-delegua.js +1 -1
  102. package/fontes/tipos-de-dados/listas-primitivos.js +1 -1
  103. package/fontes/tipos-de-simbolos/delegua.d.ts +2 -0
  104. package/fontes/tipos-de-simbolos/delegua.js +2 -0
  105. package/fontes/tipos-de-simbolos/delegua.js.map +1 -1
  106. package/fontes/tradutores/python/python3-lexer.js +1 -1
  107. package/fontes/tradutores/python/python3-lexer.js.map +1 -1
  108. package/fontes/tradutores/tradutor-assembly-x64.js +13 -13
  109. package/fontes/tradutores/tradutor-python.js +5 -5
  110. package/fontes/tradutores/tradutor-python.js.map +1 -1
  111. package/fontes/tradutores/tradutor-reverso-visualg.js +2 -2
  112. package/package.json +2 -2
@@ -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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"}
@@ -1,17 +1,16 @@
1
- import { Atribuir, ExpressaoRegular, FimPara, FormatacaoEscrita, Literal, Super, TipoDe, Tupla } from '../../construtos';
2
- import { Aleatorio, Bloco, CabecalhoPrograma, Classe, Const, ConstMultiplo, Continua, Declaracao, Enquanto, Escolha, Escreva, EscrevaMesmaLinha, Expressao, Fazer, FuncaoDeclaracao, Importar, Leia, LeiaMultiplo, Para, ParaCada, Retorna, Se, Sustar, Tente, Var, VarMultiplo } from '../../declaracoes';
3
- import { InicioAlgoritmo } from '../../declaracoes/inicio-algoritmo';
4
- import { AnalisadorSemanticoInterface } from '../../interfaces/analisador-semantico-interface';
1
+ import { Atribuir } from '../../construtos';
2
+ import { Declaracao, Expressao, Leia, Retorna, Var } from '../../declaracoes';
5
3
  import { DiagnosticoAnalisadorSemantico } from '../../interfaces/erros';
6
4
  import { RetornoAnalisadorSemantico } from '../../interfaces/retornos/retorno-analisador-semantico';
7
- import { ContinuarQuebra, RetornoQuebra, SustarQuebra } from '../../quebras';
5
+ import { RetornoQuebra } from '../../quebras';
6
+ import { AnalisadorSemanticoBase } from '../analisador-semantico-base';
8
7
  import { PilhaVariaveis } from '../pilha-variaveis';
9
8
  interface VariavelHipoteticaBirlInterface {
10
9
  tipo: 'texto' | 'número' | 'longo' | 'vetor' | 'dicionário' | 'nulo' | 'lógico' | 'função' | 'símbolo' | 'objeto' | 'módulo';
11
10
  subtipo?: 'texto' | 'número' | 'longo' | 'lógico';
12
11
  imutavel: boolean;
13
12
  }
14
- export declare class AnalisadorSemanticoBirl implements AnalisadorSemanticoInterface {
13
+ export declare class AnalisadorSemanticoBirl extends AnalisadorSemanticoBase {
15
14
  pilhaVariaveis: PilhaVariaveis;
16
15
  variaveis: {
17
16
  [nomeVariavel: string]: VariavelHipoteticaBirlInterface;
@@ -19,57 +18,11 @@ export declare class AnalisadorSemanticoBirl implements AnalisadorSemanticoInter
19
18
  atual: number;
20
19
  diagnosticos: DiagnosticoAnalisadorSemantico[];
21
20
  constructor();
22
- visitarDeclaracaoInicioAlgoritmo(declaracao: InicioAlgoritmo): Promise<any>;
23
- visitarDeclaracaoCabecalhoPrograma(declaracao: CabecalhoPrograma): Promise<any>;
24
- visitarExpressaoTupla(expressao: Tupla): Promise<any>;
25
- visitarExpressaoAcessoElementoMatriz(expressao: any): Promise<void>;
26
- visitarExpressaoAtribuicaoPorIndicesMatriz(expressao: any): Promise<any>;
27
- visitarExpressaoExpressaoRegular(expressao: ExpressaoRegular): Promise<any>;
28
- visitarExpressaoTipoDe(expressao: TipoDe): Promise<any>;
29
- visitarDeclaracaoClasse(declaracao: Classe): Promise<void>;
30
- visitarDeclaracaoConst(declaracao: Const): Promise<any>;
31
- visitarDeclaracaoConstMultiplo(declaracao: ConstMultiplo): Promise<any>;
32
- visitarDeclaracaoAleatorio(declaracao: Aleatorio): Promise<any>;
33
21
  visitarExpressaoDeAtribuicao(expressao: Atribuir): Promise<void>;
34
- visitarDeclaracaoDeExpressao(declaracao: Expressao): Promise<any>;
35
- visitarDeclaracaoDefinicaoFuncao(declaracao: FuncaoDeclaracao): Promise<void>;
36
- visitarDeclaracaoEnquanto(declaracao: Enquanto): Promise<void>;
37
- visitarDeclaracaoEscolha(declaracao: Escolha): Promise<void>;
38
- visitarDeclaracaoEscreva(declaracao: Escreva): Promise<void>;
39
- visitarDeclaracaoFazer(declaracao: Fazer): Promise<void>;
40
- visitarDeclaracaoImportar(declaracao: Importar): Promise<void>;
41
- visitarDeclaracaoPara(declaracao: Para): Promise<any>;
42
- visitarDeclaracaoParaCada(declaracao: ParaCada): Promise<any>;
43
- visitarDeclaracaoSe(declaracao: Se): Promise<void>;
44
- visitarDeclaracaoTente(declaracao: Tente): Promise<void>;
22
+ visitarDeclaracaoDeExpressao(declaracao: Expressao): any;
45
23
  visitarDeclaracaoVar(declaracao: Var): Promise<any>;
46
- visitarDeclaracaoVarMultiplo(declaracao: VarMultiplo): Promise<any>;
47
- visitarExpressaoAcessoIndiceVariavel(expressao: any): Promise<void>;
48
- visitarExpressaoAcessoMetodo(expressao: any): Promise<void>;
49
- visitarExpressaoAgrupamento(expressao: any): Promise<any>;
50
- visitarExpressaoAtribuicaoPorIndice(expressao: any): Promise<any>;
51
- visitarExpressaoBinaria(expressao: any): Promise<void>;
52
- visitarExpressaoBloco(declaracao: Bloco): Promise<any>;
53
- visitarExpressaoContinua(declaracao?: Continua): ContinuarQuebra;
54
- visitarExpressaoDeChamada(expressao: any): Promise<void>;
55
- visitarExpressaoDefinirValor(expressao: any): Promise<void>;
56
- visitarExpressaoDeleguaFuncao(expressao: any): Promise<void>;
57
- visitarExpressaoDeVariavel(expressao: any): Promise<void>;
58
- visitarExpressaoDicionario(expressao: any): Promise<void>;
59
- visitarDeclaracaoEscrevaMesmaLinha(declaracao: EscrevaMesmaLinha): Promise<void>;
60
- visitarExpressaoFalhar(expressao: any): Promise<any>;
61
- visitarExpressaoFimPara(declaracao: FimPara): Promise<void>;
62
- visitarExpressaoFormatacaoEscrita(declaracao: FormatacaoEscrita): Promise<void>;
63
- visitarExpressaoIsto(expressao: any): Promise<void>;
64
24
  visitarExpressaoLeia(expressao: Leia): Promise<void>;
65
- visitarExpressaoLeiaMultiplo(expressao: LeiaMultiplo): Promise<any>;
66
- visitarExpressaoLiteral(expressao: Literal): Promise<any>;
67
- visitarExpressaoLogica(expressao: any): Promise<void>;
68
25
  visitarExpressaoRetornar(declaracao: Retorna): Promise<RetornoQuebra>;
69
- visitarExpressaoSuper(expressao: Super): Promise<void>;
70
- visitarExpressaoSustar(declaracao?: Sustar): SustarQuebra;
71
- visitarExpressaoUnaria(expressao: any): Promise<void>;
72
- visitarExpressaoVetor(expressao: any): Promise<void>;
73
26
  analisar(declaracoes: Declaracao[]): RetornoAnalisadorSemantico;
74
27
  }
75
28
  export {};
@@ -2,47 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AnalisadorSemanticoBirl = void 0;
4
4
  const erros_1 = require("../../interfaces/erros");
5
+ const analisador_semantico_base_1 = require("../analisador-semantico-base");
5
6
  const pilha_variaveis_1 = require("../pilha-variaveis");
6
- class AnalisadorSemanticoBirl {
7
+ class AnalisadorSemanticoBirl extends analisador_semantico_base_1.AnalisadorSemanticoBase {
7
8
  constructor() {
9
+ super();
8
10
  this.pilhaVariaveis = new pilha_variaveis_1.PilhaVariaveis();
9
11
  this.variaveis = {};
10
12
  this.atual = 0;
11
13
  this.diagnosticos = [];
12
14
  }
13
- visitarDeclaracaoInicioAlgoritmo(declaracao) {
14
- return Promise.resolve();
15
- }
16
- visitarDeclaracaoCabecalhoPrograma(declaracao) {
17
- return Promise.resolve();
18
- }
19
- visitarExpressaoTupla(expressao) {
20
- return Promise.resolve();
21
- }
22
- visitarExpressaoAcessoElementoMatriz(expressao) {
23
- return Promise.resolve();
24
- }
25
- visitarExpressaoAtribuicaoPorIndicesMatriz(expressao) {
26
- return Promise.resolve();
27
- }
28
- visitarExpressaoExpressaoRegular(expressao) {
29
- return Promise.resolve();
30
- }
31
- visitarExpressaoTipoDe(expressao) {
32
- return Promise.resolve();
33
- }
34
- visitarDeclaracaoClasse(declaracao) {
35
- return Promise.resolve();
36
- }
37
- visitarDeclaracaoConst(declaracao) {
38
- return Promise.resolve();
39
- }
40
- visitarDeclaracaoConstMultiplo(declaracao) {
41
- return Promise.resolve();
42
- }
43
- visitarDeclaracaoAleatorio(declaracao) {
44
- return Promise.resolve();
45
- }
46
15
  visitarExpressaoDeAtribuicao(expressao) {
47
16
  if (!this.variaveis.hasOwnProperty(expressao.simbolo.lexema)) {
48
17
  this.diagnosticos.push({
@@ -68,36 +37,6 @@ class AnalisadorSemanticoBirl {
68
37
  visitarDeclaracaoDeExpressao(declaracao) {
69
38
  return declaracao.expressao.aceitar(this);
70
39
  }
71
- visitarDeclaracaoDefinicaoFuncao(declaracao) {
72
- return Promise.resolve();
73
- }
74
- visitarDeclaracaoEnquanto(declaracao) {
75
- return Promise.resolve();
76
- }
77
- visitarDeclaracaoEscolha(declaracao) {
78
- return Promise.resolve();
79
- }
80
- visitarDeclaracaoEscreva(declaracao) {
81
- return Promise.resolve();
82
- }
83
- visitarDeclaracaoFazer(declaracao) {
84
- return Promise.resolve();
85
- }
86
- visitarDeclaracaoImportar(declaracao) {
87
- return Promise.resolve();
88
- }
89
- visitarDeclaracaoPara(declaracao) {
90
- return Promise.resolve();
91
- }
92
- visitarDeclaracaoParaCada(declaracao) {
93
- return Promise.resolve();
94
- }
95
- visitarDeclaracaoSe(declaracao) {
96
- return Promise.resolve();
97
- }
98
- visitarDeclaracaoTente(declaracao) {
99
- return Promise.resolve();
100
- }
101
40
  visitarDeclaracaoVar(declaracao) {
102
41
  this.variaveis[declaracao.simbolo.lexema] = {
103
42
  imutavel: false,
@@ -105,60 +44,6 @@ class AnalisadorSemanticoBirl {
105
44
  };
106
45
  return Promise.resolve();
107
46
  }
108
- visitarDeclaracaoVarMultiplo(declaracao) {
109
- return Promise.resolve();
110
- }
111
- visitarExpressaoAcessoIndiceVariavel(expressao) {
112
- return Promise.resolve();
113
- }
114
- visitarExpressaoAcessoMetodo(expressao) {
115
- return Promise.resolve();
116
- }
117
- visitarExpressaoAgrupamento(expressao) {
118
- return Promise.resolve();
119
- }
120
- visitarExpressaoAtribuicaoPorIndice(expressao) {
121
- return Promise.resolve();
122
- }
123
- visitarExpressaoBinaria(expressao) {
124
- return Promise.resolve();
125
- }
126
- visitarExpressaoBloco(declaracao) {
127
- return Promise.resolve();
128
- }
129
- visitarExpressaoContinua(declaracao) {
130
- return Promise.resolve();
131
- }
132
- visitarExpressaoDeChamada(expressao) {
133
- return Promise.resolve();
134
- }
135
- visitarExpressaoDefinirValor(expressao) {
136
- return Promise.resolve();
137
- }
138
- visitarExpressaoDeleguaFuncao(expressao) {
139
- return Promise.resolve();
140
- }
141
- visitarExpressaoDeVariavel(expressao) {
142
- return Promise.resolve();
143
- }
144
- visitarExpressaoDicionario(expressao) {
145
- return Promise.resolve();
146
- }
147
- visitarDeclaracaoEscrevaMesmaLinha(declaracao) {
148
- return Promise.resolve();
149
- }
150
- visitarExpressaoFalhar(expressao) {
151
- return Promise.resolve();
152
- }
153
- visitarExpressaoFimPara(declaracao) {
154
- return Promise.resolve();
155
- }
156
- visitarExpressaoFormatacaoEscrita(declaracao) {
157
- return Promise.resolve();
158
- }
159
- visitarExpressaoIsto(expressao) {
160
- return Promise.resolve();
161
- }
162
47
  visitarExpressaoLeia(expressao) {
163
48
  if (!this.variaveis.hasOwnProperty(expressao.argumentos[0].simbolo.lexema)) {
164
49
  this.diagnosticos.push({
@@ -180,34 +65,12 @@ class AnalisadorSemanticoBirl {
180
65
  linha: expressao.linha,
181
66
  severidade: erros_1.DiagnosticoSeveridade.ERRO,
182
67
  });
183
- return Promise.resolve();
184
68
  }
185
69
  return Promise.resolve();
186
70
  }
187
- visitarExpressaoLeiaMultiplo(expressao) {
188
- return Promise.resolve();
189
- }
190
- visitarExpressaoLiteral(expressao) {
191
- return Promise.resolve();
192
- }
193
- visitarExpressaoLogica(expressao) {
194
- return Promise.resolve();
195
- }
196
71
  visitarExpressaoRetornar(declaracao) {
197
72
  return Promise.resolve(null);
198
73
  }
199
- visitarExpressaoSuper(expressao) {
200
- return Promise.resolve();
201
- }
202
- visitarExpressaoSustar(declaracao) {
203
- return Promise.resolve();
204
- }
205
- visitarExpressaoUnaria(expressao) {
206
- return Promise.resolve();
207
- }
208
- visitarExpressaoVetor(expressao) {
209
- return Promise.resolve();
210
- }
211
74
  analisar(declaracoes) {
212
75
  this.variaveis = {};
213
76
  this.atual = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"analisador-semantico-birl.js","sourceRoot":"","sources":["../../../../fontes/analisador-semantico/dialetos/analisador-semantico-birl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analisador-semantico-birl.js","sourceRoot":"","sources":["../../../../fontes/analisador-semantico/dialetos/analisador-semantico-birl.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,14 @@
1
- import { Atribuir, Chamada, ExpressaoRegular, FimPara, FormatacaoEscrita, Literal, Super, TipoDe, Tupla } from '../../construtos';
2
- import { Aleatorio, Bloco, CabecalhoPrograma, Classe, Const, ConstMultiplo, Continua, Declaracao, Enquanto, Escolha, Escreva, EscrevaMesmaLinha, Expressao, Falhar, Fazer, FuncaoDeclaracao, Importar, Leia, LeiaMultiplo, Para, ParaCada, Retorna, Se, Sustar, Tente, Var, VarMultiplo } from '../../declaracoes';
3
- import { InicioAlgoritmo } from '../../declaracoes/inicio-algoritmo';
1
+ import { Atribuir } from '../../construtos';
2
+ import { Declaracao, Expressao, Retorna, Var } from '../../declaracoes';
4
3
  import { SimboloInterface } from '../../interfaces';
5
- import { AnalisadorSemanticoInterface } from '../../interfaces/analisador-semantico-interface';
6
4
  import { DiagnosticoAnalisadorSemantico } from '../../interfaces/erros';
7
5
  import { FuncaoHipoteticaInterface } from '../../interfaces/funcao-hipotetica-interface';
8
6
  import { RetornoAnalisadorSemantico } from '../../interfaces/retornos/retorno-analisador-semantico';
9
7
  import { VariavelHipoteticaInterface } from '../../interfaces/variavel-hipotetica-interface';
10
- import { ContinuarQuebra, RetornoQuebra, SustarQuebra } from '../../quebras';
8
+ import { RetornoQuebra } from '../../quebras';
9
+ import { AnalisadorSemanticoBase } from '../analisador-semantico-base';
11
10
  import { PilhaVariaveis } from './../pilha-variaveis';
12
- export declare class AnalisadorSemanticoMapler implements AnalisadorSemanticoInterface {
11
+ export declare class AnalisadorSemanticoMapler extends AnalisadorSemanticoBase {
13
12
  pilhaVariaveis: PilhaVariaveis;
14
13
  variaveis: {
15
14
  [nomeVariavel: string]: VariavelHipoteticaInterface;
@@ -20,59 +19,11 @@ export declare class AnalisadorSemanticoMapler implements AnalisadorSemanticoInt
20
19
  atual: number;
21
20
  diagnosticos: DiagnosticoAnalisadorSemantico[];
22
21
  constructor();
23
- visitarDeclaracaoInicioAlgoritmo(declaracao: InicioAlgoritmo): Promise<any>;
24
- visitarDeclaracaoCabecalhoPrograma(declaracao: CabecalhoPrograma): Promise<any>;
25
- visitarExpressaoTupla(expressao: Tupla): Promise<any>;
26
- visitarExpressaoAcessoElementoMatriz(expressao: any): Promise<void>;
27
- visitarExpressaoAtribuicaoPorIndicesMatriz(expressao: any): Promise<any>;
28
- visitarExpressaoExpressaoRegular(expressao: ExpressaoRegular): Promise<any>;
29
- visitarDeclaracaoAleatorio(declaracao: Aleatorio): Promise<any>;
30
22
  erro(simbolo: SimboloInterface, mensagem: string): void;
31
23
  aviso(simbolo: SimboloInterface, mensagem: string): void;
32
- visitarExpressaoTipoDe(expressao: TipoDe): Promise<any>;
33
- visitarExpressaoFalhar(expressao: Falhar): Promise<any>;
34
- visitarExpressaoLiteral(expressao: Literal): Promise<any>;
35
- visitarExpressaoAgrupamento(expressao: any): Promise<any>;
36
- visitarExpressaoUnaria(expressao: any): Promise<void>;
37
- visitarExpressaoBinaria(expressao: any): Promise<void>;
38
- visitarExpressaoDeChamada(expressao: Chamada): Promise<void>;
39
24
  visitarExpressaoDeAtribuicao(expressao: Atribuir): Promise<void>;
40
- visitarExpressaoDeVariavel(expressao: any): Promise<void>;
41
- visitarDeclaracaoDeExpressao(declaracao: Expressao): Promise<any>;
42
- visitarExpressaoLeia(expressao: Leia): Promise<void>;
43
- visitarExpressaoLeiaMultiplo(expressao: LeiaMultiplo): Promise<void>;
44
- visitarExpressaoLogica(expressao: any): Promise<void>;
45
- visitarDeclaracaoPara(declaracao: Para): Promise<any>;
46
- visitarDeclaracaoParaCada(declaracao: ParaCada): Promise<any>;
47
- visitarDeclaracaoSe(declaracao: Se): Promise<void>;
48
- visitarExpressaoFimPara(declaracao: FimPara): Promise<void>;
49
- visitarDeclaracaoFazer(declaracao: Fazer): Promise<void>;
50
- visitarExpressaoFormatacaoEscrita(declaracao: FormatacaoEscrita): Promise<void>;
51
- visitarDeclaracaoEscolha(declaracao: Escolha): Promise<void>;
52
- visitarDeclaracaoTente(declaracao: Tente): Promise<void>;
53
- visitarDeclaracaoEnquanto(declaracao: Enquanto): Promise<void>;
54
- visitarDeclaracaoImportar(declaracao: Importar): Promise<void>;
55
- visitarDeclaracaoEscreva(declaracao: Escreva): Promise<void>;
56
- visitarDeclaracaoEscrevaMesmaLinha(declaracao: EscrevaMesmaLinha): Promise<void>;
57
- visitarExpressaoBloco(declaracao: Bloco): Promise<any>;
58
- visitarDeclaracaoConst(declaracao: Const): Promise<any>;
59
- virificarTipoDeclaracaoConst(declaracao: Const): Promise<any>;
60
- visitarDeclaracaoConstMultiplo(declaracao: ConstMultiplo): Promise<any>;
25
+ visitarDeclaracaoDeExpressao(declaracao: Expressao): any;
61
26
  visitarDeclaracaoVar(declaracao: Var): Promise<any>;
62
- visitarDeclaracaoVarMultiplo(declaracao: VarMultiplo): Promise<any>;
63
- visitarExpressaoContinua(declaracao?: Continua): ContinuarQuebra;
64
- visitarExpressaoSustar(declaracao?: Sustar): SustarQuebra;
65
27
  visitarExpressaoRetornar(declaracao: Retorna): Promise<RetornoQuebra>;
66
- visitarExpressaoDeleguaFuncao(expressao: any): Promise<void>;
67
- visitarExpressaoAtribuicaoPorIndice(expressao: any): Promise<any>;
68
- visitarExpressaoAcessoIndiceVariavel(expressao: any): Promise<void>;
69
- visitarExpressaoDefinirValor(expressao: any): Promise<void>;
70
- visitarDeclaracaoDefinicaoFuncao(declaracao: FuncaoDeclaracao): Promise<void>;
71
- visitarDeclaracaoClasse(declaracao: Classe): Promise<void>;
72
- visitarExpressaoAcessoMetodo(expressao: any): Promise<void>;
73
- visitarExpressaoIsto(expressao: any): Promise<void>;
74
- visitarExpressaoDicionario(expressao: any): Promise<void>;
75
- visitarExpressaoVetor(expressao: any): Promise<void>;
76
- visitarExpressaoSuper(expressao: Super): Promise<void>;
77
28
  analisar(declaracoes: Declaracao[]): RetornoAnalisadorSemantico;
78
29
  }
@@ -3,43 +3,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AnalisadorSemanticoMapler = void 0;
4
4
  const construtos_1 = require("../../construtos");
5
5
  const erros_1 = require("../../interfaces/erros");
6
+ const analisador_semantico_base_1 = require("../analisador-semantico-base");
6
7
  const pilha_variaveis_1 = require("./../pilha-variaveis");
7
- class AnalisadorSemanticoMapler {
8
+ class AnalisadorSemanticoMapler extends analisador_semantico_base_1.AnalisadorSemanticoBase {
8
9
  constructor() {
10
+ super();
9
11
  this.pilhaVariaveis = new pilha_variaveis_1.PilhaVariaveis();
10
12
  this.variaveis = {};
11
13
  this.funcoes = {};
12
14
  this.atual = 0;
13
15
  this.diagnosticos = [];
14
16
  }
15
- visitarDeclaracaoInicioAlgoritmo(declaracao) {
16
- return Promise.resolve();
17
- }
18
- visitarDeclaracaoCabecalhoPrograma(declaracao) {
19
- return Promise.resolve();
20
- }
21
- visitarExpressaoTupla(expressao) {
22
- return Promise.resolve();
23
- }
24
- visitarExpressaoAcessoElementoMatriz(expressao) {
25
- return Promise.resolve();
26
- }
27
- visitarExpressaoAtribuicaoPorIndicesMatriz(expressao) {
28
- return Promise.resolve();
29
- }
30
- visitarExpressaoExpressaoRegular(expressao) {
31
- return Promise.resolve();
32
- }
33
- visitarDeclaracaoAleatorio(declaracao) {
34
- return Promise.resolve();
35
- }
36
17
  erro(simbolo, mensagem) {
37
18
  this.diagnosticos.push({
38
19
  simbolo: simbolo,
39
20
  mensagem: mensagem,
40
21
  hashArquivo: simbolo.hashArquivo,
41
22
  linha: simbolo.linha,
42
- severidade: erros_1.DiagnosticoSeveridade.ERRO
23
+ severidade: erros_1.DiagnosticoSeveridade.ERRO,
43
24
  });
44
25
  }
45
26
  aviso(simbolo, mensagem) {
@@ -48,30 +29,9 @@ class AnalisadorSemanticoMapler {
48
29
  mensagem: mensagem,
49
30
  hashArquivo: simbolo.hashArquivo,
50
31
  linha: simbolo.linha,
51
- severidade: erros_1.DiagnosticoSeveridade.AVISO
32
+ severidade: erros_1.DiagnosticoSeveridade.AVISO,
52
33
  });
53
34
  }
54
- visitarExpressaoTipoDe(expressao) {
55
- return Promise.resolve();
56
- }
57
- visitarExpressaoFalhar(expressao) {
58
- return Promise.resolve();
59
- }
60
- visitarExpressaoLiteral(expressao) {
61
- return Promise.resolve();
62
- }
63
- visitarExpressaoAgrupamento(expressao) {
64
- return Promise.resolve();
65
- }
66
- visitarExpressaoUnaria(expressao) {
67
- return Promise.resolve();
68
- }
69
- visitarExpressaoBinaria(expressao) {
70
- return Promise.resolve();
71
- }
72
- visitarExpressaoDeChamada(expressao) {
73
- return Promise.resolve();
74
- }
75
35
  visitarExpressaoDeAtribuicao(expressao) {
76
36
  let valor = this.variaveis[expressao.simbolo.lexema];
77
37
  if (!valor) {
@@ -109,122 +69,24 @@ class AnalisadorSemanticoMapler {
109
69
  this.variaveis[expressao.simbolo.lexema].valor = expressao.valor;
110
70
  }
111
71
  }
112
- visitarExpressaoDeVariavel(expressao) {
113
- return Promise.resolve();
114
- }
115
72
  visitarDeclaracaoDeExpressao(declaracao) {
116
73
  return declaracao.expressao.aceitar(this);
117
74
  }
118
- visitarExpressaoLeia(expressao) {
119
- return Promise.resolve();
120
- }
121
- visitarExpressaoLeiaMultiplo(expressao) {
122
- return Promise.resolve();
123
- }
124
- visitarExpressaoLogica(expressao) {
125
- return Promise.resolve();
126
- }
127
- visitarDeclaracaoPara(declaracao) {
128
- return Promise.resolve();
129
- }
130
- visitarDeclaracaoParaCada(declaracao) {
131
- return Promise.resolve();
132
- }
133
- visitarDeclaracaoSe(declaracao) {
134
- return Promise.resolve();
135
- }
136
- visitarExpressaoFimPara(declaracao) {
137
- return Promise.resolve();
138
- }
139
- visitarDeclaracaoFazer(declaracao) {
140
- return Promise.resolve();
141
- }
142
- visitarExpressaoFormatacaoEscrita(declaracao) {
143
- return Promise.resolve();
144
- }
145
- visitarDeclaracaoEscolha(declaracao) {
146
- return Promise.resolve();
147
- }
148
- visitarDeclaracaoTente(declaracao) {
149
- return Promise.resolve();
150
- }
151
- visitarDeclaracaoEnquanto(declaracao) {
152
- return Promise.resolve();
153
- }
154
- visitarDeclaracaoImportar(declaracao) {
155
- return Promise.resolve();
156
- }
157
- visitarDeclaracaoEscreva(declaracao) {
158
- return Promise.resolve();
159
- }
160
- visitarDeclaracaoEscrevaMesmaLinha(declaracao) {
161
- return Promise.resolve();
162
- }
163
- visitarExpressaoBloco(declaracao) {
164
- return Promise.resolve();
165
- }
166
- visitarDeclaracaoConst(declaracao) {
167
- return Promise.resolve();
168
- }
169
- virificarTipoDeclaracaoConst(declaracao) {
170
- return Promise.resolve();
171
- }
172
- visitarDeclaracaoConstMultiplo(declaracao) {
173
- return Promise.resolve();
174
- }
175
75
  visitarDeclaracaoVar(declaracao) {
176
76
  this.variaveis[declaracao.simbolo.lexema] = {
177
77
  imutavel: false,
178
78
  tipo: declaracao.tipo,
179
- valor: declaracao.inicializador !== null ? declaracao.inicializador.valor !== undefined ? declaracao.inicializador.valor : declaracao.inicializador : undefined
79
+ valor: declaracao.inicializador !== null
80
+ ? declaracao.inicializador.valor !== undefined
81
+ ? declaracao.inicializador.valor
82
+ : declaracao.inicializador
83
+ : undefined,
180
84
  };
181
85
  return Promise.resolve();
182
86
  }
183
- visitarDeclaracaoVarMultiplo(declaracao) {
184
- return Promise.resolve();
185
- }
186
- visitarExpressaoContinua(declaracao) {
187
- return Promise.resolve();
188
- }
189
- visitarExpressaoSustar(declaracao) {
190
- return Promise.resolve();
191
- }
192
87
  visitarExpressaoRetornar(declaracao) {
193
88
  return Promise.resolve(null);
194
89
  }
195
- visitarExpressaoDeleguaFuncao(expressao) {
196
- return Promise.resolve();
197
- }
198
- visitarExpressaoAtribuicaoPorIndice(expressao) {
199
- return Promise.resolve();
200
- }
201
- visitarExpressaoAcessoIndiceVariavel(expressao) {
202
- return Promise.resolve();
203
- }
204
- visitarExpressaoDefinirValor(expressao) {
205
- return Promise.resolve();
206
- }
207
- visitarDeclaracaoDefinicaoFuncao(declaracao) {
208
- return Promise.resolve();
209
- }
210
- visitarDeclaracaoClasse(declaracao) {
211
- return Promise.resolve();
212
- }
213
- visitarExpressaoAcessoMetodo(expressao) {
214
- return Promise.resolve();
215
- }
216
- visitarExpressaoIsto(expressao) {
217
- return Promise.resolve();
218
- }
219
- visitarExpressaoDicionario(expressao) {
220
- return Promise.resolve();
221
- }
222
- visitarExpressaoVetor(expressao) {
223
- return Promise.resolve();
224
- }
225
- visitarExpressaoSuper(expressao) {
226
- return Promise.resolve();
227
- }
228
90
  analisar(declaracoes) {
229
91
  this.variaveis = {};
230
92
  this.atual = 0;