@designliquido/delegua-node 1.22.4 → 1.23.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.
@@ -4,9 +4,8 @@ export declare class PonteTempoExecucaoDepuracaoDelegua implements PonteTempoExe
4
4
  private readonly threadPrincipalId;
5
5
  private configuracaoLancamento;
6
6
  private pontosParadaPendentes;
7
- private contadorReferencias;
8
- private mapeamentoFrames;
9
- private mapeamentoVariaveis;
7
+ private registroFrames;
8
+ private registroVariaveis;
10
9
  private nucleoExecucao;
11
10
  private interpretador;
12
11
  constructor(versaoDelegua: string);
@@ -25,9 +24,6 @@ export declare class PonteTempoExecucaoDepuracaoDelegua implements PonteTempoExe
25
24
  private aplicarPontosParadaNoInterpretador;
26
25
  private obterParadaAtual;
27
26
  private obterPilhaEscopos;
28
- private obterDeclaracaoAtual;
29
- private proximaReferencia;
30
- private formatarValor;
31
27
  private executarInstrucao;
32
28
  private garantirSessaoInicializada;
33
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ponte-tempo-execucao-depuracao.d.ts","sourceRoot":"","sources":["../../../fontes/depuracao/dap/ponte-tempo-execucao-depuracao.ts"],"names":[],"mappings":"AAQA,OAAO,EAEH,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,oCAAoC,EACpC,eAAe,EACf,iBAAiB,EACpB,MAAM,4BAA4B,CAAC;AAGpC,qBAAa,kCAAmC,YAAW,oCAAoC;IAC3F,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAK;IAEvC,OAAO,CAAC,sBAAsB,CAAuC;IACrE,OAAO,CAAC,qBAAqB,CAA+B;IAC5D,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,mBAAmB,CAA4D;IAEvF,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,aAAa,CAAmD;gBAE5D,aAAa,EAAE,MAAM;IAI3B,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBvE,mBAAmB,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgBhF,8BAA8B,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAiCjE,YAAY,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAM1C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAqCrE,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAuBzD,cAAc,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAexE,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAa5D,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAa1D,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAajE,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAY7D,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBrC,OAAO,CAAC,kCAAkC;IAsB1C,OAAO,CAAC,gBAAgB;IAuCxB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,aAAa;YAwBP,iBAAiB;IA8B/B,OAAO,CAAC,0BAA0B;CAKrC"}
1
+ {"version":3,"file":"ponte-tempo-execucao-depuracao.d.ts","sourceRoot":"","sources":["../../../fontes/depuracao/dap/ponte-tempo-execucao-depuracao.ts"],"names":[],"mappings":"AAQA,OAAO,EAEH,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,oCAAoC,EACpC,eAAe,EACf,iBAAiB,EACpB,MAAM,4BAA4B,CAAC;AAIpC,qBAAa,kCAAmC,YAAW,oCAAoC;IAC3F,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAK;IAEvC,OAAO,CAAC,sBAAsB,CAAuC;IACrE,OAAO,CAAC,qBAAqB,CAA+B;IAC5D,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,iBAAiB,CAAoE;IAE7F,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,aAAa,CAAmD;gBAE5D,aAAa,EAAE,MAAM;IAI3B,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBvE,mBAAmB,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAgBhF,8BAA8B,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAiCjE,YAAY,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAM1C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAoCrE,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAsBzD,cAAc,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAexE,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAa5D,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAa1D,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAajE,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAY7D,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAerC,OAAO,CAAC,kCAAkC;IAsB1C,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,iBAAiB;YASX,iBAAiB;IA8B/B,OAAO,CAAC,0BAA0B;CAKrC"}
@@ -38,14 +38,14 @@ const caminho = __importStar(require("path"));
38
38
  const sistemaArquivos = __importStar(require("fs"));
39
39
  const geracao_identificadores_1 = require("@designliquido/delegua/geracao-identificadores");
40
40
  const nucleo_execucao_1 = require("../../nucleo-execucao");
41
+ const referencias_depuracao_1 = require("../referencias-depuracao");
41
42
  class PonteTempoExecucaoDepuracaoDelegua {
42
43
  constructor(versaoDelegua) {
43
44
  this.threadPrincipalId = 1;
44
45
  this.configuracaoLancamento = null;
45
46
  this.pontosParadaPendentes = new Map();
46
- this.contadorReferencias = 1;
47
- this.mapeamentoFrames = new Map();
48
- this.mapeamentoVariaveis = new Map();
47
+ this.registroFrames = new referencias_depuracao_1.RegistroReferencias();
48
+ this.registroVariaveis = new referencias_depuracao_1.RegistroReferencias();
49
49
  this.nucleoExecucao = null;
50
50
  this.interpretador = null;
51
51
  this.versaoDelegua = versaoDelegua;
@@ -65,9 +65,8 @@ class PonteTempoExecucaoDepuracaoDelegua {
65
65
  programa: caminhoPrograma,
66
66
  dialeto,
67
67
  };
68
- this.contadorReferencias = 1;
69
- this.mapeamentoFrames.clear();
70
- this.mapeamentoVariaveis.clear();
68
+ this.registroFrames.limpar();
69
+ this.registroVariaveis.limpar();
71
70
  }
72
71
  async definirPontosParada(caminhoArquivo, linhas) {
73
72
  var _a;
@@ -112,13 +111,13 @@ class PonteTempoExecucaoDepuracaoDelegua {
112
111
  if (threadId !== this.threadPrincipalId || !this.nucleoExecucao || !this.interpretador) {
113
112
  return [];
114
113
  }
115
- this.mapeamentoFrames.clear();
116
- this.mapeamentoVariaveis.clear();
114
+ this.registroFrames.limpar();
115
+ this.registroVariaveis.limpar();
117
116
  const pilhaEscopos = this.obterPilhaEscopos();
118
117
  const quadros = [];
119
118
  for (let indice = pilhaEscopos.length - 1; indice >= 0; indice--) {
120
119
  const escopo = pilhaEscopos[indice];
121
- const declaracaoAtual = this.obterDeclaracaoAtual(escopo);
120
+ const declaracaoAtual = (0, referencias_depuracao_1.obterDeclaracaoAtual)(escopo);
122
121
  if (!declaracaoAtual) {
123
122
  continue;
124
123
  }
@@ -126,8 +125,7 @@ class PonteTempoExecucaoDepuracaoDelegua {
126
125
  if (!caminhoArquivo) {
127
126
  continue;
128
127
  }
129
- const frameId = this.proximaReferencia();
130
- this.mapeamentoFrames.set(frameId, indice);
128
+ const frameId = this.registroFrames.registrar(indice);
131
129
  quadros.push({
132
130
  id: frameId,
133
131
  nome: declaracaoAtual.assinaturaMetodo || `escopo-${indice}`,
@@ -141,15 +139,14 @@ class PonteTempoExecucaoDepuracaoDelegua {
141
139
  async obterEscopos(frameId) {
142
140
  var _a;
143
141
  this.garantirSessaoInicializada();
144
- const indiceEscopo = this.mapeamentoFrames.get(frameId);
142
+ const indiceEscopo = this.registroFrames.obter(frameId);
145
143
  if (indiceEscopo === undefined || !this.interpretador) {
146
144
  return [];
147
145
  }
148
146
  const pilhaEscopos = this.obterPilhaEscopos();
149
147
  const escopo = pilhaEscopos[indiceEscopo];
150
148
  const variaveis = ((_a = escopo === null || escopo === void 0 ? void 0 : escopo.espacoMemoria) === null || _a === void 0 ? void 0 : _a.valores) || {};
151
- const variablesReference = this.proximaReferencia();
152
- this.mapeamentoVariaveis.set(variablesReference, variaveis);
149
+ const variablesReference = this.registroVariaveis.registrar(variaveis);
153
150
  return [
154
151
  {
155
152
  nome: 'Locais',
@@ -160,13 +157,13 @@ class PonteTempoExecucaoDepuracaoDelegua {
160
157
  }
161
158
  async obterVariaveis(variablesReference) {
162
159
  this.garantirSessaoInicializada();
163
- const variaveis = this.mapeamentoVariaveis.get(variablesReference);
160
+ const variaveis = this.registroVariaveis.obter(variablesReference);
164
161
  if (!variaveis) {
165
162
  return [];
166
163
  }
167
164
  return Object.entries(variaveis).map(([nome, variavel]) => ({
168
165
  nome,
169
- valor: this.formatarValor(variavel === null || variavel === void 0 ? void 0 : variavel.valor),
166
+ valor: (0, referencias_depuracao_1.formatarValor)(variavel === null || variavel === void 0 ? void 0 : variavel.valor),
170
167
  tipo: variavel === null || variavel === void 0 ? void 0 : variavel.tipo,
171
168
  variablesReference: 0,
172
169
  }));
@@ -225,9 +222,8 @@ class PonteTempoExecucaoDepuracaoDelegua {
225
222
  }
226
223
  this.interpretador = null;
227
224
  this.nucleoExecucao = null;
228
- this.contadorReferencias = 1;
229
- this.mapeamentoFrames.clear();
230
- this.mapeamentoVariaveis.clear();
225
+ this.registroFrames.limpar();
226
+ this.registroVariaveis.limpar();
231
227
  }
232
228
  aplicarPontosParadaNoInterpretador() {
233
229
  if (!this.nucleoExecucao || !this.interpretador) {
@@ -259,13 +255,7 @@ class PonteTempoExecucaoDepuracaoDelegua {
259
255
  }
260
256
  for (let indice = pilhaEscopos.length - 1; indice >= 0; indice--) {
261
257
  const escopo = pilhaEscopos[indice];
262
- if (!escopo || !Array.isArray(escopo.declaracoes) || escopo.declaracoes.length <= 0) {
263
- continue;
264
- }
265
- const posicaoAtual = escopo.declaracaoAtual >= escopo.declaracoes.length
266
- ? escopo.declaracoes.length - 1
267
- : escopo.declaracaoAtual;
268
- const declaracaoAtual = escopo.declaracoes[posicaoAtual];
258
+ const declaracaoAtual = (0, referencias_depuracao_1.obterDeclaracaoAtual)(escopo);
269
259
  if (!declaracaoAtual) {
270
260
  continue;
271
261
  }
@@ -288,38 +278,6 @@ class PonteTempoExecucaoDepuracaoDelegua {
288
278
  }
289
279
  return pilhaEscopos;
290
280
  }
291
- obterDeclaracaoAtual(escopo) {
292
- if (!escopo || !Array.isArray(escopo.declaracoes) || escopo.declaracoes.length <= 0) {
293
- return null;
294
- }
295
- const posicaoAtual = escopo.declaracaoAtual >= escopo.declaracoes.length
296
- ? escopo.declaracoes.length - 1
297
- : escopo.declaracaoAtual;
298
- return escopo.declaracoes[posicaoAtual];
299
- }
300
- proximaReferencia() {
301
- return this.contadorReferencias++;
302
- }
303
- formatarValor(valor) {
304
- if (valor === null) {
305
- return 'nulo';
306
- }
307
- if (valor === undefined) {
308
- return 'indefinido';
309
- }
310
- if (typeof valor === 'string') {
311
- return valor;
312
- }
313
- if (typeof valor === 'number' || typeof valor === 'boolean') {
314
- return String(valor);
315
- }
316
- try {
317
- return JSON.stringify(valor);
318
- }
319
- catch (_a) {
320
- return String(valor);
321
- }
322
- }
323
281
  async executarInstrucao(acao, motivoPadrao) {
324
282
  var _a;
325
283
  let houveParada = false;
@@ -1 +1 @@
1
- {"version":3,"file":"ponte-tempo-execucao-depuracao.js","sourceRoot":"","sources":["../../../fontes/depuracao/dap/ponte-tempo-execucao-depuracao.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ponte-tempo-execucao-depuracao.js","sourceRoot":"","sources":["../../../fontes/depuracao/dap/ponte-tempo-execucao-depuracao.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { EscopoExecucaoInterface } from '@designliquido/delegua/interfaces/escopo-execucao';
2
+ /**
3
+ * Registro de referências numéricas (estilo `variablesReference`/`frameId` do DAP) para valores
4
+ * que precisam ser endereçados em requisições futuras, como quadros de pilha e escopos de variáveis.
5
+ * Compartilhado entre o depurador padrão (`servidor-depuracao.ts`) e o adaptador DAP
6
+ * (`dap/ponte-tempo-execucao-depuracao.ts`) para que os dois mantenham a mesma semântica de
7
+ * referências.
8
+ */
9
+ export declare class RegistroReferencias<T> {
10
+ private contador;
11
+ private mapa;
12
+ registrar(valor: T): number;
13
+ obter(referencia: number): T | undefined;
14
+ limpar(): void;
15
+ }
16
+ /**
17
+ * Retorna a declaração atualmente em execução dentro de um escopo, considerando que
18
+ * `declaracaoAtual` pode ultrapassar o tamanho do vetor de declarações ao final da execução do escopo.
19
+ */
20
+ export declare function obterDeclaracaoAtual(escopo: EscopoExecucaoInterface): any;
21
+ /**
22
+ * Formata um valor de variável Delégua para representação textual, usada tanto no protocolo
23
+ * texto do depurador padrão quanto no corpo das respostas `variables` do DAP.
24
+ */
25
+ export declare function formatarValor(valor: any): string;
26
+ //# sourceMappingURL=referencias-depuracao.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"referencias-depuracao.d.ts","sourceRoot":"","sources":["../../fontes/depuracao/referencias-depuracao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAE5F;;;;;;GAMG;AACH,qBAAa,mBAAmB,CAAC,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,IAAI,CAAwB;IAEpC,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM;IAM3B,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAIxC,MAAM,IAAI,IAAI;CAIjB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,uBAAuB,GAAG,GAAG,CAUzE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAsBhD"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RegistroReferencias = void 0;
4
+ exports.obterDeclaracaoAtual = obterDeclaracaoAtual;
5
+ exports.formatarValor = formatarValor;
6
+ /**
7
+ * Registro de referências numéricas (estilo `variablesReference`/`frameId` do DAP) para valores
8
+ * que precisam ser endereçados em requisições futuras, como quadros de pilha e escopos de variáveis.
9
+ * Compartilhado entre o depurador padrão (`servidor-depuracao.ts`) e o adaptador DAP
10
+ * (`dap/ponte-tempo-execucao-depuracao.ts`) para que os dois mantenham a mesma semântica de
11
+ * referências.
12
+ */
13
+ class RegistroReferencias {
14
+ constructor() {
15
+ this.contador = 1;
16
+ this.mapa = new Map();
17
+ }
18
+ registrar(valor) {
19
+ const referencia = this.contador++;
20
+ this.mapa.set(referencia, valor);
21
+ return referencia;
22
+ }
23
+ obter(referencia) {
24
+ return this.mapa.get(referencia);
25
+ }
26
+ limpar() {
27
+ this.contador = 1;
28
+ this.mapa.clear();
29
+ }
30
+ }
31
+ exports.RegistroReferencias = RegistroReferencias;
32
+ /**
33
+ * Retorna a declaração atualmente em execução dentro de um escopo, considerando que
34
+ * `declaracaoAtual` pode ultrapassar o tamanho do vetor de declarações ao final da execução do escopo.
35
+ */
36
+ function obterDeclaracaoAtual(escopo) {
37
+ if (!escopo || !Array.isArray(escopo.declaracoes) || escopo.declaracoes.length <= 0) {
38
+ return null;
39
+ }
40
+ const posicaoAtual = escopo.declaracaoAtual >= escopo.declaracoes.length
41
+ ? escopo.declaracoes.length - 1
42
+ : escopo.declaracaoAtual;
43
+ return escopo.declaracoes[posicaoAtual];
44
+ }
45
+ /**
46
+ * Formata um valor de variável Delégua para representação textual, usada tanto no protocolo
47
+ * texto do depurador padrão quanto no corpo das respostas `variables` do DAP.
48
+ */
49
+ function formatarValor(valor) {
50
+ if (valor === null) {
51
+ return 'nulo';
52
+ }
53
+ if (valor === undefined) {
54
+ return 'indefinido';
55
+ }
56
+ if (typeof valor === 'string') {
57
+ return valor;
58
+ }
59
+ if (typeof valor === 'number' || typeof valor === 'boolean') {
60
+ return String(valor);
61
+ }
62
+ try {
63
+ return JSON.stringify(valor);
64
+ }
65
+ catch (_a) {
66
+ return String(valor);
67
+ }
68
+ }
69
+ //# sourceMappingURL=referencias-depuracao.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"referencias-depuracao.js","sourceRoot":"","sources":["../../fontes/depuracao/referencias-depuracao.ts"],"names":[],"mappings":";;;AAiCA,oDAUC;AAMD,sCAsBC;AArED;;;;;;GAMG;AACH,MAAa,mBAAmB;IAAhC;QACY,aAAQ,GAAG,CAAC,CAAC;QACb,SAAI,GAAG,IAAI,GAAG,EAAa,CAAC;IAgBxC,CAAC;IAdG,SAAS,CAAC,KAAQ;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACjC,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,UAAkB;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,MAAM;QACF,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACJ;AAlBD,kDAkBC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,MAA+B;IAChE,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAClF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,YAAY,GACd,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM;QAC/C,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QAC/B,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;IACjC,OAAO,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,KAAU;IACpC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAAC,WAAM,CAAC;QACL,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;AACL,CAAC"}
@@ -7,7 +7,10 @@ import { NucleoExecucaoInterface } from '../interfaces/nucleo-execucao-interface
7
7
  * comunicação nunca foi exatamente maturado, em favor de uma implementação na extensão
8
8
  * usando a linguagem diretamente.
9
9
  *
10
- * Mecanismo poderá ser maturado num futuro próximo. Para mais detalhes, ler `README.md`.
10
+ * Tem também propósito didático: por usar texto simples em vez de JSON-RPC, é a forma mais direta
11
+ * de entender o que um depurador faz. Os comandos que não existem no protocolo histórico (a partir
12
+ * de `capacidades`, abaixo) foram adicionados para espelhar, um a um, as requisições/eventos do
13
+ * Debug Adapter Protocol implementado em `dap/`, documentados em `README.md`.
11
14
  */
12
15
  export declare class ServidorDepuracao {
13
16
  instanciaNucleoExecucao: NucleoExecucaoInterface;
@@ -17,19 +20,81 @@ export declare class ServidorDepuracao {
17
20
  };
18
21
  contadorConexoes: number;
19
22
  interpretador: InterpretadorComDepuracaoInterface;
23
+ private registroFrames;
24
+ private registroVariaveis;
25
+ private filaPorConexao;
20
26
  constructor(instanciaNucleoExecucao: NucleoExecucaoInterface);
21
27
  validarPontoParada: (caminhoArquivo: string, linha: number, conexao: net.Socket) => any;
22
28
  comandoAdentrarEscopo: (conexao: net.Socket) => Promise<any>;
23
29
  comandoAdicionarPontoParada: (comando: string[], conexao: net.Socket) => any;
24
30
  comandoAvaliar: (comando: string[], conexao: net.Socket) => Promise<any>;
25
31
  comandoAvaliarVariavel: (comando: string[], conexao: net.Socket) => Promise<any>;
32
+ /**
33
+ * Equivalente a `initialize` do DAP: descreve a própria superfície de protocolo em vez do
34
+ * cliente ter que adivinhar quais comandos existem.
35
+ */
36
+ comandoCapacidades: (conexao: net.Socket) => any;
26
37
  comandoContinuar: (conexao: net.Socket) => Promise<any>;
38
+ /**
39
+ * Equivalente a `setBreakpoints` do DAP: substitui, numa única chamada, todo o conjunto de
40
+ * pontos de parada de um arquivo, respondendo `verificado`/`nao-verificado` por linha.
41
+ * `adicionar-ponto-parada`/`remover-ponto-parada` continuam existindo para edição incremental
42
+ * e compartilham a mesma validação via `validarPontoParada`.
43
+ */
44
+ comandoDefinirPontosParada: (comando: string[], conexao: net.Socket) => any;
45
+ /**
46
+ * Equivalente a `disconnect` do DAP: finaliza a sessão de depuração do núcleo de execução
47
+ * (diferente de `tchau`, que só encerra a conexão de quem pediu) e avisa todos os clientes.
48
+ */
49
+ comandoEncerrarSessao: (conexao: net.Socket) => any;
50
+ /**
51
+ * Equivalente a `scopes` do DAP: dado um `frameId` obtido via `pilha-execucao`, responde a
52
+ * referência de variáveis daquele quadro, para consulta com `variaveis-referencia`.
53
+ */
54
+ comandoEscopos: (comando: string[], conexao: net.Socket) => any;
27
55
  comandoPilhaExecucao: (conexao: net.Socket) => any;
28
56
  comandoPontosParada: (conexao: net.Socket) => any;
29
57
  comandoProximo: (conexao: net.Socket) => Promise<any>;
58
+ /**
59
+ * Equivalente a `launch` do DAP, mas vindo do cliente em vez de configurado pela CLI: permite
60
+ * trocar ou recarregar o programa em depuração sem reiniciar o processo Node.
61
+ */
62
+ comandoReiniciar: (comando: string[], conexao: net.Socket) => Promise<any>;
30
63
  comandoRemoverPontoParada: (comando: string[], conexao: net.Socket) => any;
31
64
  comandoSairEscopo: (conexao: net.Socket) => Promise<any>;
65
+ /**
66
+ * Equivalente a `threads` do DAP. O interpretador Delégua é de thread única, mas o comando
67
+ * existe para completar o paralelo de protocolo e preparar terreno para suporte futuro.
68
+ */
69
+ comandoLinhasExecucao: (conexao: net.Socket) => any;
32
70
  comandoVariaveis: (conexao: net.Socket) => any;
71
+ /**
72
+ * Equivalente a `variables` do DAP: dada uma referência obtida via `escopos` (ou outra
73
+ * `variaveis-referencia` anterior), lista as variáveis daquele recipiente. Quando um valor é
74
+ * objeto ou vetor, uma nova referência é registrada para ele, permitindo navegação recursiva
75
+ * em vez do `JSON.stringify` cego usado por `variaveis`.
76
+ */
77
+ comandoVariaveisReferencia: (comando: string[], conexao: net.Socket) => any;
78
+ /**
79
+ * Emite um evento assíncrono (estilo `stopped`/`continued`/`terminated` do DAP) para todos os
80
+ * clientes conectados, sem que precisem pollar comandos como `pilha-execucao` após cada passo.
81
+ */
82
+ private emitirEvento;
83
+ /** Localiza arquivo/linha da declaração em execução no topo da pilha de escopos. */
84
+ private obterLocalizacaoAtual;
85
+ /** Emite `parado` (com a localização atual) ou `encerrado`, conforme o resultado de um passo/continue. */
86
+ private emitirEventoDeParada;
87
+ /** Despacha um comando de texto já tokenizado para o `comando*` correspondente. */
88
+ private executarComando;
89
+ /**
90
+ * Despacha um comando, serializando-o após qualquer comando assíncrono ainda pendente na mesma
91
+ * conexão. Quando a fila está ociosa, o comando é executado de forma síncrona/imediata, igual ao
92
+ * comportamento histórico; só quando há um comando assíncrono em andamento é que a execução do
93
+ * próximo comando é adiada até ele terminar — evitando que dois comandos leiam/alterem o estado
94
+ * do interpretador ao mesmo tempo quando um cliente envia vários comandos em sequência rápida.
95
+ */
96
+ private despacharComando;
97
+ private registrarNaFila;
33
98
  /**
34
99
  * Função que descreve como conexão com clientes de depuração deve ser operada.
35
100
  * @param conexao Instância de conexão, tipo net.Socket.
@@ -1 +1 @@
1
- {"version":3,"file":"servidor-depuracao.d.ts","sourceRoot":"","sources":["../../fontes/depuracao/servidor-depuracao.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAG3B,OAAO,EAAE,kCAAkC,EAA4B,MAAM,mCAAmC,CAAC;AAKjH,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAElF;;;;;;;GAOG;AACH,qBAAa,iBAAiB;IAC1B,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC;IACrB,QAAQ,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,kCAAkC,CAAC;gBAEtC,uBAAuB,EAAE,uBAAuB;IAY5D,kBAAkB,GAAI,gBAAgB,MAAM,EAAE,OAAO,MAAM,EAAE,SAAS,GAAG,CAAC,MAAM,KAAG,GAAG,CAapF;IAEF,qBAAqB,GAAU,SAAS,GAAG,CAAC,MAAM,KAAG,OAAO,CAAC,GAAG,CAAC,CAS/D;IAEF,2BAA2B,GAAI,SAAS,MAAM,EAAE,EAAE,SAAS,GAAG,CAAC,MAAM,KAAG,GAAG,CAczE;IAEF,cAAc,GAAU,SAAS,MAAM,EAAE,EAAE,SAAS,GAAG,CAAC,MAAM,KAAG,OAAO,CAAC,GAAG,CAAC,CAmB3E;IAEF,sBAAsB,GAAU,SAAS,MAAM,EAAE,EAAE,SAAS,GAAG,CAAC,MAAM,KAAG,OAAO,CAAC,GAAG,CAAC,CAgBnF;IAEF,gBAAgB,GAAU,SAAS,GAAG,CAAC,MAAM,KAAG,OAAO,CAAC,GAAG,CAAC,CAS1D;IAEF,oBAAoB,GAAI,SAAS,GAAG,CAAC,MAAM,KAAG,GAAG,CAiC/C;IAEF,mBAAmB,GAAI,SAAS,GAAG,CAAC,MAAM,KAAG,GAAG,CAS9C;IAEF,cAAc,GAAU,SAAS,GAAG,CAAC,MAAM,KAAG,OAAO,CAAC,GAAG,CAAC,CAaxD;IAEF,yBAAyB,GAAI,SAAS,MAAM,EAAE,EAAE,SAAS,GAAG,CAAC,MAAM,KAAG,GAAG,CAmBvE;IAEF,iBAAiB,GAAU,SAAS,GAAG,CAAC,MAAM,KAAG,OAAO,CAAC,GAAG,CAAC,CAQ3D;IAEF,gBAAgB,GAAI,SAAS,GAAG,CAAC,MAAM,KAAG,GAAG,CAY3C;IAEF;;;OAGG;IACH,aAAa,GAAI,SAAS,GAAG,CAAC,MAAM,UAwElC;IAEF,wBAAwB,IAAI,GAAG,CAAC,WAAW;IAU3C,8BAA8B,CAAC,QAAQ,EAAE,MAAM;IAM/C,0BAA0B,IAAI,IAAI;CAQrC"}
1
+ {"version":3,"file":"servidor-depuracao.d.ts","sourceRoot":"","sources":["../../fontes/depuracao/servidor-depuracao.ts"],"names":[],"mappings":"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"}
@@ -36,16 +36,51 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.ServidorDepuracao = void 0;
37
37
  const net = __importStar(require("net"));
38
38
  const geracao_identificadores_1 = require("@designliquido/delegua/geracao-identificadores");
39
+ const referencias_depuracao_1 = require("./referencias-depuracao");
40
+ /**
41
+ * Comandos reconhecidos pelo depurador padrão. Usado pelo comando `capacidades` para descrever
42
+ * a própria superfície de protocolo, e como referência de quais `case`s existem em `executarComando`.
43
+ *
44
+ * Cada comando tem, ao seu lado, o nome da requisição/evento DAP equivalente (ver `dap/sessao-depuracao-dap.ts`)
45
+ * — o depurador padrão existe para ensinar a mesma ideia num protocolo de texto simples.
46
+ */
47
+ const COMANDOS_SUPORTADOS = [
48
+ 'adentrar-escopo', // stepIn
49
+ 'adicionar-ponto-parada', // setBreakpoints (incremental)
50
+ 'avaliar',
51
+ 'avaliar-variavel',
52
+ 'capacidades', // initialize
53
+ 'continuar', // continue
54
+ 'definir-pontos-parada', // setBreakpoints (em lote)
55
+ 'encerrar-sessao', // disconnect
56
+ 'escopos', // scopes
57
+ 'linhas-execucao', // threads
58
+ 'pilha-execucao', // stackTrace
59
+ 'pontos-parada',
60
+ 'proximo', // next
61
+ 'reiniciar', // launch
62
+ 'remover-ponto-parada', // setBreakpoints (incremental)
63
+ 'sair-escopo', // stepOut
64
+ 'tchau',
65
+ 'variaveis',
66
+ 'variaveis-referencia', // variables
67
+ ];
39
68
  /**
40
69
  * Esta foi a primeira implementacão do mecanismo de depuração, usando comunicação por _sockets_.
41
70
  * Inicialmente uma integração foi implementada na extensão do VSCode, mas o protocolo de
42
71
  * comunicação nunca foi exatamente maturado, em favor de uma implementação na extensão
43
72
  * usando a linguagem diretamente.
44
73
  *
45
- * Mecanismo poderá ser maturado num futuro próximo. Para mais detalhes, ler `README.md`.
74
+ * Tem também propósito didático: por usar texto simples em vez de JSON-RPC, é a forma mais direta
75
+ * de entender o que um depurador faz. Os comandos que não existem no protocolo histórico (a partir
76
+ * de `capacidades`, abaixo) foram adicionados para espelhar, um a um, as requisições/eventos do
77
+ * Debug Adapter Protocol implementado em `dap/`, documentados em `README.md`.
46
78
  */
47
79
  class ServidorDepuracao {
48
80
  constructor(instanciaNucleoExecucao) {
81
+ this.registroFrames = new referencias_depuracao_1.RegistroReferencias();
82
+ this.registroVariaveis = new referencias_depuracao_1.RegistroReferencias();
83
+ this.filaPorConexao = new Map();
49
84
  this.validarPontoParada = (caminhoArquivo, linha, conexao) => {
50
85
  const hashArquivo = (0, geracao_identificadores_1.cyrb53)(caminhoArquivo.toLowerCase());
51
86
  if (!this.instanciaNucleoExecucao.arquivosAbertos.hasOwnProperty(hashArquivo)) {
@@ -64,8 +99,14 @@ class ServidorDepuracao {
64
99
  linhasResposta += '--- adentrar-escopo-resposta ---\n';
65
100
  this.interpretador.comando = 'adentrarEscopo';
66
101
  this.interpretador.pontoDeParadaAtivo = false;
102
+ let houveParada = false;
103
+ this.interpretador.avisoPontoParadaAtivado = () => {
104
+ houveParada = true;
105
+ };
67
106
  await this.interpretador.instrucaoPasso();
68
107
  conexao.write(linhasResposta);
108
+ this.emitirEvento('continuado');
109
+ this.emitirEventoDeParada(houveParada, 'proximo');
69
110
  };
70
111
  this.comandoAdicionarPontoParada = (comando, conexao) => {
71
112
  conexao.write("Recebido comando 'adicionar-ponto-parada'\n");
@@ -115,13 +156,108 @@ class ServidorDepuracao {
115
156
  linhasResposta += '--- fim-avaliar-variavel-resposta ---\n';
116
157
  conexao.write(linhasResposta);
117
158
  };
159
+ /**
160
+ * Equivalente a `initialize` do DAP: descreve a própria superfície de protocolo em vez do
161
+ * cliente ter que adivinhar quais comandos existem.
162
+ */
163
+ this.comandoCapacidades = (conexao) => {
164
+ var _a, _b;
165
+ let linhasResposta = "Recebido comando 'capacidades'\n";
166
+ linhasResposta += '--- capacidades-resposta ---\n';
167
+ linhasResposta += `versao-delegua :: ${(_a = this.instanciaNucleoExecucao.versao) !== null && _a !== void 0 ? _a : 'desconhecida'}\n`;
168
+ linhasResposta += `dialeto :: ${(_b = this.instanciaNucleoExecucao.dialeto) !== null && _b !== void 0 ? _b : 'desconhecido'}\n`;
169
+ linhasResposta += `comandos :: ${COMANDOS_SUPORTADOS.join(',')}\n`;
170
+ linhasResposta += '--- fim-capacidades-resposta ---\n';
171
+ conexao.write(linhasResposta);
172
+ };
118
173
  this.comandoContinuar = async (conexao) => {
119
174
  let linhasResposta = '';
120
175
  linhasResposta += "Recebido comando 'continuar'\n";
121
176
  this.interpretador.pontoDeParadaAtivo = false;
177
+ let houveParada = false;
178
+ this.interpretador.avisoPontoParadaAtivado = () => {
179
+ houveParada = true;
180
+ };
122
181
  await this.interpretador.instrucaoContinuarInterpretacao();
123
182
  linhasResposta += '--- continuar-resposta ---\n';
124
183
  conexao.write(linhasResposta);
184
+ this.emitirEvento('continuado');
185
+ this.emitirEventoDeParada(houveParada, 'breakpoint');
186
+ };
187
+ /**
188
+ * Equivalente a `setBreakpoints` do DAP: substitui, numa única chamada, todo o conjunto de
189
+ * pontos de parada de um arquivo, respondendo `verificado`/`nao-verificado` por linha.
190
+ * `adicionar-ponto-parada`/`remover-ponto-parada` continuam existindo para edição incremental
191
+ * e compartilham a mesma validação via `validarPontoParada`.
192
+ */
193
+ this.comandoDefinirPontosParada = (comando, conexao) => {
194
+ conexao.write("Recebido comando 'definir-pontos-parada'\n");
195
+ if (comando.length < 2) {
196
+ conexao.write(`[definir-pontos-parada]: Formato: definir-pontos-parada /caminho/do/arquivo.egua 1,2,3\n`);
197
+ return;
198
+ }
199
+ const caminhoArquivo = comando[1];
200
+ const hashArquivo = (0, geracao_identificadores_1.cyrb53)(caminhoArquivo.toLowerCase());
201
+ const linhas = (comando[2] || '')
202
+ .split(',')
203
+ .map((linha) => parseInt(linha.trim(), 10))
204
+ .filter((linha) => !isNaN(linha));
205
+ this.interpretador.pontosParada = this.interpretador.pontosParada.filter((pontoParada) => pontoParada.hashArquivo !== hashArquivo);
206
+ let linhasResposta = '--- definir-pontos-parada-resposta ---\n';
207
+ for (const linha of linhas) {
208
+ const validacao = this.validarPontoParada(caminhoArquivo, linha, conexao);
209
+ if (validacao.sucesso) {
210
+ this.interpretador.pontosParada.push({ hashArquivo: validacao.hashArquivo, linha: validacao.linha });
211
+ }
212
+ linhasResposta += `${linha} :: ${validacao.sucesso ? 'verificado' : 'nao-verificado'}\n`;
213
+ }
214
+ linhasResposta += '--- fim-definir-pontos-parada-resposta ---\n';
215
+ conexao.write(linhasResposta);
216
+ };
217
+ /**
218
+ * Equivalente a `disconnect` do DAP: finaliza a sessão de depuração do núcleo de execução
219
+ * (diferente de `tchau`, que só encerra a conexão de quem pediu) e avisa todos os clientes.
220
+ */
221
+ this.comandoEncerrarSessao = (conexao) => {
222
+ var _a, _b;
223
+ conexao.write("Recebido comando 'encerrar-sessao'\n");
224
+ try {
225
+ (_b = (_a = this.instanciaNucleoExecucao).finalizarDepuracao) === null || _b === void 0 ? void 0 : _b.call(_a);
226
+ }
227
+ catch (erro) {
228
+ conexao.write(`[encerrar-sessao]: ${String(erro)}\n`);
229
+ }
230
+ this.registroFrames.limpar();
231
+ this.registroVariaveis.limpar();
232
+ this.emitirEvento('encerrado');
233
+ this.finalizarServidorDepuracao();
234
+ };
235
+ /**
236
+ * Equivalente a `scopes` do DAP: dado um `frameId` obtido via `pilha-execucao`, responde a
237
+ * referência de variáveis daquele quadro, para consulta com `variaveis-referencia`.
238
+ */
239
+ this.comandoEscopos = (comando, conexao) => {
240
+ var _a;
241
+ conexao.write("Recebido comando 'escopos'\n");
242
+ if (comando.length < 2) {
243
+ conexao.write(`[escopos]: Formato: escopos <frameId>\n`);
244
+ return;
245
+ }
246
+ const frameId = parseInt(comando[1], 10);
247
+ const indiceFrame = this.registroFrames.obter(frameId);
248
+ let linhasResposta = '--- escopos-resposta ---\n';
249
+ if (indiceFrame === undefined) {
250
+ linhasResposta += `[escopos]: frameId ${frameId} não encontrado. Execute 'pilha-execucao' primeiro.\n`;
251
+ linhasResposta += '--- fim-escopos-resposta ---\n';
252
+ conexao.write(linhasResposta);
253
+ return;
254
+ }
255
+ const elementoPilha = this.interpretador.pilhaEscoposExecucao.pilha[indiceFrame];
256
+ const variaveis = ((_a = elementoPilha === null || elementoPilha === void 0 ? void 0 : elementoPilha.espacoMemoria) === null || _a === void 0 ? void 0 : _a.valores) || {};
257
+ const variablesReference = this.registroVariaveis.registrar(variaveis);
258
+ linhasResposta += `Locais :: ${variablesReference}\n`;
259
+ linhasResposta += '--- fim-escopos-resposta ---\n';
260
+ conexao.write(linhasResposta);
125
261
  };
126
262
  this.comandoPilhaExecucao = (conexao) => {
127
263
  let linhasResposta = '';
@@ -129,12 +265,11 @@ class ServidorDepuracao {
129
265
  const pilhaEscoposExecucao = this.interpretador.pilhaEscoposExecucao;
130
266
  linhasResposta += '--- pilha-execucao-resposta ---\n';
131
267
  try {
268
+ this.registroFrames.limpar();
132
269
  for (let i = pilhaEscoposExecucao.pilha.length - 1; i > 0; i--) {
133
270
  const elementoPilha = pilhaEscoposExecucao.pilha[i];
134
- const posicaoDeclaracaoAtual = elementoPilha.declaracaoAtual >= elementoPilha.declaracoes.length
135
- ? elementoPilha.declaracoes.length - 1
136
- : elementoPilha.declaracaoAtual;
137
- const declaracaoAtual = elementoPilha.declaracoes[posicaoDeclaracaoAtual];
271
+ const declaracaoAtual = (0, referencias_depuracao_1.obterDeclaracaoAtual)(elementoPilha);
272
+ const frameId = this.registroFrames.registrar(i);
138
273
  linhasResposta +=
139
274
  this.instanciaNucleoExecucao.conteudoArquivosAbertos[declaracaoAtual.hashArquivo][declaracaoAtual.linha - 1].trim() +
140
275
  ' --- ' +
@@ -143,6 +278,8 @@ class ServidorDepuracao {
143
278
  declaracaoAtual.assinaturaMetodo +
144
279
  '::' +
145
280
  declaracaoAtual.linha +
281
+ '::' +
282
+ frameId +
146
283
  '\n';
147
284
  }
148
285
  linhasResposta += '--- fim-pilha-execucao-resposta ---\n';
@@ -167,6 +304,10 @@ class ServidorDepuracao {
167
304
  linhasResposta += '--- proximo-resposta ---\n';
168
305
  this.interpretador.comando = 'proximo';
169
306
  this.interpretador.pontoDeParadaAtivo = false;
307
+ let houveParada = false;
308
+ this.interpretador.avisoPontoParadaAtivado = () => {
309
+ houveParada = true;
310
+ };
170
311
  try {
171
312
  await this.interpretador.instrucaoPasso();
172
313
  }
@@ -174,6 +315,36 @@ class ServidorDepuracao {
174
315
  console.error(erro);
175
316
  }
176
317
  conexao.write(linhasResposta);
318
+ this.emitirEvento('continuado');
319
+ this.emitirEventoDeParada(houveParada, 'proximo');
320
+ };
321
+ /**
322
+ * Equivalente a `launch` do DAP, mas vindo do cliente em vez de configurado pela CLI: permite
323
+ * trocar ou recarregar o programa em depuração sem reiniciar o processo Node.
324
+ */
325
+ this.comandoReiniciar = async (comando, conexao) => {
326
+ let linhasResposta = "Recebido comando 'reiniciar'\n";
327
+ if (comando.length < 2) {
328
+ linhasResposta += `[reiniciar]: Formato: reiniciar <arquivo>\n`;
329
+ conexao.write(linhasResposta);
330
+ return;
331
+ }
332
+ if (!this.instanciaNucleoExecucao.carregarEExecutarArquivo) {
333
+ linhasResposta += `[reiniciar]: núcleo de execução atual não suporta recarregamento.\n`;
334
+ conexao.write(linhasResposta);
335
+ return;
336
+ }
337
+ try {
338
+ this.registroFrames.limpar();
339
+ this.registroVariaveis.limpar();
340
+ await this.instanciaNucleoExecucao.carregarEExecutarArquivo(comando[1]);
341
+ linhasResposta += '--- reiniciar-resposta ---\n';
342
+ conexao.write(linhasResposta);
343
+ }
344
+ catch (erro) {
345
+ linhasResposta += `[reiniciar]: ${String(erro)}\n`;
346
+ conexao.write(linhasResposta);
347
+ }
177
348
  };
178
349
  this.comandoRemoverPontoParada = (comando, conexao) => {
179
350
  let linhasResposta = '';
@@ -194,9 +365,26 @@ class ServidorDepuracao {
194
365
  let linhasResposta = '';
195
366
  linhasResposta += "Recebido comando 'sair-escopo'\n";
196
367
  this.interpretador.pontoDeParadaAtivo = false;
368
+ let houveParada = false;
369
+ this.interpretador.avisoPontoParadaAtivado = () => {
370
+ houveParada = true;
371
+ };
197
372
  await this.interpretador.instrucaoProximoESair();
198
373
  linhasResposta += '--- sair-escopo-resposta ---\n';
199
374
  conexao.write(linhasResposta);
375
+ this.emitirEvento('continuado');
376
+ this.emitirEventoDeParada(houveParada, 'proximo');
377
+ };
378
+ /**
379
+ * Equivalente a `threads` do DAP. O interpretador Delégua é de thread única, mas o comando
380
+ * existe para completar o paralelo de protocolo e preparar terreno para suporte futuro.
381
+ */
382
+ this.comandoLinhasExecucao = (conexao) => {
383
+ let linhasResposta = "Recebido comando 'linhas-execucao'\n";
384
+ linhasResposta += '--- linhas-execucao-resposta ---\n';
385
+ linhasResposta += '1 :: thread-principal\n';
386
+ linhasResposta += '--- fim-linhas-execucao-resposta ---\n';
387
+ conexao.write(linhasResposta);
200
388
  };
201
389
  this.comandoVariaveis = (conexao) => {
202
390
  let linhasResposta = '';
@@ -209,6 +397,40 @@ class ServidorDepuracao {
209
397
  linhasResposta += '--- fim-variaveis-resposta ---\n';
210
398
  conexao.write(linhasResposta);
211
399
  };
400
+ /**
401
+ * Equivalente a `variables` do DAP: dada uma referência obtida via `escopos` (ou outra
402
+ * `variaveis-referencia` anterior), lista as variáveis daquele recipiente. Quando um valor é
403
+ * objeto ou vetor, uma nova referência é registrada para ele, permitindo navegação recursiva
404
+ * em vez do `JSON.stringify` cego usado por `variaveis`.
405
+ */
406
+ this.comandoVariaveisReferencia = (comando, conexao) => {
407
+ conexao.write("Recebido comando 'variaveis-referencia'\n");
408
+ if (comando.length < 2) {
409
+ conexao.write(`[variaveis-referencia]: Formato: variaveis-referencia <variablesReference>\n`);
410
+ return;
411
+ }
412
+ const referencia = parseInt(comando[1], 10);
413
+ const recipiente = this.registroVariaveis.obter(referencia);
414
+ let linhasResposta = '--- variaveis-referencia-resposta ---\n';
415
+ if (!recipiente) {
416
+ linhasResposta += `[variaveis-referencia]: referência ${referencia} não encontrada. Execute 'escopos' primeiro.\n`;
417
+ linhasResposta += '--- fim-variaveis-referencia-resposta ---\n';
418
+ conexao.write(linhasResposta);
419
+ return;
420
+ }
421
+ for (const [nome, entrada] of Object.entries(recipiente)) {
422
+ const ehVariavel = entrada !== null && typeof entrada === 'object' && 'valor' in entrada;
423
+ const tipo = ehVariavel ? entrada.tipo : typeof entrada;
424
+ const valor = ehVariavel ? entrada.valor : entrada;
425
+ let referenciaFilha = 0;
426
+ if (valor !== null && typeof valor === 'object') {
427
+ referenciaFilha = this.registroVariaveis.registrar(valor);
428
+ }
429
+ linhasResposta += `${nome} :: ${tipo} :: ${(0, referencias_depuracao_1.formatarValor)(valor)} :: ${referenciaFilha}\n`;
430
+ }
431
+ linhasResposta += '--- fim-variaveis-referencia-resposta ---\n';
432
+ conexao.write(linhasResposta);
433
+ };
212
434
  /**
213
435
  * Função que descreve como conexão com clientes de depuração deve ser operada.
214
436
  * @param conexao Instância de conexão, tipo net.Socket.
@@ -224,48 +446,16 @@ class ServidorDepuracao {
224
446
  process.stdout.write('\n[Depurador] Dados da conexão vindos de ' + enderecoRemoto + ': ' + comandos + '\ndelegua> ');
225
447
  for (const comando of comandos) {
226
448
  const partesComando = comando.split(' ');
227
- switch (partesComando[0]) {
228
- case 'adentrar-escopo':
229
- this.comandoAdentrarEscopo(conexao);
230
- break;
231
- case 'adicionar-ponto-parada':
232
- this.comandoAdicionarPontoParada(partesComando, conexao);
233
- break;
234
- case 'avaliar':
235
- this.comandoAvaliar(partesComando, conexao);
236
- break;
237
- case 'avaliar-variavel':
238
- this.comandoAvaliarVariavel(partesComando, conexao);
239
- break;
240
- case 'continuar':
241
- this.comandoContinuar(conexao);
242
- break;
243
- case 'pilha-execucao':
244
- this.comandoPilhaExecucao(conexao);
245
- break;
246
- case 'pontos-parada':
247
- this.comandoPontosParada(conexao);
248
- break;
249
- case 'proximo':
250
- this.comandoProximo(conexao);
251
- break;
252
- case 'remover-ponto-parada':
253
- this.comandoRemoverPontoParada(partesComando, conexao);
254
- break;
255
- case 'sair-escopo':
256
- this.comandoSairEscopo(conexao);
257
- break;
258
- case 'tchau':
259
- conexao.write("Recebido comando 'tchau'. Conexão será encerrada\n");
260
- this.finalizarServidorDepuracao();
261
- return;
262
- case 'variaveis':
263
- this.comandoVariaveis(conexao);
264
- break;
449
+ if (partesComando[0] === 'tchau') {
450
+ conexao.write("Recebido comando 'tchau'. Conexão será encerrada\n");
451
+ this.finalizarServidorDepuracao();
452
+ return;
265
453
  }
454
+ this.despacharComando(partesComando, conexao);
266
455
  }
267
456
  };
268
457
  const aoFecharConexao = () => {
458
+ this.filaPorConexao.delete(conexao);
269
459
  process.stdout.write('\n[Depurador] Conexão de ' + enderecoRemoto + ' fechada\ndelegua> ');
270
460
  };
271
461
  const aoObterErro = (erro) => {
@@ -286,6 +476,130 @@ class ServidorDepuracao {
286
476
  this.contadorConexoes = 0;
287
477
  this.operarConexao.bind(this);
288
478
  }
479
+ /**
480
+ * Emite um evento assíncrono (estilo `stopped`/`continued`/`terminated` do DAP) para todos os
481
+ * clientes conectados, sem que precisem pollar comandos como `pilha-execucao` após cada passo.
482
+ */
483
+ emitirEvento(nomeEvento, linhasCorpo = []) {
484
+ let mensagem = `--- evento: ${nomeEvento} ---\n`;
485
+ for (const linha of linhasCorpo) {
486
+ mensagem += linha + '\n';
487
+ }
488
+ mensagem += '--- fim-evento ---\n';
489
+ Object.keys(this.conexoes).forEach((chave) => {
490
+ this.conexoes[chave].write(mensagem);
491
+ });
492
+ }
493
+ /** Localiza arquivo/linha da declaração em execução no topo da pilha de escopos. */
494
+ obterLocalizacaoAtual() {
495
+ var _a, _b;
496
+ const pilhaEscopos = (_b = (_a = this.interpretador) === null || _a === void 0 ? void 0 : _a.pilhaEscoposExecucao) === null || _b === void 0 ? void 0 : _b.pilha;
497
+ if (!Array.isArray(pilhaEscopos)) {
498
+ return null;
499
+ }
500
+ for (let indice = pilhaEscopos.length - 1; indice >= 0; indice--) {
501
+ const declaracaoAtual = (0, referencias_depuracao_1.obterDeclaracaoAtual)(pilhaEscopos[indice]);
502
+ if (!declaracaoAtual) {
503
+ continue;
504
+ }
505
+ const caminhoArquivo = this.instanciaNucleoExecucao.arquivosAbertos[declaracaoAtual.hashArquivo];
506
+ if (!caminhoArquivo) {
507
+ continue;
508
+ }
509
+ return { caminhoArquivo, linha: declaracaoAtual.linha };
510
+ }
511
+ return null;
512
+ }
513
+ /** Emite `parado` (com a localização atual) ou `encerrado`, conforme o resultado de um passo/continue. */
514
+ emitirEventoDeParada(houveParada, motivoPadrao) {
515
+ if (!houveParada && !this.interpretador.pontoDeParadaAtivo) {
516
+ this.emitirEvento('encerrado');
517
+ return;
518
+ }
519
+ const localizacao = this.obterLocalizacaoAtual();
520
+ if (localizacao) {
521
+ this.emitirEvento('parado', [
522
+ `motivo:${motivoPadrao}`,
523
+ `arquivo:${localizacao.caminhoArquivo}::linha:${localizacao.linha}`,
524
+ ]);
525
+ }
526
+ }
527
+ /** Despacha um comando de texto já tokenizado para o `comando*` correspondente. */
528
+ executarComando(partesComando, conexao) {
529
+ switch (partesComando[0]) {
530
+ case 'adentrar-escopo':
531
+ return this.comandoAdentrarEscopo(conexao);
532
+ case 'adicionar-ponto-parada':
533
+ return this.comandoAdicionarPontoParada(partesComando, conexao);
534
+ case 'avaliar':
535
+ return this.comandoAvaliar(partesComando, conexao);
536
+ case 'avaliar-variavel':
537
+ return this.comandoAvaliarVariavel(partesComando, conexao);
538
+ case 'capacidades':
539
+ return this.comandoCapacidades(conexao);
540
+ case 'continuar':
541
+ return this.comandoContinuar(conexao);
542
+ case 'definir-pontos-parada':
543
+ return this.comandoDefinirPontosParada(partesComando, conexao);
544
+ case 'encerrar-sessao':
545
+ return this.comandoEncerrarSessao(conexao);
546
+ case 'escopos':
547
+ return this.comandoEscopos(partesComando, conexao);
548
+ case 'linhas-execucao':
549
+ return this.comandoLinhasExecucao(conexao);
550
+ case 'pilha-execucao':
551
+ return this.comandoPilhaExecucao(conexao);
552
+ case 'pontos-parada':
553
+ return this.comandoPontosParada(conexao);
554
+ case 'proximo':
555
+ return this.comandoProximo(conexao);
556
+ case 'reiniciar':
557
+ return this.comandoReiniciar(partesComando, conexao);
558
+ case 'remover-ponto-parada':
559
+ return this.comandoRemoverPontoParada(partesComando, conexao);
560
+ case 'sair-escopo':
561
+ return this.comandoSairEscopo(conexao);
562
+ case 'variaveis':
563
+ return this.comandoVariaveis(conexao);
564
+ case 'variaveis-referencia':
565
+ return this.comandoVariaveisReferencia(partesComando, conexao);
566
+ }
567
+ }
568
+ /**
569
+ * Despacha um comando, serializando-o após qualquer comando assíncrono ainda pendente na mesma
570
+ * conexão. Quando a fila está ociosa, o comando é executado de forma síncrona/imediata, igual ao
571
+ * comportamento histórico; só quando há um comando assíncrono em andamento é que a execução do
572
+ * próximo comando é adiada até ele terminar — evitando que dois comandos leiam/alterem o estado
573
+ * do interpretador ao mesmo tempo quando um cliente envia vários comandos em sequência rápida.
574
+ */
575
+ despacharComando(partesComando, conexao) {
576
+ const filaAtual = this.filaPorConexao.get(conexao);
577
+ if (!filaAtual) {
578
+ const resultado = this.executarComando(partesComando, conexao);
579
+ if (resultado && typeof resultado.then === 'function') {
580
+ this.registrarNaFila(conexao, resultado);
581
+ }
582
+ return;
583
+ }
584
+ const promessaEncadeada = filaAtual.then(() => {
585
+ const resultado = this.executarComando(partesComando, conexao);
586
+ return resultado instanceof Promise ? resultado : undefined;
587
+ });
588
+ this.registrarNaFila(conexao, promessaEncadeada);
589
+ }
590
+ registrarNaFila(conexao, promessa) {
591
+ const promessaTratada = promessa
592
+ .catch((erro) => {
593
+ var _a;
594
+ conexao.write(`--- erro --- ${String((_a = erro === null || erro === void 0 ? void 0 : erro.message) !== null && _a !== void 0 ? _a : erro)} --- fim-erro ---\n`);
595
+ })
596
+ .finally(() => {
597
+ if (this.filaPorConexao.get(conexao) === promessaTratada) {
598
+ this.filaPorConexao.delete(conexao);
599
+ }
600
+ });
601
+ this.filaPorConexao.set(conexao, promessaTratada);
602
+ }
289
603
  iniciarServidorDepuracao() {
290
604
  // É necessário mudar o `this` aqui por `.bind()`, senão `this` será net.Server dentro dos métodos.
291
605
  this.servidor.on('connection', this.operarConexao.bind(this));
@@ -303,6 +617,7 @@ class ServidorDepuracao {
303
617
  this.conexoes[chave].write('--- finalizando ---\n');
304
618
  this.conexoes[chave].end();
305
619
  });
620
+ this.filaPorConexao.clear();
306
621
  this.servidor.close();
307
622
  }
308
623
  }
@@ -1 +1 @@
1
- {"version":3,"file":"servidor-depuracao.js","sourceRoot":"","sources":["../../fontes/depuracao/servidor-depuracao.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"servidor-depuracao.js","sourceRoot":"","sources":["../../fontes/depuracao/servidor-depuracao.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,10 @@ export interface NucleoExecucaoInterface {
8
8
  };
9
9
  funcaoDeRetorno: Function;
10
10
  interpretador: InterpretadorInterface;
11
+ versao?: string;
12
+ dialeto?: string;
11
13
  executarLinhas(linhas: string[]): Promise<RetornoExecucaoInterface>;
14
+ carregarEExecutarArquivo?(caminhoRelativoArquivo: string): Promise<any>;
15
+ finalizarDepuracao?(): void;
12
16
  }
13
17
  //# sourceMappingURL=nucleo-execucao-interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nucleo-execucao-interface.d.ts","sourceRoot":"","sources":["../../fontes/interfaces/nucleo-execucao-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAErG,MAAM,WAAW,uBAAuB;IACpC,eAAe,EAAE;QAAE,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACrD,uBAAuB,EAAE;QAAE,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;IAE/D,eAAe,EAAE,QAAQ,CAAC;IAC1B,aAAa,EAAE,sBAAsB,CAAC;IAEtC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACvE"}
1
+ {"version":3,"file":"nucleo-execucao-interface.d.ts","sourceRoot":"","sources":["../../fontes/interfaces/nucleo-execucao-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAErG,MAAM,WAAW,uBAAuB;IACpC,eAAe,EAAE;QAAE,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACrD,uBAAuB,EAAE;QAAE,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;IAE/D,eAAe,EAAE,QAAQ,CAAC;IAC1B,aAAa,EAAE,sBAAsB,CAAC;IAEtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACpE,wBAAwB,CAAC,CAAC,sBAAsB,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACxE,kBAAkB,CAAC,IAAI,IAAI,CAAC;CAC/B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@designliquido/delegua-node",
3
- "version": "1.22.4",
3
+ "version": "1.23.0",
4
4
  "description": "Linguagem Delégua com capacidades para ecossistema Node.js.",
5
5
  "bin": {
6
6
  "delegua": "bin/delegua",
@@ -20,13 +20,13 @@
20
20
  "testes:servidor-depuracao": "yarn ts-node ./fontes/depuracao/servidor-depuracao.ts"
21
21
  },
22
22
  "dependencies": {
23
- "@designliquido/birl": "^0.6.13",
24
- "@designliquido/delegua": "^1.25.0",
23
+ "@designliquido/birl": "^0.6.14",
24
+ "@designliquido/delegua": "^1.25.1",
25
25
  "@designliquido/delegua-interface-grafica": "^0.1.0",
26
- "@designliquido/mapler": "^0.7.13",
27
- "@designliquido/portugol-studio": "^0.11.13",
28
- "@designliquido/potigol": "^0.11.13",
29
- "@designliquido/visualg": "^0.9.13",
26
+ "@designliquido/mapler": "^0.7.14",
27
+ "@designliquido/portugol-studio": "^0.11.14",
28
+ "@designliquido/potigol": "^0.11.14",
29
+ "@designliquido/visualg": "^0.9.14",
30
30
  "canvas": "^3.2.1",
31
31
  "chalk": "4.1.2",
32
32
  "commander": "^14.0.0",