@designliquido/delegua 0.2.10 → 0.3.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 (110) hide show
  1. package/bin/package.json +1 -1
  2. package/fontes/ambiente.d.ts +1 -14
  3. package/fontes/ambiente.js +1 -53
  4. package/fontes/ambiente.js.map +1 -1
  5. package/fontes/avaliador-sintatico/avaliador-sintatico.js +11 -11
  6. package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  7. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js +7 -7
  8. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
  9. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js +8 -8
  10. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-eguap.js.map +1 -1
  11. package/fontes/bibliotecas/biblioteca-global.d.ts +2 -2
  12. package/fontes/bibliotecas/biblioteca-global.js +15 -15
  13. package/fontes/bibliotecas/biblioteca-global.js.map +1 -1
  14. package/fontes/construtos/atribuir.d.ts +2 -2
  15. package/fontes/construtos/atribuir.js.map +1 -1
  16. package/fontes/construtos/chamada.d.ts +2 -1
  17. package/fontes/construtos/chamada.js.map +1 -1
  18. package/fontes/construtos/literal.d.ts +2 -1
  19. package/fontes/construtos/literal.js.map +1 -1
  20. package/fontes/construtos/variavel.d.ts +2 -2
  21. package/fontes/construtos/variavel.js.map +1 -1
  22. package/fontes/declaracoes/bloco.d.ts +2 -1
  23. package/fontes/declaracoes/bloco.js.map +1 -1
  24. package/fontes/declaracoes/escreva.d.ts +2 -1
  25. package/fontes/declaracoes/escreva.js.map +1 -1
  26. package/fontes/declaracoes/expressao.d.ts +2 -1
  27. package/fontes/declaracoes/expressao.js.map +1 -1
  28. package/fontes/declaracoes/funcao.d.ts +2 -2
  29. package/fontes/declaracoes/funcao.js.map +1 -1
  30. package/fontes/declaracoes/retorna.d.ts +2 -1
  31. package/fontes/declaracoes/retorna.js.map +1 -1
  32. package/fontes/declaracoes/se.d.ts +2 -1
  33. package/fontes/declaracoes/se.js.map +1 -1
  34. package/fontes/declaracoes/var.d.ts +2 -2
  35. package/fontes/declaracoes/var.js.map +1 -1
  36. package/fontes/delegua.d.ts +3 -2
  37. package/fontes/delegua.js +20 -8
  38. package/fontes/delegua.js.map +1 -1
  39. package/fontes/estruturas/delegua-classe.d.ts +14 -0
  40. package/fontes/estruturas/{classe.js → delegua-classe.js} +4 -4
  41. package/fontes/estruturas/delegua-classe.js.map +1 -0
  42. package/fontes/estruturas/funcao-padrao.d.ts +1 -1
  43. package/fontes/estruturas/funcao-padrao.js +1 -1
  44. package/fontes/estruturas/funcao-padrao.js.map +1 -1
  45. package/fontes/estruturas/funcao.d.ts +9 -7
  46. package/fontes/estruturas/funcao.js +20 -26
  47. package/fontes/estruturas/funcao.js.map +1 -1
  48. package/fontes/estruturas/index.d.ts +2 -2
  49. package/fontes/estruturas/index.js +2 -2
  50. package/fontes/estruturas/index.js.map +1 -1
  51. package/fontes/estruturas/{instancia.d.ts → objeto-delegua-classe.d.ts} +3 -2
  52. package/fontes/estruturas/objeto-delegua-classe.js +28 -0
  53. package/fontes/estruturas/objeto-delegua-classe.js.map +1 -0
  54. package/fontes/excecoes/index.d.ts +0 -3
  55. package/fontes/excecoes/index.js +0 -3
  56. package/fontes/excecoes/index.js.map +1 -1
  57. package/fontes/interfaces/delegua-interface.d.ts +2 -2
  58. package/fontes/interfaces/escopo-execucao.d.ts +7 -0
  59. package/fontes/interfaces/escopo-execucao.js +3 -0
  60. package/fontes/interfaces/escopo-execucao.js.map +1 -0
  61. package/fontes/interfaces/index.d.ts +1 -0
  62. package/fontes/interfaces/index.js +1 -0
  63. package/fontes/interfaces/index.js.map +1 -1
  64. package/fontes/interfaces/interpretador-interface.d.ts +6 -4
  65. package/fontes/interfaces/pilha-interface.d.ts +2 -2
  66. package/fontes/interfaces/retorno-execucao-interface.d.ts +11 -0
  67. package/fontes/interfaces/retorno-execucao-interface.js +3 -0
  68. package/fontes/interfaces/retorno-execucao-interface.js.map +1 -0
  69. package/fontes/interpretador/dialetos/egua-classico.d.ts +27 -19
  70. package/fontes/interpretador/dialetos/egua-classico.js +121 -139
  71. package/fontes/interpretador/dialetos/egua-classico.js.map +1 -1
  72. package/fontes/interpretador/interpretador.d.ts +38 -18
  73. package/fontes/interpretador/interpretador.js +146 -142
  74. package/fontes/interpretador/interpretador.js.map +1 -1
  75. package/fontes/interpretador/pilha-escopos-execucao.d.ts +20 -0
  76. package/fontes/interpretador/pilha-escopos-execucao.js +74 -0
  77. package/fontes/interpretador/pilha-escopos-execucao.js.map +1 -0
  78. package/fontes/lexador/dialetos/lexador-eguap.js +1 -1
  79. package/fontes/lexador/dialetos/lexador-eguap.js.map +1 -1
  80. package/fontes/lexador/lexador.js +1 -1
  81. package/fontes/lexador/lexador.js.map +1 -1
  82. package/fontes/quebras/index.d.ts +10 -0
  83. package/fontes/quebras/index.js +51 -0
  84. package/fontes/quebras/index.js.map +1 -0
  85. package/fontes/resolvedor/index.d.ts +4 -62
  86. package/fontes/resolvedor/index.js +18 -340
  87. package/fontes/resolvedor/index.js.map +1 -1
  88. package/fontes/resolvedor/resolvedor.d.ts +64 -0
  89. package/fontes/resolvedor/resolvedor.js +345 -0
  90. package/fontes/resolvedor/resolvedor.js.map +1 -0
  91. package/package.json +1 -1
  92. package/testes/biblioteca-global.test.js +15 -29
  93. package/testes/biblioteca-global.test.js.map +1 -1
  94. package/testes/egua-classico/interpretador.test.js +21 -41
  95. package/testes/egua-classico/interpretador.test.js.map +1 -1
  96. package/testes/interpretador.test.js +21 -41
  97. package/testes/interpretador.test.js.map +1 -1
  98. package/fontes/estruturas/classe.d.ts +0 -11
  99. package/fontes/estruturas/classe.js.map +0 -1
  100. package/fontes/estruturas/instancia.js +0 -28
  101. package/fontes/estruturas/instancia.js.map +0 -1
  102. package/fontes/excecoes/excecao-continuar.d.ts +0 -2
  103. package/fontes/excecoes/excecao-continuar.js +0 -27
  104. package/fontes/excecoes/excecao-continuar.js.map +0 -1
  105. package/fontes/excecoes/excecao-retornar.d.ts +0 -4
  106. package/fontes/excecoes/excecao-retornar.js +0 -30
  107. package/fontes/excecoes/excecao-retornar.js.map +0 -1
  108. package/fontes/excecoes/excecao-sustar.d.ts +0 -2
  109. package/fontes/excecoes/excecao-sustar.js +0 -27
  110. package/fontes/excecoes/excecao-sustar.js.map +0 -1
@@ -1,343 +1,21 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Resolvedor = void 0;
4
- var pilha_escopos_1 = require("./pilha-escopos");
5
- var erro_resolvedor_1 = require("./erro-resolvedor");
6
- var TipoFuncao = {
7
- NENHUM: 'NENHUM',
8
- FUNCAO: 'FUNCAO',
9
- CONSTRUTOR: 'CONSTRUTOR',
10
- METODO: 'METODO',
11
- };
12
- var TipoClasse = {
13
- NENHUM: 'NENHUM',
14
- CLASSE: 'CLASSE',
15
- SUBCLASSE: 'SUBCLASSE',
16
- };
17
- var LoopType = {
18
- NENHUM: 'NENHUM',
19
- ENQUANTO: 'ENQUANTO',
20
- ESCOLHA: 'ESCOLHA',
21
- PARA: 'PARA',
22
- FAZER: 'FAZER',
23
- };
24
- /**
25
- * O Resolvedor (Resolver) é responsável por catalogar todos os identificadores complexos, como por exemplo: funções, classes, variáveis,
26
- * e delimitar os escopos onde esses identificadores existem.
27
- * Exemplo: uma classe A declara dois métodos chamados M e N. Todas as variáveis declaradas dentro de M não podem ser vistas por N, e vice-versa.
28
- * No entanto, todas as variáveis declaradas dentro da classe A podem ser vistas tanto por M quanto por N.
29
- */
30
- var Resolvedor = /** @class */ (function () {
31
- function Resolvedor() {
32
- this.erros = [];
33
- this.escopos = new pilha_escopos_1.PilhaEscopos();
34
- this.locais = new Map();
35
- this.funcaoAtual = TipoFuncao.NENHUM;
36
- this.classeAtual = TipoClasse.NENHUM;
37
- this.cicloAtual = TipoClasse.NENHUM;
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
38
7
  }
39
- Resolvedor.prototype.definir = function (simbolo) {
40
- if (this.escopos.eVazio())
41
- return;
42
- this.escopos.topoDaPilha()[simbolo.lexema] = true;
43
- };
44
- Resolvedor.prototype.declarar = function (simbolo) {
45
- if (this.escopos.eVazio())
46
- return;
47
- var escopo = this.escopos.topoDaPilha();
48
- if (escopo.hasOwnProperty(simbolo.lexema)) {
49
- var erro = new erro_resolvedor_1.ErroResolvedor(simbolo, 'Variável com esse nome já declarada neste escopo.');
50
- this.erros.push(erro);
51
- }
52
- escopo[simbolo.lexema] = false;
53
- };
54
- Resolvedor.prototype.inicioDoEscopo = function () {
55
- this.escopos.empilhar({});
56
- };
57
- Resolvedor.prototype.finalDoEscopo = function () {
58
- this.escopos.removerUltimo();
59
- };
60
- Resolvedor.prototype.resolverLocal = function (expressao, simbolo) {
61
- for (var i = this.escopos.pilha.length - 1; i >= 0; i--) {
62
- if (this.escopos.pilha[i].hasOwnProperty(simbolo.lexema)) {
63
- this.locais.set(expressao, this.escopos.pilha.length - 1 - i);
64
- }
65
- }
66
- };
67
- Resolvedor.prototype.visitarExpressaoBloco = function (declaracao) {
68
- this.inicioDoEscopo();
69
- this.resolver(declaracao.declaracoes);
70
- this.finalDoEscopo();
71
- return null;
72
- };
73
- Resolvedor.prototype.visitarExpressaoDeVariavel = function (expressao) {
74
- if (!this.escopos.eVazio() &&
75
- this.escopos.topoDaPilha()[expressao.simbolo.lexema] === false) {
76
- var erro = new erro_resolvedor_1.ErroResolvedor(expressao.simbolo, 'Não é possível ler a variável local em seu próprio inicializador.');
77
- this.erros.push(erro);
78
- throw erro;
79
- }
80
- this.resolverLocal(expressao, expressao.simbolo);
81
- return null;
82
- };
83
- Resolvedor.prototype.visitarExpressaoVar = function (declaracao) {
84
- this.declarar(declaracao.simbolo);
85
- if (declaracao.inicializador !== null) {
86
- this.resolver(declaracao.inicializador);
87
- }
88
- this.definir(declaracao.simbolo);
89
- return null;
90
- };
91
- Resolvedor.prototype.visitarExpressaoDeAtribuicao = function (expressao) {
92
- this.resolver(expressao.valor);
93
- this.resolverLocal(expressao, expressao.simbolo);
94
- return null;
95
- };
96
- Resolvedor.prototype.resolverFuncao = function (funcao, tipoFuncao) {
97
- var enclosingFunc = this.funcaoAtual;
98
- this.funcaoAtual = tipoFuncao;
99
- this.inicioDoEscopo();
100
- var parametros = funcao.parametros;
101
- if (parametros && parametros.length > 0) {
102
- for (var i = 0; i < parametros.length; i++) {
103
- this.declarar(parametros[i]['nome']);
104
- this.definir(parametros[i]['nome']);
105
- }
106
- }
107
- this.resolver(funcao.corpo);
108
- this.finalDoEscopo();
109
- this.funcaoAtual = enclosingFunc;
110
- };
111
- Resolvedor.prototype.visitarExpressaoFuncao = function (declaracao) {
112
- this.declarar(declaracao.simbolo);
113
- this.definir(declaracao.simbolo);
114
- this.resolverFuncao(declaracao.funcao, TipoFuncao.FUNCAO);
115
- return null;
116
- };
117
- Resolvedor.prototype.visitarExpressaoDeleguaFuncao = function (declaracao) {
118
- this.resolverFuncao(declaracao, TipoFuncao.FUNCAO);
119
- return null;
120
- };
121
- Resolvedor.prototype.visitarExpressaoTente = function (declaracao) {
122
- this.resolver(declaracao.caminhoTente);
123
- if (declaracao.caminhoPegue !== null)
124
- this.resolver(declaracao.caminhoPegue);
125
- if (declaracao.caminhoSenao !== null)
126
- this.resolver(declaracao.caminhoSenao);
127
- if (declaracao.caminhoFinalmente !== null)
128
- this.resolver(declaracao.caminhoFinalmente);
129
- };
130
- Resolvedor.prototype.visitarExpressaoClasse = function (declaracao) {
131
- var enclosingClass = this.classeAtual;
132
- this.classeAtual = TipoClasse.CLASSE;
133
- this.declarar(declaracao.simbolo);
134
- this.definir(declaracao.simbolo);
135
- if (declaracao.superClasse !== null &&
136
- declaracao.simbolo.lexema === declaracao.superClasse.simbolo.lexema) {
137
- var erro = new erro_resolvedor_1.ErroResolvedor(declaracao.simbolo, 'Uma classe não pode herdar de si mesma.');
138
- this.erros.push(erro);
139
- }
140
- if (declaracao.superClasse !== null) {
141
- this.classeAtual = TipoClasse.SUBCLASSE;
142
- this.resolver(declaracao.superClasse);
143
- }
144
- if (declaracao.superClasse !== null) {
145
- this.inicioDoEscopo();
146
- this.escopos.topoDaPilha()['super'] = true;
147
- }
148
- this.inicioDoEscopo();
149
- this.escopos.topoDaPilha()['isto'] = true;
150
- var metodos = declaracao.metodos;
151
- for (var i = 0; i < metodos.length; i++) {
152
- var declaracao_1 = TipoFuncao.METODO;
153
- if (metodos[i].simbolo.lexema === 'isto') {
154
- declaracao_1 = TipoFuncao.CONSTRUTOR;
155
- }
156
- this.resolverFuncao(metodos[i].funcao, declaracao_1);
157
- }
158
- this.finalDoEscopo();
159
- if (declaracao.superClasse !== null)
160
- this.finalDoEscopo();
161
- this.classeAtual = enclosingClass;
162
- return null;
163
- };
164
- Resolvedor.prototype.visitarExpressaoSuper = function (expressao) {
165
- if (this.classeAtual === TipoClasse.NENHUM) {
166
- var erro = new erro_resolvedor_1.ErroResolvedor(expressao.palavraChave, "Não pode usar 'super' fora de uma classe.");
167
- this.erros.push(erro);
168
- }
169
- else if (this.classeAtual !== TipoClasse.SUBCLASSE) {
170
- var erro = new erro_resolvedor_1.ErroResolvedor(expressao.palavraChave, "Não se usa 'super' numa classe sem SuperClasse.");
171
- this.erros.push(erro);
172
- }
173
- this.resolverLocal(expressao, expressao.palavraChave);
174
- return null;
175
- };
176
- Resolvedor.prototype.visitarExpressaoAcessoMetodo = function (expressao) {
177
- this.resolver(expressao.objeto);
178
- return null;
179
- };
180
- Resolvedor.prototype.visitarDeclaracaoDeExpressao = function (declaracao) {
181
- this.resolver(declaracao.expressao);
182
- return null;
183
- };
184
- Resolvedor.prototype.visitarExpressaoSe = function (declaracao) {
185
- this.resolver(declaracao.condicao);
186
- this.resolver(declaracao.caminhoEntao);
187
- for (var i = 0; i < declaracao.caminhosSeSenao.length; i++) {
188
- this.resolver(declaracao.caminhosSeSenao[i].condicao);
189
- this.resolver(declaracao.caminhosSeSenao[i].caminho);
190
- }
191
- if (declaracao.caminhoSenao !== null)
192
- this.resolver(declaracao.caminhoSenao);
193
- return null;
194
- };
195
- Resolvedor.prototype.visitarExpressaoImportar = function (declaracao) {
196
- this.resolver(declaracao.caminho);
197
- };
198
- Resolvedor.prototype.visitarExpressaoEscreva = function (declaracao) {
199
- this.resolver(declaracao.expressao);
200
- };
201
- Resolvedor.prototype.visitarExpressaoRetornar = function (declaracao) {
202
- if (this.funcaoAtual === TipoFuncao.NENHUM) {
203
- var erro = new erro_resolvedor_1.ErroResolvedor(declaracao.palavraChave, 'Não é possível retornar do código do escopo superior.');
204
- this.erros.push(erro);
205
- }
206
- if (declaracao.valor !== null) {
207
- if (this.funcaoAtual === TipoFuncao.CONSTRUTOR) {
208
- var erro = new erro_resolvedor_1.ErroResolvedor(declaracao.palavraChave, 'Não pode retornar o valor do construtor.');
209
- this.erros.push(erro);
210
- }
211
- this.resolver(declaracao.valor);
212
- }
213
- return null;
214
- };
215
- Resolvedor.prototype.visitarExpressaoEscolha = function (declaracao) {
216
- var enclosingType = this.cicloAtual;
217
- this.cicloAtual = LoopType.ESCOLHA;
218
- var caminhos = declaracao.caminhos;
219
- var caminhoPadrao = declaracao.caminhoPadrao;
220
- for (var i = 0; i < caminhos.length; i++) {
221
- this.resolver(caminhos[i]['declaracoes']);
222
- }
223
- if (caminhoPadrao !== null)
224
- this.resolver(caminhoPadrao['declaracoes']);
225
- this.cicloAtual = enclosingType;
226
- };
227
- Resolvedor.prototype.visitarExpressaoEnquanto = function (declaracao) {
228
- this.resolver(declaracao.condicao);
229
- this.resolver(declaracao.corpo);
230
- return null;
231
- };
232
- Resolvedor.prototype.visitarExpressaoPara = function (declaracao) {
233
- if (declaracao.inicializador !== null) {
234
- this.resolver(declaracao.inicializador);
235
- }
236
- if (declaracao.condicao !== null) {
237
- this.resolver(declaracao.condicao);
238
- }
239
- if (declaracao.incrementar !== null) {
240
- this.resolver(declaracao.incrementar);
241
- }
242
- var enclosingType = this.cicloAtual;
243
- this.cicloAtual = LoopType.ENQUANTO;
244
- this.resolver(declaracao.corpo);
245
- this.cicloAtual = enclosingType;
246
- return null;
247
- };
248
- Resolvedor.prototype.visitarExpressaoFazer = function (declaracao) {
249
- this.resolver(declaracao.condicaoEnquanto);
250
- var enclosingType = this.cicloAtual;
251
- this.cicloAtual = LoopType.FAZER;
252
- this.resolver(declaracao.caminhoFazer);
253
- this.cicloAtual = enclosingType;
254
- return null;
255
- };
256
- Resolvedor.prototype.visitarExpressaoBinaria = function (expressao) {
257
- this.resolver(expressao.esquerda);
258
- this.resolver(expressao.direita);
259
- return null;
260
- };
261
- Resolvedor.prototype.visitarExpressaoDeChamada = function (expressao) {
262
- this.resolver(expressao.entidadeChamada);
263
- var argumentos = expressao.argumentos;
264
- for (var i = 0; i < argumentos.length; i++) {
265
- this.resolver(argumentos[i]);
266
- }
267
- return null;
268
- };
269
- Resolvedor.prototype.visitarExpressaoAgrupamento = function (expressao) {
270
- this.resolver(expressao.expressao);
271
- return null;
272
- };
273
- Resolvedor.prototype.visitarExpressaoDicionario = function (expressao) {
274
- for (var i = 0; i < expressao.chaves.length; i++) {
275
- this.resolver(expressao.chaves[i]);
276
- this.resolver(expressao.valores[i]);
277
- }
278
- return null;
279
- };
280
- Resolvedor.prototype.visitarExpressaoVetor = function (expressao) {
281
- for (var i = 0; i < expressao.valores.length; i++) {
282
- this.resolver(expressao.valores[i]);
283
- }
284
- return null;
285
- };
286
- Resolvedor.prototype.visitarExpressaoAcessoIndiceVariavel = function (expressao) {
287
- this.resolver(expressao.entidadeChamada);
288
- this.resolver(expressao.indice);
289
- return null;
290
- };
291
- Resolvedor.prototype.visitarExpressaoContinua = function (declaracao) {
292
- return null;
293
- };
294
- Resolvedor.prototype.visitarExpressaoSustar = function (declaracao) {
295
- return null;
296
- };
297
- Resolvedor.prototype.visitarExpressaoAtribuicaoSobrescrita = function (expressao) {
298
- return null;
299
- };
300
- Resolvedor.prototype.visitarExpressaoLiteral = function (expressao) {
301
- return null;
302
- };
303
- Resolvedor.prototype.visitarExpressaoLogica = function (expressao) {
304
- this.resolver(expressao.esquerda);
305
- this.resolver(expressao.direita);
306
- return null;
307
- };
308
- Resolvedor.prototype.visitarExpressaoUnaria = function (expressao) {
309
- this.resolver(expressao.direita);
310
- return null;
311
- };
312
- Resolvedor.prototype.visitarExpressaoDefinir = function (expressao) {
313
- this.resolver(expressao.valor);
314
- this.resolver(expressao.objeto);
315
- return null;
316
- };
317
- Resolvedor.prototype.visitarExpressaoIsto = function (expressao) {
318
- if (this.classeAtual == TipoClasse.NENHUM) {
319
- var erro = new erro_resolvedor_1.ErroResolvedor(expressao.palavraChave, "Não pode usar 'isto' fora da classe.");
320
- this.erros.push(erro);
321
- }
322
- this.resolverLocal(expressao, expressao.palavraChave);
323
- return null;
324
- };
325
- Resolvedor.prototype.resolver = function (declaracoes) {
326
- if (Array.isArray(declaracoes)) {
327
- for (var i = 0; i < declaracoes.length; i++) {
328
- if (declaracoes[i] && declaracoes[i].aceitar)
329
- declaracoes[i].aceitar(this);
330
- }
331
- }
332
- else if (declaracoes && declaracoes.aceitar) {
333
- declaracoes.aceitar(this);
334
- }
335
- return {
336
- erros: this.erros,
337
- locais: this.locais
338
- };
339
- };
340
- return Resolvedor;
341
- }());
342
- exports.Resolvedor = Resolvedor;
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./erro-resolvedor"), exports);
18
+ __exportStar(require("./pilha-escopos"), exports);
19
+ __exportStar(require("./resolvedor"), exports);
20
+ __exportStar(require("./retorno-resolvedor"), exports);
343
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/resolvedor/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/resolvedor/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,kDAAgC;AAChC,+CAA6B;AAC7B,uDAAqC"}
@@ -0,0 +1,64 @@
1
+ import { ResolvedorInterface } from '../interfaces/resolvedor-interface';
2
+ import { PilhaEscopos } from './pilha-escopos';
3
+ import { ErroResolvedor } from './erro-resolvedor';
4
+ import { AcessoIndiceVariavel, AcessoMetodo, Agrupamento, Atribuir, Binario, Chamada, Construto, Dicionario, Funcao, Logico, Super, Variavel, Vetor } from '../construtos';
5
+ import { SimboloInterface } from '../interfaces';
6
+ import { Bloco, Classe, Enquanto, Escolha, Escreva, Expressao, Fazer, Funcao as FuncaoDeclaracao, Importar, Para, Se, Tente, Var } from '../declaracoes';
7
+ import { RetornoResolvedor } from './retorno-resolvedor';
8
+ /**
9
+ * O Resolvedor (Resolver) é responsável por catalogar todos os identificadores complexos, como por exemplo: funções, classes, variáveis,
10
+ * e delimitar os escopos onde esses identificadores existem.
11
+ * Exemplo: uma classe A declara dois métodos chamados M e N. Todas as variáveis declaradas dentro de M não podem ser vistas por N, e vice-versa.
12
+ * No entanto, todas as variáveis declaradas dentro da classe A podem ser vistas tanto por M quanto por N.
13
+ * @deprecated Marcado para remoção. Como a implementação de blocos de escopo não precisa mais ter etapa de resolução, o
14
+ * resolvedor deve ser removido em versões futuras.
15
+ */
16
+ export declare class Resolvedor implements ResolvedorInterface {
17
+ erros: ErroResolvedor[];
18
+ escopos: PilhaEscopos;
19
+ locais: Map<Construto, number>;
20
+ funcaoAtual: any;
21
+ classeAtual: any;
22
+ cicloAtual: any;
23
+ constructor();
24
+ definir(simbolo: SimboloInterface): void;
25
+ declarar(simbolo: SimboloInterface): void;
26
+ inicioDoEscopo(): void;
27
+ finalDoEscopo(): void;
28
+ resolverLocal(expressao: Construto, simbolo: SimboloInterface): void;
29
+ visitarExpressaoBloco(declaracao: Bloco): any;
30
+ visitarExpressaoDeVariavel(expressao: Variavel): any;
31
+ visitarExpressaoVar(declaracao: Var): any;
32
+ visitarExpressaoDeAtribuicao(expressao: Atribuir): any;
33
+ resolverFuncao(funcao: Funcao, tipoFuncao: string): void;
34
+ visitarExpressaoFuncao(declaracao: FuncaoDeclaracao): any;
35
+ visitarExpressaoDeleguaFuncao(declaracao: Funcao): any;
36
+ visitarExpressaoTente(declaracao: Tente): any;
37
+ visitarExpressaoClasse(declaracao: Classe): any;
38
+ visitarExpressaoSuper(expressao: Super): any;
39
+ visitarExpressaoAcessoMetodo(expressao: AcessoMetodo): any;
40
+ visitarDeclaracaoDeExpressao(declaracao: Expressao): any;
41
+ visitarExpressaoSe(declaracao: Se): any;
42
+ visitarExpressaoImportar(declaracao: Importar): void;
43
+ visitarExpressaoEscreva(declaracao: Escreva): void;
44
+ visitarExpressaoRetornar(declaracao: any): any;
45
+ visitarExpressaoEscolha(declaracao: Escolha): void;
46
+ visitarExpressaoEnquanto(declaracao: Enquanto): any;
47
+ visitarExpressaoPara(declaracao: Para): any;
48
+ visitarExpressaoFazer(declaracao: Fazer): any;
49
+ visitarExpressaoBinaria(expressao: Binario): any;
50
+ visitarExpressaoDeChamada(expressao: Chamada): any;
51
+ visitarExpressaoAgrupamento(expressao: Agrupamento): any;
52
+ visitarExpressaoDicionario(expressao: Dicionario): any;
53
+ visitarExpressaoVetor(expressao: Vetor): any;
54
+ visitarExpressaoAcessoIndiceVariavel(expressao: AcessoIndiceVariavel): any;
55
+ visitarExpressaoContinua(declaracao?: any): any;
56
+ visitarExpressaoSustar(declaracao?: any): any;
57
+ visitarExpressaoAtribuicaoSobrescrita(expressao?: any): any;
58
+ visitarExpressaoLiteral(expressao?: any): any;
59
+ visitarExpressaoLogica(expressao?: Logico): any;
60
+ visitarExpressaoUnaria(expressao?: any): any;
61
+ visitarExpressaoDefinir(expressao?: any): any;
62
+ visitarExpressaoIsto(expressao?: any): any;
63
+ resolver(declaracoes: Construto | Construto[]): RetornoResolvedor;
64
+ }