@designliquido/delegua 0.13.1 → 0.14.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 (58) hide show
  1. package/README.md +3 -54
  2. package/bin/package.json +2 -13
  3. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.d.ts +20 -0
  4. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js +150 -0
  5. package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js.map +1 -0
  6. package/fontes/depuracao/index.d.ts +0 -1
  7. package/fontes/depuracao/index.js +0 -1
  8. package/fontes/depuracao/index.js.map +1 -1
  9. package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts +2 -4
  10. package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +34 -43
  11. package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
  12. package/fontes/interpretador/dialetos/visualg/interpretador-visualg.d.ts +2 -2
  13. package/fontes/interpretador/dialetos/visualg/interpretador-visualg.js +1 -1
  14. package/fontes/interpretador/dialetos/visualg/interpretador-visualg.js.map +1 -1
  15. package/fontes/interpretador/index.d.ts +1 -1
  16. package/fontes/interpretador/index.js +1 -1
  17. package/fontes/interpretador/index.js.map +1 -1
  18. package/fontes/interpretador/{interpretador.d.ts → interpretador-base.d.ts} +4 -6
  19. package/fontes/interpretador/{interpretador.js → interpretador-base.js} +8 -63
  20. package/fontes/interpretador/interpretador-base.js.map +1 -0
  21. package/fontes/interpretador/interpretador-com-depuracao.d.ts +2 -2
  22. package/fontes/interpretador/interpretador-com-depuracao.js +2 -2
  23. package/fontes/interpretador/interpretador-com-depuracao.js.map +1 -1
  24. package/fontes/lexador/dialetos/index.d.ts +1 -0
  25. package/fontes/lexador/dialetos/index.js +1 -0
  26. package/fontes/lexador/dialetos/index.js.map +1 -1
  27. package/fontes/lexador/dialetos/lexador-guarani.d.ts +9 -0
  28. package/fontes/lexador/dialetos/lexador-guarani.js +114 -0
  29. package/fontes/lexador/dialetos/lexador-guarani.js.map +1 -0
  30. package/fontes/lexador/dialetos/palavras-reservadas/guarani.d.ts +4 -0
  31. package/fontes/lexador/dialetos/palavras-reservadas/guarani.js +10 -0
  32. package/fontes/lexador/dialetos/palavras-reservadas/guarani.js.map +1 -0
  33. package/fontes/lexador/dialetos/palavras-reservadas/rantiaquin.d.ts +2 -0
  34. package/fontes/lexador/dialetos/palavras-reservadas/rantiaquin.js +4 -0
  35. package/fontes/lexador/dialetos/palavras-reservadas/rantiaquin.js.map +1 -0
  36. package/fontes/tipos-de-simbolos/guarani.d.ts +14 -0
  37. package/fontes/tipos-de-simbolos/guarani.js +16 -0
  38. package/fontes/tipos-de-simbolos/guarani.js.map +1 -0
  39. package/fontes/tipos-de-simbolos/rantiaquin.d.ts +2 -0
  40. package/fontes/tipos-de-simbolos/rantiaquin.js +4 -0
  41. package/fontes/tipos-de-simbolos/rantiaquin.js.map +1 -0
  42. package/index.d.ts +0 -1
  43. package/index.js +0 -1
  44. package/index.js.map +1 -1
  45. package/package.json +2 -13
  46. package/execucao.d.ts +0 -1
  47. package/execucao.js +0 -43
  48. package/execucao.js.map +0 -1
  49. package/fontes/bibliotecas/importar-biblioteca.d.ts +0 -2
  50. package/fontes/bibliotecas/importar-biblioteca.js +0 -132
  51. package/fontes/bibliotecas/importar-biblioteca.js.map +0 -1
  52. package/fontes/delegua.d.ts +0 -86
  53. package/fontes/delegua.js +0 -372
  54. package/fontes/delegua.js.map +0 -1
  55. package/fontes/depuracao/remota/servidor-depuracao.d.ts +0 -41
  56. package/fontes/depuracao/remota/servidor-depuracao.js +0 -301
  57. package/fontes/depuracao/remota/servidor-depuracao.js.map +0 -1
  58. package/fontes/interpretador/interpretador.js.map +0 -1
@@ -1,301 +0,0 @@
1
- "use strict";
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]; } };
7
- }
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.ServidorDepuracao = void 0;
30
- const net = __importStar(require("net"));
31
- const cyrb53_1 = __importDefault(require("../cyrb53"));
32
- /**
33
- * Esta foi a primeira implementacão do mecanismo de depuração, usando comunicação por _sockets_.
34
- * Inicialmente uma integração foi implementada na extensão do VSCode, mas o protocolo de
35
- * comunicação nunca foi exatamente maturado, em favor de uma implementação na extensão
36
- * usando a linguagem diretamente.
37
- *
38
- * Mecanismo poderá ser maturado num futuro próximo. Para mais detalhes, ler `README.md`.
39
- */
40
- class ServidorDepuracao {
41
- constructor(_instanciaDelegua) {
42
- this.validarPontoParada = (caminhoArquivo, linha, conexao) => {
43
- const hashArquivo = (0, cyrb53_1.default)(caminhoArquivo.toLowerCase());
44
- if (!this.instanciaDelegua.arquivosAbertos.hasOwnProperty(hashArquivo)) {
45
- conexao.write(`[adicionar-ponto-parada]: Arquivo '${caminhoArquivo}' não encontrado\n`);
46
- return { sucesso: false };
47
- }
48
- if (this.instanciaDelegua.conteudoArquivosAbertos[hashArquivo].length < linha) {
49
- conexao.write(`[adicionar-ponto-parada]: Linha ${linha} não existente em arquivo '${caminhoArquivo}'\n`);
50
- return { sucesso: false };
51
- }
52
- return { sucesso: true, hashArquivo, linha };
53
- };
54
- this.comandoAdentrarEscopo = async (conexao) => {
55
- let linhasResposta = '';
56
- linhasResposta += "Recebido comando 'adentrar-escopo'\n";
57
- linhasResposta += '--- adentrar-escopo-resposta ---\n';
58
- this.interpretador.comando = 'adentrarEscopo';
59
- this.interpretador.pontoDeParadaAtivo = false;
60
- await this.interpretador.instrucaoPasso();
61
- conexao.write(linhasResposta);
62
- };
63
- this.comandoAdicionarPontoParada = (comando, conexao) => {
64
- conexao.write("Recebido comando 'adicionar-ponto-parada'\n");
65
- if (comando.length < 3) {
66
- conexao.write(`[adicionar-ponto-parada]: Formato: adicionar-ponto-parada /caminho/do/arquivo.egua 1\n`);
67
- return;
68
- }
69
- const validacaoPontoParada = this.validarPontoParada(comando[1], parseInt(comando[2]), conexao);
70
- if (validacaoPontoParada.sucesso) {
71
- this.interpretador.pontosParada.push({
72
- hashArquivo: validacaoPontoParada.hashArquivo,
73
- linha: validacaoPontoParada.linha,
74
- });
75
- }
76
- };
77
- this.comandoAvaliar = async (comando, conexao) => {
78
- let linhasResposta = '';
79
- comando.shift();
80
- const expressaoAvaliar = comando.join(' ');
81
- let retornoInterpretacao;
82
- let resultadoInterpretacao;
83
- try {
84
- retornoInterpretacao = await this.instanciaDelegua.executarUmaLinha(expressaoAvaliar);
85
- resultadoInterpretacao = retornoInterpretacao.resultado;
86
- }
87
- catch (erro) {
88
- resultadoInterpretacao = [String(erro)];
89
- }
90
- linhasResposta += "Recebido comando 'avaliar'\n";
91
- linhasResposta += '--- avaliar-resposta ---\n';
92
- linhasResposta += JSON.stringify(resultadoInterpretacao[0]) + '\n';
93
- linhasResposta += '--- fim-avaliar-resposta ---\n';
94
- conexao.write(linhasResposta);
95
- };
96
- this.comandoAvaliarVariavel = async (comando, conexao) => {
97
- let linhasResposta = '';
98
- comando.shift();
99
- const nomeVariavel = comando.join(' ');
100
- linhasResposta += "Recebido comando 'avaliar-variavel'\n";
101
- linhasResposta += '--- avaliar-variavel-resposta ---\n';
102
- try {
103
- linhasResposta += JSON.stringify(this.interpretador.obterVariavel(nomeVariavel)) + '\n';
104
- }
105
- catch (erro) {
106
- linhasResposta += String(erro) + '\n';
107
- }
108
- linhasResposta += '--- fim-avaliar-variavel-resposta ---\n';
109
- conexao.write(linhasResposta);
110
- };
111
- this.comandoContinuar = async (conexao) => {
112
- let linhasResposta = '';
113
- linhasResposta += "Recebido comando 'continuar'\n";
114
- this.interpretador.pontoDeParadaAtivo = false;
115
- await this.interpretador.instrucaoContinuarInterpretacao();
116
- linhasResposta += '--- continuar-resposta ---\n';
117
- conexao.write(linhasResposta);
118
- };
119
- this.comandoPilhaExecucao = (conexao) => {
120
- let linhasResposta = '';
121
- linhasResposta += "Recebido comando 'pilha-execucao'\n";
122
- const pilhaEscoposExecucao = this.interpretador.pilhaEscoposExecucao;
123
- linhasResposta += '--- pilha-execucao-resposta ---\n';
124
- try {
125
- for (let i = pilhaEscoposExecucao.pilha.length - 1; i > 0; i--) {
126
- const elementoPilha = pilhaEscoposExecucao.pilha[i];
127
- const posicaoDeclaracaoAtual = elementoPilha.declaracaoAtual >= elementoPilha.declaracoes.length
128
- ? elementoPilha.declaracoes.length - 1
129
- : elementoPilha.declaracaoAtual;
130
- const declaracaoAtual = elementoPilha.declaracoes[posicaoDeclaracaoAtual];
131
- linhasResposta +=
132
- this.instanciaDelegua.conteudoArquivosAbertos[declaracaoAtual.hashArquivo][declaracaoAtual.linha - 1].trim() +
133
- ' --- ' +
134
- this.instanciaDelegua.arquivosAbertos[declaracaoAtual.hashArquivo] +
135
- '::' +
136
- declaracaoAtual.assinaturaMetodo +
137
- '::' +
138
- declaracaoAtual.linha +
139
- '\n';
140
- }
141
- linhasResposta += '--- fim-pilha-execucao-resposta ---\n';
142
- conexao.write(linhasResposta);
143
- }
144
- catch (erro) {
145
- conexao.write(erro + '\n');
146
- }
147
- };
148
- this.comandoPontosParada = (conexao) => {
149
- let linhasResposta = '';
150
- linhasResposta += "Recebido comando 'pontos-parada'\n";
151
- for (const pontoParada of this.interpretador.pontosParada) {
152
- linhasResposta +=
153
- this.instanciaDelegua.arquivosAbertos[pontoParada.hashArquivo] + ': ' + pontoParada.linha + '\n';
154
- }
155
- conexao.write(linhasResposta);
156
- };
157
- this.comandoProximo = async (conexao) => {
158
- let linhasResposta = '';
159
- linhasResposta += "Recebido comando 'proximo'\n";
160
- linhasResposta += '--- proximo-resposta ---\n';
161
- this.interpretador.comando = 'proximo';
162
- this.interpretador.pontoDeParadaAtivo = false;
163
- try {
164
- await this.interpretador.instrucaoPasso();
165
- }
166
- catch (erro) {
167
- console.error(erro);
168
- }
169
- conexao.write(linhasResposta);
170
- };
171
- this.comandoRemoverPontoParada = (comando, conexao) => {
172
- let linhasResposta = '';
173
- linhasResposta += "Recebido comando 'remover-ponto-parada'\n";
174
- if (comando.length < 3) {
175
- linhasResposta += `[adicionar-ponto-parada]: Formato: adicionar-ponto-parada /caminho/do/arquivo.egua 1\n`;
176
- conexao.write(linhasResposta);
177
- return;
178
- }
179
- const validacaoPontoParada = this.validarPontoParada(comando[1], parseInt(comando[2]), conexao);
180
- if (validacaoPontoParada.sucesso) {
181
- this.interpretador.pontosParada = this.interpretador.pontosParada.filter((p) => p.hashArquivo !== validacaoPontoParada.hashArquivo && p.linha !== validacaoPontoParada.linha);
182
- }
183
- };
184
- this.comandoSairEscopo = async (conexao) => {
185
- let linhasResposta = '';
186
- linhasResposta += "Recebido comando 'sair-escopo'\n";
187
- this.interpretador.pontoDeParadaAtivo = false;
188
- await this.interpretador.instrucaoProximoESair();
189
- linhasResposta += '--- sair-escopo-resposta ---\n';
190
- conexao.write(linhasResposta);
191
- };
192
- this.comandoVariaveis = (conexao) => {
193
- let linhasResposta = '';
194
- linhasResposta += "Recebido comando 'variaveis'. Enviando variáveis do escopo atual\n";
195
- const todasVariaveis = this.interpretador.pilhaEscoposExecucao.obterTodasVariaveis([]);
196
- linhasResposta += '--- variaveis-resposta ---\n';
197
- for (const variavel of todasVariaveis) {
198
- linhasResposta += variavel.nome + ' :: ' + variavel.tipo + ' :: ' + variavel.valor + '\n';
199
- }
200
- linhasResposta += '--- fim-variaveis-resposta ---\n';
201
- conexao.write(linhasResposta);
202
- };
203
- /**
204
- * Função que descreve como conexão com clientes de depuração deve ser operada.
205
- * @param conexao Instância de conexão, tipo net.Socket.
206
- */
207
- this.operarConexao = (conexao) => {
208
- const enderecoRemoto = conexao.remoteAddress + ':' + conexao.remotePort;
209
- process.stdout.write('\n[Depurador] Nova conexão de cliente de ' + enderecoRemoto + '\ndelegua> ');
210
- conexao.setEncoding('utf8');
211
- this.conexoes[this.contadorConexoes++] = conexao;
212
- // Aqui, dados pode ter uma série de comandos, sendo um por linha.
213
- const aoReceberDados = (dados) => {
214
- const comandos = String(dados).split('\n');
215
- process.stdout.write('\n[Depurador] Dados da conexão vindos de ' + enderecoRemoto + ': ' + comandos + '\ndelegua> ');
216
- for (const comando of comandos) {
217
- const partesComando = comando.split(' ');
218
- switch (partesComando[0]) {
219
- case 'adentrar-escopo':
220
- this.comandoAdentrarEscopo(conexao);
221
- break;
222
- case 'adicionar-ponto-parada':
223
- this.comandoAdicionarPontoParada(partesComando, conexao);
224
- break;
225
- case 'avaliar':
226
- this.comandoAvaliar(partesComando, conexao);
227
- break;
228
- case 'avaliar-variavel':
229
- this.comandoAvaliarVariavel(partesComando, conexao);
230
- break;
231
- case 'continuar':
232
- this.comandoContinuar(conexao);
233
- break;
234
- case 'pilha-execucao':
235
- this.comandoPilhaExecucao(conexao);
236
- break;
237
- case 'pontos-parada':
238
- this.comandoPontosParada(conexao);
239
- break;
240
- case 'proximo':
241
- this.comandoProximo(conexao);
242
- break;
243
- case 'remover-ponto-parada':
244
- this.comandoRemoverPontoParada(partesComando, conexao);
245
- break;
246
- case 'sair-escopo':
247
- this.comandoSairEscopo(conexao);
248
- break;
249
- case 'tchau':
250
- conexao.write("Recebido comando 'tchau'. Conexão será encerrada\n");
251
- this.finalizarServidorDepuracao();
252
- return;
253
- case 'variaveis':
254
- this.comandoVariaveis(conexao);
255
- break;
256
- }
257
- }
258
- };
259
- const aoFecharConexao = () => {
260
- process.stdout.write('\n[Depurador] Conexão de ' + enderecoRemoto + ' fechada\ndelegua> ');
261
- };
262
- const aoObterErro = (erro) => {
263
- process.stdout.write('\n[Depurador] Conexão ' + enderecoRemoto + ' com erro: ' + erro.message + '\ndelegua> ');
264
- };
265
- // `.bind()` é necessário aqui para que os eventos não usem net.Socket ou net.Server como o `this`,
266
- // como acontece normalmente se o `.bind()` não é chamado.
267
- conexao.on('data', aoReceberDados.bind(this));
268
- conexao.once('close', aoFecharConexao.bind(this));
269
- conexao.on('error', aoObterErro.bind(this));
270
- };
271
- this.instanciaDelegua = _instanciaDelegua;
272
- this.instanciaDelegua.funcaoDeRetorno = this.escreverSaidaParaTodosClientes.bind(this);
273
- this.interpretador = this.instanciaDelegua.interpretador;
274
- this.interpretador.funcaoDeRetorno = this.escreverSaidaParaTodosClientes.bind(this);
275
- this.servidor = net.createServer();
276
- this.conexoes = {};
277
- this.contadorConexoes = 0;
278
- this.operarConexao.bind(this);
279
- }
280
- iniciarServidorDepuracao() {
281
- // É necessário mudar o `this` aqui por `.bind()`, senão `this` será net.Server dentro dos métodos.
282
- this.servidor.on('connection', this.operarConexao.bind(this));
283
- this.servidor.listen(7777);
284
- process.stdout.write('\n[Depurador] Servidor de depuração iniciado na porta 7777');
285
- return this.servidor.address();
286
- }
287
- escreverSaidaParaTodosClientes(mensagem) {
288
- Object.keys(this.conexoes).forEach((chave) => {
289
- this.conexoes[chave].write('Enviando mensagem de saída\n--- mensagem-saida ---\n' + mensagem + '\n');
290
- });
291
- }
292
- finalizarServidorDepuracao() {
293
- Object.keys(this.conexoes).forEach((chave) => {
294
- this.conexoes[chave].write('--- finalizando ---\n');
295
- this.conexoes[chave].end();
296
- });
297
- this.servidor.close();
298
- }
299
- }
300
- exports.ServidorDepuracao = ServidorDepuracao;
301
- //# sourceMappingURL=servidor-depuracao.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"servidor-depuracao.js","sourceRoot":"","sources":["../../../../fontes/depuracao/remota/servidor-depuracao.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"interpretador.js","sourceRoot":"","sources":["../../../fontes/interpretador/interpretador.ts"],"names":[],"mappings":"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"}